From dc3bc54468ceedbeb955b2fdae9e1b19ad5ac88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Thu, 20 Jul 2023 10:43:38 +0800 Subject: [PATCH] - update vendor --- go.mod | 17 +- go.sum | 38 +- library.go | 2 +- .../baidubce/bce-sdk-go/bce/client.go | 5 + .../baidubce/bce-sdk-go/bce/config.go | 3 +- .../bce-sdk-go/services/bos/api/model.go | 1 + .../bce-sdk-go/services/bos/api/object.go | 4 + .../bce-sdk-go/services/bos/client.go | 5 +- vendor/github.com/bytedance/sonic/Makefile | 31 +- vendor/github.com/bytedance/sonic/README.md | 55 +- .../bytedance/sonic/README_ZH_CN.md | 54 +- vendor/github.com/bytedance/sonic/api.go | 5 + .../bytedance/sonic/ast/api_amd64.go | 10 +- .../bytedance/sonic/ast/api_compat.go | 8 +- .../github.com/bytedance/sonic/ast/buffer.go | 329 + .../github.com/bytedance/sonic/ast/decode.go | 36 +- .../github.com/bytedance/sonic/ast/encode.go | 64 +- .../github.com/bytedance/sonic/ast/error.go | 44 +- .../bytedance/sonic/ast/iterator.go | 18 +- vendor/github.com/bytedance/sonic/ast/node.go | 535 +- .../github.com/bytedance/sonic/ast/parser.go | 96 +- vendor/github.com/bytedance/sonic/ast/sort.go | 206 - .../github.com/bytedance/sonic/ast/visitor.go | 315 + vendor/github.com/bytedance/sonic/compat.go | 2 +- .../bytedance/sonic/decoder/decoder_amd64.go | 8 +- .../bytedance/sonic/decoder/decoder_compat.go | 53 +- .../bytedance/sonic/encoder/encoder_amd64.go | 2 +- .../bytedance/sonic/encoder/encoder_compat.go | 6 +- .../bytedance/sonic/internal/abi/abi.go | 197 + .../bytedance/sonic/internal/abi/abi_amd64.go | 282 + .../sonic/internal/abi/abi_legacy_amd64.go | 182 + .../sonic/internal/abi/abi_regabi_amd64.go | 316 + .../bytedance/sonic/internal/abi/stubs.go | 35 + .../sonic/internal/decoder/decoder.go | 16 +- .../bytedance/sonic/internal/decoder/pools.go | 2 +- .../sonic/internal/loader/funcdata.go | 124 - .../sonic/internal/loader/funcdata_go115.go | 169 - .../sonic/internal/loader/funcdata_go116.go | 175 - .../sonic/internal/loader/funcdata_go118.go | 201 - .../sonic/internal/loader/funcdata_go120.go | 201 - .../bytedance/sonic/internal/loader/loader.go | 74 - .../sonic/internal/loader/loader_windows.go | 111 - .../sonic/internal/native/avx/native_amd64.go | 188 +- .../sonic/internal/native/avx/native_amd64.s | 15342 --- .../native/avx/native_export_amd64.go | 49 - .../internal/native/avx/native_subr_amd64.go | 662 +- .../internal/native/avx/native_text_amd64.go | 14075 +++ .../internal/native/avx2/native_amd64.go | 188 +- .../sonic/internal/native/avx2/native_amd64.s | 15972 --- .../native/avx2/native_export_amd64.go | 49 - .../internal/native/avx2/native_subr_amd64.go | 665 +- .../internal/native/avx2/native_text_amd64.go | 14800 +++ .../sonic/internal/native/dispatch_amd64.go | 213 +- .../sonic/internal/native/dispatch_amd64.s | 137 - .../internal/native/fastfloat_amd64_test.tmpl | 52 +- .../internal/native/fastint_amd64_test.tmpl | 236 +- .../sonic/internal/native/native_amd64.tmpl | 188 +- .../internal/native/native_amd64_test.tmpl | 182 +- .../internal/native/native_export_amd64.tmpl | 47 - .../internal/native/recover_amd64_test.tmpl | 697 + .../sonic/internal/native/sse/native_amd64.go | 188 +- .../sonic/internal/native/sse/native_amd64.s | 15479 --- .../native/sse/native_export_amd64.go | 49 - .../internal/native/sse/native_subr_amd64.go | 663 +- .../internal/native/sse/native_text_amd64.go | 14266 +++ .../sonic/internal/native/types/types.go | 24 + .../bytedance/sonic/internal/rt/fastmem.go | 12 + .../bytedance/sonic/loader/loader_compat.go | 46 - .../bytedance/sonic/loader/wrapper.go | 185 + vendor/github.com/bytedance/sonic/sonic.go | 2 +- vendor/github.com/chenzhuoyu/base64x/Makefile | 7 +- .../github.com/chenzhuoyu/base64x/base64x.go | 10 +- vendor/github.com/chenzhuoyu/base64x/cpuid.go | 2 +- .../github.com/chenzhuoyu/base64x/faststr.go | 12 + .../chenzhuoyu/base64x/native_amd64.go | 38 +- .../chenzhuoyu/base64x/native_amd64.s | 4416 - .../chenzhuoyu/base64x/native_subr_amd64.go | 62 +- .../chenzhuoyu/base64x/native_text_amd64.go | 5305 + vendor/github.com/chenzhuoyu/iasm/LICENSE | 201 + vendor/github.com/chenzhuoyu/iasm/expr/ast.go | 245 + .../github.com/chenzhuoyu/iasm/expr/errors.go | 37 + vendor/github.com/chenzhuoyu/iasm/expr/ops.go | 51 + .../github.com/chenzhuoyu/iasm/expr/parser.go | 313 + .../github.com/chenzhuoyu/iasm/expr/pools.go | 26 + .../github.com/chenzhuoyu/iasm/expr/term.go | 7 + .../github.com/chenzhuoyu/iasm/expr/utils.go | 61 + .../github.com/chenzhuoyu/iasm/x86_64/arch.go | 235 + .../loader => chenzhuoyu/iasm/x86_64}/asm.s | 0 .../chenzhuoyu/iasm/x86_64/assembler.go | 1803 + .../chenzhuoyu/iasm/x86_64/assembler_alias.go | 33 + .../chenzhuoyu/iasm/x86_64/eface.go | 63 + .../chenzhuoyu/iasm/x86_64/encodings.go | 675 + .../chenzhuoyu/iasm/x86_64/instructions.go | 97194 ++++++++++++++++ .../iasm/x86_64/instructions_table.go | 12291 ++ .../chenzhuoyu/iasm/x86_64/operands.go | 510 + .../chenzhuoyu/iasm/x86_64/pools.go | 117 + .../chenzhuoyu/iasm/x86_64/program.go | 542 + .../chenzhuoyu/iasm/x86_64/registers.go | 677 + .../chenzhuoyu/iasm/x86_64/utils.go | 131 + .../gf/v2/database/gredis/gredis_config.go | 1 + vendor/github.com/gogf/gf/v2/os/gctx/gctx.go | 8 +- .../gogf/gf/v2/os/glog/glog_logger.go | 3 +- .../gogf/gf/v2/os/glog/glog_logger_rotate.go | 122 +- .../gogf/gf/v2/util/gconv/gconv_convert.go | 19 +- .../gogf/gf/v2/util/gconv/gconv_map.go | 13 +- .../gogf/gf/v2/util/gconv/gconv_maptomap.go | 38 +- .../gogf/gf/v2/util/gtag/gtag_enums.go | 4 +- vendor/github.com/jackc/pgx/v5/CHANGELOG.md | 9 + vendor/github.com/jackc/pgx/v5/README.md | 1 + .../v5/pgconn/internal/bgreader/bgreader.go | 47 +- .../github.com/jackc/pgx/v5/pgconn/pgconn.go | 63 +- .../jackc/pgx/v5/pgproto3/frontend.go | 4 + .../github.com/jackc/pgx/v5/pgtype/array.go | 22 - .../github.com/jackc/pgx/v5/pgtype/convert.go | 371 - .../github.com/jackc/pgx/v5/pgtype/hstore.go | 13 +- vendor/github.com/jackc/pgx/v5/pgtype/json.go | 7 + .../github.com/jackc/pgx/v5/pgtype/numeric.go | 21 +- .../github.com/jackc/pgx/v5/pgtype/pgtype.go | 19 - .../github.com/jackc/pgx/v5/pgtype/point.go | 2 +- vendor/github.com/jackc/pgx/v5/pgtype/uuid.go | 2 +- vendor/github.com/jackc/pgx/v5/rows.go | 6 +- .../pelletier/go-toml/v2/marshaler.go | 4 +- .../pelletier/go-toml/v2/unmarshaler.go | 4 +- vendor/golang.org/x/exp/slices/slices.go | 24 + vendor/golang.org/x/exp/slog/doc.go | 4 +- vendor/golang.org/x/exp/slog/logger.go | 62 +- vendor/gorm.io/gen/do.go | 16 +- vendor/gorm.io/gen/field/assign_attr.go | 121 + vendor/gorm.io/gen/field/association.go | 4 +- vendor/gorm.io/gen/field/expr.go | 10 +- vendor/gorm.io/gen/field/tag.go | 80 +- vendor/gorm.io/gen/field_options.go | 19 + vendor/gorm.io/gen/generator.go | 2 - vendor/gorm.io/gen/interface.go | 2 + .../gorm.io/gen/internal/generate/export.go | 4 +- vendor/gorm.io/gen/internal/generate/query.go | 6 +- .../gorm.io/gen/internal/model/tbl_column.go | 20 +- vendor/gorm.io/gen/internal/parser/export.go | 12 +- .../gorm.io/gen/internal/template/method.go | 4 - vendor/gorm.io/gen/internal/template/model.go | 6 + .../gorm.io/gen/internal/template/struct.go | 2 + vendor/modules.txt | 26 +- 142 files changed, 170134 insertions(+), 54850 deletions(-) create mode 100644 vendor/github.com/bytedance/sonic/ast/buffer.go delete mode 100644 vendor/github.com/bytedance/sonic/ast/sort.go create mode 100644 vendor/github.com/bytedance/sonic/ast/visitor.go create mode 100644 vendor/github.com/bytedance/sonic/internal/abi/abi.go create mode 100644 vendor/github.com/bytedance/sonic/internal/abi/abi_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/abi/abi_legacy_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/abi/abi_regabi_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/abi/stubs.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata_go115.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata_go116.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata_go118.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata_go120.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/loader/loader.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/loader/loader_windows.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.s delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_export_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.s delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_export_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.s delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_export_amd64.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/recover_amd64_test.tmpl delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.s delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_export_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/loader/loader_compat.go create mode 100644 vendor/github.com/bytedance/sonic/loader/wrapper.go delete mode 100644 vendor/github.com/chenzhuoyu/base64x/native_amd64.s create mode 100644 vendor/github.com/chenzhuoyu/base64x/native_text_amd64.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/LICENSE create mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/ast.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/errors.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/ops.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/parser.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/pools.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/term.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/utils.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/arch.go rename vendor/github.com/{bytedance/sonic/internal/loader => chenzhuoyu/iasm/x86_64}/asm.s (100%) create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/assembler.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/assembler_alias.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/eface.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/encodings.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/instructions.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/instructions_table.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/operands.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/pools.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/program.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/registers.go create mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/utils.go create mode 100644 vendor/gorm.io/gen/field/assign_attr.go diff --git a/go.mod b/go.mod index 754f91b7..2c0a59ce 100644 --- a/go.mod +++ b/go.mod @@ -6,16 +6,16 @@ require ( github.com/MercuryEngineering/CookieMonster v0.0.0-20180304172713-1584578b3403 github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/allegro/bigcache/v3 v3.1.0 - github.com/baidubce/bce-sdk-go v0.9.151 + github.com/baidubce/bce-sdk-go v0.9.153 github.com/basgys/goxml2json v1.1.0 - github.com/bytedance/sonic v1.9.2 + github.com/bytedance/sonic v1.10.0-rc2 github.com/gin-gonic/gin v1.9.1 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.14.1 github.com/go-sql-driver/mysql v1.7.1 github.com/goccy/go-json v0.10.2 - github.com/gogf/gf/v2 v2.4.4 + github.com/gogf/gf/v2 v2.5.0 github.com/json-iterator/go v1.1.12 github.com/lib/pq v1.10.9 github.com/mitchellh/mapstructure v1.5.0 @@ -32,13 +32,13 @@ require ( go.mongodb.org/mongo-driver v1.12.0 go.uber.org/zap v1.24.0 golang.org/x/crypto v0.11.0 - golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df + golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 golang.org/x/text v0.11.0 gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gorm.io/datatypes v1.2.0 gorm.io/driver/mysql v1.5.1 gorm.io/driver/postgres v1.5.2 - gorm.io/gen v0.3.22 + gorm.io/gen v0.3.23 gorm.io/gorm v1.25.2 xorm.io/builder v0.3.12 xorm.io/xorm v1.3.2 @@ -47,7 +47,8 @@ require ( require ( github.com/bitly/go-simplejson v0.5.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect + github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect + github.com/chenzhuoyu/iasm v0.9.0 // indirect github.com/clbanning/mxj v1.8.4 // indirect github.com/clbanning/mxj/v2 v2.5.7 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -62,7 +63,7 @@ require ( github.com/google/go-querystring v1.1.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect - github.com/jackc/pgx/v5 v5.4.1 // indirect + github.com/jackc/pgx/v5 v5.4.2 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/klauspost/compress v1.16.7 // indirect @@ -76,7 +77,7 @@ require ( github.com/montanaflynn/stats v0.7.1 // indirect github.com/mozillazg/go-httpheader v0.4.0 // indirect github.com/oschwald/maxminddb-golang v1.11.0 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/pelletier/go-toml/v2 v2.0.9 // indirect github.com/rogpeppe/go-internal v1.8.1 // indirect github.com/saracen/go7z-fixtures v0.0.0-20190623165746-aa6b8fba1d2f // indirect github.com/saracen/solidblock v0.0.0-20190426153529-45df20abab6f // indirect diff --git a/go.sum b/go.sum index 9ffaa188..25f83f80 100644 --- a/go.sum +++ b/go.sum @@ -32,8 +32,8 @@ github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6l github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/baidubce/bce-sdk-go v0.9.151 h1:AWCcndmlt29ti2iJ9Re1pInOOnAplY2KGMAsN3LCTjw= -github.com/baidubce/bce-sdk-go v0.9.151/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg= +github.com/baidubce/bce-sdk-go v0.9.153 h1:h5l2EXehe4C4/bdlAPBaULrbnEDgIu5HOYgniN7bjGM= +github.com/baidubce/bce-sdk-go v0.9.153/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg= github.com/basgys/goxml2json v1.1.0 h1:4ln5i4rseYfXNd86lGEB+Vi652IsIXIvggKM/BhUKVw= github.com/basgys/goxml2json v1.1.0/go.mod h1:wH7a5Np/Q4QoECFIU8zTQlZwZkrilY0itPfecMw41Dw= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= @@ -46,8 +46,9 @@ github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngE github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao= github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.9.2 h1:GDaNjuWSGu09guE9Oql0MSTNhNCLlWwO8y/xM5BzcbM= -github.com/bytedance/sonic v1.9.2/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM= +github.com/bytedance/sonic v1.10.0-rc2 h1:oDfRZ+4m6AYCOC0GFeOCeYqvBmucy1isvouS2K0cPzo= +github.com/bytedance/sonic v1.10.0-rc2/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -55,8 +56,11 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= -github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= +github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0= +github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA= +github.com/chenzhuoyu/iasm v0.9.0 h1:9fhXjVzq5hUy2gkhhgHl95zG2cEAhw9OSGs8toWWAwo= +github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I= github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng= github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= @@ -146,8 +150,8 @@ github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogf/gf/v2 v2.4.4 h1:+s7PKxd4LJKjJn5ODZvYcbXMM5e+88Ww1W3GdOarLE8= -github.com/gogf/gf/v2 v2.4.4/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y= +github.com/gogf/gf/v2 v2.5.0 h1:dFZbIOq/3TmHNWTodSxHbAluuyh274hTvqoNe67pAbE= +github.com/gogf/gf/v2 v2.5.0/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -268,8 +272,8 @@ github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6 github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= github.com/jackc/pgx/v4 v4.11.0/go.mod h1:i62xJgdrtVDsnL3U8ekyrQXEwGNTRoG7/8r+CIdYfcc= github.com/jackc/pgx/v4 v4.12.0/go.mod h1:fE547h6VulLPA3kySjfnSG/e2D861g/50JlVUa/ub60= -github.com/jackc/pgx/v5 v5.4.1 h1:oKfB/FhuVtit1bBM3zNRRsZ925ZkMN3HXL+LgLUM9lE= -github.com/jackc/pgx/v5 v5.4.1/go.mod h1:q6iHT8uDNXWiFNOlRqJzBTaSH3+2xCXkokxHZC5qWFY= +github.com/jackc/pgx/v5 v5.4.2 h1:u1gmGDwbdRUZiwisBm/Ky2M14uQyUP65bG8+20nnyrg= +github.com/jackc/pgx/v5 v5.4.2/go.mod h1:q6iHT8uDNXWiFNOlRqJzBTaSH3+2xCXkokxHZC5qWFY= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= @@ -299,6 +303,7 @@ github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQs github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -416,8 +421,8 @@ github.com/oschwald/maxminddb-golang v1.11.0/go.mod h1:YmVI+H0zh3ySFR3w+oz8PCfgl github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pelletier/go-toml/v2 v2.0.9 h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0= +github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -511,8 +516,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.563/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= @@ -612,8 +617,8 @@ golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df h1:UA2aFVmmsIlefxMk29Dp2juaUSth8Pyn3Tq5Y5mJGME= -golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw= +golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -817,8 +822,8 @@ gorm.io/driver/postgres v1.5.2/go.mod h1:fmpX0m2I1PKuR7mKZiEluwrP3hbs+ps7JIGMUBp gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I= gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= -gorm.io/gen v0.3.22 h1:K7u5tCyaZfe1cbQFD8N2xrTqUuqximNFSRl7zOFPq+M= -gorm.io/gen v0.3.22/go.mod h1:dQcELeF/7Kf82M6AQF+O/rKT5r1sjv49TlGz0cerPn4= +gorm.io/gen v0.3.23 h1:TL+q3bXvOzeIXBRp9vqIaD4/iaEzdU1Kgy5QSHsxDEQ= +gorm.io/gen v0.3.23/go.mod h1:G9uxGfkfNFxPoOrV5P6KQxRMgZsQSCyp9vJP8xiKTGg= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= @@ -943,6 +948,7 @@ modernc.org/tcl v1.8.13/go.mod h1:V+q/Ef0IJaNUSECieLU4o+8IScapxnMyFV6i/7uQlAY= modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk= modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/z v1.2.19/go.mod h1:+ZpP0pc4zz97eukOzW3xagV/lS82IpPN9NGG5pNF9vY= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/library.go b/library.go index 4121f658..cf011b22 100644 --- a/library.go +++ b/library.go @@ -1,5 +1,5 @@ package go_library func Version() string { - return "1.0.155" + return "1.0.156" } diff --git a/vendor/github.com/baidubce/bce-sdk-go/bce/client.go b/vendor/github.com/baidubce/bce-sdk-go/bce/client.go index 28eccd0f..d223a098 100644 --- a/vendor/github.com/baidubce/bce-sdk-go/bce/client.go +++ b/vendor/github.com/baidubce/bce-sdk-go/bce/client.go @@ -155,6 +155,11 @@ func (c *BceClient) SendRequest(req *BceRequest, resp *BceResponse) error { log.Infof("receive http response: status: %s, debugId: %s, requestId: %s, elapsed: %v", resp.StatusText(), resp.DebugId(), resp.RequestId(), resp.ElapsedTime()) + + if resp.ElapsedTime().Milliseconds() > DEFAULT_WARN_LOG_TIMEOUT_IN_MILLS { + log.Warnf("request time more than 5 second, debugId: %s, requestId: %s, elapsed: %v", + resp.DebugId(), resp.RequestId(), resp.ElapsedTime()) + } for k, v := range resp.Headers() { log.Debugf("%s=%s", k, v) } diff --git a/vendor/github.com/baidubce/bce-sdk-go/bce/config.go b/vendor/github.com/baidubce/bce-sdk-go/bce/config.go index 88ced7b7..31d5c4f6 100644 --- a/vendor/github.com/baidubce/bce-sdk-go/bce/config.go +++ b/vendor/github.com/baidubce/bce-sdk-go/bce/config.go @@ -26,13 +26,14 @@ import ( // Constants and default values for the package bce const ( - SDK_VERSION = "0.9.151" + SDK_VERSION = "0.9.153" URI_PREFIX = "/" // now support uri without prefix "v1" so just set root path DEFAULT_DOMAIN = "baidubce.com" DEFAULT_PROTOCOL = "http" DEFAULT_REGION = "bj" DEFAULT_CONTENT_TYPE = "application/json;charset=utf-8" DEFAULT_CONNECTION_TIMEOUT_IN_MILLIS = 1200 * 1000 + DEFAULT_WARN_LOG_TIMEOUT_IN_MILLS = 5 * 1000 ) var ( diff --git a/vendor/github.com/baidubce/bce-sdk-go/services/bos/api/model.go b/vendor/github.com/baidubce/bce-sdk-go/services/bos/api/model.go index 36780104..73dbbc3f 100644 --- a/vendor/github.com/baidubce/bce-sdk-go/services/bos/api/model.go +++ b/vendor/github.com/baidubce/bce-sdk-go/services/bos/api/model.go @@ -271,6 +271,7 @@ type CopyObjectArgs struct { IfModifiedSince string IfUnmodifiedSince string TrafficLimit int64 + CannedAcl string } type MultiCopyObjectArgs struct { diff --git a/vendor/github.com/baidubce/bce-sdk-go/services/bos/api/object.go b/vendor/github.com/baidubce/bce-sdk-go/services/bos/api/object.go index 04f316fb..a582799d 100644 --- a/vendor/github.com/baidubce/bce-sdk-go/services/bos/api/object.go +++ b/vendor/github.com/baidubce/bce-sdk-go/services/bos/api/object.go @@ -194,6 +194,10 @@ func CopyObject(cli bce.Client, bucket, object, source string, req.SetHeader(http.BCE_TRAFFIC_LIMIT, fmt.Sprintf("%d", args.TrafficLimit)) } + if validCannedAcl(args.CannedAcl) { + req.SetHeader(http.BCE_ACL, args.CannedAcl) + } + if err := setUserMetadata(req, args.UserMeta); err != nil { return nil, err } diff --git a/vendor/github.com/baidubce/bce-sdk-go/services/bos/client.go b/vendor/github.com/baidubce/bce-sdk-go/services/bos/client.go index 4604e187..34ac7e49 100644 --- a/vendor/github.com/baidubce/bce-sdk-go/services/bos/client.go +++ b/vendor/github.com/baidubce/bce-sdk-go/services/bos/client.go @@ -919,6 +919,7 @@ func (c *Client) PutObjectFromStream(bucket, object string, reader io.Reader, return api.PutObject(c, bucket, object, body, args) } + // CopyObject - copy a remote object to another one // // PARAMS: @@ -2128,7 +2129,7 @@ func (c *Client) parallelPartCopy(srcMeta api.GetObjectMetaResult, source string var err error size := srcMeta.ContentLength partSize := int64(DEFAULT_MULTIPART_SIZE) - if partSize * MAX_PART_NUMBER < size { + if partSize*MAX_PART_NUMBER < size { lowerLimit := int64(math.Ceil(float64(size) / MAX_PART_NUMBER)) partSize = int64(math.Ceil(float64(lowerLimit)/float64(partSize))) * partSize } @@ -2250,4 +2251,4 @@ func (c *Client) GetBucketMirror(bucket string) (*api.PutBucketMirrorArgs, error func (c *Client) DeleteBucketMirror(bucket string) error { return api.DeleteBucketMirror(c, bucket) -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/Makefile b/vendor/github.com/bytedance/sonic/Makefile index 4d77e812..c672c313 100644 --- a/vendor/github.com/bytedance/sonic/Makefile +++ b/vendor/github.com/bytedance/sonic/Makefile @@ -23,23 +23,25 @@ CPU_avx := amd64 CPU_avx2 := amd64 CPU_sse := amd64 -TMPL_avx := fastint_amd64_test fastfloat_amd64_test native_amd64_test native_export_amd64 -TMPL_avx2 := fastint_amd64_test fastfloat_amd64_test native_amd64_test native_export_amd64 -TMPL_sse := fastint_amd64_test fastfloat_amd64_test native_amd64_test native_export_amd64 - -CFLAGS_avx := -msse -mssse3 -mno-sse4 -mavx -mpclmul -mno-avx2 -DUSE_AVX=1 -DUSE_AVX2=0 -CFLAGS_avx2 := -msse -mssse3 -mno-sse4 -mavx -mpclmul -mavx2 -DUSE_AVX=1 -DUSE_AVX2=1 -CFLAGS_sse := -msse -mssse3 -mno-sse4 -mno-avx -mno-avx2 -mpclmul -TARGETFLAGS := -target x86_64-apple-macos11 -nostdlib -fno-builtin -fno-asynchronous-unwind-tables +TMPL_avx := fastint_amd64_test fastfloat_amd64_test native_amd64_test recover_amd64_test +TMPL_avx2 := fastint_amd64_test fastfloat_amd64_test native_amd64_test recover_amd64_test +TMPL_sse := fastint_amd64_test fastfloat_amd64_test native_amd64_test recover_amd64_test +CFLAGS_avx := -msse -mno-sse4 -mavx -mpclmul -mno-avx2 -mstack-alignment=0 -DUSE_AVX=1 -DUSE_AVX2=0 +CFLAGS_avx2 := -msse -mno-sse4 -mavx -mpclmul -mavx2 -mstack-alignment=0 -DUSE_AVX=1 -DUSE_AVX2=1 +CFLAGS_sse := -msse -mno-sse4 -mno-avx -mno-avx2 -mpclmul CC_amd64 := clang ASM2ASM_amd64 := tools/asm2asm/asm2asm.py CFLAGS := -mno-red-zone +CFLAGS += -target x86_64-apple-macos11 +CFLAGS += -fno-asynchronous-unwind-tables +CFLAGS += -fno-builtin CFLAGS += -fno-exceptions CFLAGS += -fno-rtti CFLAGS += -fno-stack-protector +CFLAGS += -nostdlib CFLAGS += -O3 CFLAGS += -Wall -Werror @@ -64,7 +66,7 @@ define build_arch $(eval @cpu := $(value CPU_$(1))) $(eval @deps := $(foreach tmpl,$(value TMPL_$(1)),${OUT_DIR}/$(1)/${tmpl}.go)) $(eval @asmin := ${TMP_DIR}/$(1)/native.s) - $(eval @asmout := ${OUT_DIR}/$(1)/native_${@cpu}.s) + $(eval @asmout := ${OUT_DIR}/$(1)/native_text_${@cpu}.go) $(eval @stubin := ${OUT_DIR}/native_${@cpu}.tmpl) $(eval @stubout := ${OUT_DIR}/$(1)/native_${@cpu}.go) @@ -72,14 +74,8 @@ $(1): ${@asmout} ${@deps} ${@asmout}: ${@stubout} ${NATIVE_SRC} mkdir -p ${TMP_DIR}/$(1) - $${CC_${@cpu}} $${CFLAGS} $${CFLAGS_$(1)} ${TARGETFLAGS} -S -o ${TMP_DIR}/$(1)/native.s ${SRC_FILE} - $(foreach file, - $(wildcard native/unittest/*), - $${CC_${@cpu}} $${CFLAGS} $${CFLAGS_$(1)} -I./native -o ${TMP_DIR}/$(1)/test $(file) - ./${TMP_DIR}/$(1)/test - ) - python3 $${ASM2ASM_${@cpu}} ${@asmout} ${TMP_DIR}/$(1)/native.s - asmfmt -w ${@asmout} + $${CC_${@cpu}} $${CFLAGS} $${CFLAGS_$(1)} -S -o ${TMP_DIR}/$(1)/native.s ${SRC_FILE} + python3 $${ASM2ASM_${@cpu}} -r ${@stubout} ${TMP_DIR}/$(1)/native.s $(eval $(call \ build_tmpl, \ @@ -113,4 +109,3 @@ $(foreach \ ${ARCH}, \ $(eval $(call build_arch,${arch})) \ ) - diff --git a/vendor/github.com/bytedance/sonic/README.md b/vendor/github.com/bytedance/sonic/README.md index cdb32a57..f94b3491 100644 --- a/vendor/github.com/bytedance/sonic/README.md +++ b/vendor/github.com/bytedance/sonic/README.md @@ -5,8 +5,8 @@ English | [中文](README_ZH_CN.md) A blazingly fast JSON serializing & deserializing library, accelerated by JIT (just-in-time compiling) and SIMD (single-instruction-multiple-data). ## Requirement -- Go 1.15~1.20 -- Linux/MacOS/Windows +- Go 1.16~1.20 +- Linux / MacOS / Windows(need go1.17 above) - Amd64 ARCH ## Features @@ -76,6 +76,10 @@ BenchmarkSetOne_Jsoniter-16 79475 ns/op 163.8 BenchmarkSetOne_Parallel_Sonic-16 850.9 ns/op 15305.31 MB/s 1584 B/op 17 allocs/op BenchmarkSetOne_Parallel_Sjson-16 18194 ns/op 715.77 MB/s 52247 B/op 9 allocs/op BenchmarkSetOne_Parallel_Jsoniter-16 33560 ns/op 388.05 MB/s 45892 B/op 964 allocs/op +BenchmarkLoadNode/LoadAll()-16 11384 ns/op 1143.93 MB/s 6307 B/op 25 allocs/op +BenchmarkLoadNode_Parallel/LoadAll()-16 5493 ns/op 2370.68 MB/s 7145 B/op 25 allocs/op +BenchmarkLoadNode/Interface()-16 17722 ns/op 734.85 MB/s 13323 B/op 88 allocs/op +BenchmarkLoadNode_Parallel/Interface()-16 10330 ns/op 1260.70 MB/s 15178 B/op 88 allocs/op ``` - [Small](https://github.com/bytedance/sonic/blob/main/testdata/small.go) (400B, 11 keys, 3 layers) ![small benchmarks](./docs/imgs/bench-small.png) @@ -282,6 +286,42 @@ println(string(buf) == string(exp)) // true - iteration: `Values()`, `Properties()`, `ForEach()`, `SortKeys()` - modification: `Set()`, `SetByIndex()`, `Add()` +### Ast.Visitor +Sonic provides an advanced API for fully parsing JSON into non-standard types (neither `struct` not `map[string]interface{}`) without using any intermediate representation (`ast.Node` or `interface{}`). For example, you might have the following types which are like `interface{}` but actually not `interface{}`: +```go +type UserNode interface {} + +// the following types implement the UserNode interface. +type ( + UserNull struct{} + UserBool struct{ Value bool } + UserInt64 struct{ Value int64 } + UserFloat64 struct{ Value float64 } + UserString struct{ Value string } + UserObject struct{ Value map[string]UserNode } + UserArray struct{ Value []UserNode } +) +``` +Sonic provides the following API to return **the preorder traversal of a JSON AST**. The `ast.Visitor` is a SAX style interface which is used in some C++ JSON library. You should implement `ast.Visitor` by yourself and pass it to `ast.Preorder()` method. In your visitor you can make your custom types to represent JSON values. There may be an O(n) space container (such as stack) in your visitor to record the object / array hierarchy. +```go +func Preorder(str string, visitor Visitor, opts *VisitorOptions) error + +type Visitor interface { + OnNull() error + OnBool(v bool) error + OnString(v string) error + OnInt64(v int64, n json.Number) error + OnFloat64(v float64, n json.Number) error + OnObjectBegin(capacity int) error + OnObjectKey(key string) error + OnObjectEnd() error + OnArrayBegin(capacity int) error + OnArrayEnd() error +} +``` + +See [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go) for detailed usage. We also implement a demo visitor for `UserNode` in [ast/visitor_test.go](https://github.com/bytedance/sonic/blob/main/ast/visitor_test.go). + ## Compatibility Sonic **DOES NOT** ensure to support all environments, due to the difficulty of developing high-performance codes. For developers who use sonic to build their applications in different environments, we have the following suggestions: @@ -311,7 +351,7 @@ func init() { err := sonic.Pretouch(reflect.TypeOf(v)) // with more CompileOption... - err := sonic.Pretouch(reflect.TypeOf(v), + err := sonic.Pretouch(reflect.TypeOf(v), // If the type is too deep nesting (nesting depth > option.DefaultMaxInlineDepth), // you can set compile recursive loops in Pretouch for better stability in JIT. option.WithCompileRecursiveDepth(loop), @@ -358,5 +398,14 @@ Why? Because `ast.Node` stores its children using `array`: **CAUTION:** `ast.Node` **DOESN'T** ensure concurrent security directly, due to its **lazy-load** design. However, you can call `Node.Load()`/`Node.LoadAll()` to achieve that, which may bring performance reduction while it still works faster than converting to `map` or `interface{}` +### Ast.Node or Ast.Visitor? +For generic data, `ast.Node` should be enough for your needs in most cases. + +However, `ast.Node` is designed for partially processing JSON string. It has some special designs such as lazy-load which might not be suitable for directly parsing the whole JSON string like `Unmarshal()`. Although `ast.Node` is better then `map` or `interface{}`, it's also a kind of intermediate representation after all if your final types are customized and you have to convert the above types to your custom types after parsing. + +For better performance, in previous case the `ast.Visitor` will be the better choice. It performs JSON decoding like `Unmarshal()` and you can directly use your final types to represents a JSON AST without any intermediate representations. + +But `ast.Visitor` is not a very handy API. You might need to write a lot of code to implement your visitor and carefully maintain the tree hierarchy during decoding. Please read the comments in [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go) carefully if you decide to use this API. + ## Community Sonic is a subproject of [CloudWeGo](https://www.cloudwego.io/). We are committed to building a cloud native ecosystem. diff --git a/vendor/github.com/bytedance/sonic/README_ZH_CN.md b/vendor/github.com/bytedance/sonic/README_ZH_CN.md index 43fd1d67..dc5cfb5d 100644 --- a/vendor/github.com/bytedance/sonic/README_ZH_CN.md +++ b/vendor/github.com/bytedance/sonic/README_ZH_CN.md @@ -6,8 +6,8 @@ ## 依赖 -- Go 1.15~1.20 -- Linux/MacOS/Windows +- Go 1.16~1.20 +- Linux / MacOS / Windows(需要 Go1.17 以上) - Amd64 架构 ## 特色 @@ -79,6 +79,10 @@ BenchmarkSetOne_Jsoniter-16 79475 ns/op 163.8 BenchmarkSetOne_Parallel_Sonic-16 850.9 ns/op 15305.31 MB/s 1584 B/op 17 allocs/op BenchmarkSetOne_Parallel_Sjson-16 18194 ns/op 715.77 MB/s 52247 B/op 9 allocs/op BenchmarkSetOne_Parallel_Jsoniter-16 33560 ns/op 388.05 MB/s 45892 B/op 964 allocs/op +BenchmarkLoadNode/LoadAll()-16 11384 ns/op 1143.93 MB/s 6307 B/op 25 allocs/op +BenchmarkLoadNode_Parallel/LoadAll()-16 5493 ns/op 2370.68 MB/s 7145 B/op 25 allocs/op +BenchmarkLoadNode/Interface()-16 17722 ns/op 734.85 MB/s 13323 B/op 88 allocs/op +BenchmarkLoadNode_Parallel/Interface()-16 10330 ns/op 1260.70 MB/s 15178 B/op 88 allocs/op ``` - [小型](https://github.com/bytedance/sonic/blob/main/testdata/small.go) (400B, 11 个键, 3 层) ![small benchmarks](./docs/imgs/bench-small.png) @@ -298,6 +302,41 @@ println(string(buf) == string(exp)) // true - 迭代: `Values()`, `Properties()`, `ForEach()`, `SortKeys()` - 修改: `Set()`, `SetByIndex()`, `Add()` +### `Ast.Visitor` +Sonic 提供了一个高级的 API 用于直接全量解析 JSON 到非标准容器里 (既不是 `struct` 也不是 `map[string]interface{}`) 且不需要借助任何中间表示 (`ast.Node` 或 `interface{}`)。举个例子,你可能定义了下述的类型,它们看起来像 `interface{}`,但实际上并不是: +```go +type UserNode interface {} + +// the following types implement the UserNode interface. +type ( + UserNull struct{} + UserBool struct{ Value bool } + UserInt64 struct{ Value int64 } + UserFloat64 struct{ Value float64 } + UserString struct{ Value string } + UserObject struct{ Value map[string]UserNode } + UserArray struct{ Value []UserNode } +) +``` +Sonic 提供了下述的 API 来返回 **“对 JSON AST 的前序遍历”**。`ast.Visitor` 是一个 SAX 风格的接口,这在某些 C++ 的 JSON 解析库中被使用到。你需要自己实现一个 `ast.Visitor`,将它传递给 `ast.Preorder()` 方法。在你的实现中你可以使用自定义的类型来表示 JSON 的值。在你的 `ast.Visitor` 中,可能需要有一个 O(n) 空间复杂度的容器(比如说栈)来记录 object / array 的层级。 +```go +func Preorder(str string, visitor Visitor, opts *VisitorOptions) error + +type Visitor interface { + OnNull() error + OnBool(v bool) error + OnString(v string) error + OnInt64(v int64, n json.Number) error + OnFloat64(v float64, n json.Number) error + OnObjectBegin(capacity int) error + OnObjectKey(key string) error + OnObjectEnd() error + OnArrayBegin(capacity int) error + OnArrayEnd() error +} +``` +详细用法参看 [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go),我们还为 `UserNode` 实现了一个示例 `ast.Visitor`,你可以在 [ast/visitor_test.go](https://github.com/bytedance/sonic/blob/main/ast/visitor_test.go) 中找到它。 + ## 兼容性 由于开发高性能代码的困难性, Sonic **不**保证对所有环境的支持。对于在不同环境中使用 Sonic 构建应用程序的开发者,我们有以下建议: @@ -327,7 +366,7 @@ func init() { err := sonic.Pretouch(reflect.TypeOf(v)) // with more CompileOption... - err := sonic.Pretouch(reflect.TypeOf(v), + err := sonic.Pretouch(reflect.TypeOf(v), // If the type is too deep nesting (nesting depth > option.DefaultMaxInlineDepth), // you can set compile recursive loops in Pretouch for better stability in JIT. option.WithCompileRecursiveDepth(loop), @@ -377,6 +416,15 @@ go someFunc(user) **注意**:由于 `ast.Node` 的惰性加载设计,其**不能**直接保证并发安全性,但你可以调用 `Node.Load()` / `Node.LoadAll()` 来实现并发安全。尽管可能会带来性能损失,但仍比转换成 `map` 或 `interface{}` 更为高效。 +### 使用 `ast.Node` 还是 `ast.Visitor`? +对于泛型数据的解析,`ast.Node` 在大多数场景上应该能够满足你的需求。 + +然而,`ast.Node` 是一种针对部分解析 JSON 而设计的泛型容器,它包含一些特殊设计,比如惰性加载,如果你希望像 `Unmarshal()` 那样直接解析整个 JSON,这些设计可能并不合适。尽管 `ast.Node` 相较于 `map` 或 `interface{}` 来说是更好的一种泛型容器,但它毕竟也是一种中间表示,如果你的最终类型是自定义的,你还得在解析完成后将上述类型转化成你自定义的类型。 + +在上述场景中,如果想要有更极致的性能,`ast.Visitor` 会是更好的选择。它采用和 `Unmarshal()` 类似的形式解析 JSON,并且你可以直接使用你的最终类型去表示 JSON AST,而不需要经过额外的任何中间表示。 + +但是,`ast.Visitor` 并不是一个很易用的 API。你可能需要写大量的代码去实现自己的 `ast.Visitor`,并且需要在解析过程中仔细维护树的层级。如果你决定要使用这个 API,请先仔细阅读 [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go) 中的注释。 + ## 社区 Sonic 是 [CloudWeGo](https://www.cloudwego.io/) 下的一个子项目。我们致力于构建云原生生态系统。 diff --git a/vendor/github.com/bytedance/sonic/api.go b/vendor/github.com/bytedance/sonic/api.go index 809d5ec7..fa738f21 100644 --- a/vendor/github.com/bytedance/sonic/api.go +++ b/vendor/github.com/bytedance/sonic/api.go @@ -184,3 +184,8 @@ func Get(src []byte, path ...interface{}) (ast.Node, error) { func GetFromString(src string, path ...interface{}) (ast.Node, error) { return ast.NewSearcher(src).GetByPath(path...) } + +// Valid reports whether data is a valid JSON encoding. +func Valid(data []byte) bool { + return ConfigDefault.Valid(data) +} diff --git a/vendor/github.com/bytedance/sonic/ast/api_amd64.go b/vendor/github.com/bytedance/sonic/ast/api_amd64.go index 7f2371c7..a0f26844 100644 --- a/vendor/github.com/bytedance/sonic/ast/api_amd64.go +++ b/vendor/github.com/bytedance/sonic/ast/api_amd64.go @@ -1,4 +1,4 @@ -// +build amd64,go1.15,!go1.21 +// +build amd64,go1.16,!go1.21 /* * Copyright 2022 ByteDance Inc. @@ -87,7 +87,13 @@ func encodeBase64(src []byte) string { func (self *Parser) decodeValue() (val types.JsonState) { sv := (*rt.GoString)(unsafe.Pointer(&self.s)) - self.p = native.Value(sv.Ptr, sv.Len, self.p, &val, 0) + flag := types.F_USE_NUMBER + if self.dbuf != nil { + flag = 0 + val.Dbuf = self.dbuf + val.Dcap = types.MaxDigitNums + } + self.p = native.Value(sv.Ptr, sv.Len, self.p, &val, uint64(flag)) return } diff --git a/vendor/github.com/bytedance/sonic/ast/api_compat.go b/vendor/github.com/bytedance/sonic/ast/api_compat.go index b18b5ae8..6a48786e 100644 --- a/vendor/github.com/bytedance/sonic/ast/api_compat.go +++ b/vendor/github.com/bytedance/sonic/ast/api_compat.go @@ -1,4 +1,4 @@ -// +build !amd64 go1.21 +// +build !amd64 !go1.16 go1.21 /* * Copyright 2022 ByteDance Inc. @@ -27,6 +27,10 @@ import ( `github.com/bytedance/sonic/internal/rt` ) +func init() { + println("WARNING: sonic only supports Go1.16~1.20 && CPU amd64, but your environment is not suitable") +} + func quote(buf *[]byte, val string) { quoteString(buf, val) } @@ -49,7 +53,7 @@ func encodeBase64(src []byte) string { } func (self *Parser) decodeValue() (val types.JsonState) { - e, v := decodeValue(self.s, self.p) + e, v := decodeValue(self.s, self.p, self.dbuf == nil) if e < 0 { return v } diff --git a/vendor/github.com/bytedance/sonic/ast/buffer.go b/vendor/github.com/bytedance/sonic/ast/buffer.go new file mode 100644 index 00000000..93f4ff47 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/buffer.go @@ -0,0 +1,329 @@ +/** + * Copyright 2023 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +import ( + `sort` + `unsafe` +) + +type nodeChunk [_DEFAULT_NODE_CAP]Node + +type linkedNodes struct { + head nodeChunk + tail []*nodeChunk + size int +} + +func (self *linkedNodes) Cap() int { + if self == nil { + return 0 + } + return (len(self.tail)+1)*_DEFAULT_NODE_CAP +} + +func (self *linkedNodes) Len() int { + if self == nil { + return 0 + } + return self.size +} + +func (self *linkedNodes) At(i int) (*Node) { + if self == nil { + return nil + } + if i >= 0 && i= _DEFAULT_NODE_CAP && i= 0 { + c += 1 + c>>_APPEND_GROW_SHIFT + tmp := make([]*nodeChunk, a + 1, c) + copy(tmp, self.tail) + self.tail = tmp + } else if a >= len(self.tail) { + self.tail = self.tail[:a+1] + } + + var n = &self.tail[a] + if *n == nil { + *n = new(nodeChunk) + } + (*n)[b] = v + self.size++ +} + +func (self *linkedNodes) ToSlice(con []Node) { + if len(con) < self.size { + return + } + i := (self.size-1) + a, b := i/_DEFAULT_NODE_CAP-1, i%_DEFAULT_NODE_CAP + if a < 0 { + copy(con, self.head[:b+1]) + return + } else { + copy(con, self.head[:]) + con = con[_DEFAULT_NODE_CAP:] + } + + for i:=0; i>_APPEND_GROW_SHIFT + self.tail = make([]*nodeChunk, a+1, c) + } + self.tail = self.tail[:a+1] + + for i:=0; i= 0 && i < _DEFAULT_NODE_CAP && i= _DEFAULT_NODE_CAP && i= 0 { + c += 1 + c>>_APPEND_GROW_SHIFT + tmp := make([]*pairChunk, a + 1, c) + copy(tmp, self.tail) + self.tail = tmp + } else if a >= len(self.tail) { + self.tail = self.tail[:a+1] + } + + var n = &self.tail[a] + if *n == nil { + *n = new(pairChunk) + } + (*n)[b] = v + self.size++ +} + +// linear search +func (self *linkedPairs) Get(key string) (*Pair, int) { + for i:=0; i>_APPEND_GROW_SHIFT + self.tail = make([]*pairChunk, a+1, c) + } + self.tail = self.tail[:a+1] + + for i:=0; i len(b) { + l = len(b) + } + for i := d; i < l; i++ { + if a[i] == b[i] { + continue + } + return a[i] < b[i] + } + return len(a) < len(b) +} + +type parseObjectStack struct { + parser Parser + v linkedPairs +} + +type parseArrayStack struct { + parser Parser + v linkedNodes +} + +func newLazyArray(p *Parser) Node { + s := new(parseArrayStack) + s.parser = *p + return Node{ + t: _V_ARRAY_LAZY, + p: unsafe.Pointer(s), + } +} + +func newLazyObject(p *Parser) Node { + s := new(parseObjectStack) + s.parser = *p + return Node{ + t: _V_OBJECT_LAZY, + p: unsafe.Pointer(s), + } +} + +func (self *Node) getParserAndArrayStack() (*Parser, *parseArrayStack) { + stack := (*parseArrayStack)(self.p) + return &stack.parser, stack +} + +func (self *Node) getParserAndObjectStack() (*Parser, *parseObjectStack) { + stack := (*parseObjectStack)(self.p) + return &stack.parser, stack +} + diff --git a/vendor/github.com/bytedance/sonic/ast/decode.go b/vendor/github.com/bytedance/sonic/ast/decode.go index 6a5f6fea..3e08bfcb 100644 --- a/vendor/github.com/bytedance/sonic/ast/decode.go +++ b/vendor/github.com/bytedance/sonic/ast/decode.go @@ -220,7 +220,7 @@ func decodeFloat64(src string, pos int) (ret int, v float64, err error) { return ret, v, nil } -func decodeValue(src string, pos int) (ret int, v types.JsonState) { +func decodeValue(src string, pos int, skipnum bool) (ret int, v types.JsonState) { pos = skipBlank(src, pos) if pos < 0 { return pos, types.JsonState{Vt: types.ValueType(pos)} @@ -256,20 +256,30 @@ func decodeValue(src string, pos int) (ret int, v types.JsonState) { } return ret, types.JsonState{Vt: types.V_FALSE} case '-', '+', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': - var iv int64 - ret, iv, _ = decodeInt64(src, pos) - if ret >= 0 { - return ret, types.JsonState{Vt: types.V_INTEGER, Iv: iv, Ep: pos} - } else if ret != -int(types.ERR_INVALID_NUMBER_FMT) { - return ret, types.JsonState{Vt: types.ValueType(ret)} - } - var fv float64 - ret, fv, _ = decodeFloat64(src, pos) - if ret >= 0 { - return ret, types.JsonState{Vt: types.V_DOUBLE, Dv: fv, Ep: pos} + if skipnum { + ret = skipNumber(src, pos) + if ret >= 0 { + return ret, types.JsonState{Vt: types.V_DOUBLE, Iv: 0, Ep: pos} + } else { + return ret, types.JsonState{Vt: types.ValueType(ret)} + } } else { - return ret, types.JsonState{Vt: types.ValueType(ret)} + var iv int64 + ret, iv, _ = decodeInt64(src, pos) + if ret >= 0 { + return ret, types.JsonState{Vt: types.V_INTEGER, Iv: iv, Ep: pos} + } else if ret != -int(types.ERR_INVALID_NUMBER_FMT) { + return ret, types.JsonState{Vt: types.ValueType(ret)} + } + var fv float64 + ret, fv, _ = decodeFloat64(src, pos) + if ret >= 0 { + return ret, types.JsonState{Vt: types.V_DOUBLE, Dv: fv, Ep: pos} + } else { + return ret, types.JsonState{Vt: types.ValueType(ret)} + } } + default: return -int(types.ERR_INVALID_CHAR), types.JsonState{Vt:-types.ValueType(types.ERR_INVALID_CHAR)} } diff --git a/vendor/github.com/bytedance/sonic/ast/encode.go b/vendor/github.com/bytedance/sonic/ast/encode.go index 38d680ca..263ae5a9 100644 --- a/vendor/github.com/bytedance/sonic/ast/encode.go +++ b/vendor/github.com/bytedance/sonic/ast/encode.go @@ -19,8 +19,6 @@ package ast import ( `sync` `unicode/utf8` - - `github.com/bytedance/sonic/internal/rt` ) const ( @@ -165,18 +163,18 @@ func (self *Node) encodeFalse(buf *[]byte) error { } func (self *Node) encodeNumber(buf *[]byte) error { - str := rt.StrFrom(self.p, self.v) + str := self.toString() *buf = append(*buf, str...) return nil } func (self *Node) encodeString(buf *[]byte) error { - if self.v == 0 { + if self.l == 0 { *buf = append(*buf, '"', '"') return nil } - quote(buf, rt.StrFrom(self.p, self.v)) + quote(buf, self.toString()) return nil } @@ -195,16 +193,28 @@ func (self *Node) encodeArray(buf *[]byte) error { *buf = append(*buf, '[') - var p = (*Node)(self.p) - err := p.encode(buf) - if err != nil { - return err + var s = (*linkedNodes)(self.p) + var started bool + if nb > 0 { + n := s.At(0) + if n.Exists() { + if err := n.encode(buf); err != nil { + return err + } + started = true + } } + for i := 1; i < nb; i++ { - *buf = append(*buf, ',') - p = p.unsafe_next() - err := p.encode(buf) - if err != nil { + n := s.At(i) + if !n.Exists() { + continue + } + if started { + *buf = append(*buf, ',') + } + started = true + if err := n.encode(buf); err != nil { return err } } @@ -240,16 +250,28 @@ func (self *Node) encodeObject(buf *[]byte) error { *buf = append(*buf, '{') - var p = (*Pair)(self.p) - err := p.encode(buf) - if err != nil { - return err + var s = (*linkedPairs)(self.p) + var started bool + if nb > 0 { + n := s.At(0) + if n.Value.Exists() { + if err := n.encode(buf); err != nil { + return err + } + started = true + } } + for i := 1; i < nb; i++ { - *buf = append(*buf, ',') - p = p.unsafe_next() - err := p.encode(buf) - if err != nil { + n := s.At(i) + if !n.Value.Exists() { + continue + } + if started { + *buf = append(*buf, ',') + } + started = true + if err := n.encode(buf); err != nil { return err } } diff --git a/vendor/github.com/bytedance/sonic/ast/error.go b/vendor/github.com/bytedance/sonic/ast/error.go index f4c441ae..00a04468 100644 --- a/vendor/github.com/bytedance/sonic/ast/error.go +++ b/vendor/github.com/bytedance/sonic/ast/error.go @@ -8,23 +8,55 @@ import ( `github.com/bytedance/sonic/internal/native/types` ) -func (self *Parser) syntaxError(err types.ParsingError) SyntaxError { - return SyntaxError{ - Pos : self.p, - Src : self.s, - Code: err, + +func newError(err types.ParsingError, msg string) *Node { + return &Node{ + t: V_ERROR, + l: uint(err), + p: unsafe.Pointer(&msg), } } +// Error returns error message if the node is invalid +func (self Node) Error() string { + if self.t != V_ERROR { + return "" + } else { + return *(*string)(self.p) + } +} + func newSyntaxError(err SyntaxError) *Node { msg := err.Description() return &Node{ t: V_ERROR, - v: int64(err.Code), + l: uint(err.Code), p: unsafe.Pointer(&msg), } } +func (self *Parser) syntaxError(err types.ParsingError) SyntaxError { + return SyntaxError{ + Pos : self.p, + Src : self.s, + Code: err, + } +} + +func unwrapError(err error) *Node { + if se, ok := err.(*Node); ok { + return se + }else if sse, ok := err.(Node); ok { + return &sse + } else { + msg := err.Error() + return &Node{ + t: V_ERROR, + p: unsafe.Pointer(&msg), + } + } +} + type SyntaxError struct { Pos int Src string diff --git a/vendor/github.com/bytedance/sonic/ast/iterator.go b/vendor/github.com/bytedance/sonic/ast/iterator.go index b193a30a..338992a7 100644 --- a/vendor/github.com/bytedance/sonic/ast/iterator.go +++ b/vendor/github.com/bytedance/sonic/ast/iterator.go @@ -132,22 +132,22 @@ type Scanner func(path Sequence, node *Node) bool func (self *Node) ForEach(sc Scanner) error { switch self.itype() { case types.V_ARRAY: - ns, err := self.UnsafeArray() + ns, err := self.unsafeArray() if err != nil { return err } - for i := range ns { - if !sc(Sequence{i, nil}, &ns[i]) { + for i:=0; i> _CAP_BITS), nil - } else if self.t == _V_NONE || self.t == types.V_NULL { - return 0, nil - } else { - return 0, ErrUnsupportType + switch self.t { + case types.V_ARRAY: return (*linkedNodes)(self.p).Cap(), nil + case types.V_OBJECT: return (*linkedPairs)(self.p).Cap(), nil + case _V_ARRAY_LAZY: return (*parseArrayStack)(self.p).v.Cap(), nil + case _V_OBJECT_LAZY: return (*parseObjectStack)(self.p).v.Cap(), nil + case _V_NONE, types.V_NULL: return 0, nil + default: return 0, ErrUnsupportType } } -func (self Node) cap() int { - return int(self.v >> _CAP_BITS) -} - // Set sets the node of given key under self, and reports if the key has existed. // // If self is V_NONE or V_NULL, it becomes V_OBJECT and sets the node at the key. @@ -561,20 +548,15 @@ func (self *Node) Set(key string, node Node) (bool, error) { } p := self.Get(key) + if !p.Exists() { - l := self.len() - c := self.cap() - if l == c { - // TODO: maybe change append size in future - c += _DEFAULT_NODE_CAP - mem := unsafe_NewArray(_PAIR_TYPE, c) - memmove(mem, self.p, _PAIR_SIZE * uintptr(l)) - self.p = mem + // self must be fully-loaded here + if self.len() == 0 { + *self = newObject(new(linkedPairs)) } - v := self.pairAt(l) - v.Key = key - v.Value = node - self.setCapAndLen(c, l+1) + s := (*linkedPairs)(self.p) + s.Add(Pair{key, node}) + self.l++ return false, nil } else if err := p.Check(); err != nil { @@ -591,6 +573,7 @@ func (self *Node) SetAny(key string, val interface{}) (bool, error) { } // Unset remove the node of given key under object parent, and reports if the key has existed. +// WARN: After conducting `UnsetXX()`, the node's length WON'T change func (self *Node) Unset(key string) (bool, error) { self.must(types.V_OBJECT, "an object") p, i := self.skipKey(key) @@ -629,6 +612,7 @@ func (self *Node) SetAnyByIndex(index int, val interface{}) (bool, error) { } // UnsetByIndex remove the node of given index +// WARN: After conducting `UnsetXX()`, the node's length WON'T change func (self *Node) UnsetByIndex(index int) (bool, error) { var p *Node it := self.itype() @@ -665,26 +649,17 @@ func (self *Node) Add(node Node) error { return nil } - if err := self.should(types.V_ARRAY, "an array"); err != nil { - return err - } - if err := self.skipAllIndex(); err != nil { + s, err := self.unsafeArray() + if err != nil { return err } - var p rt.GoSlice - p.Cap = self.cap() - p.Len = self.len() - p.Ptr = self.p - - s := *(*[]Node)(unsafe.Pointer(&p)) - s = append(s, node) - - self.p = unsafe.Pointer(&s[0]) - self.setCapAndLen(cap(s), len(s)) + s.Add(node) + self.l++ return nil } + // SetAny wraps val with V_ANY node, and Add() the node. func (self *Node) AddAny(val interface{}) error { return self.Add(NewAny(val)) @@ -730,6 +705,8 @@ func (self *Node) Get(key string) *Node { // Index indexies node at given idx, // node type CAN be either V_OBJECT or V_ARRAY +// WARN: After conducting `UnsetXX()`, the node's length WON'T change, +// thus its children's indexing WON'T change too func (self *Node) Index(idx int) *Node { if err := self.checkRaw(); err != nil { return unwrapError(err) @@ -753,6 +730,8 @@ func (self *Node) Index(idx int) *Node { // IndexPair indexies pair at given idx, // node type MUST be either V_OBJECT +// WARN: After conducting `UnsetXX()`, the node's length WON'T change, +// thus its children's indexing WON'T change too func (self *Node) IndexPair(idx int) *Pair { if err := self.should(types.V_OBJECT, "an object"); err != nil { return nil @@ -837,6 +816,8 @@ func (self *Node) MapUseNode() (map[string]Node, error) { // MapUnsafe exports the underlying pointer to its children map // WARN: don't use it unless you know what you are doing +// +// Deprecated: this API now returns copied nodes instead of directly reference, func (self *Node) UnsafeMap() ([]Pair, error) { if err := self.should(types.V_OBJECT, "an object"); err != nil { return nil, err @@ -844,18 +825,30 @@ func (self *Node) UnsafeMap() ([]Pair, error) { if err := self.skipAllKey(); err != nil { return nil, err } - s := rt.Ptr2SlicePtr(self.p, int(self.len()), self.cap()) - return *(*[]Pair)(s), nil + return self.toGenericObjectUsePair() +} + +func (self *Node) unsafeMap() (*linkedPairs, error) { + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return nil, err + } + if err := self.skipAllKey(); err != nil { + return nil, err + } + if self.p == nil { + *self = newObject(new(linkedPairs)) + } + return (*linkedPairs)(self.p), nil } // SortKeys sorts children of a V_OBJECT node in ascending key-order. // If recurse is true, it recursively sorts children's children as long as a V_OBJECT node is found. func (self *Node) SortKeys(recurse bool) (err error) { - ps, err := self.UnsafeMap() + ps, err := self.unsafeMap() if err != nil { return err } - PairSlice(ps).Sort() + ps.Sort() if recurse { var sc Scanner sc = func(path Sequence, node *Node) bool { @@ -936,6 +929,9 @@ func (self *Node) ArrayUseNode() ([]Node, error) { // ArrayUnsafe exports the underlying pointer to its children array // WARN: don't use it unless you know what you are doing +// +// Deprecated: this API now returns copied nodes instead of directly reference, +// which has no difference with ArrayUseNode func (self *Node) UnsafeArray() ([]Node, error) { if err := self.should(types.V_ARRAY, "an array"); err != nil { return nil, err @@ -943,8 +939,20 @@ func (self *Node) UnsafeArray() ([]Node, error) { if err := self.skipAllIndex(); err != nil { return nil, err } - s := rt.Ptr2SlicePtr(self.p, self.len(), self.cap()) - return *(*[]Node)(s), nil + return self.toGenericArrayUseNode() +} + +func (self *Node) unsafeArray() (*linkedNodes, error) { + if err := self.should(types.V_ARRAY, "an array"); err != nil { + return nil, err + } + if err := self.skipAllIndex(); err != nil { + return nil, err + } + if self.p == nil { + *self = newArray(new(linkedNodes)) + } + return (*linkedNodes)(self.p), nil } // Interface loads all children under all pathes from this node, @@ -961,9 +969,9 @@ func (self *Node) Interface() (interface{}, error) { case types.V_FALSE : return false, nil case types.V_ARRAY : return self.toGenericArray() case types.V_OBJECT : return self.toGenericObject() - case types.V_STRING : return rt.StrFrom(self.p, self.v), nil + case types.V_STRING : return self.toString(), nil case _V_NUMBER : - v, err := numberToFloat64(self) + v, err := self.toFloat64() if err != nil { return nil, err } @@ -1005,8 +1013,8 @@ func (self *Node) InterfaceUseNumber() (interface{}, error) { case types.V_FALSE : return false, nil case types.V_ARRAY : return self.toGenericArrayUseNumber() case types.V_OBJECT : return self.toGenericObjectUseNumber() - case types.V_STRING : return rt.StrFrom(self.p, self.v), nil - case _V_NUMBER : return toNumber(self), nil + case types.V_STRING : return self.toString(), nil + case _V_NUMBER : return self.toNumber(), nil case _V_ARRAY_LAZY : if err := self.loadAllIndex(); err != nil { return nil, err @@ -1114,13 +1122,14 @@ var ( _PAIR_TYPE = rt.UnpackEface(Pair{}).Type ) -func (self *Node) setCapAndLen(cap int, len int) { - if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY { - self.v = int64(len&_LEN_MASK | cap<<_CAP_BITS) - } else { - panic("value does not have a length") - } -} +// func (self *Node) setCapAndLen(cap int, len int) { +// if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY { +// self.l = uint32(len) +// self.c = uint32(cap) +// } else { +// panic("value does not have a length") +// } +// } func (self *Node) unsafe_next() *Node { return (*Node)(unsafe.Pointer(uintptr(unsafe.Pointer(self)) + _NODE_SIZE)) @@ -1153,37 +1162,25 @@ func (self *Node) should(t types.ValueType, s string) error { } func (self *Node) nodeAt(i int) *Node { - var p = self.p + var p *linkedNodes if self.isLazy() { _, stack := self.getParserAndArrayStack() - p = *(*unsafe.Pointer)(unsafe.Pointer(&stack.v)) + p = &stack.v + } else { + p = (*linkedNodes)(self.p) } - return (*Node)(unsafe.Pointer(uintptr(p) + uintptr(i)*_NODE_SIZE)) + return p.At(i) } func (self *Node) pairAt(i int) *Pair { - var p = self.p + var p *linkedPairs if self.isLazy() { _, stack := self.getParserAndObjectStack() - p = *(*unsafe.Pointer)(unsafe.Pointer(&stack.v)) + p = &stack.v + } else { + p = (*linkedPairs)(self.p) } - return (*Pair)(unsafe.Pointer(uintptr(p) + uintptr(i)*_PAIR_SIZE)) -} - -func (self *Node) getParserAndArrayStack() (*Parser, *parseArrayStack) { - stack := (*parseArrayStack)(self.p) - ret := (*rt.GoSlice)(unsafe.Pointer(&stack.v)) - ret.Len = self.len() - ret.Cap = self.cap() - return &stack.parser, stack -} - -func (self *Node) getParserAndObjectStack() (*Parser, *parseObjectStack) { - stack := (*parseObjectStack)(self.p) - ret := (*rt.GoSlice)(unsafe.Pointer(&stack.v)) - ret.Len = self.len() - ret.Cap = self.cap() - return &stack.parser, stack + return p.At(i) } func (self *Node) skipAllIndex() error { @@ -1194,7 +1191,7 @@ func (self *Node) skipAllIndex() error { parser, stack := self.getParserAndArrayStack() parser.skipValue = true parser.noLazy = true - *self, err = parser.decodeArray(stack.v) + *self, err = parser.decodeArray(&stack.v) if err != 0 { return parser.ExportError(err) } @@ -1209,7 +1206,7 @@ func (self *Node) skipAllKey() error { parser, stack := self.getParserAndObjectStack() parser.skipValue = true parser.noLazy = true - *self, err = parser.decodeObject(stack.v) + *self, err = parser.decodeObject(&stack.v) if err != 0 { return parser.ExportError(err) } @@ -1223,21 +1220,16 @@ func (self *Node) skipKey(key string) (*Node, int) { if nb > 0 { /* linear search */ var p *Pair + var i int if lazy { s := (*parseObjectStack)(self.p) - p = &s.v[0] + p, i = s.v.Get(key) } else { - p = (*Pair)(self.p) + p, i = (*linkedPairs)(self.p).Get(key) } - if p.Key == key { - return &p.Value, 0 - } - for i := 1; i < nb; i++ { - p = p.unsafe_next() - if p.Key == key { - return &p.Value, i - } + if p != nil { + return &p.Value, i } } @@ -1311,7 +1303,7 @@ func (self *Node) loadAllIndex() error { var err types.ParsingError parser, stack := self.getParserAndArrayStack() parser.noLazy = true - *self, err = parser.decodeArray(stack.v) + *self, err = parser.decodeArray(&stack.v) if err != 0 { return parser.ExportError(err) } @@ -1325,7 +1317,7 @@ func (self *Node) loadAllKey() error { var err types.ParsingError parser, stack := self.getParserAndObjectStack() parser.noLazy = true - *self, err = parser.decodeObject(stack.v) + *self, err = parser.decodeObject(&stack.v) if err != 0 { return parser.ExportError(err) } @@ -1333,58 +1325,36 @@ func (self *Node) loadAllKey() error { } func (self *Node) removeNode(i int) { - nb := self.len() - 1 node := self.nodeAt(i) - if i == nb { - self.setCapAndLen(self.cap(), nb) - *node = Node{} + if node == nil { return } - - from := self.nodeAt(i + 1) - memmove(unsafe.Pointer(node), unsafe.Pointer(from), _NODE_SIZE * uintptr(nb - i)) - - last := self.nodeAt(nb) - *last = Node{} - - self.setCapAndLen(self.cap(), nb) + *node = Node{} + // NOTICE: for consistency with linkedNodes, we DOSEN'T reduce size here + // self.l-- } func (self *Node) removePair(i int) { - nb := self.len() - 1 - node := self.pairAt(i) - if i == nb { - self.setCapAndLen(self.cap(), nb) - *node = Pair{} + last := self.pairAt(i) + if last == nil { return } - - from := self.pairAt(i + 1) - memmove(unsafe.Pointer(node), unsafe.Pointer(from), _PAIR_SIZE * uintptr(nb - i)) - - last := self.pairAt(nb) *last = Pair{} - - self.setCapAndLen(self.cap(), nb) + // NOTICE: for consistency with linkedNodes, we DOSEN'T reduce size here + // self.l-- } func (self *Node) toGenericArray() ([]interface{}, error) { nb := self.len() - ret := make([]interface{}, nb) if nb == 0 { - return ret, nil + return []interface{}{}, nil } - + ret := make([]interface{}, nb) + /* convert each item */ - var p = (*Node)(self.p) - x, err := p.Interface() - if err != nil { - return nil, err - } - ret[0] = x - - for i := 1; i < nb; i++ { - p = p.unsafe_next() + var s = (*linkedNodes)(self.p) + for i := 0; i < nb; i++ { + p := s.At(i) x, err := p.Interface() if err != nil { return nil, err @@ -1398,21 +1368,15 @@ func (self *Node) toGenericArray() ([]interface{}, error) { func (self *Node) toGenericArrayUseNumber() ([]interface{}, error) { nb := self.len() - ret := make([]interface{}, nb) if nb == 0 { - return ret, nil + return []interface{}{}, nil } + ret := make([]interface{}, nb) /* convert each item */ - var p = (*Node)(self.p) - x, err := p.InterfaceUseNumber() - if err != nil { - return nil, err - } - ret[0] = x - - for i := 1; i < nb; i++ { - p = p.unsafe_next() + var s = (*linkedNodes)(self.p) + for i := 0; i < nb; i++ { + p := s.At(i) x, err := p.InterfaceUseNumber() if err != nil { return nil, err @@ -1426,45 +1390,28 @@ func (self *Node) toGenericArrayUseNumber() ([]interface{}, error) { func (self *Node) toGenericArrayUseNode() ([]Node, error) { var nb = self.len() - var out = make([]Node, nb) if nb == 0 { - return out, nil + return []Node{}, nil } - var p = (*Node)(self.p) - out[0] = *p - if err := p.Check(); err != nil { - return nil, err - } - - for i := 1; i < nb; i++ { - p = p.unsafe_next() - if err := p.Check(); err != nil { - return nil, err - } - out[i] = *p - } + var s = (*linkedNodes)(self.p) + var out = make([]Node, nb) + s.ToSlice(out) return out, nil } func (self *Node) toGenericObject() (map[string]interface{}, error) { nb := self.len() - ret := make(map[string]interface{}, nb) if nb == 0 { - return ret, nil + return map[string]interface{}{}, nil } + ret := make(map[string]interface{}, nb) /* convert each item */ - var p = (*Pair)(self.p) - x, err := p.Value.Interface() - if err != nil { - return nil, err - } - ret[p.Key] = x - - for i := 1; i < nb; i++ { - p = p.unsafe_next() + var s = (*linkedPairs)(self.p) + for i := 0; i < nb; i++ { + p := s.At(i) x, err := p.Value.Interface() if err != nil { return nil, err @@ -1479,21 +1426,15 @@ func (self *Node) toGenericObject() (map[string]interface{}, error) { func (self *Node) toGenericObjectUseNumber() (map[string]interface{}, error) { nb := self.len() - ret := make(map[string]interface{}, nb) if nb == 0 { - return ret, nil + return map[string]interface{}{}, nil } + ret := make(map[string]interface{}, nb) /* convert each item */ - var p = (*Pair)(self.p) - x, err := p.Value.InterfaceUseNumber() - if err != nil { - return nil, err - } - ret[p.Key] = x - - for i := 1; i < nb; i++ { - p = p.unsafe_next() + var s = (*linkedPairs)(self.p) + for i := 0; i < nb; i++ { + p := s.At(i) x, err := p.Value.InterfaceUseNumber() if err != nil { return nil, err @@ -1507,25 +1448,28 @@ func (self *Node) toGenericObjectUseNumber() (map[string]interface{}, error) { func (self *Node) toGenericObjectUseNode() (map[string]Node, error) { var nb = self.len() - var out = make(map[string]Node, nb) if nb == 0 { - return out, nil + return map[string]Node{}, nil } - var p = (*Pair)(self.p) - out[p.Key] = p.Value - if err := p.Value.Check(); err != nil { - return nil, err - } + var s = (*linkedPairs)(self.p) + var out = make(map[string]Node, nb) + s.ToMap(out) - for i := 1; i < nb; i++ { - p = p.unsafe_next() - if err := p.Value.Check(); err != nil { - return nil, err - } - out[p.Key] = p.Value + /* all done */ + return out, nil +} + +func (self *Node) toGenericObjectUsePair() ([]Pair, error) { + var nb = self.len() + if nb == 0 { + return []Pair{}, nil } + var s = (*linkedPairs)(self.p) + var out = make([]Pair, nb) + s.ToSlice(out) + /* all done */ return out, nil } @@ -1536,15 +1480,12 @@ var ( nullNode = Node{t: types.V_NULL} trueNode = Node{t: types.V_TRUE} falseNode = Node{t: types.V_FALSE} - - emptyArrayNode = Node{t: types.V_ARRAY} - emptyObjectNode = Node{t: types.V_OBJECT} ) // NewRaw creates a node of raw json. // If the input json is invalid, NewRaw returns a error Node. func NewRaw(json string) Node { - parser := NewParser(json) + parser := NewParserObj(json) start, err := parser.skip() if err != 0 { return *newError(err, err.Message()) @@ -1567,7 +1508,6 @@ func NewAny(any interface{}) Node { default: return Node{ t: _V_ANY, - v: 0, p: unsafe.Pointer(&any), } } @@ -1585,7 +1525,6 @@ func NewBytes(src []byte) Node { // NewNull creates a node of type V_NULL func NewNull() Node { return Node{ - v: 0, p: nil, t: types.V_NULL, } @@ -1600,7 +1539,6 @@ func NewBool(v bool) Node { t = types.V_TRUE } return Node{ - v: 0, p: nil, t: t, } @@ -1610,26 +1548,30 @@ func NewBool(v bool) Node { // v must be a decimal string complying with RFC8259 func NewNumber(v string) Node { return Node{ - v: int64(len(v) & _LEN_MASK), + l: uint(len(v)), p: rt.StrPtr(v), t: _V_NUMBER, } } -func toNumber(node *Node) json.Number { - return json.Number(rt.StrFrom(node.p, node.v)) +func (node Node) toNumber() json.Number { + return json.Number(rt.StrFrom(node.p, int64(node.l))) } -func numberToFloat64(node *Node) (float64, error) { - ret,err := toNumber(node).Float64() +func (self Node) toString() string { + return rt.StrFrom(self.p, int64(self.l)) +} + +func (node Node) toFloat64() (float64, error) { + ret, err := node.toNumber().Float64() if err != nil { return 0, err } return ret, nil } -func numberToInt64(node *Node) (int64, error) { - ret,err := toNumber(node).Int64() +func (node Node) toInt64() (int64, error) { + ret,err := node.toNumber().Int64() if err != nil { return 0, err } @@ -1640,7 +1582,7 @@ func newBytes(v []byte) Node { return Node{ t: types.V_STRING, p: mem2ptr(v), - v: int64(len(v) & _LEN_MASK), + l: uint(len(v)), } } @@ -1652,103 +1594,65 @@ func NewString(v string) Node { return Node{ t: types.V_STRING, p: rt.StrPtr(v), - v: int64(len(v) & _LEN_MASK), + l: uint(len(v)), } } // NewArray creates a node of type V_ARRAY, // using v as its underlying children func NewArray(v []Node) Node { + s := new(linkedNodes) + s.FromSlice(v) + return newArray(s) +} + +func newArray(v *linkedNodes) Node { return Node{ t: types.V_ARRAY, - v: int64(len(v)&_LEN_MASK | cap(v)<<_CAP_BITS), - p: *(*unsafe.Pointer)(unsafe.Pointer(&v)), + l: uint(v.Len()), + p: unsafe.Pointer(v), } } -func (self *Node) setArray(v []Node) { +func (self *Node) setArray(v *linkedNodes) { self.t = types.V_ARRAY - self.setCapAndLen(cap(v), len(v)) - self.p = *(*unsafe.Pointer)(unsafe.Pointer(&v)) + self.l = uint(v.Len()) + self.p = unsafe.Pointer(v) } // NewObject creates a node of type V_OBJECT, // using v as its underlying children func NewObject(v []Pair) Node { - return Node{ - t: types.V_OBJECT, - v: int64(len(v)&_LEN_MASK | cap(v)<<_CAP_BITS), - p: *(*unsafe.Pointer)(unsafe.Pointer(&v)), - } -} - -func (self *Node) setObject(v []Pair) { - self.t = types.V_OBJECT - self.setCapAndLen(cap(v), len(v)) - self.p = *(*unsafe.Pointer)(unsafe.Pointer(&v)) -} - -type parseObjectStack struct { - parser Parser - v []Pair -} - -type parseArrayStack struct { - parser Parser - v []Node + s := new(linkedPairs) + s.FromSlice(v) + return newObject(s) } -func newLazyArray(p *Parser, v []Node) Node { - s := new(parseArrayStack) - s.parser = *p - s.v = v +func newObject(v *linkedPairs) Node { return Node{ - t: _V_ARRAY_LAZY, - v: int64(len(v)&_LEN_MASK | cap(v)<<_CAP_BITS), - p: unsafe.Pointer(s), - } -} - -func (self *Node) setLazyArray(p *Parser, v []Node) { - s := new(parseArrayStack) - s.parser = *p - s.v = v - self.t = _V_ARRAY_LAZY - self.setCapAndLen(cap(v), len(v)) - self.p = (unsafe.Pointer)(s) -} - -func newLazyObject(p *Parser, v []Pair) Node { - s := new(parseObjectStack) - s.parser = *p - s.v = v - return Node{ - t: _V_OBJECT_LAZY, - v: int64(len(v)&_LEN_MASK | cap(v)<<_CAP_BITS), - p: unsafe.Pointer(s), + t: types.V_OBJECT, + l: uint(v.Len()), + p: unsafe.Pointer(v), } } -func (self *Node) setLazyObject(p *Parser, v []Pair) { - s := new(parseObjectStack) - s.parser = *p - s.v = v - self.t = _V_OBJECT_LAZY - self.setCapAndLen(cap(v), len(v)) - self.p = (unsafe.Pointer)(s) +func (self *Node) setObject(v *linkedPairs) { + self.t = types.V_OBJECT + self.l = uint(v.Len()) + self.p = unsafe.Pointer(v) } func newRawNode(str string, typ types.ValueType) Node { return Node{ t: _V_RAW | typ, p: rt.StrPtr(str), - v: int64(len(str) & _LEN_MASK), + l: uint(len(str)), } } func (self *Node) parseRaw(full bool) { - raw := rt.StrFrom(self.p, self.v) - parser := NewParser(raw) + raw := self.toString() + parser := NewParserObj(raw) if full { parser.noLazy = true parser.skipValue = false @@ -1760,14 +1664,6 @@ func (self *Node) parseRaw(full bool) { } } -func newError(err types.ParsingError, msg string) *Node { - return &Node{ - t: V_ERROR, - v: int64(err), - p: unsafe.Pointer(&msg), - } -} - var typeJumpTable = [256]types.ValueType{ '"' : types.V_STRING, '-' : _V_NUMBER, @@ -1791,18 +1687,3 @@ var typeJumpTable = [256]types.ValueType{ func switchRawType(c byte) types.ValueType { return typeJumpTable[c] } - -func unwrapError(err error) *Node { - if se, ok := err.(*Node); ok { - return se - }else if sse, ok := err.(Node); ok { - return &sse - } else { - msg := err.Error() - return &Node{ - t: V_ERROR, - v: 0, - p: unsafe.Pointer(&msg), - } - } -} diff --git a/vendor/github.com/bytedance/sonic/ast/parser.go b/vendor/github.com/bytedance/sonic/ast/parser.go index 2c3146ca..09e5d793 100644 --- a/vendor/github.com/bytedance/sonic/ast/parser.go +++ b/vendor/github.com/bytedance/sonic/ast/parser.go @@ -18,11 +18,15 @@ package ast import ( `fmt` + `github.com/bytedance/sonic/internal/native/types` `github.com/bytedance/sonic/internal/rt` ) -const _DEFAULT_NODE_CAP int = 16 +const ( + _DEFAULT_NODE_CAP int = 8 + _APPEND_GROW_SHIFT = 1 +) const ( _ERR_NOT_FOUND types.ParsingError = 33 @@ -39,6 +43,7 @@ type Parser struct { s string noLazy bool skipValue bool + dbuf *byte } /** Parser Private Methods **/ @@ -107,7 +112,7 @@ func (self *Parser) lspace(sp int) int { return sp } -func (self *Parser) decodeArray(ret []Node) (Node, types.ParsingError) { +func (self *Parser) decodeArray(ret *linkedNodes) (Node, types.ParsingError) { sp := self.p ns := len(self.s) @@ -119,7 +124,7 @@ func (self *Parser) decodeArray(ret []Node) (Node, types.ParsingError) { /* check for empty array */ if self.s[self.p] == ']' { self.p++ - return emptyArrayNode, 0 + return Node{t: types.V_ARRAY}, 0 } /* allocate array space and parse every element */ @@ -149,7 +154,7 @@ func (self *Parser) decodeArray(ret []Node) (Node, types.ParsingError) { } /* add the value to result */ - ret = append(ret, val) + ret.Add(val) self.p = self.lspace(self.p) /* check for EOF */ @@ -160,17 +165,17 @@ func (self *Parser) decodeArray(ret []Node) (Node, types.ParsingError) { /* check for the next character */ switch self.s[self.p] { case ',' : self.p++ - case ']' : self.p++; return NewArray(ret), 0 - default: - if val.isLazy() { - return newLazyArray(self, ret), 0 - } - return Node{}, types.ERR_INVALID_CHAR + case ']' : self.p++; return newArray(ret), 0 + default: + // if val.isLazy() { + // return newLazyArray(self, ret), 0 + // } + return Node{}, types.ERR_INVALID_CHAR } } } -func (self *Parser) decodeObject(ret []Pair) (Node, types.ParsingError) { +func (self *Parser) decodeObject(ret *linkedPairs) (Node, types.ParsingError) { sp := self.p ns := len(self.s) @@ -182,7 +187,7 @@ func (self *Parser) decodeObject(ret []Pair) (Node, types.ParsingError) { /* check for empty object */ if self.s[self.p] == '}' { self.p++ - return emptyObjectNode, 0 + return Node{t: types.V_OBJECT}, 0 } /* decode each pair */ @@ -235,7 +240,8 @@ func (self *Parser) decodeObject(ret []Pair) (Node, types.ParsingError) { } /* add the value to result */ - ret = append(ret, Pair{Key: key, Value: val}) + // FIXME: ret's address may change here, thus previous referred node in ret may be invalid !! + ret.Add(Pair{Key: key, Value: val}) self.p = self.lspace(self.p) /* check for EOF */ @@ -246,11 +252,11 @@ func (self *Parser) decodeObject(ret []Pair) (Node, types.ParsingError) { /* check for the next character */ switch self.s[self.p] { case ',' : self.p++ - case '}' : self.p++; return NewObject(ret), 0 + case '}' : self.p++; return newObject(ret), 0 default: - if val.isLazy() { - return newLazyObject(self, ret), 0 - } + // if val.isLazy() { + // return newLazyObject(self, ret), 0 + // } return Node{}, types.ERR_INVALID_CHAR } } @@ -290,15 +296,23 @@ func (self *Parser) Parse() (Node, types.ParsingError) { case types.V_FALSE : return falseNode, 0 case types.V_STRING : return self.decodeString(val.Iv, val.Ep) case types.V_ARRAY: + if p := skipBlank(self.s, self.p); p >= self.p && self.s[p] == ']' { + self.p = p + 1 + return Node{t: types.V_ARRAY}, 0 + } if self.noLazy { - return self.decodeArray(make([]Node, 0, _DEFAULT_NODE_CAP)) + return self.decodeArray(new(linkedNodes)) } - return newLazyArray(self, make([]Node, 0, _DEFAULT_NODE_CAP)), 0 + return newLazyArray(self), 0 case types.V_OBJECT: + if p := skipBlank(self.s, self.p); p >= self.p && self.s[p] == '}' { + self.p = p + 1 + return Node{t: types.V_OBJECT}, 0 + } if self.noLazy { - return self.decodeObject(make([]Pair, 0, _DEFAULT_NODE_CAP)) + return self.decodeObject(new(linkedPairs)) } - return newLazyObject(self, make([]Pair, 0, _DEFAULT_NODE_CAP)), 0 + return newLazyObject(self), 0 case types.V_DOUBLE : return NewNumber(self.s[val.Ep:self.p]), 0 case types.V_INTEGER : return NewNumber(self.s[val.Ep:self.p]), 0 default : return Node{}, types.ParsingError(-val.Vt) @@ -429,7 +443,7 @@ func (self *Node) skipNextNode() *Node { } parser, stack := self.getParserAndArrayStack() - ret := stack.v + ret := &stack.v sp := parser.p ns := len(parser.s) @@ -458,7 +472,8 @@ func (self *Node) skipNextNode() *Node { } /* add the value to result */ - ret = append(ret, val) + ret.Add(val) + self.l++ parser.p = parser.lspace(parser.p) /* check for EOF */ @@ -470,12 +485,11 @@ func (self *Node) skipNextNode() *Node { switch parser.s[parser.p] { case ',': parser.p++ - self.setLazyArray(parser, ret) - return &ret[len(ret)-1] + return ret.At(ret.Len()-1) case ']': parser.p++ self.setArray(ret) - return &ret[len(ret)-1] + return ret.At(ret.Len()-1) default: return newSyntaxError(parser.syntaxError(types.ERR_INVALID_CHAR)) } @@ -487,7 +501,7 @@ func (self *Node) skipNextPair() (*Pair) { } parser, stack := self.getParserAndObjectStack() - ret := stack.v + ret := &stack.v sp := parser.p ns := len(parser.s) @@ -541,7 +555,8 @@ func (self *Node) skipNextPair() (*Pair) { } /* add the value to result */ - ret = append(ret, Pair{Key: key, Value: val}) + ret.Add(Pair{Key: key, Value: val}) + self.l++ parser.p = parser.lspace(parser.p) /* check for EOF */ @@ -553,12 +568,11 @@ func (self *Node) skipNextPair() (*Pair) { switch parser.s[parser.p] { case ',': parser.p++ - self.setLazyObject(parser, ret) - return &ret[len(ret)-1] + return ret.At(ret.Len()-1) case '}': parser.p++ self.setObject(ret) - return &ret[len(ret)-1] + return ret.At(ret.Len()-1) default: return &Pair{key, *newSyntaxError(parser.syntaxError(types.ERR_INVALID_CHAR))} } @@ -601,10 +615,30 @@ func LoadsUseNumber(src string) (int, interface{}, error) { } } +// NewParser returns pointer of new allocated parser func NewParser(src string) *Parser { return &Parser{s: src} } +// NewParser returns new allocated parser +func NewParserObj(src string) Parser { + return Parser{s: src} +} + +// decodeNumber controls if parser decodes the number values instead of skip them +// WARN: once you set decodeNumber(true), please set decodeNumber(false) before you drop the parser +// otherwise the memory CANNOT be reused +func (self *Parser) decodeNumber(decode bool) { + if !decode && self.dbuf != nil { + types.FreeDbuf(self.dbuf) + self.dbuf = nil + return + } + if decode && self.dbuf == nil { + self.dbuf = types.NewDbuf() + } +} + // ExportError converts types.ParsingError to std Error func (self *Parser) ExportError(err types.ParsingError) error { if err == _ERR_NOT_FOUND { diff --git a/vendor/github.com/bytedance/sonic/ast/sort.go b/vendor/github.com/bytedance/sonic/ast/sort.go deleted file mode 100644 index 0a9f1455..00000000 --- a/vendor/github.com/bytedance/sonic/ast/sort.go +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ast - -// Algorithm 3-way Radix Quicksort, d means the radix. -// Reference: https://algs4.cs.princeton.edu/51radix/Quick3string.java.html -func radixQsort(kvs PairSlice, d, maxDepth int) { - for len(kvs) > 11 { - // To avoid the worst case of quickSort (time: O(n^2)), use introsort here. - // Reference: https://en.wikipedia.org/wiki/Introsort and - // https://github.com/golang/go/issues/467 - if maxDepth == 0 { - heapSort(kvs, 0, len(kvs)) - return - } - maxDepth-- - - p := pivot(kvs, d) - lt, i, gt := 0, 0, len(kvs) - for i < gt { - c := byteAt(kvs[i].Key, d) - if c < p { - swap(kvs, lt, i) - i++ - lt++ - } else if c > p { - gt-- - swap(kvs, i, gt) - } else { - i++ - } - } - - // kvs[0:lt] < v = kvs[lt:gt] < kvs[gt:len(kvs)] - // Native implemention: - // radixQsort(kvs[:lt], d, maxDepth) - // if p > -1 { - // radixQsort(kvs[lt:gt], d+1, maxDepth) - // } - // radixQsort(kvs[gt:], d, maxDepth) - // Optimize as follows: make recursive calls only for the smaller parts. - // Reference: https://www.geeksforgeeks.org/quicksort-tail-call-optimization-reducing-worst-case-space-log-n/ - if p == -1 { - if lt > len(kvs) - gt { - radixQsort(kvs[gt:], d, maxDepth) - kvs = kvs[:lt] - } else { - radixQsort(kvs[:lt], d, maxDepth) - kvs = kvs[gt:] - } - } else { - ml := maxThree(lt, gt-lt, len(kvs)-gt) - if ml == lt { - radixQsort(kvs[lt:gt], d+1, maxDepth) - radixQsort(kvs[gt:], d, maxDepth) - kvs = kvs[:lt] - } else if ml == gt-lt { - radixQsort(kvs[:lt], d, maxDepth) - radixQsort(kvs[gt:], d, maxDepth) - kvs = kvs[lt:gt] - d += 1 - } else { - radixQsort(kvs[:lt], d, maxDepth) - radixQsort(kvs[lt:gt], d+1, maxDepth) - kvs = kvs[gt:] - } - } - } - insertRadixSort(kvs, d) -} - -func insertRadixSort(kvs PairSlice, d int) { - for i := 1; i < len(kvs); i++ { - for j := i; j > 0 && lessFrom(kvs[j].Key, kvs[j-1].Key, d); j-- { - swap(kvs, j, j-1) - } - } -} - -func pivot(kvs PairSlice, d int) int { - m := len(kvs) >> 1 - if len(kvs) > 40 { - // Tukey's ``Ninther,'' median of three mediankvs of three. - t := len(kvs) / 8 - return medianThree( - medianThree(byteAt(kvs[0].Key, d), byteAt(kvs[t].Key, d), byteAt(kvs[2*t].Key, d)), - medianThree(byteAt(kvs[m].Key, d), byteAt(kvs[m-t].Key, d), byteAt(kvs[m+t].Key, d)), - medianThree(byteAt(kvs[len(kvs)-1].Key, d), - byteAt(kvs[len(kvs)-1-t].Key, d), - byteAt(kvs[len(kvs)-1-2*t].Key, d))) - } - return medianThree(byteAt(kvs[0].Key, d), byteAt(kvs[m].Key, d), byteAt(kvs[len(kvs)-1].Key, d)) -} - -func medianThree(i, j, k int) int { - if i > j { - i, j = j, i - } // i < j - if k < i { - return i - } - if k > j { - return j - } - return k -} - -func maxThree(i, j, k int) int { - max := i - if max < j { - max = j - } - if max < k { - max = k - } - return max -} - -// maxDepth returns a threshold at which quicksort should switch -// to heapsort. It returnkvs 2*ceil(lg(n+1)). -func maxDepth(n int) int { - var depth int - for i := n; i > 0; i >>= 1 { - depth++ - } - return depth * 2 -} - -// siftDown implements the heap property on kvs[lo:hi]. -// first is an offset into the array where the root of the heap lies. -func siftDown(kvs PairSlice, lo, hi, first int) { - root := lo - for { - child := 2*root + 1 - if child >= hi { - break - } - if child+1 < hi && kvs[first+child].Key < kvs[first+child+1].Key { - child++ - } - if kvs[first+root].Key >= kvs[first+child].Key { - return - } - swap(kvs, first+root, first+child) - root = child - } -} - -func heapSort(kvs PairSlice, a, b int) { - first := a - lo := 0 - hi := b - a - - // Build heap with the greatest element at top. - for i := (hi - 1) / 2; i >= 0; i-- { - siftDown(kvs, i, hi, first) - } - - // Pop elements, the largest first, into end of kvs. - for i := hi - 1; i >= 0; i-- { - swap(kvs, first, first+i) - siftDown(kvs, lo, i, first) - } -} - -// Note that Pair.Key is NOT pointed to Pair.m when map key is integer after swap -func swap(kvs PairSlice, a, b int) { - kvs[a].Key, kvs[b].Key = kvs[b].Key, kvs[a].Key - kvs[a].Value, kvs[b].Value = kvs[b].Value, kvs[a].Value -} - -// Compare two strings from the pos d. -func lessFrom(a, b string, d int) bool { - l := len(a) - if l > len(b) { - l = len(b) - } - for i := d; i < l; i++ { - if a[i] == b[i] { - continue - } - return a[i] < b[i] - } - return len(a) < len(b) -} - -func byteAt(b string, p int) int { - if p < len(b) { - return int(b[p]) - } - return -1 -} diff --git a/vendor/github.com/bytedance/sonic/ast/visitor.go b/vendor/github.com/bytedance/sonic/ast/visitor.go new file mode 100644 index 00000000..4019c31a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/visitor.go @@ -0,0 +1,315 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +import ( + `encoding/json` + + `github.com/bytedance/sonic/internal/native/types` +) + +// Visitor handles the callbacks during preorder traversal of a JSON AST. +// +// According to the JSON RFC8259, a JSON AST can be defined by +// the following rules without seperator / whitespace tokens. +// +// JSON-AST = value +// value = false / null / true / object / array / number / string +// object = begin-object [ member *( member ) ] end-object +// member = string value +// array = begin-array [ value *( value ) ] end-array +// +type Visitor interface { + + // OnNull handles a JSON null value. + OnNull() error + + // OnBool handles a JSON true / false value. + OnBool(v bool) error + + // OnString handles a JSON string value. + OnString(v string) error + + // OnInt64 handles a JSON number value with int64 type. + OnInt64(v int64, n json.Number) error + + // OnFloat64 handles a JSON number value with float64 type. + OnFloat64(v float64, n json.Number) error + + // OnObjectBegin handles the beginning of a JSON object value with a + // suggested capacity that can be used to make your custom object container. + // + // After this point the visitor will receive a sequence of callbacks like + // [string, value, string, value, ......, ObjectEnd]. + // + // Note: + // 1. This is a recursive definition which means the value can + // also be a JSON object / array described by a sequence of callbacks. + // 2. The suggested capacity will be 0 if current object is empty. + // 3. Currently sonic use a fixed capacity for non-empty object (keep in + // sync with ast.Node) which might not be very suitable. This may be + // improved in future version. + OnObjectBegin(capacity int) error + + // OnObjectKey handles a JSON object key string in member. + OnObjectKey(key string) error + + // OnObjectEnd handles the ending of a JSON object value. + OnObjectEnd() error + + // OnArrayBegin handles the beginning of a JSON array value with a + // suggested capacity that can be used to make your custom array container. + // + // After this point the visitor will receive a sequence of callbacks like + // [value, value, value, ......, ArrayEnd]. + // + // Note: + // 1. This is a recursive definition which means the value can + // also be a JSON object / array described by a sequence of callbacks. + // 2. The suggested capacity will be 0 if current array is empty. + // 3. Currently sonic use a fixed capacity for non-empty array (keep in + // sync with ast.Node) which might not be very suitable. This may be + // improved in future version. + OnArrayBegin(capacity int) error + + // OnArrayEnd handles the ending of a JSON array value. + OnArrayEnd() error +} + +// VisitorOptions contains all Visitor's options. The default value is an +// empty VisitorOptions{}. +type VisitorOptions struct { + // OnlyNumber indicates parser to directly return number value without + // conversion, then the first argument of OnInt64 / OnFloat64 will always + // be zero. + OnlyNumber bool +} + +var defaultVisitorOptions = &VisitorOptions{} + +// Preorder decodes the whole JSON string and callbacks each AST node to visitor +// during preorder traversal. Any visitor method with an error returned will +// break the traversal and the given error will be directly returned. The opts +// argument can be reused after every call. +func Preorder(str string, visitor Visitor, opts *VisitorOptions) error { + if opts == nil { + opts = defaultVisitorOptions + } + // process VisitorOptions first to guarantee that all options will be + // constant during decoding and make options more readable. + var ( + optDecodeNumber = !opts.OnlyNumber + ) + + tv := &traverser{ + parser: Parser{ + s: str, + noLazy: true, + skipValue: false, + }, + visitor: visitor, + } + + if optDecodeNumber { + tv.parser.decodeNumber(true) + } + + err := tv.decodeValue() + + if optDecodeNumber { + tv.parser.decodeNumber(false) + } + return err +} + +type traverser struct { + parser Parser + visitor Visitor +} + +// NOTE: keep in sync with (*Parser).Parse method. +func (self *traverser) decodeValue() error { + switch val := self.parser.decodeValue(); val.Vt { + case types.V_EOF: + return types.ERR_EOF + case types.V_NULL: + return self.visitor.OnNull() + case types.V_TRUE: + return self.visitor.OnBool(true) + case types.V_FALSE: + return self.visitor.OnBool(false) + case types.V_STRING: + return self.decodeString(val.Iv, val.Ep) + case types.V_DOUBLE: + return self.visitor.OnFloat64(val.Dv, + json.Number(self.parser.s[val.Ep:self.parser.p])) + case types.V_INTEGER: + return self.visitor.OnInt64(val.Iv, + json.Number(self.parser.s[val.Ep:self.parser.p])) + case types.V_ARRAY: + return self.decodeArray() + case types.V_OBJECT: + return self.decodeObject() + default: + return types.ParsingError(-val.Vt) + } +} + +// NOTE: keep in sync with (*Parser).decodeArray method. +func (self *traverser) decodeArray() error { + sp := self.parser.p + ns := len(self.parser.s) + + /* check for EOF */ + self.parser.p = self.parser.lspace(sp) + if self.parser.p >= ns { + return types.ERR_EOF + } + + /* check for empty array */ + if self.parser.s[self.parser.p] == ']' { + self.parser.p++ + if err := self.visitor.OnArrayBegin(0); err != nil { + return err + } + return self.visitor.OnArrayEnd() + } + + /* allocate array space and parse every element */ + if err := self.visitor.OnArrayBegin(_DEFAULT_NODE_CAP); err != nil { + return err + } + for { + /* decode the value */ + if err := self.decodeValue(); err != nil { + return err + } + self.parser.p = self.parser.lspace(self.parser.p) + + /* check for EOF */ + if self.parser.p >= ns { + return types.ERR_EOF + } + + /* check for the next character */ + switch self.parser.s[self.parser.p] { + case ',': + self.parser.p++ + case ']': + self.parser.p++ + return self.visitor.OnArrayEnd() + default: + return types.ERR_INVALID_CHAR + } + } +} + +// NOTE: keep in sync with (*Parser).decodeObject method. +func (self *traverser) decodeObject() error { + sp := self.parser.p + ns := len(self.parser.s) + + /* check for EOF */ + self.parser.p = self.parser.lspace(sp) + if self.parser.p >= ns { + return types.ERR_EOF + } + + /* check for empty object */ + if self.parser.s[self.parser.p] == '}' { + self.parser.p++ + if err := self.visitor.OnObjectBegin(0); err != nil { + return err + } + return self.visitor.OnObjectEnd() + } + + /* allocate object space and decode each pair */ + if err := self.visitor.OnObjectBegin(_DEFAULT_NODE_CAP); err != nil { + return err + } + for { + var njs types.JsonState + var err types.ParsingError + + /* decode the key */ + if njs = self.parser.decodeValue(); njs.Vt != types.V_STRING { + return types.ERR_INVALID_CHAR + } + + /* extract the key */ + idx := self.parser.p - 1 + key := self.parser.s[njs.Iv:idx] + + /* check for escape sequence */ + if njs.Ep != -1 { + if key, err = unquote(key); err != 0 { + return err + } + } + + if err := self.visitor.OnObjectKey(key); err != nil { + return err + } + + /* expect a ':' delimiter */ + if err = self.parser.delim(); err != 0 { + return err + } + + /* decode the value */ + if err := self.decodeValue(); err != nil { + return err + } + + self.parser.p = self.parser.lspace(self.parser.p) + + /* check for EOF */ + if self.parser.p >= ns { + return types.ERR_EOF + } + + /* check for the next character */ + switch self.parser.s[self.parser.p] { + case ',': + self.parser.p++ + case '}': + self.parser.p++ + return self.visitor.OnObjectEnd() + default: + return types.ERR_INVALID_CHAR + } + } +} + +// NOTE: keep in sync with (*Parser).decodeString method. +func (self *traverser) decodeString(iv int64, ep int) error { + p := self.parser.p - 1 + s := self.parser.s[iv:p] + + /* fast path: no escape sequence */ + if ep == -1 { + return self.visitor.OnString(s) + } + + /* unquote the string */ + out, err := unquote(s) + if err != 0 { + return err + } + return self.visitor.OnString(out) +} diff --git a/vendor/github.com/bytedance/sonic/compat.go b/vendor/github.com/bytedance/sonic/compat.go index 015aa62b..58b10d6a 100644 --- a/vendor/github.com/bytedance/sonic/compat.go +++ b/vendor/github.com/bytedance/sonic/compat.go @@ -1,4 +1,4 @@ -// +build !amd64 go1.21 +// +build !amd64 !go1.16 go1.21 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/decoder/decoder_amd64.go b/vendor/github.com/bytedance/sonic/decoder/decoder_amd64.go index 2ef19957..3dc32a0a 100644 --- a/vendor/github.com/bytedance/sonic/decoder/decoder_amd64.go +++ b/vendor/github.com/bytedance/sonic/decoder/decoder_amd64.go @@ -1,4 +1,4 @@ -// +build amd64,go1.15,!go1.21 +// +build amd64,go1.16,!go1.21 /* * Copyright 2023 ByteDance Inc. @@ -25,6 +25,10 @@ import ( // Decoder is the decoder context object type Decoder = decoder.Decoder +// SyntaxError represents json syntax error +type SyntaxError = decoder.SyntaxError + +// MismatchTypeError represents dismatching between json and object type MismatchTypeError = decoder.MismatchTypeError // Options for decode. @@ -42,8 +46,6 @@ const ( // StreamDecoder is the decoder context object for streaming input. type StreamDecoder = decoder.StreamDecoder -type SyntaxError = decoder.SyntaxError - var ( // NewDecoder creates a new decoder instance. NewDecoder = decoder.NewDecoder diff --git a/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go b/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go index e6b9463d..d25b0dfe 100644 --- a/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go +++ b/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go @@ -1,4 +1,5 @@ -// +build !amd64 go1.21 +//go:build !amd64 || !go1.16 || go1.21 +// +build !amd64 !go1.16 go1.21 /* * Copyright 2023 ByteDance Inc. @@ -14,28 +15,34 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. -*/ + */ package decoder import ( - `encoding/json` - `bytes` - `reflect` - `github.com/bytedance/sonic/internal/native/types` - `github.com/bytedance/sonic/option` - `io` + `bytes` + `encoding/json` + `io` + `reflect` + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/option` ) +func init() { + println("WARNING: sonic only supports Go1.16~1.20 && CPU amd64, but your environment is not suitable") +} + const ( - _F_use_int64 = iota - _F_use_number - _F_disable_urc - _F_disable_unknown - _F_copy_string - _F_validate_string - - _F_allow_control = 31 + _F_use_int64 = 0 + _F_disable_urc = 2 + _F_disable_unknown = 3 + _F_copy_string = 4 + + _F_use_number = types.B_USE_NUMBER + _F_validate_string = types.B_VALIDATE_STRING + _F_allow_control = types.B_ALLOW_CONTROL ) type Options uint64 @@ -194,3 +201,17 @@ func (self *StreamDecoder) Decode(val interface{}) (err error) { return dec.Decode(val) } +// SyntaxError represents json syntax error +type SyntaxError json.SyntaxError + +// Description +func (s SyntaxError) Description() string { + return (*json.SyntaxError)(unsafe.Pointer(&s)).Error() +} +// Error +func (s SyntaxError) Error() string { + return (*json.SyntaxError)(unsafe.Pointer(&s)).Error() +} + +// MismatchTypeError represents dismatching between json and object +type MismatchTypeError json.UnmarshalTypeError \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go b/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go index 522bc88d..cd137cec 100644 --- a/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go +++ b/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go @@ -1,4 +1,4 @@ -// +build amd64,go1.15,!go1.21 +// +build amd64,go1.16,!go1.21 /* * Copyright 2023 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go index afa80d56..6d65c3db 100644 --- a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go +++ b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go @@ -1,4 +1,4 @@ -// +build !amd64 go1.21 +// +build !amd64 !go1.16 go1.21 /* * Copyright 2023 ByteDance Inc. @@ -27,6 +27,10 @@ import ( `github.com/bytedance/sonic/option` ) +func init() { + println("WARNING: sonic only supports Go1.16~1.20 && CPU amd64, but your environment is not suitable") +} + // Options is a set of encoding options. type Options uint64 diff --git a/vendor/github.com/bytedance/sonic/internal/abi/abi.go b/vendor/github.com/bytedance/sonic/internal/abi/abi.go new file mode 100644 index 00000000..b0aa68a1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/abi/abi.go @@ -0,0 +1,197 @@ +/* + * Copyright 2022 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package abi + +import ( + `fmt` + `reflect` + `sort` + `strings` + + `github.com/bytedance/sonic/internal/rt` +) + +type FunctionLayout struct { + FP uint32 + Args []Parameter + Rets []Parameter +} + +func (self FunctionLayout) String() string { + return self.formatFn() +} + +func (self FunctionLayout) ArgSize() uint32 { + size := uintptr(0) + for _, arg := range self.Args { + size += arg.Type.Size() + } + return uint32(size) +} + +type slot struct { + p bool + m uint32 +} + +func (self FunctionLayout) StackMap() *rt.StackMap { + var st []slot + var mb rt.StackMapBuilder + + /* add arguments */ + for _, v := range self.Args { + st = append(st, slot { + m: v.Mem, + p: v.IsPointer, + }) + } + + /* add stack-passed return values */ + for _, v := range self.Rets { + if !v.InRegister { + st = append(st, slot { + m: v.Mem, + p: v.IsPointer, + }) + } + } + + /* sort by memory offset */ + sort.Slice(st, func(i int, j int) bool { + return st[i].m < st[j].m + }) + + /* add the bits */ + for _, v := range st { + mb.AddField(v.p) + } + + /* build the stack map */ + return mb.Build() +} + +func (self FunctionLayout) formatFn() string { + fp := self.FP + return fmt.Sprintf("\n%#04x\nRets:\n%s\nArgs:\n%s", fp, self.formatSeq(self.Rets, &fp), self.formatSeq(self.Args, &fp)) +} + +func (self FunctionLayout) formatSeq(v []Parameter, fp *uint32) string { + nb := len(v) + mm := make([]string, 0, len(v)) + + /* convert each part */ + for i := nb-1; i >=0; i-- { + *fp -= PtrSize + mm = append(mm, fmt.Sprintf("%#04x %s", *fp, v[i].String())) + } + + /* join them together */ + return strings.Join(mm, "\n") +} + +type Frame struct { + desc *FunctionLayout + locals []bool + ccall bool +} + +func NewFrame(desc *FunctionLayout, locals []bool, ccall bool) Frame { + fr := Frame{} + fr.desc = desc + fr.locals = locals + fr.ccall = ccall + return fr +} + +func (self *Frame) String() string { + out := self.desc.String() + + off := -8 + out += fmt.Sprintf("\n%#4x [Return PC]", off) + off -= 8 + out += fmt.Sprintf("\n%#4x [RBP]", off) + off -= 8 + + for _, v := range ReservedRegs(self.ccall) { + out += fmt.Sprintf("\n%#4x [%v]", off, v) + off -= PtrSize + } + + for _, b := range self.locals { + out += fmt.Sprintf("\n%#4x [%v]", off, b) + off -= PtrSize + } + + return out +} + +func (self *Frame) Prev() uint32 { + return self.Size() + PtrSize +} + +func (self *Frame) Size() uint32 { + return uint32(self.Offs() + PtrSize) +} + +func (self *Frame) Offs() uint32 { + return uint32(len(ReservedRegs(self.ccall)) * PtrSize + len(self.locals)*PtrSize) +} + +func (self *Frame) ArgPtrs() *rt.StackMap { + return self.desc.StackMap() +} + +func (self *Frame) LocalPtrs() *rt.StackMap { + var m rt.StackMapBuilder + for _, b := range self.locals { + m.AddFields(len(ReservedRegs(self.ccall)), b) + } + return m.Build() +} + +func alignUp(n uint32, a int) uint32 { + return (uint32(n) + uint32(a) - 1) &^ (uint32(a) - 1) +} + +func isPointer(vt reflect.Type) bool { + switch vt.Kind() { + case reflect.Bool : fallthrough + case reflect.Int : fallthrough + case reflect.Int8 : fallthrough + case reflect.Int16 : fallthrough + case reflect.Int32 : fallthrough + case reflect.Int64 : fallthrough + case reflect.Uint : fallthrough + case reflect.Uint8 : fallthrough + case reflect.Uint16 : fallthrough + case reflect.Uint32 : fallthrough + case reflect.Uint64 : fallthrough + case reflect.Float32 : fallthrough + case reflect.Float64 : fallthrough + case reflect.Uintptr : return false + case reflect.Chan : fallthrough + case reflect.Func : fallthrough + case reflect.Map : fallthrough + case reflect.Ptr : fallthrough + case reflect.UnsafePointer : return true + case reflect.Complex64 : fallthrough + case reflect.Complex128 : fallthrough + case reflect.Array : fallthrough + case reflect.Struct : panic("abi: unsupported types") + default : panic("abi: invalid value type") + } +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/abi/abi_amd64.go b/vendor/github.com/bytedance/sonic/internal/abi/abi_amd64.go new file mode 100644 index 00000000..be1a6b7c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/abi/abi_amd64.go @@ -0,0 +1,282 @@ +/* + * Copyright 2022 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package abi + +import ( + `fmt` + `reflect` + `unsafe` + + . `github.com/chenzhuoyu/iasm/x86_64` +) + +const ( + PtrSize = 8 // pointer size + PtrAlign = 8 // pointer alignment +) + +var iregOrderC = []Register{ + RDI, + RSI, + RDX, + RCX, + R8, + R9, +} + +var xregOrderC = []Register{ + XMM0, + XMM1, + XMM2, + XMM3, + XMM4, + XMM5, + XMM6, + XMM7, +} + +var ( + intType = reflect.TypeOf(0) + ptrType = reflect.TypeOf(unsafe.Pointer(nil)) +) + +func (self *Frame) argv(i int) *MemoryOperand { + return Ptr(RSP, int32(self.Prev() + self.desc.Args[i].Mem)) +} + +// spillv is used for growstack spill registers +func (self *Frame) spillv(i int) *MemoryOperand { + // remain one slot for caller return pc + return Ptr(RSP, PtrSize + int32(self.desc.Args[i].Mem)) +} + +func (self *Frame) retv(i int) *MemoryOperand { + return Ptr(RSP, int32(self.Prev() + self.desc.Rets[i].Mem)) +} + +func (self *Frame) resv(i int) *MemoryOperand { + return Ptr(RSP, int32(self.Offs() - uint32((i+1) * PtrSize))) +} + +func (self *Frame) emitGrowStack(p *Program, entry *Label) { + // spill all register arguments + for i, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat == floatKind64 { + p.MOVSD(v.Reg, self.spillv(i)) + } else if v.IsFloat == floatKind32 { + p.MOVSS(v.Reg, self.spillv(i)) + }else { + p.MOVQ(v.Reg, self.spillv(i)) + } + } + } + + // call runtime.morestack_noctxt + p.MOVQ(F_morestack_noctxt, R12) + p.CALLQ(R12) + // load all register arguments + for i, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat == floatKind64 { + p.MOVSD(self.spillv(i), v.Reg) + } else if v.IsFloat == floatKind32 { + p.MOVSS(self.spillv(i), v.Reg) + }else { + p.MOVQ(self.spillv(i), v.Reg) + } + } + } + + // jump back to the function entry + p.JMP(entry) +} + +func (self *Frame) GrowStackTextSize() uint32 { + p := DefaultArch.CreateProgram() + // spill all register arguments + for i, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat == floatKind64 { + p.MOVSD(v.Reg, self.spillv(i)) + } else if v.IsFloat == floatKind32 { + p.MOVSS(v.Reg, self.spillv(i)) + }else { + p.MOVQ(v.Reg, self.spillv(i)) + } + } + } + + // call runtime.morestack_noctxt + p.MOVQ(F_morestack_noctxt, R12) + p.CALLQ(R12) + // load all register arguments + for i, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat == floatKind64 { + p.MOVSD(self.spillv(i), v.Reg) + } else if v.IsFloat == floatKind32 { + p.MOVSS(self.spillv(i), v.Reg) + } else { + p.MOVQ(self.spillv(i), v.Reg) + } + } + } + + // jump back to the function entry + l := CreateLabel("") + p.Link(l) + p.JMP(l) + + return uint32(len(p.Assemble(0))) +} + +func (self *Frame) emitPrologue(p *Program) { + p.SUBQ(self.Size(), RSP) + p.MOVQ(RBP, Ptr(RSP, int32(self.Offs()))) + p.LEAQ(Ptr(RSP, int32(self.Offs())), RBP) +} + +func (self *Frame) emitEpilogue(p *Program) { + p.MOVQ(Ptr(RSP, int32(self.Offs())), RBP) + p.ADDQ(self.Size(), RSP) + p.RET() +} + +func (self *Frame) emitReserveRegs(p *Program) { + // spill reserved registers + for i, r := range ReservedRegs(self.ccall) { + switch r.(type) { + case Register64: + p.MOVQ(r, self.resv(i)) + case XMMRegister: + p.MOVSD(r, self.resv(i)) + default: + panic(fmt.Sprintf("unsupported register type %t to reserve", r)) + } + } +} + +func (self *Frame) emitSpillPtrs(p *Program) { + // spill pointer argument registers + for i, r := range self.desc.Args { + if r.InRegister && r.IsPointer { + p.MOVQ(r.Reg, self.argv(i)) + } + } +} + +func (self *Frame) emitClearPtrs(p *Program) { + // spill pointer argument registers + for i, r := range self.desc.Args { + if r.InRegister && r.IsPointer { + p.MOVQ(int64(0), self.argv(i)) + } + } +} + +func (self *Frame) emitCallC(p *Program, addr uintptr) { + p.MOVQ(addr, RAX) + p.CALLQ(RAX) +} + +type floatKind uint8 + +const ( + notFloatKind floatKind = iota + floatKind32 + floatKind64 +) + +type Parameter struct { + InRegister bool + IsPointer bool + IsFloat floatKind + Reg Register + Mem uint32 + Type reflect.Type +} + +func mkIReg(vt reflect.Type, reg Register64) (p Parameter) { + p.Reg = reg + p.Type = vt + p.InRegister = true + p.IsPointer = isPointer(vt) + return +} + +func isFloat(vt reflect.Type) floatKind { + switch vt.Kind() { + case reflect.Float32: + return floatKind32 + case reflect.Float64: + return floatKind64 + default: + return notFloatKind + } +} + +func mkXReg(vt reflect.Type, reg XMMRegister) (p Parameter) { + p.Reg = reg + p.Type = vt + p.InRegister = true + p.IsFloat = isFloat(vt) + return +} + +func mkStack(vt reflect.Type, mem uint32) (p Parameter) { + p.Mem = mem + p.Type = vt + p.InRegister = false + p.IsPointer = isPointer(vt) + p.IsFloat = isFloat(vt) + return +} + +func (self Parameter) String() string { + if self.InRegister { + return fmt.Sprintf("[%%%s, Pointer(%v), Float(%v)]", self.Reg, self.IsPointer, self.IsFloat) + } else { + return fmt.Sprintf("[%d(FP), Pointer(%v), Float(%v)]", self.Mem, self.IsPointer, self.IsFloat) + } +} + +func CallC(addr uintptr, fr Frame, maxStack uintptr) []byte { + p := DefaultArch.CreateProgram() + + stack := CreateLabel("_stack_grow") + entry := CreateLabel("_entry") + p.Link(entry) + fr.emitStackCheck(p, stack, maxStack) + fr.emitPrologue(p) + fr.emitReserveRegs(p) + fr.emitSpillPtrs(p) + fr.emitExchangeArgs(p) + fr.emitCallC(p, addr) + fr.emitExchangeRets(p) + fr.emitRestoreRegs(p) + fr.emitEpilogue(p) + p.Link(stack) + fr.emitGrowStack(p, entry) + + return p.Assemble(0) +} + + +func (self *Frame) emitDebug(p *Program) { + p.INT(3) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/abi/abi_legacy_amd64.go b/vendor/github.com/bytedance/sonic/internal/abi/abi_legacy_amd64.go new file mode 100644 index 00000000..f13c815f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/abi/abi_legacy_amd64.go @@ -0,0 +1,182 @@ +//go:build !go1.17 +// +build !go1.17 + +/* + * Copyright 2022 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package abi + +import ( + `fmt` + `reflect` + `runtime` + + . `github.com/chenzhuoyu/iasm/x86_64` +) + +func ReservedRegs(callc bool) []Register { + return nil +} + +func salloc(p []Parameter, sp uint32, vt reflect.Type) (uint32, []Parameter) { + switch vt.Kind() { + case reflect.Bool : return sp + 8, append(p, mkStack(reflect.TypeOf(false), sp)) + case reflect.Int : return sp + 8, append(p, mkStack(intType, sp)) + case reflect.Int8 : return sp + 8, append(p, mkStack(reflect.TypeOf(int8(0)), sp)) + case reflect.Int16 : return sp + 8, append(p, mkStack(reflect.TypeOf(int16(0)), sp)) + case reflect.Int32 : return sp + 8, append(p, mkStack(reflect.TypeOf(int32(0)), sp)) + case reflect.Int64 : return sp + 8, append(p, mkStack(reflect.TypeOf(int64(0)), sp)) + case reflect.Uint : return sp + 8, append(p, mkStack(reflect.TypeOf(uint(0)), sp)) + case reflect.Uint8 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint8(0)), sp)) + case reflect.Uint16 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint16(0)), sp)) + case reflect.Uint32 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint32(0)), sp)) + case reflect.Uint64 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint64(0)), sp)) + case reflect.Uintptr : return sp + 8, append(p, mkStack(reflect.TypeOf(uintptr(0)), sp)) + case reflect.Float32 : return sp + 8, append(p, mkStack(reflect.TypeOf(float32(0)), sp)) + case reflect.Float64 : return sp + 8, append(p, mkStack(reflect.TypeOf(float64(0)), sp)) + case reflect.Complex64 : panic("abi: go116: not implemented: complex64") + case reflect.Complex128 : panic("abi: go116: not implemented: complex128") + case reflect.Array : panic("abi: go116: not implemented: arrays") + case reflect.Chan : return sp + 8, append(p, mkStack(reflect.TypeOf((chan int)(nil)), sp)) + case reflect.Func : return sp + 8, append(p, mkStack(reflect.TypeOf((func())(nil)), sp)) + case reflect.Map : return sp + 8, append(p, mkStack(reflect.TypeOf((map[int]int)(nil)), sp)) + case reflect.Ptr : return sp + 8, append(p, mkStack(reflect.TypeOf((*int)(nil)), sp)) + case reflect.UnsafePointer : return sp + 8, append(p, mkStack(ptrType, sp)) + case reflect.Interface : return sp + 16, append(p, mkStack(ptrType, sp), mkStack(ptrType, sp + 8)) + case reflect.Slice : return sp + 24, append(p, mkStack(ptrType, sp), mkStack(intType, sp + 8), mkStack(intType, sp + 16)) + case reflect.String : return sp + 16, append(p, mkStack(ptrType, sp), mkStack(intType, sp + 8)) + case reflect.Struct : panic("abi: go116: not implemented: structs") + default : panic("abi: invalid value type") + } +} + +func NewFunctionLayout(ft reflect.Type) FunctionLayout { + var sp uint32 + var fn FunctionLayout + + /* assign every arguments */ + for i := 0; i < ft.NumIn(); i++ { + sp, fn.Args = salloc(fn.Args, sp, ft.In(i)) + } + + /* assign every return value */ + for i := 0; i < ft.NumOut(); i++ { + sp, fn.Rets = salloc(fn.Rets, sp, ft.Out(i)) + } + + /* update function ID and stack pointer */ + fn.FP = sp + return fn +} + +func (self *Frame) emitExchangeArgs(p *Program) { + iregArgs, xregArgs := 0, 0 + for _, v := range self.desc.Args { + if v.IsFloat != notFloatKind { + xregArgs += 1 + } else { + iregArgs += 1 + } + } + + if iregArgs > len(iregOrderC) { + panic("too many arguments, only support at most 6 integer arguments now") + } + if xregArgs > len(xregOrderC) { + panic("too many arguments, only support at most 8 float arguments now") + } + + ic, xc := iregArgs, xregArgs + for i := 0; i < len(self.desc.Args); i++ { + arg := self.desc.Args[i] + if arg.IsFloat == floatKind64 { + p.MOVSD(self.argv(i), xregOrderC[xregArgs - xc]) + xc -= 1 + } else if arg.IsFloat == floatKind32 { + p.MOVSS(self.argv(i), xregOrderC[xregArgs - xc]) + xc -= 1 + } else { + p.MOVQ(self.argv(i), iregOrderC[iregArgs - ic]) + ic -= 1 + } + } +} + +func (self *Frame) emitStackCheck(p *Program, to *Label, maxStack uintptr) { + // get the current goroutine + switch runtime.GOOS { + case "linux" : p.MOVQ(Abs(-8), R14).FS() + case "darwin" : p.MOVQ(Abs(0x30), R14).GS() + case "windows": break // windows always stores G pointer at R14 + default : panic("unsupported operating system") + } + + // check the stack guard + p.LEAQ(Ptr(RSP, -int32(self.Size() + uint32(maxStack))), RAX) + p.CMPQ(Ptr(R14, _G_stackguard0), RAX) + p.JBE(to) +} + +func (self *Frame) StackCheckTextSize() uint32 { + p := DefaultArch.CreateProgram() + + // get the current goroutine + switch runtime.GOOS { + case "linux" : p.MOVQ(Abs(-8), R14).FS() + case "darwin" : p.MOVQ(Abs(0x30), R14).GS() + case "windows": break // windows always stores G pointer at R14 + default : panic("unsupported operating system") + } + + // check the stack guard + p.LEAQ(Ptr(RSP, -int32(self.Size())), RAX) + p.CMPQ(Ptr(R14, _G_stackguard0), RAX) + l := CreateLabel("") + p.Link(l) + p.JBE(l) + + return uint32(len(p.Assemble(0))) +} + +func (self *Frame) emitExchangeRets(p *Program) { + if len(self.desc.Rets) > 1 { + panic("too many results, only support one result now") + } + // store result + if len(self.desc.Rets) ==1 { + if self.desc.Rets[0].IsFloat == floatKind64 { + p.MOVSD(xregOrderC[0], self.retv(0)) + } else if self.desc.Rets[0].IsFloat == floatKind32 { + p.MOVSS(xregOrderC[0], self.retv(0)) + } else { + p.MOVQ(RAX, self.retv(0)) + } + } +} + +func (self *Frame) emitRestoreRegs(p *Program) { + // load reserved registers + for i, r := range ReservedRegs(self.ccall) { + switch r.(type) { + case Register64: + p.MOVQ(self.resv(i), r) + case XMMRegister: + p.MOVSD(self.resv(i), r) + default: + panic(fmt.Sprintf("unsupported register type %t to reserve", r)) + } + } +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/abi/abi_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/abi/abi_regabi_amd64.go new file mode 100644 index 00000000..91cdf8c3 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/abi/abi_regabi_amd64.go @@ -0,0 +1,316 @@ +//go:build go1.17 +// +build go1.17 + +/* + * Copyright 2022 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** Go Internal ABI implementation + * + * This module implements the function layout algorithm described by the Go internal ABI. + * See https://github.com/golang/go/blob/master/src/cmd/compile/abi-internal.md for more info. + */ + +package abi + +import ( + `fmt` + `reflect` + + . `github.com/chenzhuoyu/iasm/x86_64` +) + +/** Frame Structure of the Generated Function + FP +------------------------------+ + | . . . | + | 2nd reg argument spill space | + + 1st reg argument spill space | + | | + | . . . | + | 2nd stack-assigned result | + + 1st stack-assigned result | + | | + | . . . | + | 2nd stack-assigned argument | + | 1st stack-assigned argument | + | stack-assigned receiver | +prev() +------------------------------+ (Previous Frame) + Return PC | +size() -------------------------------| + Saved RBP | +offs() -------------------------------| + 1th Reserved Registers | + -------------------------------| + 2th Reserved Registers | + -------------------------------| + Local Variables | + RSP -------------------------------|↓ lower addresses +*/ + +const zeroRegGo = XMM15 + +var iregOrderGo = [...]Register64 { + RAX,// RDI + RBX,// RSI + RCX,// RDX + RDI,// RCX + RSI,// R8 + R8, // R9 + R9, + R10, + R11, +} + +var xregOrderGo = [...]XMMRegister { + XMM0, + XMM1, + XMM2, + XMM3, + XMM4, + XMM5, + XMM6, + XMM7, + XMM8, + XMM9, + XMM10, + XMM11, + XMM12, + XMM13, + XMM14, +} + +func ReservedRegs(callc bool) []Register { + if callc { + return nil + } + return []Register { + R14, // current goroutine + R15, // GOT reference + } +} + +type stackAlloc struct { + s uint32 + i int + x int +} + +func (self *stackAlloc) reset() { + self.i, self.x = 0, 0 +} + +func (self *stackAlloc) ireg(vt reflect.Type) (p Parameter) { + p = mkIReg(vt, iregOrderGo[self.i]) + self.i++ + return +} + +func (self *stackAlloc) xreg(vt reflect.Type) (p Parameter) { + p = mkXReg(vt, xregOrderGo[self.x]) + self.x++ + return +} + +func (self *stackAlloc) stack(vt reflect.Type) (p Parameter) { + p = mkStack(vt, self.s) + self.s += uint32(vt.Size()) + return +} + +func (self *stackAlloc) spill(n uint32, a int) uint32 { + self.s = alignUp(self.s, a) + n + return self.s +} + +func (self *stackAlloc) alloc(p []Parameter, vt reflect.Type) []Parameter { + nb := vt.Size() + vk := vt.Kind() + + /* zero-sized objects are allocated on stack */ + if nb == 0 { + return append(p, mkStack(intType, self.s)) + } + + /* check for value type */ + switch vk { + case reflect.Bool : return self.valloc(p, reflect.TypeOf(false)) + case reflect.Int : return self.valloc(p, intType) + case reflect.Int8 : return self.valloc(p, reflect.TypeOf(int8(0))) + case reflect.Int16 : return self.valloc(p, reflect.TypeOf(int16(0))) + case reflect.Int32 : return self.valloc(p, reflect.TypeOf(uint32(0))) + case reflect.Int64 : return self.valloc(p, reflect.TypeOf(int64(0))) + case reflect.Uint : return self.valloc(p, reflect.TypeOf(uint(0))) + case reflect.Uint8 : return self.valloc(p, reflect.TypeOf(uint8(0))) + case reflect.Uint16 : return self.valloc(p, reflect.TypeOf(uint16(0))) + case reflect.Uint32 : return self.valloc(p, reflect.TypeOf(uint32(0))) + case reflect.Uint64 : return self.valloc(p, reflect.TypeOf(uint64(0))) + case reflect.Uintptr : return self.valloc(p, reflect.TypeOf(uintptr(0))) + case reflect.Float32 : return self.valloc(p, reflect.TypeOf(float32(0))) + case reflect.Float64 : return self.valloc(p, reflect.TypeOf(float64(0))) + case reflect.Complex64 : panic("abi: go117: not implemented: complex64") + case reflect.Complex128 : panic("abi: go117: not implemented: complex128") + case reflect.Array : panic("abi: go117: not implemented: arrays") + case reflect.Chan : return self.valloc(p, reflect.TypeOf((chan int)(nil))) + case reflect.Func : return self.valloc(p, reflect.TypeOf((func())(nil))) + case reflect.Map : return self.valloc(p, reflect.TypeOf((map[int]int)(nil))) + case reflect.Ptr : return self.valloc(p, reflect.TypeOf((*int)(nil))) + case reflect.UnsafePointer : return self.valloc(p, ptrType) + case reflect.Interface : return self.valloc(p, ptrType, ptrType) + case reflect.Slice : return self.valloc(p, ptrType, intType, intType) + case reflect.String : return self.valloc(p, ptrType, intType) + case reflect.Struct : panic("abi: go117: not implemented: structs") + default : panic("abi: invalid value type") + } +} + +func (self *stackAlloc) valloc(p []Parameter, vts ...reflect.Type) []Parameter { + for _, vt := range vts { + enum := isFloat(vt) + if enum != notFloatKind && self.x < len(xregOrderGo) { + p = append(p, self.xreg(vt)) + } else if enum == notFloatKind && self.i < len(iregOrderGo) { + p = append(p, self.ireg(vt)) + } else { + p = append(p, self.stack(vt)) + } + } + return p +} + +func NewFunctionLayout(ft reflect.Type) FunctionLayout { + var sa stackAlloc + var fn FunctionLayout + + /* assign every arguments */ + for i := 0; i < ft.NumIn(); i++ { + fn.Args = sa.alloc(fn.Args, ft.In(i)) + } + + /* reset the register counter, and add a pointer alignment field */ + sa.reset() + + /* assign every return value */ + for i := 0; i < ft.NumOut(); i++ { + fn.Rets = sa.alloc(fn.Rets, ft.Out(i)) + } + + sa.spill(0, PtrAlign) + + /* assign spill slots */ + for i := 0; i < len(fn.Args); i++ { + if fn.Args[i].InRegister { + fn.Args[i].Mem = sa.spill(PtrSize, PtrAlign) - PtrSize + } + } + + /* add the final pointer alignment field */ + fn.FP = sa.spill(0, PtrAlign) + return fn +} + +func (self *Frame) emitExchangeArgs(p *Program) { + iregArgs := make([]Parameter, 0, len(self.desc.Args)) + xregArgs := 0 + for _, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat != notFloatKind { + xregArgs += 1 + } else { + iregArgs = append(iregArgs, v) + } + } else { + panic("not support stack-assgined arguments now") + } + } + if xregArgs > len(xregOrderC) { + panic("too many arguments, only support at most 8 integer register arguments now") + } + + switch len(iregArgs) { + case 0, 1, 2, 3: { + //Fast-Path: when arguments count are less than four, just exchange the registers + for i := 0; i < len(iregArgs); i++ { + p.MOVQ(iregOrderGo[i], iregOrderC[i]) + } + } + case 4, 5, 6: { + // need to spill 3th ~ regArgs registers before exchange + for i := 3; i < len(iregArgs); i++ { + arg := iregArgs[i] + // pointer args have already been spilled + if !arg.IsPointer { + p.MOVQ(iregOrderGo[i], Ptr(RSP, int32(self.Prev() + arg.Mem))) + } + } + p.MOVQ(iregOrderGo[0], iregOrderC[0]) + p.MOVQ(iregOrderGo[1], iregOrderC[1]) + p.MOVQ(iregOrderGo[2], iregOrderC[2]) + for i := 3; i < len(iregArgs); i++ { + arg := iregArgs[i] + p.MOVQ(Ptr(RSP, int32(self.Prev() + arg.Mem)), iregOrderC[i]) + } + } + default: + panic("too many arguments, only support at most 6 integer register arguments now") + } +} + +func (self *Frame) emitStackCheck(p *Program, to *Label, maxStack uintptr) { + p.LEAQ(Ptr(RSP, int32(-(self.Size() + uint32(maxStack)))), R12) + p.CMPQ(Ptr(R14, _G_stackguard0), R12) + p.JBE(to) +} + +func (self *Frame) StackCheckTextSize() uint32 { + p := DefaultArch.CreateProgram() + p.LEAQ(Ptr(RSP, int32(-(self.Size()))), R12) + p.CMPQ(Ptr(R14, _G_stackguard0), R12) + to := CreateLabel("") + p.Link(to) + p.JBE(to) + return uint32(len(p.Assemble(0))) +} + +func (self *Frame) emitExchangeRets(p *Program) { + if len(self.desc.Rets) > 1 { + panic("too many results, only support one result now") + } + // store result + if len(self.desc.Rets) == 1 && !self.desc.Rets[0].InRegister { + if self.desc.Rets[0].IsFloat == floatKind64 { + p.MOVSD(xregOrderC[0], self.retv(0)) + } else if self.desc.Rets[0].IsFloat == floatKind32 { + p.MOVSS(xregOrderC[0], self.retv(0)) + } else { + p.MOVQ(RAX, self.retv(0)) + } + } +} + +func (self *Frame) emitRestoreRegs(p *Program) { + // load reserved registers + for i, r := range ReservedRegs(self.ccall) { + switch r.(type) { + case Register64: + p.MOVQ(self.resv(i), r) + case XMMRegister: + p.MOVSD(self.resv(i), r) + default: + panic(fmt.Sprintf("unsupported register type %t to reserve", r)) + } + } + // zero xmm15 for go abi + p.XORPS(zeroRegGo, zeroRegGo) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/abi/stubs.go b/vendor/github.com/bytedance/sonic/internal/abi/stubs.go new file mode 100644 index 00000000..b2486a1c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/abi/stubs.go @@ -0,0 +1,35 @@ +/** + * Copyright 2023 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package abi + +import ( + _ `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +const ( + _G_stackguard0 = 0x10 +) + +var ( + F_morestack_noctxt = uintptr(rt.FuncAddr(morestack_noctxt)) +) + +//go:linkname morestack_noctxt runtime.morestack_noctxt +func morestack_noctxt() + diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/decoder.go b/vendor/github.com/bytedance/sonic/internal/decoder/decoder.go index 7cebab18..8453db86 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/decoder.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/decoder.go @@ -30,14 +30,14 @@ import ( ) const ( - _F_use_int64 = iota - _F_use_number - _F_disable_urc - _F_disable_unknown - _F_copy_string - _F_validate_string - - _F_allow_control = 31 + _F_use_int64 = 0 + _F_disable_urc = 2 + _F_disable_unknown = 3 + _F_copy_string = 4 + + _F_use_number = types.B_USE_NUMBER + _F_validate_string = types.B_VALIDATE_STRING + _F_allow_control = types.B_ALLOW_CONTROL ) type Options uint64 diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/pools.go b/vendor/github.com/bytedance/sonic/internal/decoder/pools.go index b439b231..bcd14cc6 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/pools.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/pools.go @@ -29,7 +29,7 @@ const ( _MinSlice = 2 _MaxStack = 4096 // 4k slots _MaxStackBytes = _MaxStack * _PtrBytes - _MaxDigitNums = 800 // used in atof fallback algorithm + _MaxDigitNums = types.MaxDigitNums // used in atof fallback algorithm ) const ( diff --git a/vendor/github.com/bytedance/sonic/internal/loader/funcdata.go b/vendor/github.com/bytedance/sonic/internal/loader/funcdata.go deleted file mode 100644 index 59a3cb34..00000000 --- a/vendor/github.com/bytedance/sonic/internal/loader/funcdata.go +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package loader - -import ( - `reflect` - `sync` - `unsafe` - - `github.com/bytedance/sonic/internal/rt` -) - -//go:linkname lastmoduledatap runtime.lastmoduledatap -//goland:noinspection GoUnusedGlobalVariable -var lastmoduledatap *_ModuleData - -//go:linkname moduledataverify1 runtime.moduledataverify1 -func moduledataverify1(_ *_ModuleData) - -// PCDATA and FUNCDATA table indexes. -// -// See funcdata.h and $GROOT/src/cmd/internal/objabi/funcdata.go. -const ( - _FUNCDATA_ArgsPointerMaps = 0 - _FUNCDATA_LocalsPointerMaps = 1 -) - -type funcInfo struct { - *_Func - datap *_ModuleData -} - -//go:linkname findfunc runtime.findfunc -func findfunc(pc uintptr) funcInfo - -//go:linkname funcdata runtime.funcdata -func funcdata(f funcInfo, i uint8) unsafe.Pointer - -var ( - modLock sync.Mutex - modList []*_ModuleData -) - -var emptyByte byte - -func encodeVariant(v int) []byte { - var u int - var r []byte - - /* split every 7 bits */ - for v > 127 { - u = v & 0x7f - v = v >> 7 - r = append(r, byte(u) | 0x80) - } - - /* check for last one */ - if v == 0 { - return r - } - - /* add the last one */ - r = append(r, byte(v)) - return r -} - -func registerModule(mod *_ModuleData) { - modLock.Lock() - modList = append(modList, mod) - lastmoduledatap.next = mod - lastmoduledatap = mod - modLock.Unlock() -} - -func stackMap(f interface{}) (args uintptr, locals uintptr) { - fv := reflect.ValueOf(f) - if fv.Kind() != reflect.Func { - panic("f must be reflect.Func kind!") - } - fi := findfunc(fv.Pointer()) - return uintptr(funcdata(fi, uint8(_FUNCDATA_ArgsPointerMaps))), uintptr(funcdata(fi, uint8(_FUNCDATA_LocalsPointerMaps))) -} - -var moduleCache = struct{ - m map[*_ModuleData][]byte - l sync.Mutex -}{ - m : make(map[*_ModuleData][]byte), -} - -func cacheStackmap(argPtrs []bool, localPtrs []bool, mod *_ModuleData) (argptrs uintptr, localptrs uintptr) { - as := rt.StackMapBuilder{} - for _, b := range argPtrs { - as.AddField(b) - } - ab, _ := as.Build().MarshalBinary() - ls := rt.StackMapBuilder{} - for _, b := range localPtrs { - ls.AddField(b) - } - lb, _ := ls.Build().MarshalBinary() - cache := make([]byte, len(ab) + len(lb)) - copy(cache, ab) - copy(cache[len(ab):], lb) - moduleCache.l.Lock() - moduleCache.m[mod] = cache - moduleCache.l.Unlock() - return uintptr(rt.IndexByte(cache, 0)), uintptr(rt.IndexByte(cache, len(ab))) - -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go115.go b/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go115.go deleted file mode 100644 index b0d2d6c6..00000000 --- a/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go115.go +++ /dev/null @@ -1,169 +0,0 @@ -// +build go1.15,!go1.16 - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package loader - -import ( - `unsafe` - - `github.com/bytedance/sonic/internal/rt` -) - -type _Func struct { - entry uintptr // start pc - nameoff int32 // function name - args int32 // in/out args size - deferreturn uint32 // offset of start of a deferreturn call instruction from entry, if any. - pcsp int32 - pcfile int32 - pcln int32 - npcdata int32 - funcID uint8 // set for certain special runtime functions - _ [2]int8 // unused - nfuncdata uint8 // must be last - argptrs uintptr - localptrs uintptr -} - -type _FuncTab struct { - entry uintptr - funcoff uintptr -} - -type _BitVector struct { - n int32 // # of bits - bytedata *uint8 -} - -type _PtabEntry struct { - name int32 - typ int32 -} - -type _TextSection struct { - vaddr uintptr // prelinked section vaddr - length uintptr // section length - baseaddr uintptr // relocated section address -} - -type _ModuleData struct { - pclntable []byte - ftab []_FuncTab - filetab []uint32 - findfunctab *_FindFuncBucket - minpc, maxpc uintptr - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - end, gcdata, gcbss uintptr - types, etypes uintptr - textsectmap []_TextSection - typelinks []int32 // offsets from types - itablinks []*rt.GoItab - ptab []_PtabEntry - pluginpath string - pkghashes []byte - modulename string - modulehashes []byte - hasmain uint8 // 1 if module contains the main function, 0 otherwise - gcdatamask, gcbssmask _BitVector - typemap map[int32]*rt.GoType // offset to *_rtype in previous module - bad bool // module failed to load and should be ignored - next *_ModuleData -} - -type _FindFuncBucket struct { - idx uint32 - subbuckets [16]byte -} - -var findFuncTab = &_FindFuncBucket { - idx: 1, -} - -func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argPtrs []bool, localPtrs []bool) { - mod := new(_ModuleData) - minpc := pc - maxpc := pc + size - - /* build the PC & line table */ - pclnt := []byte { - 0xfb, 0xff, 0xff, 0xff, // magic : 0xfffffffb - 0, // pad1 : 0 - 0, // pad2 : 0 - 1, // minLC : 1 - 4 << (^uintptr(0) >> 63), // ptrSize : 4 << (^uintptr(0) >> 63) - } - - // cache arg and local stackmap - argptrs, localptrs := cacheStackmap(argPtrs, localPtrs, mod) - - /* add the function name */ - noff := len(pclnt) - pclnt = append(append(pclnt, name...), 0) - - /* add PCDATA */ - pcsp := len(pclnt) - pclnt = append(pclnt, encodeVariant((fp + 1) << 1)...) - pclnt = append(pclnt, encodeVariant(int(size))...) - - /* function entry */ - fnv := _Func { - entry : pc, - nameoff : int32(noff), - args : int32(args), - pcsp : int32(pcsp), - nfuncdata : 2, - argptrs : uintptr(argptrs), - localptrs : uintptr(localptrs), - } - - /* align the func to 8 bytes */ - if p := len(pclnt) % 8; p != 0 { - pclnt = append(pclnt, make([]byte, 8 - p)...) - } - - /* add the function descriptor */ - foff := len(pclnt) - pclnt = append(pclnt, (*(*[unsafe.Sizeof(_Func{})]byte)(unsafe.Pointer(&fnv)))[:]...) - - /* function table */ - tab := []_FuncTab { - {entry: pc, funcoff: uintptr(foff)}, - {entry: pc, funcoff: uintptr(foff)}, - {entry: maxpc}, - } - - /* module data */ - *mod = _ModuleData { - pclntable : pclnt, - ftab : tab, - findfunctab : findFuncTab, - minpc : minpc, - maxpc : maxpc, - modulename : name, - gcdata: uintptr(unsafe.Pointer(&emptyByte)), - gcbss: uintptr(unsafe.Pointer(&emptyByte)), - } - - /* verify and register the new module */ - moduledataverify1(mod) - registerModule(mod) -} diff --git a/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go116.go b/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go116.go deleted file mode 100644 index f01747f9..00000000 --- a/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go116.go +++ /dev/null @@ -1,175 +0,0 @@ -//go:build go1.16 && !go1.18 -// +build go1.16,!go1.18 - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package loader - -import ( - `unsafe` -) - -type _Func struct { - entry uintptr // start pc - nameoff int32 // function name - args int32 // in/out args size - deferreturn uint32 // offset of start of a deferreturn call instruction from entry, if any. - pcsp uint32 - pcfile uint32 - pcln uint32 - npcdata uint32 - cuOffset uint32 // runtime.cutab offset of this function's CU - funcID uint8 // set for certain special runtime functions - _ [2]byte // pad - nfuncdata uint8 // must be last - argptrs uintptr - localptrs uintptr -} - -type _FuncTab struct { - entry uintptr - funcoff uintptr -} - -type _PCHeader struct { - magic uint32 // 0xFFFFFFFA - pad1, pad2 uint8 // 0,0 - minLC uint8 // min instruction size - ptrSize uint8 // size of a ptr in bytes - nfunc int // number of functions in the module - nfiles uint // number of entries in the file tab. - funcnameOffset uintptr // offset to the funcnametab variable from _PCHeader - cuOffset uintptr // offset to the cutab variable from _PCHeader - filetabOffset uintptr // offset to the filetab variable from _PCHeader - pctabOffset uintptr // offset to the pctab varible from _PCHeader - pclnOffset uintptr // offset to the pclntab variable from _PCHeader -} - -type _BitVector struct { - n int32 // # of bits - bytedata *uint8 -} - -type _PtabEntry struct { - name int32 - typ int32 -} - -type _TextSection struct { - vaddr uintptr // prelinked section vaddr - length uintptr // section length - baseaddr uintptr // relocated section address -} - -type _ModuleData struct { - pcHeader *_PCHeader - funcnametab []byte - cutab []uint32 - filetab []byte - pctab []byte - pclntable []_Func - ftab []_FuncTab - findfunctab *_FindFuncBucket - minpc, maxpc uintptr - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - end, gcdata, gcbss uintptr - types, etypes uintptr - textsectmap []_TextSection - typelinks []int32 - itablinks []unsafe.Pointer - ptab []_PtabEntry - pluginpath string - pkghashes []struct{} - modulename string - modulehashes []struct{} - hasmain uint8 - gcdatamask, gcbssmask _BitVector - typemap map[int32]unsafe.Pointer - bad bool - next *_ModuleData -} - -type _FindFuncBucket struct { - idx uint32 - subbuckets [16]byte -} - -var modHeader = &_PCHeader { - magic : 0xfffffffa, - minLC : 1, - nfunc : 1, - ptrSize : 4 << (^uintptr(0) >> 63), -} - -var findFuncTab = &_FindFuncBucket { - idx: 1, -} - -func makePCtab(fp int) []byte { - return append([]byte{0}, encodeVariant((fp + 1) << 1)...) -} - -func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argPtrs []bool, localPtrs []bool) { - mod := new(_ModuleData) - - minpc := pc - maxpc := pc + size - - // cache arg and local stackmap - argptrs, localptrs := cacheStackmap(argPtrs, localPtrs, mod) - - /* function entry */ - lnt := []_Func {{ - entry : pc, - nameoff : 1, - args : int32(args), - pcsp : 1, - nfuncdata : 2, - argptrs : uintptr(argptrs), - localptrs : uintptr(localptrs), - }} - - /* function table */ - tab := []_FuncTab { - {entry: pc}, - {entry: pc}, - {entry: maxpc}, - } - - /* module data */ - *mod = _ModuleData { - pcHeader : modHeader, - funcnametab : append(append([]byte{0}, name...), 0), - pctab : append(makePCtab(fp), encodeVariant(int(size))...), - pclntable : lnt, - ftab : tab, - findfunctab : findFuncTab, - minpc : minpc, - maxpc : maxpc, - modulename : name, - gcdata: uintptr(unsafe.Pointer(&emptyByte)), - gcbss: uintptr(unsafe.Pointer(&emptyByte)), - } - - /* verify and register the new module */ - moduledataverify1(mod) - registerModule(mod) -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go118.go b/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go118.go deleted file mode 100644 index f1d585d9..00000000 --- a/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go118.go +++ /dev/null @@ -1,201 +0,0 @@ -// +build go1.18,!go1.20 - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package loader - -import ( - `unsafe` - - `github.com/bytedance/sonic/internal/rt` -) - -// A FuncFlag holds bits about a function. -// This list must match the list in cmd/internal/objabi/funcid.go. -type funcFlag uint8 - -type _Func struct { - entryOff uint32 // start pc - nameoff int32 // function name - args int32 // in/out args size - deferreturn uint32 // offset of start of a deferreturn call instruction from entry, if any. - pcsp uint32 - pcfile uint32 - pcln uint32 - npcdata uint32 - cuOffset uint32 // runtime.cutab offset of this function's CU - funcID uint8 // set for certain special runtime functions - flag funcFlag - _ [1]byte // pad - nfuncdata uint8 // must be last - argptrs uint32 - localptrs uint32 -} - -type _FuncTab struct { - entry uint32 - funcoff uint32 -} - -type _PCHeader struct { - magic uint32 // 0xFFFFFFF0 - pad1, pad2 uint8 // 0,0 - minLC uint8 // min instruction size - ptrSize uint8 // size of a ptr in bytes - nfunc int // number of functions in the module - nfiles uint // number of entries in the file tab - textStart uintptr // base for function entry PC offsets in this module, equal to moduledata.text - funcnameOffset uintptr // offset to the funcnametab variable from pcHeader - cuOffset uintptr // offset to the cutab variable from pcHeader - filetabOffset uintptr // offset to the filetab variable from pcHeader - pctabOffset uintptr // offset to the pctab variable from pcHeader - pclnOffset uintptr // offset to the pclntab variable from pcHeader -} - -type _BitVector struct { - n int32 // # of bits - bytedata *uint8 -} - -type _PtabEntry struct { - name int32 - typ int32 -} - -type _TextSection struct { - vaddr uintptr // prelinked section vaddr - length uintptr // section length - baseaddr uintptr // relocated section address -} - -type _ModuleData struct { - pcHeader *_PCHeader - funcnametab []byte - cutab []uint32 - filetab []byte - pctab []byte - pclntable []byte - ftab []_FuncTab - findfunctab *_FindFuncBucket - minpc, maxpc uintptr - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - end, gcdata, gcbss uintptr - types, etypes uintptr - rodata uintptr - gofunc uintptr - textsectmap []_TextSection - typelinks []int32 - itablinks []unsafe.Pointer - ptab []_PtabEntry - pluginpath string - pkghashes []struct{} - modulename string - modulehashes []struct{} - hasmain uint8 - gcdatamask, gcbssmask _BitVector - typemap map[int32]unsafe.Pointer - bad bool - next *_ModuleData -} - - -type _FindFuncBucket struct { - idx uint32 - subbuckets [16]byte -} - - - -func makePCtab(fp int) []byte { - return append([]byte{0}, encodeVariant((fp + 1) << 1)...) -} - -func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argPtrs []bool, localPtrs []bool) { - mod := new(_ModuleData) - - minpc := pc - maxpc := pc + size - - findFuncTab := make([]_FindFuncBucket, textSize/4096 + 1) - - modHeader := &_PCHeader { - magic : 0xfffffff0, - minLC : 1, - nfunc : 1, - ptrSize : 4 << (^uintptr(0) >> 63), - textStart: minpc, - } - - // cache arg and local stackmap - argptrs, localptrs := cacheStackmap(argPtrs, localPtrs, mod) - - base := argptrs - if argptrs > localptrs { - base = localptrs - } - - /* function entry */ - lnt := []_Func {{ - entryOff : 0, - nameoff : 1, - args : int32(args), - pcsp : 1, - nfuncdata : 2, - argptrs: uint32(argptrs - base), - localptrs: uint32(localptrs - base), - }} - nlnt := len(lnt)*int(unsafe.Sizeof(_Func{})) - plnt := unsafe.Pointer(&lnt[0]) - - /* function table */ - ftab := []_FuncTab { - {entry : 0, funcoff : 16}, - {entry : uint32(size)}, - } - nftab := len(ftab)*int(unsafe.Sizeof(_FuncTab{})) - pftab := unsafe.Pointer(&ftab[0]) - - pclntab := make([]byte, 0, nftab + nlnt) - pclntab = append(pclntab, rt.BytesFrom(pftab, nftab, nftab)...) - pclntab = append(pclntab, rt.BytesFrom(plnt, nlnt, nlnt)...) - - /* module data */ - *mod = _ModuleData { - pcHeader : modHeader, - funcnametab : append(append([]byte{0}, name...), 0), - pctab : append(makePCtab(fp), encodeVariant(int(size))...), - pclntable : pclntab, - ftab : ftab, - text : minpc, - etext : pc + textSize, - findfunctab : &findFuncTab[0], - minpc : minpc, - maxpc : maxpc, - modulename : name, - gcdata: uintptr(unsafe.Pointer(&emptyByte)), - gcbss: uintptr(unsafe.Pointer(&emptyByte)), - gofunc: base, - } - - /* verify and register the new module */ - moduledataverify1(mod) - registerModule(mod) -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go120.go b/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go120.go deleted file mode 100644 index c12f8a73..00000000 --- a/vendor/github.com/bytedance/sonic/internal/loader/funcdata_go120.go +++ /dev/null @@ -1,201 +0,0 @@ -// +build go1.20 - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package loader - -import ( - `unsafe` - - `github.com/bytedance/sonic/internal/rt` -) - -// A FuncFlag holds bits about a function. -// This list must match the list in cmd/internal/objabi/funcid.go. -type funcFlag uint8 - -type _Func struct { - entryOff uint32 // start pc - nameoff int32 // function name - args int32 // in/out args size - deferreturn uint32 // offset of start of a deferreturn call instruction from entry, if any. - pcsp uint32 - pcfile uint32 - pcln uint32 - npcdata uint32 - cuOffset uint32 // runtime.cutab offset of this function's CU - funcID uint8 // set for certain special runtime functions - flag funcFlag - _ [1]byte // pad - nfuncdata uint8 // must be last - argptrs uint32 - localptrs uint32 -} - -type _FuncTab struct { - entry uint32 - funcoff uint32 -} - -type _PCHeader struct { - magic uint32 // 0xFFFFFFF0 - pad1, pad2 uint8 // 0,0 - minLC uint8 // min instruction size - ptrSize uint8 // size of a ptr in bytes - nfunc int // number of functions in the module - nfiles uint // number of entries in the file tab - textStart uintptr // base for function entry PC offsets in this module, equal to moduledata.text - funcnameOffset uintptr // offset to the funcnametab variable from pcHeader - cuOffset uintptr // offset to the cutab variable from pcHeader - filetabOffset uintptr // offset to the filetab variable from pcHeader - pctabOffset uintptr // offset to the pctab variable from pcHeader - pclnOffset uintptr // offset to the pclntab variable from pcHeader -} - -type _BitVector struct { - n int32 // # of bits - bytedata *uint8 -} - -type _PtabEntry struct { - name int32 - typ int32 -} - -type _TextSection struct { - vaddr uintptr // prelinked section vaddr - length uintptr // section length - baseaddr uintptr // relocated section address -} - -type _ModuleData struct { - pcHeader *_PCHeader - funcnametab []byte - cutab []uint32 - filetab []byte - pctab []byte - pclntable []byte - ftab []_FuncTab - findfunctab *_FindFuncBucket - minpc, maxpc uintptr - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - end, gcdata, gcbss uintptr - types, etypes uintptr - rodata uintptr - gofunc uintptr - textsectmap []_TextSection - typelinks []int32 - itablinks []unsafe.Pointer - ptab []_PtabEntry - pluginpath string - pkghashes []struct{} - modulename string - modulehashes []struct{} - hasmain uint8 - gcdatamask, gcbssmask _BitVector - typemap map[int32]unsafe.Pointer - bad bool - next *_ModuleData -} - - -type _FindFuncBucket struct { - idx uint32 - subbuckets [16]byte -} - - - -func makePCtab(fp int) []byte { - return append([]byte{0}, encodeVariant((fp + 1) << 1)...) -} - -func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argPtrs []bool, localPtrs []bool) { - mod := new(_ModuleData) - - minpc := pc - maxpc := pc + size - - findFuncTab := make([]_FindFuncBucket, textSize/4096 + 1) - - modHeader := &_PCHeader { - magic : 0xfffffff0, - minLC : 1, - nfunc : 1, - ptrSize : 4 << (^uintptr(0) >> 63), - textStart: minpc, - } - - // cache arg and local stackmap - argptrs, localptrs := cacheStackmap(argPtrs, localPtrs, mod) - - base := argptrs - if argptrs > localptrs { - base = localptrs - } - - /* function entry */ - lnt := []_Func {{ - entryOff : 0, - nameoff : 1, - args : int32(args), - pcsp : 1, - nfuncdata : 2, - argptrs: uint32(argptrs - base), - localptrs: uint32(localptrs - base), - }} - nlnt := len(lnt)*int(unsafe.Sizeof(_Func{})) - plnt := unsafe.Pointer(&lnt[0]) - - /* function table */ - ftab := []_FuncTab { - {entry : 0, funcoff : 16}, - {entry : uint32(size)}, - } - nftab := len(ftab)*int(unsafe.Sizeof(_FuncTab{})) - pftab := unsafe.Pointer(&ftab[0]) - - pclntab := make([]byte, 0, nftab + nlnt) - pclntab = append(pclntab, rt.BytesFrom(pftab, nftab, nftab)...) - pclntab = append(pclntab, rt.BytesFrom(plnt, nlnt, nlnt)...) - - /* module data */ - *mod = _ModuleData { - pcHeader : modHeader, - funcnametab : append(append([]byte{0}, name...), 0), - pctab : append(makePCtab(fp), encodeVariant(int(size))...), - pclntable : pclntab, - ftab : ftab, - text : minpc, - etext : pc + textSize, - findfunctab : &findFuncTab[0], - minpc : minpc, - maxpc : maxpc, - modulename : name, - gcdata: uintptr(unsafe.Pointer(&emptyByte)), - gcbss: uintptr(unsafe.Pointer(&emptyByte)), - gofunc: base, - } - - /* verify and register the new module */ - moduledataverify1(mod) - registerModule(mod) -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/loader/loader.go b/vendor/github.com/bytedance/sonic/internal/loader/loader.go deleted file mode 100644 index 6446a5f0..00000000 --- a/vendor/github.com/bytedance/sonic/internal/loader/loader.go +++ /dev/null @@ -1,74 +0,0 @@ -//go:build darwin || linux -// +build darwin linux - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package loader - -import ( - `fmt` - `os` - `reflect` - `syscall` - `unsafe` -) - -const ( - _AP = syscall.MAP_ANON | syscall.MAP_PRIVATE - _RX = syscall.PROT_READ | syscall.PROT_EXEC - _RW = syscall.PROT_READ | syscall.PROT_WRITE -) - -type Loader []byte -type Function unsafe.Pointer - -func (self Loader) Load(fn string, fp int, args int, argPtrs []bool, localPtrs []bool) (f Function) { - p := os.Getpagesize() - n := (((len(self) - 1) / p) + 1) * p - - /* register the function */ - m := mmap(n) - v := fmt.Sprintf("runtime.__%s_%x", fn, m) - - registerFunction(v, m, uintptr(n), fp, args, uintptr(len(self)), argPtrs, localPtrs) - - /* reference as a slice */ - s := *(*[]byte)(unsafe.Pointer(&reflect.SliceHeader { - Data : m, - Cap : n, - Len : len(self), - })) - - /* copy the machine code, and make it executable */ - copy(s, self) - mprotect(m, n) - return Function(&m) -} - -func mmap(nb int) uintptr { - if m, _, e := syscall.RawSyscall6(syscall.SYS_MMAP, 0, uintptr(nb), _RW, _AP, 0, 0); e != 0 { - panic(e) - } else { - return m - } -} - -func mprotect(p uintptr, nb int) { - if _, _, err := syscall.RawSyscall(syscall.SYS_MPROTECT, p, uintptr(nb), _RX); err != 0 { - panic(err) - } -} diff --git a/vendor/github.com/bytedance/sonic/internal/loader/loader_windows.go b/vendor/github.com/bytedance/sonic/internal/loader/loader_windows.go deleted file mode 100644 index 4053ee9b..00000000 --- a/vendor/github.com/bytedance/sonic/internal/loader/loader_windows.go +++ /dev/null @@ -1,111 +0,0 @@ -//go:build windows -// +build windows - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package loader - -import ( - `fmt` - `os` - `reflect` - `syscall` - `unsafe` -) - -const ( - MEM_COMMIT = 0x00001000 - MEM_RESERVE = 0x00002000 -) - -var ( - libKernel32 = syscall.NewLazyDLL("KERNEL32.DLL") - libKernel32_VirtualAlloc = libKernel32.NewProc("VirtualAlloc") - libKernel32_VirtualProtect = libKernel32.NewProc("VirtualProtect") -) - -type Loader []byte -type Function unsafe.Pointer - -func (self Loader) Load(fn string, fp int, args int, argPtrs []bool, localPtrs []bool) (f Function) { - p := os.Getpagesize() - n := (((len(self) - 1) / p) + 1) * p - - /* register the function */ - m := mmap(n) - v := fmt.Sprintf("runtime.__%s_%x", fn, m) - - registerFunction(v, m, uintptr(n), fp, args, uintptr(len(self)), argPtrs, localPtrs) - - /* reference as a slice */ - s := *(*[]byte)(unsafe.Pointer(&reflect.SliceHeader { - Data : m, - Cap : n, - Len : len(self), - })) - - /* copy the machine code, and make it executable */ - copy(s, self) - mprotect(m, n) - return Function(&m) -} - -func mmap(nb int) uintptr { - addr, err := winapi_VirtualAlloc(0, nb, MEM_COMMIT|MEM_RESERVE, syscall.PAGE_READWRITE) - if err != nil { - panic(err) - } - return addr -} - -func mprotect(p uintptr, nb int) (oldProtect int) { - err := winapi_VirtualProtect(p, nb, syscall.PAGE_EXECUTE_READ, &oldProtect) - if err != nil { - panic(err) - } - return -} - -// winapi_VirtualAlloc allocate memory -// Doc: https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc -func winapi_VirtualAlloc(lpAddr uintptr, dwSize int, flAllocationType int, flProtect int) (uintptr, error) { - r1, _, err := libKernel32_VirtualAlloc.Call( - lpAddr, - uintptr(dwSize), - uintptr(flAllocationType), - uintptr(flProtect), - ) - if r1 == 0 { - return 0, err - } - return r1, nil -} - -// winapi_VirtualProtect change memory protection -// Doc: https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect -func winapi_VirtualProtect(lpAddr uintptr, dwSize int, flNewProtect int, lpflOldProtect *int) error { - r1, _, err := libKernel32_VirtualProtect.Call( - lpAddr, - uintptr(dwSize), - uintptr(flNewProtect), - uintptr(unsafe.Pointer(lpflOldProtect)), - ) - if r1 == 0 { - return err - } - return nil -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go index 43a52497..627ac177 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go @@ -1,5 +1,7 @@ // Code generated by Makefile, DO NOT EDIT. +// Code generated by Makefile, DO NOT EDIT. + /* * Copyright 2021 ByteDance Inc. * @@ -22,114 +24,168 @@ import ( `unsafe` `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var ( + __i64toa func(out unsafe.Pointer, val int64) (ret int) + + __u64toa func(out unsafe.Pointer, val uint64) (ret int) + + __f64toa func(out unsafe.Pointer, val float64) (ret int) + + __f32toa func(out unsafe.Pointer, val float32) (ret int) + + __lspace func(sp unsafe.Pointer, nb int, off int) (ret int) + + __quote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer, flags uint64) (ret int) + + __html_escape func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer) (ret int) + + __unquote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep unsafe.Pointer, flags uint64) (ret int) + + __value func(s unsafe.Pointer, n int, p int, v unsafe.Pointer, flags uint64) (ret int) + + __vstring func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer, flags uint64) + + __vnumber func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + + __vsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + + __vunsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + + __skip_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + + __skip_one_fast func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + + __skip_array func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + + __skip_object func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + + __skip_number func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + + __validate_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + + __get_by_path func(s unsafe.Pointer, p unsafe.Pointer, path unsafe.Pointer, m unsafe.Pointer) (ret int) + + __validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + + __validate_utf8_fast func(s unsafe.Pointer) (ret int) + + __fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int) ) //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __i64toa(out *byte, val int64) (ret int) +func i64toa(out *byte, val int64) (ret int) { + return __i64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} + +//go:nosplit +func u64toa(out *byte, val uint64) (ret int) { + return __u64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __u64toa(out *byte, val uint64) (ret int) +func f64toa(out *byte, val float64) (ret int) { + return __f64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __f64toa(out *byte, val float64) (ret int) +func f32toa(out *byte, val float32) (ret int) { + return __f32toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __f32toa(out *byte, val float32) (ret int) +func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { + return __lspace(rt.NoEscape(sp), nb, off) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __lspace(sp unsafe.Pointer, nb int, off int) (ret int) +func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { + return __quote(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(dn)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) +func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { + return __html_escape(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(dn))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) +func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { + return __unquote(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(ep)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) +func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { + return __value(rt.NoEscape(unsafe.Pointer(s)), n, p, rt.NoEscape(unsafe.Pointer(v)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) +func vstring(s *string, p *int, v *types.JsonState, flags uint64) { + __vstring(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vstring(s *string, p *int, v *types.JsonState, flags uint64) +func vnumber(s *string, p *int, v *types.JsonState) { + __vnumber(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vnumber(s *string, p *int, v *types.JsonState) +func vsigned(s *string, p *int, v *types.JsonState) { + __vsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vsigned(s *string, p *int, v *types.JsonState) +func vunsigned(s *string, p *int, v *types.JsonState) { + __vunsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vunsigned(s *string, p *int, v *types.JsonState) +func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +func skip_one_fast(s *string, p *int) (ret int) { + return __skip_one_fast(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_one_fast(s *string, p *int) (ret int) +func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_array(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_object(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +func skip_number(s *string, p *int) (ret int) { + return __skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_number(s *string, p *int) (ret int) +func validate_one(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_one(s *string, p *int, m *types.StateMachine) (ret int) +func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { + return __get_by_path(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(path)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) +func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_utf8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) +func validate_utf8_fast(s *string) (ret int) { + return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_utf8_fast(s *string) (ret int) +func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) { + return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.s b/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.s deleted file mode 100644 index 86eb3657..00000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.s +++ /dev/null @@ -1,15342 +0,0 @@ -// +build !noasm !appengine -// Code generated by asm2asm, DO NOT EDIT. - -#include "go_asm.h" -#include "funcdata.h" -#include "textflag.h" - -TEXT ·__native_entry__(SB), NOSPLIT, $0 - NO_LOCAL_POINTERS - LONG $0xf9058d48; WORD $0xffff; BYTE $0xff // leaq $-7(%rip), %rax - LONG $0x24448948; BYTE $0x08 // movq %rax, $8(%rsp) - BYTE $0xc3 // retq - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_lspace: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x3948; BYTE $0xd6 // cmpq %rdx, %rsi - LONG $0x004e840f; WORD $0x0000 // je LBB0_1, $78(%rip) - LONG $0x37048d4c // leaq (%rdi,%rsi), %r8 - LONG $0x3a448d48; BYTE $0x01 // leaq $1(%rdx,%rdi), %rax - WORD $0x2948; BYTE $0xf2 // subq %rsi, %rdx - QUAD $0x000100002600be48; WORD $0x0000 // movabsq $4294977024, %rsi - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB0_3: - LONG $0xff48be0f // movsbl $-1(%rax), %ecx - WORD $0xf983; BYTE $0x20 // cmpl $32, %ecx - LONG $0x002c870f; WORD $0x0000 // ja LBB0_5, $44(%rip) - LONG $0xcea30f48 // btq %rcx, %rsi - LONG $0x0022830f; WORD $0x0000 // jae LBB0_5, $34(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0xffdd850f; WORD $0xffff // jne LBB0_3, $-35(%rip) - WORD $0x2949; BYTE $0xf8 // subq %rdi, %r8 - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB0_1: - WORD $0x0148; BYTE $0xfa // addq %rdi, %rdx - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - WORD $0x2949; BYTE $0xf8 // subq %rdi, %r8 - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB0_5: - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x0148; BYTE $0xf8 // addq %rdi, %rax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; QUAD $0x0000000000000000; QUAD $0x0000000000000000; LONG $0x00000000; WORD $0x0000; BYTE $0x00 // .p2align 5, 0x00 - -LCPI1_0: - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - - // .p2align 4, 0x90 -_f64toa: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - LONG $0x7ef9e1c4; BYTE $0xc2 // vmovq %xmm0, %rdx - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - LONG $0x34e8c148 // shrq $52, %rax - LONG $0x0007ff25; BYTE $0x00 // andl $2047, %eax - LONG $0x0007ff3d; BYTE $0x00 // cmpl $2047, %eax - LONG $0x0ade840f; WORD $0x0000 // je LBB1_1, $2782(%rip) - WORD $0x8949; BYTE $0xfe // movq %rdi, %r14 - WORD $0x07c6; BYTE $0x2d // movb $45, (%rdi) - WORD $0x8949; BYTE $0xd4 // movq %rdx, %r12 - LONG $0x3fecc149 // shrq $63, %r12 - LONG $0x273c8d4e // leaq (%rdi,%r12), %r15 - QUAD $0x00000000550c8d48 // leaq (,%rdx,2), %rcx - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x01e3840f; WORD $0x0000 // je LBB1_3, $483(%rip) - QUAD $0xffffffffffffbf48; WORD $0x000f // movabsq $4503599627370495, %rdi - WORD $0x2148; BYTE $0xfa // andq %rdi, %rdx - WORD $0xc085 // testl %eax, %eax - LONG $0x0aae840f; WORD $0x0000 // je LBB1_5, $2734(%rip) - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0x0948; BYTE $0xd7 // orq %rdx, %rdi - LONG $0xfbcd988d; WORD $0xffff // leal $-1075(%rax), %ebx - LONG $0xfc01888d; WORD $0xffff // leal $-1023(%rax), %ecx - WORD $0xf983; BYTE $0x34 // cmpl $52, %ecx - LONG $0x001a870f; WORD $0x0000 // ja LBB1_6, $26(%rip) - WORD $0xd989 // movl %ebx, %ecx - WORD $0xd9f7 // negl %ecx - LONG $0xffc6c748; WORD $0xffff; BYTE $0xff // movq $-1, %rsi - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0xf748; BYTE $0xd6 // notq %rsi - WORD $0x8548; BYTE $0xf7 // testq %rsi, %rdi - LONG $0x0421840f; WORD $0x0000 // je LBB1_11, $1057(%rip) - -LBB1_6: - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - WORD $0x940f; BYTE $0xc1 // sete %cl - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - WORD $0x970f; BYTE $0xc0 // seta %al - WORD $0xc820 // andb %cl, %al - WORD $0xb60f; BYTE $0xc0 // movzbl %al, %eax - LONG $0x4413cb69; WORD $0x0013 // imull $1262611, %ebx, %ecx - WORD $0xd231 // xorl %edx, %edx - WORD $0xc084 // testb %al, %al - LONG $0x0101b941; WORD $0xfff8 // movl $-524031, %r9d - LONG $0xca440f44 // cmovel %edx, %r9d - LONG $0xb8748d48; BYTE $0xfe // leaq $-2(%rax,%rdi,4), %rsi - WORD $0x0141; BYTE $0xc9 // addl %ecx, %r9d - LONG $0x16f9c141 // sarl $22, %r9d - LONG $0xb1c96941; WORD $0xe56c; BYTE $0xff // imull $-1741647, %r9d, %ecx - WORD $0xe9c1; BYTE $0x13 // shrl $19, %ecx - WORD $0xd901 // addl %ebx, %ecx - LONG $0x000124b8; BYTE $0x00 // movl $292, %eax - WORD $0x2944; BYTE $0xc8 // subl %r9d, %eax - LONG $0x04e0c148 // shlq $4, %rax - LONG $0x3a158d48; WORD $0x00bb; BYTE $0x00 // leaq $47930(%rip), %rdx /* _pow10_ceil_sig.g(%rip) */ - LONG $0x101c8b4c // movq (%rax,%rdx), %r11 - LONG $0x106c8b4c; BYTE $0x08 // movq $8(%rax,%rdx), %r13 - WORD $0xc1fe // incb %cl - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe5 // mulq %r13 - WORD $0x8948; BYTE $0xd3 // movq %rdx, %rbx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - QUAD $0x00000000bd348d48 // leaq (,%rdi,4), %rsi - WORD $0x0148; BYTE $0xd8 // addq %rbx, %rax - LONG $0x00d28348 // adcq $0, %rdx - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0x01f88348 // cmpq $1, %rax - WORD $0x970f; BYTE $0xc3 // seta %bl - WORD $0x0948; BYTE $0xd3 // orq %rdx, %rbx - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe5 // mulq %r13 - WORD $0x8949; BYTE $0xd2 // movq %rdx, %r10 - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - QUAD $0x00000002bd348d48 // leaq $2(,%rdi,4), %rsi - WORD $0x014c; BYTE $0xd0 // addq %r10, %rax - LONG $0x00d08349 // adcq $0, %r8 - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - LONG $0x01f88348 // cmpq $1, %rax - LONG $0xc2970f41 // seta %r10b - WORD $0x094d; BYTE $0xc2 // orq %r8, %r10 - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe5 // mulq %r13 - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - LONG $0x00d28348 // adcq $0, %rdx - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x01f88348 // cmpq $1, %rax - WORD $0x970f; BYTE $0xc1 // seta %cl - WORD $0x0948; BYTE $0xd1 // orq %rdx, %rcx - WORD $0xe783; BYTE $0x01 // andl $1, %edi - WORD $0x0148; BYTE $0xfb // addq %rdi, %rbx - WORD $0x2948; BYTE $0xf9 // subq %rdi, %rcx - LONG $0x28fa8349 // cmpq $40, %r10 - LONG $0x003e820f; WORD $0x0000 // jb LBB1_29, $62(%rip) - QUAD $0xcccccccccccdba48; WORD $0xcccc // movabsq $-3689348814741910323, %rdx - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - WORD $0xf748; BYTE $0xe2 // mulq %rdx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - LONG $0x05efc148 // shrq $5, %rdi - QUAD $0x00000000fd048d48 // leaq (,%rdi,8), %rax - LONG $0x80148d48 // leaq (%rax,%rax,4), %rdx - WORD $0x3948; BYTE $0xd3 // cmpq %rdx, %rbx - LONG $0xc6970f40 // seta %sil - LONG $0x80448d48; BYTE $0x28 // leaq $40(%rax,%rax,4), %rax - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - WORD $0x960f; BYTE $0xc2 // setbe %dl - WORD $0x3040; BYTE $0xf2 // xorb %sil, %dl - LONG $0x0130840f; WORD $0x0000 // je LBB1_8, $304(%rip) - -LBB1_29: - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - LONG $0x02e8c148 // shrq $2, %rax - WORD $0x894c; BYTE $0xc2 // movq %r8, %rdx - LONG $0xfce28348 // andq $-4, %rdx - WORD $0x3948; BYTE $0xd3 // cmpq %rdx, %rbx - LONG $0xc7970f40 // seta %dil - LONG $0x04728d48 // leaq $4(%rdx), %rsi - WORD $0x3948; BYTE $0xce // cmpq %rcx, %rsi - WORD $0x960f; BYTE $0xc3 // setbe %bl - WORD $0x3040; BYTE $0xfb // xorb %dil, %bl - LONG $0x0053840f; WORD $0x0000 // je LBB1_30, $83(%rip) - LONG $0x02ca8348 // orq $2, %rdx - LONG $0x000001bf; BYTE $0x00 // movl $1, %edi - WORD $0x3949; BYTE $0xd2 // cmpq %rdx, %r10 - LONG $0x000e870f; WORD $0x0000 // ja LBB1_33, $14(%rip) - WORD $0x940f; BYTE $0xc1 // sete %cl - LONG $0x02e8c041 // shrb $2, %r8b - WORD $0x2041; BYTE $0xc8 // andb %cl, %r8b - LONG $0xf8b60f41 // movzbl %r8b, %edi - -LBB1_33: - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - QUAD $0x0001ffffff80b848; WORD $0x0000 // movabsq $8589934464, %rax - LONG $0xe47f0548; WORD $0x540b // addq $1410065535, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x003a870f; WORD $0x0000 // ja LBB1_35, $58(%rip) - LONG $0x0000eae9; BYTE $0x00 // jmp LBB1_41, $234(%rip) - -LBB1_3: - LONG $0x3007c641 // movb $48, (%r15) - WORD $0x2945; BYTE $0xf7 // subl %r14d, %r15d - WORD $0xff41; BYTE $0xc7 // incl %r15d - WORD $0x8944; BYTE $0xfb // movl %r15d, %ebx - LONG $0x0008a2e9; BYTE $0x00 // jmp LBB1_116, $2210(%rip) - -LBB1_30: - WORD $0x3948; BYTE $0xf1 // cmpq %rsi, %rcx - LONG $0xffd88348 // sbbq $-1, %rax - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - QUAD $0x0001ffffff80b848; WORD $0x0000 // movabsq $8589934464, %rax - LONG $0xe47f0548; WORD $0x540b // addq $1410065535, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x00b5860f; WORD $0x0000 // jbe LBB1_41, $181(%rip) - -LBB1_35: - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0be8c148 // shrq $11, %rax - LONG $0x00000bba; BYTE $0x00 // movl $11, %edx - LONG $0x0edd3d48; WORD $0x02e9 // cmpq $48828125, %rax - LONG $0x0127820f; WORD $0x0000 // jb LBB1_51, $295(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0ce8c148 // shrq $12, %rax - LONG $0x00000cba; BYTE $0x00 // movl $12, %edx - LONG $0x4a513d48; WORD $0x0e8d // cmpq $244140625, %rax - LONG $0x010f820f; WORD $0x0000 // jb LBB1_51, $271(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0de8c148 // shrq $13, %rax - LONG $0x00000dba; BYTE $0x00 // movl $13, %edx - LONG $0x73953d48; WORD $0x48c2 // cmpq $1220703125, %rax - LONG $0x00f7820f; WORD $0x0000 // jb LBB1_51, $247(%rip) - LONG $0x00000eba; BYTE $0x00 // movl $14, %edx - QUAD $0x5af3107a4000b848; WORD $0x0000 // movabsq $100000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x00df820f; WORD $0x0000 // jb LBB1_51, $223(%rip) - LONG $0x00000fba; BYTE $0x00 // movl $15, %edx - QUAD $0x8d7ea4c68000b848; WORD $0x0003 // movabsq $1000000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x00c7820f; WORD $0x0000 // jb LBB1_51, $199(%rip) - QUAD $0x86f26fc10000b848; WORD $0x0023 // movabsq $10000000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x000011ba; BYTE $0x00 // movl $17, %edx - -LBB1_50: - WORD $0xda83; BYTE $0x00 // sbbl $0, %edx - LONG $0x0000ade9; BYTE $0x00 // jmp LBB1_51, $173(%rip) - -LBB1_8: - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0xffdf8348 // sbbq $-1, %rdi - WORD $0xff41; BYTE $0xc1 // incl %r9d - QUAD $0x0001ffffff80b848; WORD $0x0000 // movabsq $8589934464, %rax - LONG $0xe47f0548; WORD $0x540b // addq $1410065535, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0xff4b870f; WORD $0xffff // ja LBB1_35, $-181(%rip) - -LBB1_41: - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - LONG $0x0aff8348 // cmpq $10, %rdi - LONG $0x007b820f; WORD $0x0000 // jb LBB1_51, $123(%rip) - LONG $0x000002ba; BYTE $0x00 // movl $2, %edx - LONG $0x64ff8348 // cmpq $100, %rdi - LONG $0x006c820f; WORD $0x0000 // jb LBB1_51, $108(%rip) - LONG $0x000003ba; BYTE $0x00 // movl $3, %edx - LONG $0xe8ff8148; WORD $0x0003; BYTE $0x00 // cmpq $1000, %rdi - LONG $0x005a820f; WORD $0x0000 // jb LBB1_51, $90(%rip) - LONG $0x000004ba; BYTE $0x00 // movl $4, %edx - LONG $0x10ff8148; WORD $0x0027; BYTE $0x00 // cmpq $10000, %rdi - LONG $0x0048820f; WORD $0x0000 // jb LBB1_51, $72(%rip) - LONG $0x000005ba; BYTE $0x00 // movl $5, %edx - LONG $0xa0ff8148; WORD $0x0186; BYTE $0x00 // cmpq $100000, %rdi - LONG $0x0036820f; WORD $0x0000 // jb LBB1_51, $54(%rip) - LONG $0x000006ba; BYTE $0x00 // movl $6, %edx - LONG $0x40ff8148; WORD $0x0f42; BYTE $0x00 // cmpq $1000000, %rdi - LONG $0x0024820f; WORD $0x0000 // jb LBB1_51, $36(%rip) - LONG $0x000007ba; BYTE $0x00 // movl $7, %edx - LONG $0x80ff8148; WORD $0x9896; BYTE $0x00 // cmpq $10000000, %rdi - LONG $0x0012820f; WORD $0x0000 // jb LBB1_51, $18(%rip) - LONG $0x000008ba; BYTE $0x00 // movl $8, %edx - LONG $0x00ff8148; WORD $0xf5e1; BYTE $0x05 // cmpq $100000000, %rdi - LONG $0x0754830f; WORD $0x0000 // jae LBB1_49, $1876(%rip) - -LBB1_51: - LONG $0x0a2c8d46 // leal (%rdx,%r9), %r13d - LONG $0x0a448d42; BYTE $0x05 // leal $5(%rdx,%r9), %eax - WORD $0xf883; BYTE $0x1b // cmpl $27, %eax - LONG $0x009d820f; WORD $0x0000 // jb LBB1_64, $157(%rip) - LONG $0x01678d4d // leaq $1(%r15), %r12 - WORD $0x894c; BYTE $0xe6 // movq %r12, %rsi - LONG $0x0082cfe8; BYTE $0x00 // callq _format_significand, $33487(%rip) - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB1_53: - LONG $0x30ff7b80 // cmpb $48, $-1(%rbx) - LONG $0xff5b8d48 // leaq $-1(%rbx), %rbx - LONG $0xfff2840f; WORD $0xffff // je LBB1_53, $-14(%rip) - LONG $0x01478a41 // movb $1(%r15), %al - WORD $0x8841; BYTE $0x07 // movb %al, (%r15) - LONG $0x01438d48 // leaq $1(%rbx), %rax - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x294c; BYTE $0xe1 // subq %r12, %rcx - LONG $0x02f98348 // cmpq $2, %rcx - LONG $0x00088c0f; WORD $0x0000 // jl LBB1_56, $8(%rip) - LONG $0x2404c641; BYTE $0x2e // movb $46, (%r12) - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - -LBB1_56: - WORD $0x03c6; BYTE $0x65 // movb $101, (%rbx) - LONG $0xff458d41 // leal $-1(%r13), %eax - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x01548e0f; WORD $0x0000 // jle LBB1_57, $340(%rip) - LONG $0x2b0143c6 // movb $43, $1(%rbx) - WORD $0xf883; BYTE $0x64 // cmpl $100, %eax - LONG $0x01568c0f; WORD $0x0000 // jl LBB1_61, $342(%rip) - -LBB1_60: - WORD $0xc189 // movl %eax, %ecx - LONG $0xcccccdba; BYTE $0xcc // movl $3435973837, %edx - LONG $0xd1af0f48 // imulq %rcx, %rdx - LONG $0x23eac148 // shrq $35, %rdx - WORD $0x0c8d; BYTE $0x12 // leal (%rdx,%rdx), %ecx - WORD $0x0c8d; BYTE $0x89 // leal (%rcx,%rcx,4), %ecx - WORD $0xc829 // subl %ecx, %eax - LONG $0x140d8d48; WORD $0x00b7; BYTE $0x00 // leaq $46868(%rip), %rcx /* _Digits(%rip) */ - LONG $0x510cb70f // movzwl (%rcx,%rdx,2), %ecx - LONG $0x024b8966 // movw %cx, $2(%rbx) - WORD $0x300c // orb $48, %al - WORD $0x4388; BYTE $0x04 // movb %al, $4(%rbx) - LONG $0x05c38348 // addq $5, %rbx - LONG $0x00068ee9; BYTE $0x00 // jmp LBB1_115, $1678(%rip) - -LBB1_64: - WORD $0x8545; BYTE $0xc9 // testl %r9d, %r9d - LONG $0x013c880f; WORD $0x0000 // js LBB1_65, $316(%rip) - WORD $0x634d; BYTE $0xed // movslq %r13d, %r13 - LONG $0x2f1c8d4b // leaq (%r15,%r13), %rbx - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0x0006c6e8; BYTE $0x00 // callq _format_integer, $1734(%rip) - WORD $0x3948; BYTE $0xd8 // cmpq %rbx, %rax - LONG $0x066d830f; WORD $0x0000 // jae LBB1_115, $1645(%rip) - WORD $0x014d; BYTE $0xec // addq %r13, %r12 - WORD $0x2949; BYTE $0xc4 // subq %rax, %r12 - WORD $0x014d; BYTE $0xf4 // addq %r14, %r12 - LONG $0x80fc8149; WORD $0x0000; BYTE $0x00 // cmpq $128, %r12 - LONG $0x0317820f; WORD $0x0000 // jb LBB1_114, $791(%rip) - WORD $0x894c; BYTE $0xe1 // movq %r12, %rcx - LONG $0x80e18348 // andq $-128, %rcx - LONG $0x80798d48 // leaq $-128(%rcx), %rdi - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - LONG $0x07eec148 // shrq $7, %rsi - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0xf289 // movl %esi, %edx - WORD $0xe283; BYTE $0x03 // andl $3, %edx - LONG $0x80ff8148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rdi - LONG $0x01fc830f; WORD $0x0000 // jae LBB1_107, $508(%rip) - WORD $0xff31 // xorl %edi, %edi - LONG $0x00029de9; BYTE $0x00 // jmp LBB1_109, $669(%rip) - -LBB1_11: - WORD $0xd348; BYTE $0xef // shrq %cl, %rdi - QUAD $0x0001ffffff80b848; WORD $0x0000 // movabsq $8589934464, %rax - LONG $0xe47f0548; WORD $0x540b // addq $1410065535, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x013f860f; WORD $0x0000 // jbe LBB1_18, $319(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0be8c148 // shrq $11, %rax - LONG $0x00000bba; BYTE $0x00 // movl $11, %edx - LONG $0x0edd3d48; WORD $0x02e9 // cmpq $48828125, %rax - LONG $0x01b1820f; WORD $0x0000 // jb LBB1_28, $433(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0ce8c148 // shrq $12, %rax - LONG $0x00000cba; BYTE $0x00 // movl $12, %edx - LONG $0x4a513d48; WORD $0x0e8d // cmpq $244140625, %rax - LONG $0x0199820f; WORD $0x0000 // jb LBB1_28, $409(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0de8c148 // shrq $13, %rax - LONG $0x00000dba; BYTE $0x00 // movl $13, %edx - LONG $0x73953d48; WORD $0x48c2 // cmpq $1220703125, %rax - LONG $0x0181820f; WORD $0x0000 // jb LBB1_28, $385(%rip) - LONG $0x00000eba; BYTE $0x00 // movl $14, %edx - QUAD $0x5af3107a4000b848; WORD $0x0000 // movabsq $100000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x0169820f; WORD $0x0000 // jb LBB1_28, $361(%rip) - LONG $0x00000fba; BYTE $0x00 // movl $15, %edx - QUAD $0x8d7ea4c68000b848; WORD $0x0003 // movabsq $1000000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x0151820f; WORD $0x0000 // jb LBB1_28, $337(%rip) - QUAD $0x86f26fc10000b848; WORD $0x0023 // movabsq $10000000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x000011ba; BYTE $0x00 // movl $17, %edx - -LBB1_27: - WORD $0xda83; BYTE $0x00 // sbbl $0, %edx - LONG $0x000137e9; BYTE $0x00 // jmp LBB1_28, $311(%rip) - -LBB1_57: - LONG $0x2d0143c6 // movb $45, $1(%rbx) - WORD $0xd8f7 // negl %eax - WORD $0xf883; BYTE $0x64 // cmpl $100, %eax - LONG $0xfeaa8d0f; WORD $0xffff // jge LBB1_60, $-342(%rip) - -LBB1_61: - WORD $0xf883; BYTE $0x0a // cmpl $10, %eax - LONG $0x00878c0f; WORD $0x0000 // jl LBB1_63, $135(%rip) - WORD $0xc089 // movl %eax, %eax - LONG $0xca0d8d48; WORD $0x00b5; BYTE $0x00 // leaq $46538(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x02438966 // movw %ax, $2(%rbx) - LONG $0x04c38348 // addq $4, %rbx - LONG $0x000549e9; BYTE $0x00 // jmp LBB1_115, $1353(%rip) - -LBB1_65: - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x031f8f0f; WORD $0x0000 // jg LBB1_78, $799(%rip) - LONG $0x07c74166; WORD $0x2e30 // movw $11824, (%r15) - LONG $0x02c78349 // addq $2, %r15 - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x030c890f; WORD $0x0000 // jns LBB1_78, $780(%rip) - WORD $0x8941; BYTE $0xd0 // movl %edx, %r8d - WORD $0xf741; BYTE $0xd0 // notl %r8d - WORD $0x2945; BYTE $0xc8 // subl %r9d, %r8d - WORD $0xc031 // xorl %eax, %eax - LONG $0x7ff88341 // cmpl $127, %r8d - LONG $0x02de820f; WORD $0x0000 // jb LBB1_76, $734(%rip) - WORD $0xff49; BYTE $0xc0 // incq %r8 - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - QUAD $0x0001ffffff80b948; WORD $0x0000 // movabsq $8589934464, %rcx - WORD $0x2148; BYTE $0xc8 // andq %rcx, %rax - LONG $0x80488d48 // leaq $-128(%rax), %rcx - WORD $0x8948; BYTE $0xce // movq %rcx, %rsi - LONG $0x07eec148 // shrq $7, %rsi - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x8941; BYTE $0xf1 // movl %esi, %r9d - LONG $0x03e18341 // andl $3, %r9d - LONG $0x80f98148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rcx - LONG $0x01b7830f; WORD $0x0000 // jae LBB1_70, $439(%rip) - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x00025ae9; BYTE $0x00 // jmp LBB1_72, $602(%rip) - -LBB1_63: - WORD $0x3004 // addb $48, %al - WORD $0x4388; BYTE $0x02 // movb %al, $2(%rbx) - LONG $0x03c38348 // addq $3, %rbx - LONG $0x0004cee9; BYTE $0x00 // jmp LBB1_115, $1230(%rip) - -LBB1_18: - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - LONG $0x0aff8348 // cmpq $10, %rdi - LONG $0x007b820f; WORD $0x0000 // jb LBB1_28, $123(%rip) - LONG $0x000002ba; BYTE $0x00 // movl $2, %edx - LONG $0x64ff8348 // cmpq $100, %rdi - LONG $0x006c820f; WORD $0x0000 // jb LBB1_28, $108(%rip) - LONG $0x000003ba; BYTE $0x00 // movl $3, %edx - LONG $0xe8ff8148; WORD $0x0003; BYTE $0x00 // cmpq $1000, %rdi - LONG $0x005a820f; WORD $0x0000 // jb LBB1_28, $90(%rip) - LONG $0x000004ba; BYTE $0x00 // movl $4, %edx - LONG $0x10ff8148; WORD $0x0027; BYTE $0x00 // cmpq $10000, %rdi - LONG $0x0048820f; WORD $0x0000 // jb LBB1_28, $72(%rip) - LONG $0x000005ba; BYTE $0x00 // movl $5, %edx - LONG $0xa0ff8148; WORD $0x0186; BYTE $0x00 // cmpq $100000, %rdi - LONG $0x0036820f; WORD $0x0000 // jb LBB1_28, $54(%rip) - LONG $0x000006ba; BYTE $0x00 // movl $6, %edx - LONG $0x40ff8148; WORD $0x0f42; BYTE $0x00 // cmpq $1000000, %rdi - LONG $0x0024820f; WORD $0x0000 // jb LBB1_28, $36(%rip) - LONG $0x000007ba; BYTE $0x00 // movl $7, %edx - LONG $0x80ff8148; WORD $0x9896; BYTE $0x00 // cmpq $10000000, %rdi - LONG $0x0012820f; WORD $0x0000 // jb LBB1_28, $18(%rip) - LONG $0x000008ba; BYTE $0x00 // movl $8, %edx - LONG $0x00ff8148; WORD $0xf5e1; BYTE $0x05 // cmpq $100000000, %rdi - LONG $0x0480830f; WORD $0x0000 // jae LBB1_26, $1152(%rip) - -LBB1_28: - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0x00048ce8; BYTE $0x00 // callq _format_integer, $1164(%rip) - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - LONG $0x000434e9; BYTE $0x00 // jmp LBB1_115, $1076(%rip) - -LBB1_107: - LONG $0xfce68348 // andq $-4, %rsi - WORD $0xf748; BYTE $0xde // negq %rsi - WORD $0xff31 // xorl %edi, %edi - QUAD $0xfffff923056ffdc5 // vmovdqa $-1757(%rip), %ymm0 /* LCPI1_0(%rip) */ - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_108: - LONG $0x047ffec5; BYTE $0x38 // vmovdqu %ymm0, (%rax,%rdi) - LONG $0x447ffec5; WORD $0x2038 // vmovdqu %ymm0, $32(%rax,%rdi) - LONG $0x447ffec5; WORD $0x4038 // vmovdqu %ymm0, $64(%rax,%rdi) - LONG $0x447ffec5; WORD $0x6038 // vmovdqu %ymm0, $96(%rax,%rdi) - QUAD $0x00008038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $128(%rax,%rdi) - QUAD $0x0000a038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $160(%rax,%rdi) - QUAD $0x0000c038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $192(%rax,%rdi) - QUAD $0x0000e038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $224(%rax,%rdi) - QUAD $0x00010038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $256(%rax,%rdi) - QUAD $0x00012038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $288(%rax,%rdi) - QUAD $0x00014038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $320(%rax,%rdi) - QUAD $0x00016038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $352(%rax,%rdi) - QUAD $0x00018038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $384(%rax,%rdi) - QUAD $0x0001a038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $416(%rax,%rdi) - QUAD $0x0001c038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $448(%rax,%rdi) - QUAD $0x0001e038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $480(%rax,%rdi) - LONG $0x00c78148; WORD $0x0002; BYTE $0x00 // addq $512, %rdi - LONG $0x04c68348 // addq $4, %rsi - LONG $0xff6c850f; WORD $0xffff // jne LBB1_108, $-148(%rip) - -LBB1_109: - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0033840f; WORD $0x0000 // je LBB1_112, $51(%rip) - LONG $0x07748d48; BYTE $0x60 // leaq $96(%rdi,%rax), %rsi - WORD $0xf748; BYTE $0xda // negq %rdx - QUAD $0xfffff873056ffdc5 // vmovdqa $-1933(%rip), %ymm0 /* LCPI1_0(%rip) */ - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_111: - LONG $0x467ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rsi) - LONG $0x467ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rsi) - LONG $0x467ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rsi) - LONG $0x067ffec5 // vmovdqu %ymm0, (%rsi) - LONG $0x80ee8348 // subq $-128, %rsi - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0xffe0850f; WORD $0xffff // jne LBB1_111, $-32(%rip) - -LBB1_112: - WORD $0x394c; BYTE $0xe1 // cmpq %r12, %rcx - LONG $0x0347840f; WORD $0x0000 // je LBB1_115, $839(%rip) - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - LONG $0x90909090 // .p2align 4, 0x90 - -LBB1_114: - WORD $0x00c6; BYTE $0x30 // movb $48, (%rax) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x3948; BYTE $0xc3 // cmpq %rax, %rbx - LONG $0xfff1850f; WORD $0xffff // jne LBB1_114, $-15(%rip) - LONG $0x00032ce9; BYTE $0x00 // jmp LBB1_115, $812(%rip) - -LBB1_70: - QUAD $0x000001e2349c8d4b // leaq $482(%r12,%r14), %rbx - LONG $0xfce68348 // andq $-4, %rsi - WORD $0xf748; BYTE $0xde // negq %rsi - WORD $0xc931 // xorl %ecx, %ecx - QUAD $0xfffff813056ffdc5 // vmovdqa $-2029(%rip), %ymm0 /* LCPI1_0(%rip) */ - -LBB1_71: - QUAD $0xfffe200b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-480(%rbx,%rcx) - QUAD $0xfffe400b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-448(%rbx,%rcx) - QUAD $0xfffe600b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-416(%rbx,%rcx) - QUAD $0xfffe800b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-384(%rbx,%rcx) - QUAD $0xfffea00b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-352(%rbx,%rcx) - QUAD $0xfffec00b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-320(%rbx,%rcx) - QUAD $0xfffee00b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-288(%rbx,%rcx) - QUAD $0xffff000b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-256(%rbx,%rcx) - QUAD $0xffff200b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-224(%rbx,%rcx) - QUAD $0xffff400b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-192(%rbx,%rcx) - QUAD $0xffff600b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-160(%rbx,%rcx) - LONG $0x447ffec5; WORD $0x800b // vmovdqu %ymm0, $-128(%rbx,%rcx) - LONG $0x447ffec5; WORD $0xa00b // vmovdqu %ymm0, $-96(%rbx,%rcx) - LONG $0x447ffec5; WORD $0xc00b // vmovdqu %ymm0, $-64(%rbx,%rcx) - LONG $0x447ffec5; WORD $0xe00b // vmovdqu %ymm0, $-32(%rbx,%rcx) - LONG $0x047ffec5; BYTE $0x0b // vmovdqu %ymm0, (%rbx,%rcx) - LONG $0x00c18148; WORD $0x0002; BYTE $0x00 // addq $512, %rcx - LONG $0x04c68348 // addq $4, %rsi - LONG $0xff6f850f; WORD $0xffff // jne LBB1_71, $-145(%rip) - -LBB1_72: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x0033840f; WORD $0x0000 // je LBB1_75, $51(%rip) - WORD $0x014c; BYTE $0xe1 // addq %r12, %rcx - LONG $0x0e4c8d49; BYTE $0x62 // leaq $98(%r14,%rcx), %rcx - WORD $0xf749; BYTE $0xd9 // negq %r9 - QUAD $0xfffff766056ffdc5 // vmovdqa $-2202(%rip), %ymm0 /* LCPI1_0(%rip) */ - -LBB1_74: - LONG $0x417ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rcx) - LONG $0x417ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rcx) - LONG $0x417ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rcx) - LONG $0x017ffec5 // vmovdqu %ymm0, (%rcx) - LONG $0x80e98348 // subq $-128, %rcx - WORD $0xff49; BYTE $0xc1 // incq %r9 - LONG $0xffe0850f; WORD $0xffff // jne LBB1_74, $-32(%rip) - -LBB1_75: - WORD $0x0149; BYTE $0xc7 // addq %rax, %r15 - WORD $0x3949; BYTE $0xc0 // cmpq %rax, %r8 - LONG $0x0019840f; WORD $0x0000 // je LBB1_78, $25(%rip) - -LBB1_76: - WORD $0x0144; BYTE $0xe8 // addl %r13d, %eax - WORD $0xd8f7 // negl %eax - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_77: - LONG $0x3007c641 // movb $48, (%r15) - WORD $0xff49; BYTE $0xc7 // incq %r15 - WORD $0xc8ff // decl %eax - LONG $0xfff1850f; WORD $0xffff // jne LBB1_77, $-15(%rip) - -LBB1_78: - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - WORD $0xf8c5; BYTE $0x77 // vzeroupper - LONG $0x007dc6e8; BYTE $0x00 // callq _format_significand, $32198(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB1_79: - LONG $0x30ff7880 // cmpb $48, $-1(%rax) - LONG $0xff408d48 // leaq $-1(%rax), %rax - LONG $0xfff2840f; WORD $0xffff // je LBB1_79, $-14(%rip) - LONG $0x01588d48 // leaq $1(%rax), %rbx - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x01f58e0f; WORD $0x0000 // jle LBB1_115, $501(%rip) - WORD $0xda89 // movl %ebx, %edx - WORD $0x2944; BYTE $0xfa // subl %r15d, %edx - WORD $0x8944; BYTE $0xe9 // movl %r13d, %ecx - WORD $0xd129 // subl %edx, %ecx - LONG $0x00258d0f; WORD $0x0000 // jge LBB1_82, $37(%rip) - WORD $0x2944; BYTE $0xea // subl %r13d, %edx - LONG $0x00c48e0f; WORD $0x0000 // jle LBB1_100, $196(%rip) - WORD $0xd689 // movl %edx, %esi - LONG $0xff568d48 // leaq $-1(%rsi), %rdx - WORD $0xf189 // movl %esi, %ecx - WORD $0xe183; BYTE $0x03 // andl $3, %ecx - LONG $0x03fa8348 // cmpq $3, %rdx - LONG $0x005c830f; WORD $0x0000 // jae LBB1_101, $92(%rip) - WORD $0xd231 // xorl %edx, %edx - LONG $0x000078e9; BYTE $0x00 // jmp LBB1_97, $120(%rip) - -LBB1_82: - LONG $0x01ba8e0f; WORD $0x0000 // jle LBB1_115, $442(%rip) - WORD $0x0145; BYTE $0xfd // addl %r15d, %r13d - WORD $0x8941; BYTE $0xd8 // movl %ebx, %r8d - WORD $0xf741; BYTE $0xd0 // notl %r8d - WORD $0x0145; BYTE $0xe8 // addl %r13d, %r8d - WORD $0xd231 // xorl %edx, %edx - LONG $0x7ef88341 // cmpl $126, %r8d - LONG $0x0192860f; WORD $0x0000 // jbe LBB1_92, $402(%rip) - WORD $0xff49; BYTE $0xc0 // incq %r8 - QUAD $0x0001ffffff80b949; WORD $0x0000 // movabsq $8589934464, %r9 - WORD $0x214d; BYTE $0xc1 // andq %r8, %r9 - LONG $0x80518d49 // leaq $-128(%r9), %rdx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - LONG $0x07efc148 // shrq $7, %rdi - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0xfe89 // movl %edi, %esi - WORD $0xe683; BYTE $0x03 // andl $3, %esi - LONG $0x80fa8148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rdx - LONG $0x006e830f; WORD $0x0000 // jae LBB1_86, $110(%rip) - WORD $0xd231 // xorl %edx, %edx - LONG $0x00010de9; BYTE $0x00 // jmp LBB1_88, $269(%rip) - -LBB1_101: - WORD $0xe683; BYTE $0xfc // andl $-4, %esi - WORD $0xf748; BYTE $0xde // negq %rsi - WORD $0xd231 // xorl %edx, %edx - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_102: - LONG $0xfd107c8b // movl $-3(%rax,%rdx), %edi - LONG $0xfe107c89 // movl %edi, $-2(%rax,%rdx) - LONG $0xfcc28348 // addq $-4, %rdx - WORD $0x3948; BYTE $0xd6 // cmpq %rdx, %rsi - LONG $0xffeb850f; WORD $0xffff // jne LBB1_102, $-21(%rip) - WORD $0xf748; BYTE $0xda // negq %rdx - -LBB1_97: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x0027840f; WORD $0x0000 // je LBB1_100, $39(%rip) - WORD $0xf748; BYTE $0xda // negq %rdx - WORD $0xf748; BYTE $0xd9 // negq %rcx - WORD $0xf631 // xorl %esi, %esi - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_99: - LONG $0x323c8d48 // leaq (%rdx,%rsi), %rdi - LONG $0x381cb60f // movzbl (%rax,%rdi), %ebx - LONG $0x01385c88 // movb %bl, $1(%rax,%rdi) - WORD $0xff48; BYTE $0xce // decq %rsi - WORD $0x3948; BYTE $0xf1 // cmpq %rsi, %rcx - LONG $0xffe8850f; WORD $0xffff // jne LBB1_99, $-24(%rip) - -LBB1_100: - WORD $0x6349; BYTE $0xcd // movslq %r13d, %rcx - LONG $0x0f04c641; BYTE $0x2e // movb $46, (%r15,%rcx) - LONG $0x02c08348 // addq $2, %rax - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - LONG $0x000104e9; BYTE $0x00 // jmp LBB1_115, $260(%rip) - -LBB1_86: - LONG $0xfce78348 // andq $-4, %rdi - WORD $0xf748; BYTE $0xdf // negq %rdi - WORD $0xd231 // xorl %edx, %edx - QUAD $0xfffff5f3056ffdc5 // vmovdqa $-2573(%rip), %ymm0 /* LCPI1_0(%rip) */ - -LBB1_87: - LONG $0x447ffec5; WORD $0x0110 // vmovdqu %ymm0, $1(%rax,%rdx) - LONG $0x447ffec5; WORD $0x2110 // vmovdqu %ymm0, $33(%rax,%rdx) - LONG $0x447ffec5; WORD $0x4110 // vmovdqu %ymm0, $65(%rax,%rdx) - LONG $0x447ffec5; WORD $0x6110 // vmovdqu %ymm0, $97(%rax,%rdx) - QUAD $0x00008110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $129(%rax,%rdx) - QUAD $0x0000a110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $161(%rax,%rdx) - QUAD $0x0000c110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $193(%rax,%rdx) - QUAD $0x0000e110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $225(%rax,%rdx) - QUAD $0x00010110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $257(%rax,%rdx) - QUAD $0x00012110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $289(%rax,%rdx) - QUAD $0x00014110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $321(%rax,%rdx) - QUAD $0x00016110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $353(%rax,%rdx) - QUAD $0x00018110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $385(%rax,%rdx) - QUAD $0x0001a110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $417(%rax,%rdx) - QUAD $0x0001c110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $449(%rax,%rdx) - QUAD $0x0001e110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $481(%rax,%rdx) - LONG $0x00c28148; WORD $0x0002; BYTE $0x00 // addq $512, %rdx - LONG $0x04c78348 // addq $4, %rdi - LONG $0xff6b850f; WORD $0xffff // jne LBB1_87, $-149(%rip) - -LBB1_88: - LONG $0x085c8d4a; BYTE $0x01 // leaq $1(%rax,%r9), %rbx - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0030840f; WORD $0x0000 // je LBB1_91, $48(%rip) - LONG $0x10448d48; BYTE $0x61 // leaq $97(%rax,%rdx), %rax - WORD $0xf748; BYTE $0xde // negq %rsi - QUAD $0xfffff540056ffdc5 // vmovdqa $-2752(%rip), %ymm0 /* LCPI1_0(%rip) */ - -LBB1_90: - LONG $0x407ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rax) - LONG $0x407ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rax) - LONG $0x407ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rax) - LONG $0x007ffec5 // vmovdqu %ymm0, (%rax) - LONG $0x80e88348 // subq $-128, %rax - WORD $0xff48; BYTE $0xc6 // incq %rsi - LONG $0xffe0850f; WORD $0xffff // jne LBB1_90, $-32(%rip) - -LBB1_91: - WORD $0x8944; BYTE $0xca // movl %r9d, %edx - WORD $0x394d; BYTE $0xc8 // cmpq %r9, %r8 - LONG $0x0014840f; WORD $0x0000 // je LBB1_115, $20(%rip) - LONG $0x90909090 // .p2align 4, 0x90 - -LBB1_92: - WORD $0x03c6; BYTE $0x30 // movb $48, (%rbx) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0xc2ff // incl %edx - WORD $0xca39 // cmpl %ecx, %edx - LONG $0xfff08c0f; WORD $0xffff // jl LBB1_92, $-16(%rip) - -LBB1_115: - WORD $0x2944; BYTE $0xf3 // subl %r14d, %ebx - -LBB1_116: - WORD $0xd889 // movl %ebx, %eax - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB1_49: - LONG $0x00ff8148; WORD $0x9aca; BYTE $0x3b // cmpq $1000000000, %rdi - LONG $0x00000aba; BYTE $0x00 // movl $10, %edx - LONG $0xfff7e6e9; BYTE $0xff // jmp LBB1_50, $-2074(%rip) - -LBB1_1: - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0xffffd4e9; BYTE $0xff // jmp LBB1_116, $-44(%rip) - -LBB1_5: - LONG $0xfffbcebb; BYTE $0xff // movl $-1074, %ebx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - LONG $0xfff57ae9; BYTE $0xff // jmp LBB1_6, $-2694(%rip) - -LBB1_26: - LONG $0x00ff8148; WORD $0x9aca; BYTE $0x3b // cmpq $1000000000, %rdi - LONG $0x00000aba; BYTE $0x00 // movl $10, %edx - LONG $0xfffa30e9; BYTE $0xff // jmp LBB1_27, $-1488(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_format_integer: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - BYTE $0x53 // pushq %rbx - WORD $0x8941; BYTE $0xd0 // movl %edx, %r8d - WORD $0x0149; BYTE $0xf0 // addq %rsi, %r8 - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x20e8c148 // shrq $32, %rax - LONG $0x0016850f; WORD $0x0000 // jne LBB2_2, $22(%rip) - WORD $0x894d; BYTE $0xc3 // movq %r8, %r11 - LONG $0x2710ff81; WORD $0x0000 // cmpl $10000, %edi - LONG $0x00c3830f; WORD $0x0000 // jae LBB2_5, $195(%rip) - -LBB2_4: - WORD $0xfa89 // movl %edi, %edx - LONG $0x00011ae9; BYTE $0x00 // jmp LBB2_7, $282(%rip) - -LBB2_2: - QUAD $0x77118461cefdb948; WORD $0xabcc // movabsq $-6067343680855748867, %rcx - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - WORD $0xf748; BYTE $0xe1 // mulq %rcx - LONG $0x1aeac148 // shrq $26, %rdx - LONG $0x1f00ca69; WORD $0xfa0a // imull $-100000000, %edx, %ecx - WORD $0xf901 // addl %edi, %ecx - LONG $0x1759b941; WORD $0xd1b7 // movl $3518437209, %r9d - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - LONG $0xc1af0f49 // imulq %r9, %rax - LONG $0x2de8c148 // shrq $45, %rax - LONG $0x2710f869; WORD $0x0000 // imull $10000, %eax, %edi - WORD $0xf929 // subl %edi, %ecx - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0xf9af0f49 // imulq %r9, %rdi - LONG $0x2defc148 // shrq $45, %rdi - LONG $0x2710ff69; WORD $0x0000 // imull $10000, %edi, %edi - WORD $0xf829 // subl %edi, %eax - WORD $0xb70f; BYTE $0xf9 // movzwl %cx, %edi - WORD $0xefc1; BYTE $0x02 // shrl $2, %edi - LONG $0x7bcf6944; WORD $0x0014; BYTE $0x00 // imull $5243, %edi, %r9d - LONG $0x11e9c141 // shrl $17, %r9d - LONG $0x64f96b41 // imull $100, %r9d, %edi - WORD $0xf929 // subl %edi, %ecx - LONG $0xd1b70f44 // movzwl %cx, %r10d - WORD $0xb70f; BYTE $0xf8 // movzwl %ax, %edi - WORD $0xefc1; BYTE $0x02 // shrl $2, %edi - LONG $0x147bff69; WORD $0x0000 // imull $5243, %edi, %edi - WORD $0xefc1; BYTE $0x11 // shrl $17, %edi - WORD $0xcf6b; BYTE $0x64 // imull $100, %edi, %ecx - WORD $0xc829 // subl %ecx, %eax - LONG $0xd8b70f44 // movzwl %ax, %r11d - LONG $0x700d8d48; WORD $0x00af; BYTE $0x00 // leaq $44912(%rip), %rcx /* _Digits(%rip) */ - LONG $0x04b70f42; BYTE $0x51 // movzwl (%rcx,%r10,2), %eax - LONG $0x40894166; BYTE $0xfe // movw %ax, $-2(%r8) - LONG $0x04b70f42; BYTE $0x49 // movzwl (%rcx,%r9,2), %eax - LONG $0x40894166; BYTE $0xfc // movw %ax, $-4(%r8) - LONG $0x04b70f42; BYTE $0x59 // movzwl (%rcx,%r11,2), %eax - LONG $0x40894166; BYTE $0xfa // movw %ax, $-6(%r8) - LONG $0xf8588d4d // leaq $-8(%r8), %r11 - LONG $0x790cb70f // movzwl (%rcx,%rdi,2), %ecx - LONG $0x48894166; BYTE $0xf8 // movw %cx, $-8(%r8) - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - LONG $0x2710ff81; WORD $0x0000 // cmpl $10000, %edi - LONG $0xff3d820f; WORD $0xffff // jb LBB2_4, $-195(%rip) - -LBB2_5: - LONG $0x1759b941; WORD $0xd1b7 // movl $3518437209, %r9d - LONG $0x29158d4c; WORD $0x00af; BYTE $0x00 // leaq $44841(%rip), %r10 /* _Digits(%rip) */ - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB2_6: - WORD $0xfa89 // movl %edi, %edx - LONG $0xd1af0f49 // imulq %r9, %rdx - LONG $0x2deac148 // shrq $45, %rdx - LONG $0xd8f0ca69; WORD $0xffff // imull $-10000, %edx, %ecx - WORD $0xf901 // addl %edi, %ecx - LONG $0x1fc16948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rax - LONG $0x25e8c148 // shrq $37, %rax - WORD $0xd86b; BYTE $0x64 // imull $100, %eax, %ebx - WORD $0xd929 // subl %ebx, %ecx - LONG $0x0cb70f41; BYTE $0x4a // movzwl (%r10,%rcx,2), %ecx - LONG $0x4b894166; BYTE $0xfe // movw %cx, $-2(%r11) - LONG $0x04b70f41; BYTE $0x42 // movzwl (%r10,%rax,2), %eax - LONG $0x43894166; BYTE $0xfc // movw %ax, $-4(%r11) - LONG $0xfcc38349 // addq $-4, %r11 - LONG $0xe0ffff81; WORD $0x05f5 // cmpl $99999999, %edi - WORD $0xd789 // movl %edx, %edi - LONG $0xffb8870f; WORD $0xffff // ja LBB2_6, $-72(%rip) - -LBB2_7: - WORD $0xfa83; BYTE $0x64 // cmpl $100, %edx - LONG $0x002d820f; WORD $0x0000 // jb LBB2_9, $45(%rip) - WORD $0xb70f; BYTE $0xc2 // movzwl %dx, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx - WORD $0xca29 // subl %ecx, %edx - WORD $0xb70f; BYTE $0xca // movzwl %dx, %ecx - LONG $0xb1158d48; WORD $0x00ae; BYTE $0x00 // leaq $44721(%rip), %rdx /* _Digits(%rip) */ - LONG $0x4a0cb70f // movzwl (%rdx,%rcx,2), %ecx - LONG $0x4b894166; BYTE $0xfe // movw %cx, $-2(%r11) - LONG $0xfec38349 // addq $-2, %r11 - WORD $0xc289 // movl %eax, %edx - -LBB2_9: - WORD $0xfa83; BYTE $0x0a // cmpl $10, %edx - LONG $0x0018820f; WORD $0x0000 // jb LBB2_11, $24(%rip) - WORD $0xd089 // movl %edx, %eax - LONG $0x900d8d48; WORD $0x00ae; BYTE $0x00 // leaq $44688(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x43894166; BYTE $0xfe // movw %ax, $-2(%r11) - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB2_11: - WORD $0xc280; BYTE $0x30 // addb $48, %dl - WORD $0x1688 // movb %dl, (%rsi) - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_i64toa: - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0005880f; WORD $0x0000 // js LBB3_1, $5(%rip) - LONG $0x000062e9; BYTE $0x00 // jmp _u64toa, $98(%rip) - -LBB3_1: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x07c6; BYTE $0x2d // movb $45, (%rdi) - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0xf748; BYTE $0xde // negq %rsi - LONG $0x000050e8; BYTE $0x00 // callq _u64toa, $80(%rip) - WORD $0xc0ff // incl %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; LONG $0x00000000 // .p2align 4, 0x00 - -LCPI4_0: - QUAD $0x00000000d1b71759 // .quad 3518437209 - QUAD $0x00000000d1b71759 // .quad 3518437209 - -LCPI4_3: - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - -LCPI4_4: - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - - // .p2align 3, 0x00 -LCPI4_1: - QUAD $0x80003334147b20c5 // .quad -9223315738079846203 - -LCPI4_2: - QUAD $0x8000200008000080 // .quad -9223336852348469120 - - // .p2align 4, 0x90 -_u64toa: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - LONG $0x0ffe8148; WORD $0x0027; BYTE $0x00 // cmpq $9999, %rsi - LONG $0x00a2870f; WORD $0x0000 // ja LBB4_8, $162(%rip) - WORD $0xb70f; BYTE $0xc6 // movzwl %si, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - LONG $0x00148d48 // leaq (%rax,%rax), %rdx - WORD $0xc06b; BYTE $0x64 // imull $100, %eax, %eax - WORD $0xf189 // movl %esi, %ecx - WORD $0xc129 // subl %eax, %ecx - WORD $0xb70f; BYTE $0xc1 // movzwl %cx, %eax - WORD $0x0148; BYTE $0xc0 // addq %rax, %rax - LONG $0x03e8fe81; WORD $0x0000 // cmpl $1000, %esi - LONG $0x0016820f; WORD $0x0000 // jb LBB4_3, $22(%rip) - LONG $0xbc0d8d48; WORD $0x00ad; BYTE $0x00 // leaq $44476(%rip), %rcx /* _Digits(%rip) */ - WORD $0x0c8a; BYTE $0x0a // movb (%rdx,%rcx), %cl - WORD $0x0f88 // movb %cl, (%rdi) - LONG $0x000001b9; BYTE $0x00 // movl $1, %ecx - LONG $0x00000be9; BYTE $0x00 // jmp LBB4_4, $11(%rip) - -LBB4_3: - WORD $0xc931 // xorl %ecx, %ecx - WORD $0xfe83; BYTE $0x64 // cmpl $100, %esi - LONG $0x0045820f; WORD $0x0000 // jb LBB4_5, $69(%rip) - -LBB4_4: - WORD $0xb70f; BYTE $0xd2 // movzwl %dx, %edx - LONG $0x01ca8348 // orq $1, %rdx - LONG $0x94358d48; WORD $0x00ad; BYTE $0x00 // leaq $44436(%rip), %rsi /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x32 // movb (%rdx,%rsi), %dl - WORD $0xce89 // movl %ecx, %esi - WORD $0xc1ff // incl %ecx - WORD $0x1488; BYTE $0x37 // movb %dl, (%rdi,%rsi) - -LBB4_6: - LONG $0x83158d48; WORD $0x00ad; BYTE $0x00 // leaq $44419(%rip), %rdx /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x10 // movb (%rax,%rdx), %dl - WORD $0xce89 // movl %ecx, %esi - WORD $0xc1ff // incl %ecx - WORD $0x1488; BYTE $0x37 // movb %dl, (%rdi,%rsi) - -LBB4_7: - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - LONG $0x01c88348 // orq $1, %rax - LONG $0x6b158d48; WORD $0x00ad; BYTE $0x00 // leaq $44395(%rip), %rdx /* _Digits(%rip) */ - WORD $0x048a; BYTE $0x10 // movb (%rax,%rdx), %al - WORD $0xca89 // movl %ecx, %edx - WORD $0xc1ff // incl %ecx - WORD $0x0488; BYTE $0x17 // movb %al, (%rdi,%rdx) - WORD $0xc889 // movl %ecx, %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB4_5: - WORD $0xc931 // xorl %ecx, %ecx - WORD $0xfe83; BYTE $0x0a // cmpl $10, %esi - LONG $0xffc8830f; WORD $0xffff // jae LBB4_6, $-56(%rip) - LONG $0xffffd4e9; BYTE $0xff // jmp LBB4_7, $-44(%rip) - -LBB4_8: - LONG $0xfffe8148; WORD $0xf5e0; BYTE $0x05 // cmpq $99999999, %rsi - LONG $0x011e870f; WORD $0x0000 // ja LBB4_16, $286(%rip) - WORD $0xf089 // movl %esi, %eax - LONG $0xb71759ba; BYTE $0xd1 // movl $3518437209, %edx - LONG $0xd0af0f48 // imulq %rax, %rdx - LONG $0x2deac148 // shrq $45, %rdx - LONG $0x10c26944; WORD $0x0027; BYTE $0x00 // imull $10000, %edx, %r8d - WORD $0xf189 // movl %esi, %ecx - WORD $0x2944; BYTE $0xc1 // subl %r8d, %ecx - LONG $0x83d0694c; WORD $0x1bde; BYTE $0x43 // imulq $1125899907, %rax, %r10 - LONG $0x31eac149 // shrq $49, %r10 - LONG $0xfee28341 // andl $-2, %r10d - WORD $0xb70f; BYTE $0xc2 // movzwl %dx, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - WORD $0xc06b; BYTE $0x64 // imull $100, %eax, %eax - WORD $0xc229 // subl %eax, %edx - LONG $0xcab70f44 // movzwl %dx, %r9d - WORD $0x014d; BYTE $0xc9 // addq %r9, %r9 - WORD $0xb70f; BYTE $0xc1 // movzwl %cx, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - LONG $0x00048d4c // leaq (%rax,%rax), %r8 - WORD $0xc06b; BYTE $0x64 // imull $100, %eax, %eax - WORD $0xc129 // subl %eax, %ecx - LONG $0xd9b70f44 // movzwl %cx, %r11d - WORD $0x014d; BYTE $0xdb // addq %r11, %r11 - LONG $0x9680fe81; WORD $0x0098 // cmpl $10000000, %esi - LONG $0x0017820f; WORD $0x0000 // jb LBB4_11, $23(%rip) - LONG $0xc9058d48; WORD $0x00ac; BYTE $0x00 // leaq $44233(%rip), %rax /* _Digits(%rip) */ - LONG $0x02048a41 // movb (%r10,%rax), %al - WORD $0x0788 // movb %al, (%rdi) - LONG $0x000001b9; BYTE $0x00 // movl $1, %ecx - LONG $0x00000ee9; BYTE $0x00 // jmp LBB4_12, $14(%rip) - -LBB4_11: - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x4240fe81; WORD $0x000f // cmpl $1000000, %esi - LONG $0x0076820f; WORD $0x0000 // jb LBB4_13, $118(%rip) - -LBB4_12: - WORD $0x8944; BYTE $0xd0 // movl %r10d, %eax - LONG $0x01c88348 // orq $1, %rax - LONG $0x9d358d48; WORD $0x00ac; BYTE $0x00 // leaq $44189(%rip), %rsi /* _Digits(%rip) */ - WORD $0x048a; BYTE $0x30 // movb (%rax,%rsi), %al - WORD $0xce89 // movl %ecx, %esi - WORD $0xc1ff // incl %ecx - WORD $0x0488; BYTE $0x37 // movb %al, (%rdi,%rsi) - -LBB4_14: - LONG $0x8c058d48; WORD $0x00ac; BYTE $0x00 // leaq $44172(%rip), %rax /* _Digits(%rip) */ - LONG $0x01048a41 // movb (%r9,%rax), %al - WORD $0xce89 // movl %ecx, %esi - WORD $0xc1ff // incl %ecx - WORD $0x0488; BYTE $0x37 // movb %al, (%rdi,%rsi) - -LBB4_15: - LONG $0xc1b70f41 // movzwl %r9w, %eax - LONG $0x01c88348 // orq $1, %rax - LONG $0x72358d48; WORD $0x00ac; BYTE $0x00 // leaq $44146(%rip), %rsi /* _Digits(%rip) */ - WORD $0x048a; BYTE $0x30 // movb (%rax,%rsi), %al - WORD $0xca89 // movl %ecx, %edx - WORD $0x0488; BYTE $0x17 // movb %al, (%rdi,%rdx) - LONG $0x30048a41 // movb (%r8,%rsi), %al - LONG $0x01174488 // movb %al, $1(%rdi,%rdx) - LONG $0xc0b70f41 // movzwl %r8w, %eax - LONG $0x01c88348 // orq $1, %rax - WORD $0x048a; BYTE $0x30 // movb (%rax,%rsi), %al - LONG $0x02174488 // movb %al, $2(%rdi,%rdx) - LONG $0x33048a41 // movb (%r11,%rsi), %al - LONG $0x03174488 // movb %al, $3(%rdi,%rdx) - LONG $0xc3b70f41 // movzwl %r11w, %eax - LONG $0x01c88348 // orq $1, %rax - WORD $0x048a; BYTE $0x30 // movb (%rax,%rsi), %al - WORD $0xc183; BYTE $0x05 // addl $5, %ecx - LONG $0x04174488 // movb %al, $4(%rdi,%rdx) - WORD $0xc889 // movl %ecx, %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB4_13: - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x86a0fe81; WORD $0x0001 // cmpl $100000, %esi - LONG $0xff94830f; WORD $0xffff // jae LBB4_14, $-108(%rip) - LONG $0xffffa1e9; BYTE $0xff // jmp LBB4_15, $-95(%rip) - -LBB4_16: - QUAD $0x86f26fc0ffffb848; WORD $0x0023 // movabsq $9999999999999999, %rax - WORD $0x3948; BYTE $0xc6 // cmpq %rax, %rsi - LONG $0x0105870f; WORD $0x0000 // ja LBB4_18, $261(%rip) - QUAD $0x77118461cefdb948; WORD $0xabcc // movabsq $-6067343680855748867, %rcx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf748; BYTE $0xe1 // mulq %rcx - LONG $0x1aeac148 // shrq $26, %rdx - LONG $0xe100c269; WORD $0x05f5 // imull $100000000, %edx, %eax - WORD $0xc629 // subl %eax, %esi - LONG $0xc26ef9c5 // vmovd %edx, %xmm0 - QUAD $0xfffffda70d6ff9c5 // vmovdqa $-601(%rip), %xmm1 /* LCPI4_0(%rip) */ - LONG $0xd1f4f9c5 // vpmuludq %xmm1, %xmm0, %xmm2 - LONG $0xd273e9c5; BYTE $0x2d // vpsrlq $45, %xmm2, %xmm2 - LONG $0x002710b8; BYTE $0x00 // movl $10000, %eax - LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq %rax, %xmm3 - LONG $0xe3f4e9c5 // vpmuludq %xmm3, %xmm2, %xmm4 - LONG $0xc4faf9c5 // vpsubd %xmm4, %xmm0, %xmm0 - LONG $0xc061e9c5 // vpunpcklwd %xmm0, %xmm2, %xmm0 - LONG $0xf073f9c5; BYTE $0x02 // vpsllq $2, %xmm0, %xmm0 - LONG $0xc070fbc5; BYTE $0x50 // vpshuflw $80, %xmm0, %xmm0 - LONG $0xc070f9c5; BYTE $0x50 // vpshufd $80, %xmm0, %xmm0 - QUAD $0xfffffda11512fbc5 // vmovddup $-607(%rip), %xmm2 /* LCPI4_1(%rip) */ - LONG $0xc2e4f9c5 // vpmulhuw %xmm2, %xmm0, %xmm0 - QUAD $0xfffffd9d2512fbc5 // vmovddup $-611(%rip), %xmm4 /* LCPI4_2(%rip) */ - LONG $0xc4e4f9c5 // vpmulhuw %xmm4, %xmm0, %xmm0 - QUAD $0xfffffd692d6ff9c5 // vmovdqa $-663(%rip), %xmm5 /* LCPI4_3(%rip) */ - LONG $0xf5d5f9c5 // vpmullw %xmm5, %xmm0, %xmm6 - LONG $0xf673c9c5; BYTE $0x10 // vpsllq $16, %xmm6, %xmm6 - LONG $0xc6f9f9c5 // vpsubw %xmm6, %xmm0, %xmm0 - LONG $0xf66ef9c5 // vmovd %esi, %xmm6 - LONG $0xc9f4c9c5 // vpmuludq %xmm1, %xmm6, %xmm1 - LONG $0xd173f1c5; BYTE $0x2d // vpsrlq $45, %xmm1, %xmm1 - LONG $0xdbf4f1c5 // vpmuludq %xmm3, %xmm1, %xmm3 - LONG $0xdbfac9c5 // vpsubd %xmm3, %xmm6, %xmm3 - LONG $0xcb61f1c5 // vpunpcklwd %xmm3, %xmm1, %xmm1 - LONG $0xf173f1c5; BYTE $0x02 // vpsllq $2, %xmm1, %xmm1 - LONG $0xc970fbc5; BYTE $0x50 // vpshuflw $80, %xmm1, %xmm1 - LONG $0xc970f9c5; BYTE $0x50 // vpshufd $80, %xmm1, %xmm1 - LONG $0xcae4f1c5 // vpmulhuw %xmm2, %xmm1, %xmm1 - LONG $0xcce4f1c5 // vpmulhuw %xmm4, %xmm1, %xmm1 - LONG $0xd5d5f1c5 // vpmullw %xmm5, %xmm1, %xmm2 - LONG $0xf273e9c5; BYTE $0x10 // vpsllq $16, %xmm2, %xmm2 - LONG $0xcaf9f1c5 // vpsubw %xmm2, %xmm1, %xmm1 - LONG $0xc167f9c5 // vpackuswb %xmm1, %xmm0, %xmm0 - QUAD $0xfffffd230dfcf9c5 // vpaddb $-733(%rip), %xmm0, %xmm1 /* LCPI4_4(%rip) */ - LONG $0xd2efe9c5 // vpxor %xmm2, %xmm2, %xmm2 - LONG $0xc274f9c5 // vpcmpeqb %xmm2, %xmm0, %xmm0 - LONG $0xc0d7f9c5 // vpmovmskb %xmm0, %eax - LONG $0x0080000d; BYTE $0x00 // orl $32768, %eax - LONG $0xff7fff35; BYTE $0xff // xorl $-32769, %eax - WORD $0xbc0f; BYTE $0xc0 // bsfl %eax, %eax - LONG $0x000010b9; BYTE $0x00 // movl $16, %ecx - WORD $0xc129 // subl %eax, %ecx - LONG $0x04e0c148 // shlq $4, %rax - LONG $0x78158d48; WORD $0x00d2; BYTE $0x00 // leaq $53880(%rip), %rdx /* _VecShiftShuffles(%rip) */ - LONG $0x0071e2c4; WORD $0x1004 // vpshufb (%rax,%rdx), %xmm1, %xmm0 - LONG $0x077ffac5 // vmovdqu %xmm0, (%rdi) - WORD $0xc889 // movl %ecx, %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB4_18: - QUAD $0x652fb1137857b948; WORD $0x39a5 // movabsq $4153837486827862103, %rcx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf748; BYTE $0xe1 // mulq %rcx - LONG $0x33eac148 // shrq $51, %rdx - QUAD $0x86f26fc10000b848; WORD $0x0023 // movabsq $10000000000000000, %rax - LONG $0xc2af0f48 // imulq %rdx, %rax - WORD $0x2948; BYTE $0xc6 // subq %rax, %rsi - WORD $0xfa83; BYTE $0x09 // cmpl $9, %edx - LONG $0x000f870f; WORD $0x0000 // ja LBB4_20, $15(%rip) - WORD $0xc280; BYTE $0x30 // addb $48, %dl - WORD $0x1788 // movb %dl, (%rdi) - LONG $0x000001b9; BYTE $0x00 // movl $1, %ecx - LONG $0x0000bae9; BYTE $0x00 // jmp LBB4_25, $186(%rip) - -LBB4_20: - WORD $0xfa83; BYTE $0x63 // cmpl $99, %edx - LONG $0x001f870f; WORD $0x0000 // ja LBB4_22, $31(%rip) - WORD $0xd089 // movl %edx, %eax - LONG $0xbb0d8d48; WORD $0x00aa; BYTE $0x00 // leaq $43707(%rip), %rcx /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x41 // movb (%rcx,%rax,2), %dl - LONG $0x0141448a // movb $1(%rcx,%rax,2), %al - WORD $0x1788 // movb %dl, (%rdi) - WORD $0x4788; BYTE $0x01 // movb %al, $1(%rdi) - LONG $0x000002b9; BYTE $0x00 // movl $2, %ecx - LONG $0x000092e9; BYTE $0x00 // jmp LBB4_25, $146(%rip) - -LBB4_22: - WORD $0xd089 // movl %edx, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - LONG $0x03e7fa81; WORD $0x0000 // cmpl $999, %edx - LONG $0x003c870f; WORD $0x0000 // ja LBB4_24, $60(%rip) - WORD $0xc083; BYTE $0x30 // addl $48, %eax - WORD $0x0788 // movb %al, (%rdi) - WORD $0xb70f; BYTE $0xc2 // movzwl %dx, %eax - WORD $0xc189 // movl %eax, %ecx - WORD $0xe9c1; BYTE $0x02 // shrl $2, %ecx - LONG $0x147bc969; WORD $0x0000 // imull $5243, %ecx, %ecx - WORD $0xe9c1; BYTE $0x11 // shrl $17, %ecx - WORD $0xc96b; BYTE $0x64 // imull $100, %ecx, %ecx - WORD $0xc829 // subl %ecx, %eax - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - LONG $0x660d8d48; WORD $0x00aa; BYTE $0x00 // leaq $43622(%rip), %rcx /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x41 // movb (%rcx,%rax,2), %dl - LONG $0x0141448a // movb $1(%rcx,%rax,2), %al - WORD $0x5788; BYTE $0x01 // movb %dl, $1(%rdi) - WORD $0x4788; BYTE $0x02 // movb %al, $2(%rdi) - LONG $0x000003b9; BYTE $0x00 // movl $3, %ecx - LONG $0x00003ce9; BYTE $0x00 // jmp LBB4_25, $60(%rip) - -LBB4_24: - WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx - WORD $0xca29 // subl %ecx, %edx - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - LONG $0x40058d4c; WORD $0x00aa; BYTE $0x00 // leaq $43584(%rip), %r8 /* _Digits(%rip) */ - LONG $0x400c8a41 // movb (%r8,%rax,2), %cl - LONG $0x40448a41; BYTE $0x01 // movb $1(%r8,%rax,2), %al - WORD $0x0f88 // movb %cl, (%rdi) - WORD $0x4788; BYTE $0x01 // movb %al, $1(%rdi) - WORD $0xb70f; BYTE $0xc2 // movzwl %dx, %eax - LONG $0x400c8a41 // movb (%r8,%rax,2), %cl - WORD $0x0148; BYTE $0xc0 // addq %rax, %rax - WORD $0x4f88; BYTE $0x02 // movb %cl, $2(%rdi) - WORD $0xc883; BYTE $0x01 // orl $1, %eax - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - LONG $0x00048a42 // movb (%rax,%r8), %al - WORD $0x4788; BYTE $0x03 // movb %al, $3(%rdi) - LONG $0x000004b9; BYTE $0x00 // movl $4, %ecx - -LBB4_25: - QUAD $0x77118461cefdba48; WORD $0xabcc // movabsq $-6067343680855748867, %rdx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf748; BYTE $0xe2 // mulq %rdx - LONG $0x1aeac148 // shrq $26, %rdx - LONG $0xc26ef9c5 // vmovd %edx, %xmm0 - QUAD $0xfffffbb30d6ff9c5 // vmovdqa $-1101(%rip), %xmm1 /* LCPI4_0(%rip) */ - LONG $0xd1f4f9c5 // vpmuludq %xmm1, %xmm0, %xmm2 - LONG $0xd273e9c5; BYTE $0x2d // vpsrlq $45, %xmm2, %xmm2 - LONG $0x002710b8; BYTE $0x00 // movl $10000, %eax - LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq %rax, %xmm3 - LONG $0xe3f4e9c5 // vpmuludq %xmm3, %xmm2, %xmm4 - LONG $0xc4faf9c5 // vpsubd %xmm4, %xmm0, %xmm0 - LONG $0xc061e9c5 // vpunpcklwd %xmm0, %xmm2, %xmm0 - LONG $0xf073f9c5; BYTE $0x02 // vpsllq $2, %xmm0, %xmm0 - LONG $0xc070fbc5; BYTE $0x50 // vpshuflw $80, %xmm0, %xmm0 - LONG $0xc070f9c5; BYTE $0x50 // vpshufd $80, %xmm0, %xmm0 - QUAD $0xfffffbad1512fbc5 // vmovddup $-1107(%rip), %xmm2 /* LCPI4_1(%rip) */ - LONG $0xc2e4f9c5 // vpmulhuw %xmm2, %xmm0, %xmm0 - QUAD $0xfffffba92512fbc5 // vmovddup $-1111(%rip), %xmm4 /* LCPI4_2(%rip) */ - LONG $0xc4e4f9c5 // vpmulhuw %xmm4, %xmm0, %xmm0 - QUAD $0xfffffb752d6ff9c5 // vmovdqa $-1163(%rip), %xmm5 /* LCPI4_3(%rip) */ - LONG $0xf5d5f9c5 // vpmullw %xmm5, %xmm0, %xmm6 - LONG $0xf673c9c5; BYTE $0x10 // vpsllq $16, %xmm6, %xmm6 - LONG $0xc6f9f9c5 // vpsubw %xmm6, %xmm0, %xmm0 - LONG $0xe100c269; WORD $0x05f5 // imull $100000000, %edx, %eax - WORD $0xc629 // subl %eax, %esi - LONG $0xf66ef9c5 // vmovd %esi, %xmm6 - LONG $0xc9f4c9c5 // vpmuludq %xmm1, %xmm6, %xmm1 - LONG $0xd173f1c5; BYTE $0x2d // vpsrlq $45, %xmm1, %xmm1 - LONG $0xdbf4f1c5 // vpmuludq %xmm3, %xmm1, %xmm3 - LONG $0xdbfac9c5 // vpsubd %xmm3, %xmm6, %xmm3 - LONG $0xcb61f1c5 // vpunpcklwd %xmm3, %xmm1, %xmm1 - LONG $0xf173f1c5; BYTE $0x02 // vpsllq $2, %xmm1, %xmm1 - LONG $0xc970fbc5; BYTE $0x50 // vpshuflw $80, %xmm1, %xmm1 - LONG $0xc970f9c5; BYTE $0x50 // vpshufd $80, %xmm1, %xmm1 - LONG $0xcae4f1c5 // vpmulhuw %xmm2, %xmm1, %xmm1 - LONG $0xcce4f1c5 // vpmulhuw %xmm4, %xmm1, %xmm1 - LONG $0xd5d5f1c5 // vpmullw %xmm5, %xmm1, %xmm2 - LONG $0xf273e9c5; BYTE $0x10 // vpsllq $16, %xmm2, %xmm2 - LONG $0xcaf9f1c5 // vpsubw %xmm2, %xmm1, %xmm1 - LONG $0xc167f9c5 // vpackuswb %xmm1, %xmm0, %xmm0 - QUAD $0xfffffb2705fcf9c5 // vpaddb $-1241(%rip), %xmm0, %xmm0 /* LCPI4_4(%rip) */ - WORD $0xc889 // movl %ecx, %eax - LONG $0x047ffac5; BYTE $0x07 // vmovdqu %xmm0, (%rdi,%rax) - WORD $0xc983; BYTE $0x10 // orl $16, %ecx - WORD $0xc889 // movl %ecx, %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI5_0: - QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - -LCPI5_1: - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - -LCPI5_2: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - - // .p2align 4, 0x90 -_quote: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - WORD $0x8949; BYTE $0xcd // movq %rcx, %r13 - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x8b4c; BYTE $0x31 // movq (%rcx), %r14 - LONG $0x01c0f641 // testb $1, %r8b - LONG $0xcb0d8d48; WORD $0x00d0; BYTE $0x00 // leaq $53451(%rip), %rcx /* __SingleQuoteTab(%rip) */ - LONG $0xc4058d4c; WORD $0x00e0; BYTE $0x00 // leaq $57540(%rip), %r8 /* __DoubleQuoteTab(%rip) */ - LONG $0xc1440f4c // cmoveq %rcx, %r8 - QUAD $0x00000000f50c8d48 // leaq (,%rsi,8), %rcx - WORD $0x3949; BYTE $0xce // cmpq %rcx, %r14 - LONG $0x04328d0f; WORD $0x0000 // jge LBB5_51, $1074(%rip) - WORD $0x894d; BYTE $0xfb // movq %r15, %r11 - WORD $0x8949; BYTE $0xfa // movq %rdi, %r10 - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0414840f; WORD $0x0000 // je LBB5_74, $1044(%rip) - QUAD $0xffffff78056ff9c5 // vmovdqa $-136(%rip), %xmm0 /* LCPI5_0(%rip) */ - QUAD $0xffffff800d6ff9c5 // vmovdqa $-128(%rip), %xmm1 /* LCPI5_1(%rip) */ - QUAD $0xffffff88156ff9c5 // vmovdqa $-120(%rip), %xmm2 /* LCPI5_2(%rip) */ - LONG $0xdb76e1c5 // vpcmpeqd %xmm3, %xmm3, %xmm3 - WORD $0x8949; BYTE $0xfa // movq %rdi, %r10 - WORD $0x894d; BYTE $0xfb // movq %r15, %r11 - LONG $0xd07d894c // movq %r15, $-48(%rbp) - -LBB5_3: - LONG $0x0ff88348 // cmpq $15, %rax - WORD $0x9f0f; BYTE $0xc2 // setg %dl - WORD $0x894d; BYTE $0xf1 // movq %r14, %r9 - WORD $0x894d; BYTE $0xdf // movq %r11, %r15 - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x894d; BYTE $0xd4 // movq %r10, %r12 - LONG $0x10fe8349 // cmpq $16, %r14 - LONG $0x008d8c0f; WORD $0x0000 // jl LBB5_9, $141(%rip) - LONG $0x10f88348 // cmpq $16, %rax - LONG $0x00838c0f; WORD $0x0000 // jl LBB5_9, $131(%rip) - WORD $0x894d; BYTE $0xd4 // movq %r10, %r12 - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0x894d; BYTE $0xdf // movq %r11, %r15 - WORD $0x894c; BYTE $0xf3 // movq %r14, %rbx - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB5_6: - LONG $0x6f7ac1c4; WORD $0x2424 // vmovdqu (%r12), %xmm4 - LONG $0xec64f9c5 // vpcmpgtb %xmm4, %xmm0, %xmm5 - LONG $0xf174d9c5 // vpcmpeqb %xmm1, %xmm4, %xmm6 - LONG $0xfa74d9c5 // vpcmpeqb %xmm2, %xmm4, %xmm7 - LONG $0xf6ebc1c5 // vpor %xmm6, %xmm7, %xmm6 - LONG $0x7f7ac1c4; BYTE $0x27 // vmovdqu %xmm4, (%r15) - LONG $0xe364d9c5 // vpcmpgtb %xmm3, %xmm4, %xmm4 - LONG $0xe4dbd1c5 // vpand %xmm4, %xmm5, %xmm4 - LONG $0xe4ebc9c5 // vpor %xmm4, %xmm6, %xmm4 - LONG $0xccd7f9c5 // vpmovmskb %xmm4, %ecx - WORD $0x8566; BYTE $0xc9 // testw %cx, %cx - LONG $0x011a850f; WORD $0x0000 // jne LBB5_18, $282(%rip) - LONG $0x10c48349 // addq $16, %r12 - LONG $0x10c78349 // addq $16, %r15 - LONG $0xf04e8d48 // leaq $-16(%rsi), %rcx - LONG $0xf04b8d4c // leaq $-16(%rbx), %r9 - LONG $0x1ffe8348 // cmpq $31, %rsi - WORD $0x9f0f; BYTE $0xc2 // setg %dl - LONG $0x20fe8348 // cmpq $32, %rsi - LONG $0x001b8c0f; WORD $0x0000 // jl LBB5_9, $27(%rip) - WORD $0x8948; BYTE $0xce // movq %rcx, %rsi - LONG $0x1ffb8348 // cmpq $31, %rbx - WORD $0x894c; BYTE $0xcb // movq %r9, %rbx - LONG $0xff9b8f0f; WORD $0xffff // jg LBB5_6, $-101(%rip) - QUAD $0x9090909090909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB5_9: - WORD $0xd284 // testb %dl, %dl - LONG $0x006a840f; WORD $0x0000 // je LBB5_13, $106(%rip) - WORD $0x894c; BYTE $0xea // movq %r13, %rdx - LONG $0x6f7ac1c4; WORD $0x2424 // vmovdqu (%r12), %xmm4 - LONG $0xec64f9c5 // vpcmpgtb %xmm4, %xmm0, %xmm5 - LONG $0xf174d9c5 // vpcmpeqb %xmm1, %xmm4, %xmm6 - LONG $0xfa74d9c5 // vpcmpeqb %xmm2, %xmm4, %xmm7 - LONG $0xf6ebc1c5 // vpor %xmm6, %xmm7, %xmm6 - LONG $0xfb64d9c5 // vpcmpgtb %xmm3, %xmm4, %xmm7 - LONG $0xefdbd1c5 // vpand %xmm7, %xmm5, %xmm5 - LONG $0xedebc9c5 // vpor %xmm5, %xmm6, %xmm5 - LONG $0xcdd7f9c5 // vpmovmskb %xmm5, %ecx - LONG $0x0000c981; WORD $0x0001 // orl $65536, %ecx - LONG $0xe9bc0f44 // bsfl %ecx, %r13d - LONG $0x7ef9e1c4; BYTE $0xe1 // vmovq %xmm4, %rcx - WORD $0x394d; BYTE $0xe9 // cmpq %r13, %r9 - LONG $0x00be8d0f; WORD $0x0000 // jge LBB5_19, $190(%rip) - LONG $0x08f98349 // cmpq $8, %r9 - LONG $0x00ff820f; WORD $0x0000 // jb LBB5_22, $255(%rip) - WORD $0x8949; BYTE $0x0f // movq %rcx, (%r15) - LONG $0x246c8d4d; BYTE $0x08 // leaq $8(%r12), %r13 - LONG $0x08c78349 // addq $8, %r15 - LONG $0xf8718d49 // leaq $-8(%r9), %rsi - LONG $0x04fe8348 // cmpq $4, %rsi - LONG $0x00f58d0f; WORD $0x0000 // jge LBB5_23, $245(%rip) - LONG $0x000103e9; BYTE $0x00 // jmp LBB5_24, $259(%rip) - -LBB5_13: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x01458e0f; WORD $0x0000 // jle LBB5_28, $325(%rip) - WORD $0x8948; BYTE $0xca // movq %rcx, %rdx - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x013c8e0f; WORD $0x0000 // jle LBB5_29, $316(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB5_15: - LONG $0x34b60f41; BYTE $0x24 // movzbl (%r12), %esi - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - LONG $0x04e2c148 // shlq $4, %rdx - LONG $0x2d1d8d48; WORD $0x00cf; BYTE $0x00 // leaq $53037(%rip), %rbx /* __SingleQuoteTab(%rip) */ - LONG $0x1a3c8348; BYTE $0x00 // cmpq $0, (%rdx,%rbx) - LONG $0x0082850f; WORD $0x0000 // jne LBB5_21, $130(%rip) - LONG $0xff518d48 // leaq $-1(%rcx), %rdx - WORD $0xff49; BYTE $0xc4 // incq %r12 - WORD $0x8841; BYTE $0x37 // movb %sil, (%r15) - LONG $0x02f98348 // cmpq $2, %rcx - LONG $0x01018c0f; WORD $0x0000 // jl LBB5_29, $257(%rip) - LONG $0xff718d49 // leaq $-1(%r9), %rsi - WORD $0xff49; BYTE $0xc7 // incq %r15 - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - LONG $0x01f98349 // cmpq $1, %r9 - WORD $0x8949; BYTE $0xf1 // movq %rsi, %r9 - LONG $0xffb78f0f; WORD $0xffff // jg LBB5_15, $-73(%rip) - LONG $0x0000e5e9; BYTE $0x00 // jmp LBB5_29, $229(%rip) - -LBB5_18: - WORD $0xb70f; BYTE $0xc9 // movzwl %cx, %ecx - WORD $0x294d; BYTE $0xd4 // subq %r10, %r12 - LONG $0xc9bc0f44 // bsfl %ecx, %r9d - WORD $0x014d; BYTE $0xe1 // addq %r12, %r9 - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0xd07d8b4c // movq $-48(%rbp), %r15 - QUAD $0x000300000001bc49; WORD $0x0000 // movabsq $12884901889, %r12 - LONG $0x0166890f; WORD $0x0000 // jns LBB5_37, $358(%rip) - LONG $0x0004abe9; BYTE $0x00 // jmp LBB5_78, $1195(%rip) - -LBB5_19: - LONG $0x08fd8341 // cmpl $8, %r13d - LONG $0x00da820f; WORD $0x0000 // jb LBB5_30, $218(%rip) - WORD $0x8949; BYTE $0x0f // movq %rcx, (%r15) - LONG $0x24748d49; BYTE $0x08 // leaq $8(%r12), %rsi - LONG $0x08c78349 // addq $8, %r15 - LONG $0xf85d8d49 // leaq $-8(%r13), %rbx - LONG $0x04fb8348 // cmpq $4, %rbx - LONG $0x00d08d0f; WORD $0x0000 // jge LBB5_31, $208(%rip) - LONG $0x0000dce9; BYTE $0x00 // jmp LBB5_32, $220(%rip) - -LBB5_21: - WORD $0x294d; BYTE $0xd4 // subq %r10, %r12 - WORD $0x894d; BYTE $0xe1 // movq %r12, %r9 - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0xd07d8b4c // movq $-48(%rbp), %r15 - QUAD $0x000300000001bc49; WORD $0x0000 // movabsq $12884901889, %r12 - LONG $0x011b890f; WORD $0x0000 // jns LBB5_37, $283(%rip) - LONG $0x000460e9; BYTE $0x00 // jmp LBB5_78, $1120(%rip) - -LBB5_22: - WORD $0x894d; BYTE $0xe5 // movq %r12, %r13 - WORD $0x894c; BYTE $0xce // movq %r9, %rsi - LONG $0x04fe8348 // cmpq $4, %rsi - LONG $0x00138c0f; WORD $0x0000 // jl LBB5_24, $19(%rip) - -LBB5_23: - LONG $0x004d8b41 // movl (%r13), %ecx - WORD $0x8941; BYTE $0x0f // movl %ecx, (%r15) - LONG $0x04c58349 // addq $4, %r13 - LONG $0x04c78349 // addq $4, %r15 - LONG $0xfcc68348 // addq $-4, %rsi - -LBB5_24: - LONG $0x02fe8348 // cmpq $2, %rsi - LONG $0x0023820f; WORD $0x0000 // jb LBB5_25, $35(%rip) - LONG $0x4db70f41; BYTE $0x00 // movzwl (%r13), %ecx - LONG $0x0f894166 // movw %cx, (%r15) - LONG $0x02c58349 // addq $2, %r13 - LONG $0x02c78349 // addq $2, %r15 - LONG $0xfec68348 // addq $-2, %rsi - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x000e850f; WORD $0x0000 // jne LBB5_26, $14(%rip) - LONG $0x000010e9; BYTE $0x00 // jmp LBB5_27, $16(%rip) - -LBB5_25: - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0007840f; WORD $0x0000 // je LBB5_27, $7(%rip) - -LBB5_26: - LONG $0x004d8a41 // movb (%r13), %cl - WORD $0x8841; BYTE $0x0f // movb %cl, (%r15) - -LBB5_27: - WORD $0x294d; BYTE $0xd1 // subq %r10, %r9 - WORD $0x014d; BYTE $0xe1 // addq %r12, %r9 - WORD $0xf749; BYTE $0xd1 // notq %r9 - LONG $0x00008ee9; BYTE $0x00 // jmp LBB5_36, $142(%rip) - -LBB5_28: - WORD $0x8948; BYTE $0xca // movq %rcx, %rdx - -LBB5_29: - WORD $0x294d; BYTE $0xd4 // subq %r10, %r12 - WORD $0xf748; BYTE $0xda // negq %rdx - WORD $0x194d; BYTE $0xc9 // sbbq %r9, %r9 - WORD $0x314d; BYTE $0xe1 // xorq %r12, %r9 - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0xd07d8b4c // movq $-48(%rbp), %r15 - QUAD $0x000300000001bc49; WORD $0x0000 // movabsq $12884901889, %r12 - LONG $0x0082890f; WORD $0x0000 // jns LBB5_37, $130(%rip) - LONG $0x0003c7e9; BYTE $0x00 // jmp LBB5_78, $967(%rip) - -LBB5_30: - WORD $0x894c; BYTE $0xe6 // movq %r12, %rsi - WORD $0x894c; BYTE $0xeb // movq %r13, %rbx - LONG $0x04fb8348 // cmpq $4, %rbx - LONG $0x00118c0f; WORD $0x0000 // jl LBB5_32, $17(%rip) - -LBB5_31: - WORD $0x0e8b // movl (%rsi), %ecx - WORD $0x8941; BYTE $0x0f // movl %ecx, (%r15) - LONG $0x04c68348 // addq $4, %rsi - LONG $0x04c78349 // addq $4, %r15 - LONG $0xfcc38348 // addq $-4, %rbx - -LBB5_32: - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0x0021820f; WORD $0x0000 // jb LBB5_33, $33(%rip) - WORD $0xb70f; BYTE $0x0e // movzwl (%rsi), %ecx - LONG $0x0f894166 // movw %cx, (%r15) - LONG $0x02c68348 // addq $2, %rsi - LONG $0x02c78349 // addq $2, %r15 - LONG $0xfec38348 // addq $-2, %rbx - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x000e850f; WORD $0x0000 // jne LBB5_34, $14(%rip) - LONG $0x00000ee9; BYTE $0x00 // jmp LBB5_35, $14(%rip) - -LBB5_33: - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0005840f; WORD $0x0000 // je LBB5_35, $5(%rip) - -LBB5_34: - WORD $0x0e8a // movb (%rsi), %cl - WORD $0x8841; BYTE $0x0f // movb %cl, (%r15) - -LBB5_35: - WORD $0x294d; BYTE $0xd4 // subq %r10, %r12 - WORD $0x014d; BYTE $0xec // addq %r13, %r12 - WORD $0x894d; BYTE $0xe1 // movq %r12, %r9 - -LBB5_36: - WORD $0x8949; BYTE $0xd5 // movq %rdx, %r13 - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0xd07d8b4c // movq $-48(%rbp), %r15 - QUAD $0x000300000001bc49; WORD $0x0000 // movabsq $12884901889, %r12 - LONG $0x034a880f; WORD $0x0000 // js LBB5_78, $842(%rip) - -LBB5_37: - WORD $0x014d; BYTE $0xca // addq %r9, %r10 - WORD $0x014d; BYTE $0xcb // addq %r9, %r11 - WORD $0x394c; BYTE $0xc8 // cmpq %r9, %rax - LONG $0x00cd840f; WORD $0x0000 // je LBB5_74, $205(%rip) - WORD $0x294d; BYTE $0xce // subq %r9, %r14 - WORD $0x2949; BYTE $0xc1 // subq %rax, %r9 - LONG $0x00001de9; BYTE $0x00 // jmp LBB5_40, $29(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB5_39: - WORD $0xff49; BYTE $0xc2 // incq %r10 - WORD $0x0149; BYTE $0xc3 // addq %rax, %r11 - WORD $0xff49; BYTE $0xc1 // incq %r9 - LONG $0x00a5840f; WORD $0x0000 // je LBB5_74, $165(%rip) - -LBB5_40: - LONG $0x0ab60f41 // movzbl (%r10), %ecx - LONG $0x04e1c148 // shlq $4, %rcx - LONG $0x08348b49 // movq (%r8,%rcx), %rsi - WORD $0xf685 // testl %esi, %esi - LONG $0x0082840f; WORD $0x0000 // je LBB5_48, $130(%rip) - WORD $0x6348; BYTE $0xc6 // movslq %esi, %rax - WORD $0x2949; BYTE $0xc6 // subq %rax, %r14 - LONG $0x02d48c0f; WORD $0x0000 // jl LBB5_75, $724(%rip) - LONG $0x20e6c148 // shlq $32, %rsi - LONG $0x08548d49; BYTE $0x08 // leaq $8(%r8,%rcx), %rdx - WORD $0x394c; BYTE $0xe6 // cmpq %r12, %rsi - LONG $0x002f8c0f; WORD $0x0000 // jl LBB5_44, $47(%rip) - WORD $0x128b // movl (%rdx), %edx - WORD $0x8941; BYTE $0x13 // movl %edx, (%r11) - LONG $0x08548d49; BYTE $0x0c // leaq $12(%r8,%rcx), %rdx - LONG $0x044b8d49 // leaq $4(%r11), %rcx - LONG $0xfc708d48 // leaq $-4(%rax), %rsi - LONG $0x02fe8348 // cmpq $2, %rsi - LONG $0x0023830f; WORD $0x0000 // jae LBB5_45, $35(%rip) - LONG $0x000030e9; BYTE $0x00 // jmp LBB5_46, $48(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB5_44: - WORD $0x894c; BYTE $0xd9 // movq %r11, %rcx - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - LONG $0x02fe8348 // cmpq $2, %rsi - LONG $0x0012820f; WORD $0x0000 // jb LBB5_46, $18(%rip) - -LBB5_45: - WORD $0xb70f; BYTE $0x1a // movzwl (%rdx), %ebx - WORD $0x8966; BYTE $0x19 // movw %bx, (%rcx) - LONG $0x02c28348 // addq $2, %rdx - LONG $0x02c18348 // addq $2, %rcx - LONG $0xfec68348 // addq $-2, %rsi - -LBB5_46: - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0xff65840f; WORD $0xffff // je LBB5_39, $-155(%rip) - WORD $0xb60f; BYTE $0x12 // movzbl (%rdx), %edx - WORD $0x1188 // movb %dl, (%rcx) - LONG $0xffff5be9; BYTE $0xff // jmp LBB5_39, $-165(%rip) - -LBB5_48: - WORD $0x894c; BYTE $0xc8 // movq %r9, %rax - WORD $0xf748; BYTE $0xd8 // negq %rax - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0xfc12850f; WORD $0xffff // jne LBB5_3, $-1006(%rip) - -LBB5_74: - WORD $0x294d; BYTE $0xfb // subq %r15, %r11 - LONG $0x005d894d // movq %r11, (%r13) - WORD $0x2949; BYTE $0xfa // subq %rdi, %r10 - LONG $0x00024de9; BYTE $0x00 // jmp LBB5_76, $589(%rip) - -LBB5_51: - LONG $0x760d8d4c; WORD $0x00ec; BYTE $0x00 // leaq $60534(%rip), %r9 /* __EscTab(%rip) */ - QUAD $0xfffffb4e056ff9c5 // vmovdqa $-1202(%rip), %xmm0 /* LCPI5_0(%rip) */ - QUAD $0xfffffb560d6ff9c5 // vmovdqa $-1194(%rip), %xmm1 /* LCPI5_1(%rip) */ - QUAD $0xfffffb5e156ff9c5 // vmovdqa $-1186(%rip), %xmm2 /* LCPI5_2(%rip) */ - LONG $0xdb76e1c5 // vpcmpeqd %xmm3, %xmm3, %xmm3 - WORD $0x894c; BYTE $0xfb // movq %r15, %rbx - WORD $0x8949; BYTE $0xc2 // movq %rax, %r10 - -LBB5_52: - LONG $0x10fa8349 // cmpq $16, %r10 - LONG $0x005d8c0f; WORD $0x0000 // jl LBB5_57, $93(%rip) - LONG $0x000010b9; BYTE $0x00 // movl $16, %ecx - WORD $0xd231 // xorl %edx, %edx - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB5_54: - LONG $0x246ffac5; BYTE $0x17 // vmovdqu (%rdi,%rdx), %xmm4 - LONG $0xec64f9c5 // vpcmpgtb %xmm4, %xmm0, %xmm5 - LONG $0xf174d9c5 // vpcmpeqb %xmm1, %xmm4, %xmm6 - LONG $0xfa74d9c5 // vpcmpeqb %xmm2, %xmm4, %xmm7 - LONG $0xf6ebc1c5 // vpor %xmm6, %xmm7, %xmm6 - LONG $0x247ffac5; BYTE $0x13 // vmovdqu %xmm4, (%rbx,%rdx) - LONG $0xe364d9c5 // vpcmpgtb %xmm3, %xmm4, %xmm4 - LONG $0xe4dbd1c5 // vpand %xmm4, %xmm5, %xmm4 - LONG $0xe4ebc9c5 // vpor %xmm4, %xmm6, %xmm4 - LONG $0xf4d7f9c5 // vpmovmskb %xmm4, %esi - WORD $0x8566; BYTE $0xf6 // testw %si, %si - LONG $0x0139850f; WORD $0x0000 // jne LBB5_67, $313(%rip) - LONG $0x10c28348 // addq $16, %rdx - LONG $0x0a748d49; BYTE $0xf0 // leaq $-16(%r10,%rcx), %rsi - LONG $0xf0c18348 // addq $-16, %rcx - LONG $0x1ffe8348 // cmpq $31, %rsi - LONG $0xffb68f0f; WORD $0xffff // jg LBB5_54, $-74(%rip) - WORD $0x0148; BYTE $0xd7 // addq %rdx, %rdi - WORD $0x2949; BYTE $0xd2 // subq %rdx, %r10 - WORD $0x0148; BYTE $0xd3 // addq %rdx, %rbx - -LBB5_57: - LONG $0x08fa8349 // cmpq $8, %r10 - LONG $0x00858c0f; WORD $0x0000 // jl LBB5_61, $133(%rip) - WORD $0xb60f; BYTE $0x0f // movzbl (%rdi), %ecx - LONG $0x0cb60f42; BYTE $0x09 // movzbl (%rcx,%r9), %ecx - LONG $0x0157b60f // movzbl $1(%rdi), %edx - LONG $0x14b60f42; BYTE $0x0a // movzbl (%rdx,%r9), %edx - WORD $0xd201 // addl %edx, %edx - WORD $0xca09 // orl %ecx, %edx - LONG $0x024fb60f // movzbl $2(%rdi), %ecx - LONG $0x34b60f42; BYTE $0x09 // movzbl (%rcx,%r9), %esi - WORD $0xe6c1; BYTE $0x02 // shll $2, %esi - LONG $0x034fb60f // movzbl $3(%rdi), %ecx - LONG $0x0cb60f42; BYTE $0x09 // movzbl (%rcx,%r9), %ecx - WORD $0xe1c1; BYTE $0x03 // shll $3, %ecx - WORD $0xf109 // orl %esi, %ecx - WORD $0xd109 // orl %edx, %ecx - WORD $0x8b48; BYTE $0x17 // movq (%rdi), %rdx - WORD $0x8948; BYTE $0x13 // movq %rdx, (%rbx) - WORD $0xc984 // testb %cl, %cl - LONG $0x0131850f; WORD $0x0000 // jne LBB5_71, $305(%rip) - LONG $0x044fb60f // movzbl $4(%rdi), %ecx - LONG $0x0cb60f42; BYTE $0x09 // movzbl (%rcx,%r9), %ecx - LONG $0x0557b60f // movzbl $5(%rdi), %edx - LONG $0x14b60f42; BYTE $0x0a // movzbl (%rdx,%r9), %edx - WORD $0xd201 // addl %edx, %edx - WORD $0xca09 // orl %ecx, %edx - LONG $0x064fb60f // movzbl $6(%rdi), %ecx - LONG $0x34b60f42; BYTE $0x09 // movzbl (%rcx,%r9), %esi - WORD $0xe6c1; BYTE $0x02 // shll $2, %esi - LONG $0x074fb60f // movzbl $7(%rdi), %ecx - LONG $0x0cb60f42; BYTE $0x09 // movzbl (%rcx,%r9), %ecx - WORD $0xe1c1; BYTE $0x03 // shll $3, %ecx - WORD $0xf109 // orl %esi, %ecx - WORD $0xd109 // orl %edx, %ecx - WORD $0xc984 // testb %cl, %cl - LONG $0x0108850f; WORD $0x0000 // jne LBB5_72, $264(%rip) - LONG $0x08c38348 // addq $8, %rbx - LONG $0x08c78348 // addq $8, %rdi - LONG $0xf8c28349 // addq $-8, %r10 - -LBB5_61: - LONG $0x04fa8349 // cmpq $4, %r10 - LONG $0x00498c0f; WORD $0x0000 // jl LBB5_64, $73(%rip) - WORD $0xb60f; BYTE $0x0f // movzbl (%rdi), %ecx - LONG $0x0cb60f42; BYTE $0x09 // movzbl (%rcx,%r9), %ecx - LONG $0x0157b60f // movzbl $1(%rdi), %edx - LONG $0x14b60f42; BYTE $0x0a // movzbl (%rdx,%r9), %edx - WORD $0xd201 // addl %edx, %edx - WORD $0xca09 // orl %ecx, %edx - LONG $0x024fb60f // movzbl $2(%rdi), %ecx - LONG $0x34b60f42; BYTE $0x09 // movzbl (%rcx,%r9), %esi - WORD $0xe6c1; BYTE $0x02 // shll $2, %esi - LONG $0x034fb60f // movzbl $3(%rdi), %ecx - LONG $0x0cb60f42; BYTE $0x09 // movzbl (%rcx,%r9), %ecx - WORD $0xe1c1; BYTE $0x03 // shll $3, %ecx - WORD $0xf109 // orl %esi, %ecx - WORD $0xd109 // orl %edx, %ecx - WORD $0x178b // movl (%rdi), %edx - WORD $0x1389 // movl %edx, (%rbx) - WORD $0xc984 // testb %cl, %cl - LONG $0x00a4850f; WORD $0x0000 // jne LBB5_71, $164(%rip) - LONG $0x04c38348 // addq $4, %rbx - LONG $0x04c78348 // addq $4, %rdi - LONG $0xfcc28349 // addq $-4, %r10 - -LBB5_64: - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x00b98e0f; WORD $0x0000 // jle LBB5_73, $185(%rip) - WORD $0x9090 // .p2align 4, 0x90 - -LBB5_65: - WORD $0xb60f; BYTE $0x0f // movzbl (%rdi), %ecx - LONG $0x093c8042; BYTE $0x00 // cmpb $0, (%rcx,%r9) - LONG $0x0036850f; WORD $0x0000 // jne LBB5_68, $54(%rip) - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0x0b88 // movb %cl, (%rbx) - WORD $0xff48; BYTE $0xc3 // incq %rbx - LONG $0xff4a8d49 // leaq $-1(%r10), %rcx - LONG $0x01fa8349 // cmpq $1, %r10 - WORD $0x8949; BYTE $0xca // movq %rcx, %r10 - LONG $0xffd98f0f; WORD $0xffff // jg LBB5_65, $-39(%rip) - LONG $0x00008be9; BYTE $0x00 // jmp LBB5_73, $139(%rip) - -LBB5_67: - WORD $0xb70f; BYTE $0xce // movzwl %si, %ecx - WORD $0xbc0f; BYTE $0xc9 // bsfl %ecx, %ecx - WORD $0x0148; BYTE $0xcf // addq %rcx, %rdi - WORD $0x0148; BYTE $0xd7 // addq %rdx, %rdi - WORD $0x2949; BYTE $0xca // subq %rcx, %r10 - WORD $0x2949; BYTE $0xd2 // subq %rdx, %r10 - WORD $0x0148; BYTE $0xcb // addq %rcx, %rbx - WORD $0x0148; BYTE $0xd3 // addq %rdx, %rbx - -LBB5_68: - WORD $0x0f8a // movb (%rdi), %cl - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB5_69: - WORD $0x8948; BYTE $0xda // movq %rbx, %rdx - WORD $0xb60f; BYTE $0xc9 // movzbl %cl, %ecx - LONG $0x04e1c148 // shlq $4, %rcx - LONG $0x081c6349 // movslq (%r8,%rcx), %rbx - LONG $0x084c8b49; BYTE $0x08 // movq $8(%r8,%rcx), %rcx - WORD $0x8948; BYTE $0x0a // movq %rcx, (%rdx) - WORD $0x0148; BYTE $0xd3 // addq %rdx, %rbx - LONG $0x02fa8349 // cmpq $2, %r10 - LONG $0x00448c0f; WORD $0x0000 // jl LBB5_73, $68(%rip) - WORD $0xff49; BYTE $0xca // decq %r10 - LONG $0x014fb60f // movzbl $1(%rdi), %ecx - WORD $0xff48; BYTE $0xc7 // incq %rdi - LONG $0x093c8042; BYTE $0x00 // cmpb $0, (%rcx,%r9) - LONG $0xffc8850f; WORD $0xffff // jne LBB5_69, $-56(%rip) - LONG $0xfffe1fe9; BYTE $0xff // jmp LBB5_52, $-481(%rip) - -LBB5_71: - WORD $0xbc0f; BYTE $0xc9 // bsfl %ecx, %ecx - WORD $0x0148; BYTE $0xcf // addq %rcx, %rdi - WORD $0x2949; BYTE $0xca // subq %rcx, %r10 - WORD $0x0148; BYTE $0xcb // addq %rcx, %rbx - LONG $0xffffa6e9; BYTE $0xff // jmp LBB5_68, $-90(%rip) - -LBB5_72: - WORD $0xbc0f; BYTE $0xc9 // bsfl %ecx, %ecx - LONG $0x04518d48 // leaq $4(%rcx), %rdx - LONG $0x0f7c8d48; BYTE $0x04 // leaq $4(%rdi,%rcx), %rdi - WORD $0x2949; BYTE $0xd2 // subq %rdx, %r10 - LONG $0x0b5c8d48; BYTE $0x04 // leaq $4(%rbx,%rcx), %rbx - LONG $0xffff8de9; BYTE $0xff // jmp LBB5_68, $-115(%rip) - -LBB5_73: - WORD $0x294c; BYTE $0xfb // subq %r15, %rbx - LONG $0x005d8949 // movq %rbx, (%r13) - LONG $0x000010e9; BYTE $0x00 // jmp LBB5_77, $16(%rip) - -LBB5_75: - WORD $0x294d; BYTE $0xfb // subq %r15, %r11 - LONG $0x005d894d // movq %r11, (%r13) - WORD $0xf749; BYTE $0xd2 // notq %r10 - WORD $0x0149; BYTE $0xfa // addq %rdi, %r10 - -LBB5_76: - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - -LBB5_77: - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB5_78: - WORD $0x294d; BYTE $0xfb // subq %r15, %r11 - WORD $0x894c; BYTE $0xc8 // movq %r9, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x014c; BYTE $0xd8 // addq %r11, %rax - LONG $0x00458949 // movq %rax, (%r13) - WORD $0x294c; BYTE $0xd7 // subq %r10, %rdi - WORD $0x014c; BYTE $0xcf // addq %r9, %rdi - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0xffffd3e9; BYTE $0xff // jmp LBB5_77, $-45(%rip) - - // .p2align 4, 0x00 -LCPI6_0: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - - // .p2align 4, 0x90 -_unquote: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x28ec8348 // subq $40, %rsp - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x066f840f; WORD $0x0000 // je LBB6_81, $1647(%rip) - WORD $0x8949; BYTE $0xf3 // movq %rsi, %r11 - LONG $0xc84d8948 // movq %rcx, $-56(%rbp) - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - LONG $0xb845894c // movq %r8, $-72(%rbp) - WORD $0x8945; BYTE $0xc2 // movl %r8d, %r10d - LONG $0x01e28341 // andl $1, %r10d - LONG $0xba058d4c; WORD $0x00ea; BYTE $0x00 // leaq $60090(%rip), %r8 /* __UnquoteTab(%rip) */ - QUAD $0xffffffb2056ff9c5 // vmovdqa $-78(%rip), %xmm0 /* LCPI6_0(%rip) */ - WORD $0x8949; BYTE $0xf9 // movq %rdi, %r9 - WORD $0x8949; BYTE $0xf5 // movq %rsi, %r13 - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - -LBB6_2: - LONG $0x5c398041 // cmpb $92, (%r9) - LONG $0x000f850f; WORD $0x0000 // jne LBB6_4, $15(%rip) - WORD $0xf631 // xorl %esi, %esi - LONG $0x0000c8e9; BYTE $0x00 // jmp LBB6_13, $200(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB6_4: - WORD $0x894d; BYTE $0xee // movq %r13, %r14 - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x894d; BYTE $0xcf // movq %r9, %r15 - LONG $0x10fd8349 // cmpq $16, %r13 - LONG $0x00408c0f; WORD $0x0000 // jl LBB6_7, $64(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB6_5: - LONG $0x6f7ac1c4; BYTE $0x0f // vmovdqu (%r15), %xmm1 - LONG $0x097ffac5 // vmovdqu %xmm1, (%rcx) - LONG $0xc874f1c5 // vpcmpeqb %xmm0, %xmm1, %xmm1 - LONG $0xf1d7f9c5 // vpmovmskb %xmm1, %esi - WORD $0x8566; BYTE $0xf6 // testw %si, %si - LONG $0x0060850f; WORD $0x0000 // jne LBB6_12, $96(%rip) - LONG $0x10c78349 // addq $16, %r15 - LONG $0x10c18348 // addq $16, %rcx - LONG $0xf0768d49 // leaq $-16(%r14), %rsi - LONG $0x1ffe8349 // cmpq $31, %r14 - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - LONG $0xffcd8f0f; WORD $0xffff // jg LBB6_5, $-51(%rip) - -LBB6_7: - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x05d3840f; WORD $0x0000 // je LBB6_82, $1491(%rip) - WORD $0xf631 // xorl %esi, %esi - WORD $0x9090 // .p2align 4, 0x90 - -LBB6_9: - LONG $0x1cb60f41; BYTE $0x37 // movzbl (%r15,%rsi), %ebx - WORD $0xfb80; BYTE $0x5c // cmpb $92, %bl - LONG $0x0014840f; WORD $0x0000 // je LBB6_11, $20(%rip) - WORD $0x1c88; BYTE $0x31 // movb %bl, (%rcx,%rsi) - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x3949; BYTE $0xf6 // cmpq %rsi, %r14 - LONG $0xffe3850f; WORD $0xffff // jne LBB6_9, $-29(%rip) - LONG $0x0005ade9; BYTE $0x00 // jmp LBB6_82, $1453(%rip) - -LBB6_11: - WORD $0x0149; BYTE $0xf7 // addq %rsi, %r15 - WORD $0x294d; BYTE $0xcf // subq %r9, %r15 - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0xfffe8348 // cmpq $-1, %rsi - LONG $0x002b850f; WORD $0x0000 // jne LBB6_13, $43(%rip) - LONG $0x000595e9; BYTE $0x00 // jmp LBB6_82, $1429(%rip) - -LBB6_12: - WORD $0xb70f; BYTE $0xce // movzwl %si, %ecx - WORD $0x294d; BYTE $0xcf // subq %r9, %r15 - LONG $0xf1bc0f48 // bsfq %rcx, %rsi - WORD $0x014c; BYTE $0xfe // addq %r15, %rsi - LONG $0xfffe8348 // cmpq $-1, %rsi - LONG $0x057e840f; WORD $0x0000 // je LBB6_82, $1406(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB6_13: - LONG $0x024e8d48 // leaq $2(%rsi), %rcx - WORD $0x2949; BYTE $0xcd // subq %rcx, %r13 - LONG $0x075b880f; WORD $0x0000 // js LBB6_111, $1883(%rip) - LONG $0x314c8d4d; BYTE $0x02 // leaq $2(%r9,%rsi), %r9 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x03f5850f; WORD $0x0000 // jne LBB6_58, $1013(%rip) - -LBB6_15: - WORD $0x0148; BYTE $0xf0 // addq %rsi, %rax - LONG $0x49b60f41; BYTE $0xff // movzbl $-1(%r9), %ecx - LONG $0x010c8a42 // movb (%rcx,%r8), %cl - WORD $0xf980; BYTE $0xff // cmpb $-1, %cl - LONG $0x0020840f; WORD $0x0000 // je LBB6_18, $32(%rip) - WORD $0xc984 // testb %cl, %cl - LONG $0x0600840f; WORD $0x0000 // je LBB6_93, $1536(%rip) - WORD $0x0888 // movb %cl, (%rax) - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0x0003c0e9; BYTE $0x00 // jmp LBB6_57, $960(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB6_18: - LONG $0x03fd8349 // cmpq $3, %r13 - LONG $0x070e8e0f; WORD $0x0000 // jle LBB6_111, $1806(%rip) - WORD $0x8b41; BYTE $0x31 // movl (%r9), %esi - WORD $0xf189 // movl %esi, %ecx - WORD $0xd1f7 // notl %ecx - LONG $0xcfd09e8d; WORD $0xcfcf // leal $-808464432(%rsi), %ebx - LONG $0x8080e181; WORD $0x8080 // andl $-2139062144, %ecx - WORD $0xd985 // testl %ebx, %ecx - LONG $0x050f850f; WORD $0x0000 // jne LBB6_84, $1295(%rip) - LONG $0x19199e8d; WORD $0x1919 // leal $421075225(%rsi), %ebx - WORD $0xf309 // orl %esi, %ebx - LONG $0x8080c3f7; WORD $0x8080 // testl $-2139062144, %ebx - LONG $0x04fb850f; WORD $0x0000 // jne LBB6_84, $1275(%rip) - WORD $0xf389 // movl %esi, %ebx - LONG $0x7f7fe381; WORD $0x7f7f // andl $2139062143, %ebx - LONG $0xc0c0be41; WORD $0xc0c0 // movl $-1061109568, %r14d - WORD $0x2941; BYTE $0xde // subl %ebx, %r14d - LONG $0x46bb8d44; WORD $0x4646; BYTE $0x46 // leal $1179010630(%rbx), %r15d - WORD $0x2141; BYTE $0xce // andl %ecx, %r14d - WORD $0x8545; BYTE $0xfe // testl %r15d, %r14d - LONG $0x04d7850f; WORD $0x0000 // jne LBB6_84, $1239(%rip) - LONG $0xe0e0be41; WORD $0xe0e0 // movl $-522133280, %r14d - WORD $0x2941; BYTE $0xde // subl %ebx, %r14d - LONG $0x3939c381; WORD $0x3939 // addl $960051513, %ebx - WORD $0x2144; BYTE $0xf1 // andl %r14d, %ecx - WORD $0xd985 // testl %ebx, %ecx - LONG $0x04bd850f; WORD $0x0000 // jne LBB6_84, $1213(%rip) - WORD $0xce0f // bswapl %esi - WORD $0xf189 // movl %esi, %ecx - WORD $0xe9c1; BYTE $0x04 // shrl $4, %ecx - WORD $0xd1f7 // notl %ecx - LONG $0x0101e181; WORD $0x0101 // andl $16843009, %ecx - WORD $0x0c8d; BYTE $0xc9 // leal (%rcx,%rcx,8), %ecx - LONG $0x0f0fe681; WORD $0x0f0f // andl $252645135, %esi - WORD $0xce01 // addl %ecx, %esi - WORD $0xf189 // movl %esi, %ecx - WORD $0xe9c1; BYTE $0x04 // shrl $4, %ecx - WORD $0xf109 // orl %esi, %ecx - LONG $0xf9b60f44 // movzbl %cl, %r15d - WORD $0xe9c1; BYTE $0x08 // shrl $8, %ecx - LONG $0xff00e181; WORD $0x0000 // andl $65280, %ecx - WORD $0x0941; BYTE $0xcf // orl %ecx, %r15d - LONG $0xfc758d4d // leaq $-4(%r13), %r14 - LONG $0x80ff8141; WORD $0x0000; BYTE $0x00 // cmpl $128, %r15d - LONG $0x0356820f; WORD $0x0000 // jb LBB6_66, $854(%rip) - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x014b850f; WORD $0x0000 // jne LBB6_38, $331(%rip) - -LBB6_25: - LONG $0x00ff8141; WORD $0x0008; BYTE $0x00 // cmpl $2048, %r15d - LONG $0x034c820f; WORD $0x0000 // jb LBB6_68, $844(%rip) - WORD $0x8944; BYTE $0xf9 // movl %r15d, %ecx - LONG $0xf800e181; WORD $0xffff // andl $-2048, %ecx - LONG $0xd800f981; WORD $0x0000 // cmpl $55296, %ecx - LONG $0x0299850f; WORD $0x0000 // jne LBB6_54, $665(%rip) - LONG $0xffff8141; WORD $0x00db; BYTE $0x00 // cmpl $56319, %r15d - LONG $0x034f870f; WORD $0x0000 // ja LBB6_69, $847(%rip) - LONG $0x06fe8349 // cmpq $6, %r14 - LONG $0x03458c0f; WORD $0x0000 // jl LBB6_69, $837(%rip) - LONG $0x217c8043; WORD $0x5c04 // cmpb $92, $4(%r9,%r12) - LONG $0x0339850f; WORD $0x0000 // jne LBB6_69, $825(%rip) - LONG $0x217c8043; WORD $0x7505 // cmpb $117, $5(%r9,%r12) - LONG $0x032d850f; WORD $0x0000 // jne LBB6_69, $813(%rip) - LONG $0x21748b43; BYTE $0x06 // movl $6(%r9,%r12), %esi - WORD $0xf189 // movl %esi, %ecx - WORD $0xd1f7 // notl %ecx - LONG $0xcfd09e8d; WORD $0xcfcf // leal $-808464432(%rsi), %ebx - LONG $0x8080e181; WORD $0x8080 // andl $-2139062144, %ecx - WORD $0xd985 // testl %ebx, %ecx - LONG $0x04d9850f; WORD $0x0000 // jne LBB6_95, $1241(%rip) - LONG $0x19199e8d; WORD $0x1919 // leal $421075225(%rsi), %ebx - WORD $0xf309 // orl %esi, %ebx - LONG $0x8080c3f7; WORD $0x8080 // testl $-2139062144, %ebx - LONG $0x04c5850f; WORD $0x0000 // jne LBB6_95, $1221(%rip) - WORD $0xf389 // movl %esi, %ebx - LONG $0x7f7fe381; WORD $0x7f7f // andl $2139062143, %ebx - LONG $0xc0d445c7; WORD $0xc0c0; BYTE $0xc0 // movl $-1061109568, $-44(%rbp) - WORD $0x5d29; BYTE $0xd4 // subl %ebx, $-44(%rbp) - LONG $0xb0758948 // movq %rsi, $-80(%rbp) - LONG $0x4646b38d; WORD $0x4646 // leal $1179010630(%rbx), %esi - WORD $0x7589; BYTE $0xc4 // movl %esi, $-60(%rbp) - WORD $0x4d21; BYTE $0xd4 // andl %ecx, $-44(%rbp) - WORD $0x758b; BYTE $0xc4 // movl $-60(%rbp), %esi - WORD $0x7585; BYTE $0xd4 // testl %esi, $-44(%rbp) - LONG $0xb0758b48 // movq $-80(%rbp), %rsi - LONG $0x0493850f; WORD $0x0000 // jne LBB6_95, $1171(%rip) - LONG $0xe0d445c7; WORD $0xe0e0; BYTE $0xe0 // movl $-522133280, $-44(%rbp) - WORD $0x5d29; BYTE $0xd4 // subl %ebx, $-44(%rbp) - LONG $0x3939c381; WORD $0x3939 // addl $960051513, %ebx - WORD $0x4d23; BYTE $0xd4 // andl $-44(%rbp), %ecx - WORD $0xd985 // testl %ebx, %ecx - LONG $0x0478850f; WORD $0x0000 // jne LBB6_95, $1144(%rip) - WORD $0xce0f // bswapl %esi - WORD $0xf189 // movl %esi, %ecx - WORD $0xe9c1; BYTE $0x04 // shrl $4, %ecx - WORD $0xd1f7 // notl %ecx - LONG $0x0101e181; WORD $0x0101 // andl $16843009, %ecx - WORD $0x0c8d; BYTE $0xc9 // leal (%rcx,%rcx,8), %ecx - LONG $0x0f0fe681; WORD $0x0f0f // andl $252645135, %esi - WORD $0xce01 // addl %ecx, %esi - WORD $0xf189 // movl %esi, %ecx - WORD $0xe9c1; BYTE $0x04 // shrl $4, %ecx - WORD $0xf109 // orl %esi, %ecx - WORD $0xce89 // movl %ecx, %esi - WORD $0xeec1; BYTE $0x08 // shrl $8, %esi - LONG $0xff00e681; WORD $0x0000 // andl $65280, %esi - WORD $0xb60f; BYTE $0xd9 // movzbl %cl, %ebx - WORD $0xf309 // orl %esi, %ebx - LONG $0x0000e181; WORD $0x00fc // andl $16515072, %ecx - LONG $0x0000f981; WORD $0x00dc // cmpl $14417920, %ecx - LONG $0x02b1840f; WORD $0x0000 // je LBB6_75, $689(%rip) - LONG $0x02b845f6 // testb $2, $-72(%rbp) - LONG $0x0564840f; WORD $0x0000 // je LBB6_114, $1380(%rip) - LONG $0xfac68349 // addq $-6, %r14 - LONG $0xef00c766; BYTE $0xbf // movw $-16401, (%rax) - LONG $0xbd0240c6 // movb $-67, $2(%rax) - LONG $0x03c08348 // addq $3, %rax - LONG $0x06c48349 // addq $6, %r12 - WORD $0x8941; BYTE $0xdf // movl %ebx, %r15d - WORD $0xfb83; BYTE $0x7f // cmpl $127, %ebx - LONG $0xfec3870f; WORD $0xffff // ja LBB6_25, $-317(%rip) - LONG $0x00015ee9; BYTE $0x00 // jmp LBB6_53, $350(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB6_38: - LONG $0x00ff8141; WORD $0x0008; BYTE $0x00 // cmpl $2048, %r15d - LONG $0x0201820f; WORD $0x0000 // jb LBB6_68, $513(%rip) - WORD $0x8944; BYTE $0xf9 // movl %r15d, %ecx - LONG $0xf800e181; WORD $0xffff // andl $-2048, %ecx - LONG $0xd800f981; WORD $0x0000 // cmpl $55296, %ecx - LONG $0x014e850f; WORD $0x0000 // jne LBB6_54, $334(%rip) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x04be8e0f; WORD $0x0000 // jle LBB6_108, $1214(%rip) - LONG $0x217c8043; WORD $0x5c04 // cmpb $92, $4(%r9,%r12) - LONG $0x022d850f; WORD $0x0000 // jne LBB6_73, $557(%rip) - LONG $0xffff8141; WORD $0x00db; BYTE $0x00 // cmpl $56319, %r15d - LONG $0x01f9870f; WORD $0x0000 // ja LBB6_70, $505(%rip) - LONG $0x07fe8349 // cmpq $7, %r14 - LONG $0x01ef8c0f; WORD $0x0000 // jl LBB6_70, $495(%rip) - LONG $0x217c8043; WORD $0x5c05 // cmpb $92, $5(%r9,%r12) - LONG $0x01e3850f; WORD $0x0000 // jne LBB6_70, $483(%rip) - LONG $0x217c8043; WORD $0x7506 // cmpb $117, $6(%r9,%r12) - LONG $0x01d7850f; WORD $0x0000 // jne LBB6_70, $471(%rip) - LONG $0x21748b43; BYTE $0x07 // movl $7(%r9,%r12), %esi - WORD $0xf189 // movl %esi, %ecx - WORD $0xd1f7 // notl %ecx - LONG $0xcfd09e8d; WORD $0xcfcf // leal $-808464432(%rsi), %ebx - LONG $0x8080e181; WORD $0x8080 // andl $-2139062144, %ecx - WORD $0xd985 // testl %ebx, %ecx - LONG $0x0383850f; WORD $0x0000 // jne LBB6_96, $899(%rip) - LONG $0x19199e8d; WORD $0x1919 // leal $421075225(%rsi), %ebx - WORD $0xf309 // orl %esi, %ebx - LONG $0x8080c3f7; WORD $0x8080 // testl $-2139062144, %ebx - LONG $0x036f850f; WORD $0x0000 // jne LBB6_96, $879(%rip) - WORD $0xf389 // movl %esi, %ebx - LONG $0x7f7fe381; WORD $0x7f7f // andl $2139062143, %ebx - LONG $0xc0d445c7; WORD $0xc0c0; BYTE $0xc0 // movl $-1061109568, $-44(%rbp) - WORD $0x5d29; BYTE $0xd4 // subl %ebx, $-44(%rbp) - LONG $0xb0758948 // movq %rsi, $-80(%rbp) - LONG $0x4646b38d; WORD $0x4646 // leal $1179010630(%rbx), %esi - WORD $0x7589; BYTE $0xc4 // movl %esi, $-60(%rbp) - WORD $0x4d21; BYTE $0xd4 // andl %ecx, $-44(%rbp) - WORD $0x758b; BYTE $0xc4 // movl $-60(%rbp), %esi - WORD $0x7585; BYTE $0xd4 // testl %esi, $-44(%rbp) - LONG $0xb0758b48 // movq $-80(%rbp), %rsi - LONG $0x033d850f; WORD $0x0000 // jne LBB6_96, $829(%rip) - LONG $0xe0d445c7; WORD $0xe0e0; BYTE $0xe0 // movl $-522133280, $-44(%rbp) - WORD $0x5d29; BYTE $0xd4 // subl %ebx, $-44(%rbp) - LONG $0x3939c381; WORD $0x3939 // addl $960051513, %ebx - WORD $0x4d23; BYTE $0xd4 // andl $-44(%rbp), %ecx - WORD $0xd985 // testl %ebx, %ecx - LONG $0x0322850f; WORD $0x0000 // jne LBB6_96, $802(%rip) - WORD $0xce0f // bswapl %esi - WORD $0xf189 // movl %esi, %ecx - WORD $0xe9c1; BYTE $0x04 // shrl $4, %ecx - WORD $0xd1f7 // notl %ecx - LONG $0x0101e181; WORD $0x0101 // andl $16843009, %ecx - WORD $0x0c8d; BYTE $0xc9 // leal (%rcx,%rcx,8), %ecx - LONG $0x0f0fe681; WORD $0x0f0f // andl $252645135, %esi - WORD $0xce01 // addl %ecx, %esi - WORD $0xf189 // movl %esi, %ecx - WORD $0xe9c1; BYTE $0x04 // shrl $4, %ecx - WORD $0xf109 // orl %esi, %ecx - WORD $0xce89 // movl %ecx, %esi - WORD $0xeec1; BYTE $0x08 // shrl $8, %esi - LONG $0xff00e681; WORD $0x0000 // andl $65280, %esi - WORD $0xb60f; BYTE $0xd9 // movzbl %cl, %ebx - WORD $0xf309 // orl %esi, %ebx - LONG $0x0000e181; WORD $0x00fc // andl $16515072, %ecx - LONG $0x0000f981; WORD $0x00dc // cmpl $14417920, %ecx - LONG $0x0162840f; WORD $0x0000 // je LBB6_76, $354(%rip) - LONG $0x02b845f6 // testb $2, $-72(%rbp) - LONG $0x040e840f; WORD $0x0000 // je LBB6_115, $1038(%rip) - LONG $0xf9c68349 // addq $-7, %r14 - LONG $0xef00c766; BYTE $0xbf // movw $-16401, (%rax) - LONG $0xbd0240c6 // movb $-67, $2(%rax) - LONG $0x03c08348 // addq $3, %rax - LONG $0x07c48349 // addq $7, %r12 - WORD $0x8941; BYTE $0xdf // movl %ebx, %r15d - LONG $0x0080fb81; WORD $0x0000 // cmpl $128, %ebx - LONG $0xfeab830f; WORD $0xffff // jae LBB6_38, $-341(%rip) - -LBB6_53: - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - WORD $0x8941; BYTE $0xdf // movl %ebx, %r15d - LONG $0x0000a1e9; BYTE $0x00 // jmp LBB6_67, $161(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB6_54: - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - WORD $0x8944; BYTE $0xf9 // movl %r15d, %ecx - WORD $0xe9c1; BYTE $0x0c // shrl $12, %ecx - WORD $0xc980; BYTE $0xe0 // orb $-32, %cl - WORD $0x0888 // movb %cl, (%rax) - WORD $0x8944; BYTE $0xf9 // movl %r15d, %ecx - WORD $0xe9c1; BYTE $0x06 // shrl $6, %ecx - WORD $0xe180; BYTE $0x3f // andb $63, %cl - WORD $0xc980; BYTE $0x80 // orb $-128, %cl - WORD $0x4888; BYTE $0x01 // movb %cl, $1(%rax) - LONG $0x3fe78041 // andb $63, %r15b - LONG $0x80cf8041 // orb $-128, %r15b - LONG $0x02788844 // movb %r15b, $2(%rax) - -LBB6_55: - LONG $0x03c08348 // addq $3, %rax - -LBB6_56: - WORD $0x894d; BYTE $0xf5 // movq %r14, %r13 - -LBB6_57: - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - LONG $0xfb1c850f; WORD $0xffff // jne LBB6_2, $-1252(%rip) - LONG $0x000350e9; BYTE $0x00 // jmp LBB6_110, $848(%rip) - -LBB6_58: - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x034f840f; WORD $0x0000 // je LBB6_111, $847(%rip) - LONG $0xff798041; BYTE $0x5c // cmpb $92, $-1(%r9) - LONG $0x022d850f; WORD $0x0000 // jne LBB6_94, $557(%rip) - LONG $0x5c398041 // cmpb $92, (%r9) - LONG $0x0026850f; WORD $0x0000 // jne LBB6_65, $38(%rip) - LONG $0x01fd8341 // cmpl $1, %r13d - LONG $0x03308e0f; WORD $0x0000 // jle LBB6_111, $816(%rip) - LONG $0x01498a41 // movb $1(%r9), %cl - WORD $0xf980; BYTE $0x22 // cmpb $34, %cl - LONG $0x0009840f; WORD $0x0000 // je LBB6_64, $9(%rip) - WORD $0xf980; BYTE $0x5c // cmpb $92, %cl - LONG $0x02e2850f; WORD $0x0000 // jne LBB6_106, $738(%rip) - -LBB6_64: - WORD $0xff49; BYTE $0xc1 // incq %r9 - WORD $0xff49; BYTE $0xcd // decq %r13 - -LBB6_65: - WORD $0xff49; BYTE $0xc1 // incq %r9 - WORD $0xff49; BYTE $0xcd // decq %r13 - LONG $0xfffbbce9; BYTE $0xff // jmp LBB6_15, $-1092(%rip) - -LBB6_66: - LONG $0x04c18349 // addq $4, %r9 - -LBB6_67: - WORD $0x8844; BYTE $0x38 // movb %r15b, (%rax) - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0xffff91e9; BYTE $0xff // jmp LBB6_56, $-111(%rip) - -LBB6_68: - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - WORD $0x8944; BYTE $0xf9 // movl %r15d, %ecx - WORD $0xe9c1; BYTE $0x06 // shrl $6, %ecx - WORD $0xc980; BYTE $0xc0 // orb $-64, %cl - WORD $0x0888 // movb %cl, (%rax) - LONG $0x3fe78041 // andb $63, %r15b - LONG $0x80cf8041 // orb $-128, %r15b - LONG $0x01788844 // movb %r15b, $1(%rax) - LONG $0x02c08348 // addq $2, %rax - LONG $0xffff6ce9; BYTE $0xff // jmp LBB6_56, $-148(%rip) - -LBB6_69: - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - LONG $0x00000fe9; BYTE $0x00 // jmp LBB6_71, $15(%rip) - -LBB6_70: - LONG $0x214c8d4f; BYTE $0x05 // leaq $5(%r9,%r12), %r9 - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - LONG $0xfbc58349 // addq $-5, %r13 - WORD $0x894d; BYTE $0xee // movq %r13, %r14 - -LBB6_71: - LONG $0x02b845f6 // testb $2, $-72(%rbp) - LONG $0x0308840f; WORD $0x0000 // je LBB6_117, $776(%rip) - -LBB6_72: - LONG $0xef00c766; BYTE $0xbf // movw $-16401, (%rax) - LONG $0xbd0240c6 // movb $-67, $2(%rax) - LONG $0xffff37e9; BYTE $0xff // jmp LBB6_55, $-201(%rip) - -LBB6_73: - LONG $0x02b845f6 // testb $2, $-72(%rbp) - LONG $0x02fd840f; WORD $0x0000 // je LBB6_118, $765(%rip) - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - LONG $0xffffdee9; BYTE $0xff // jmp LBB6_72, $-34(%rip) - -LBB6_75: - LONG $0x214c8d4f; BYTE $0x0a // leaq $10(%r9,%r12), %r9 - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - LONG $0xf6c58349 // addq $-10, %r13 - LONG $0x00000ce9; BYTE $0x00 // jmp LBB6_77, $12(%rip) - -LBB6_76: - LONG $0x214c8d4f; BYTE $0x0b // leaq $11(%r9,%r12), %r9 - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - LONG $0xf5c58349 // addq $-11, %r13 - -LBB6_77: - LONG $0x0ae7c141 // shll $10, %r15d - QUAD $0xfca024001f8c8d41 // leal $-56613888(%r15,%rbx), %ecx - LONG $0x0000f981; WORD $0x0011 // cmpl $1114112, %ecx - LONG $0x001c820f; WORD $0x0000 // jb LBB6_80, $28(%rip) - LONG $0x02b845f6 // testb $2, $-72(%rbp) - LONG $0x0264840f; WORD $0x0000 // je LBB6_112, $612(%rip) - LONG $0xef00c766; BYTE $0xbf // movw $-16401, (%rax) - LONG $0xbd0240c6 // movb $-67, $2(%rax) - LONG $0x03c08348 // addq $3, %rax - LONG $0xfffed9e9; BYTE $0xff // jmp LBB6_57, $-295(%rip) - -LBB6_80: - WORD $0xce89 // movl %ecx, %esi - WORD $0xeec1; BYTE $0x12 // shrl $18, %esi - LONG $0xf0ce8040 // orb $-16, %sil - WORD $0x8840; BYTE $0x30 // movb %sil, (%rax) - WORD $0xce89 // movl %ecx, %esi - WORD $0xeec1; BYTE $0x0c // shrl $12, %esi - LONG $0x3fe68040 // andb $63, %sil - LONG $0x80ce8040 // orb $-128, %sil - LONG $0x01708840 // movb %sil, $1(%rax) - WORD $0xce89 // movl %ecx, %esi - WORD $0xeec1; BYTE $0x06 // shrl $6, %esi - LONG $0x3fe68040 // andb $63, %sil - LONG $0x80ce8040 // orb $-128, %sil - LONG $0x02708840 // movb %sil, $2(%rax) - WORD $0xe180; BYTE $0x3f // andb $63, %cl - WORD $0xc980; BYTE $0x80 // orb $-128, %cl - WORD $0x4888; BYTE $0x03 // movb %cl, $3(%rax) - LONG $0x04c08348 // addq $4, %rax - LONG $0xfffe99e9; BYTE $0xff // jmp LBB6_57, $-359(%rip) - -LBB6_81: - WORD $0x3145; BYTE $0xed // xorl %r13d, %r13d - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - -LBB6_82: - WORD $0x014c; BYTE $0xe8 // addq %r13, %rax - WORD $0x2948; BYTE $0xd0 // subq %rdx, %rax - -LBB6_83: - LONG $0x28c48348 // addq $40, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB6_84: - WORD $0x894c; BYTE $0xca // movq %r9, %rdx - WORD $0x2948; BYTE $0xfa // subq %rdi, %rdx - LONG $0xc87d8b48 // movq $-56(%rbp), %rdi - WORD $0x8948; BYTE $0x17 // movq %rdx, (%rdi) - WORD $0x8a41; BYTE $0x09 // movb (%r9), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_86, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xffbe870f; WORD $0xffff // ja LBB6_83, $-66(%rip) - -LBB6_86: - LONG $0x014a8d48 // leaq $1(%rdx), %rcx - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - LONG $0x01498a41 // movb $1(%r9), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_88, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xff97870f; WORD $0xffff // ja LBB6_83, $-105(%rip) - -LBB6_88: - LONG $0x024a8d48 // leaq $2(%rdx), %rcx - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - LONG $0x02498a41 // movb $2(%r9), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_90, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xff70870f; WORD $0xffff // ja LBB6_83, $-144(%rip) - -LBB6_90: - LONG $0x034a8d48 // leaq $3(%rdx), %rcx - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - LONG $0x03498a41 // movb $3(%r9), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_92, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xff49870f; WORD $0xffff // ja LBB6_83, $-183(%rip) - -LBB6_92: - LONG $0x04c28348 // addq $4, %rdx - WORD $0x8948; BYTE $0x17 // movq %rdx, (%rdi) - LONG $0xffff3de9; BYTE $0xff // jmp LBB6_83, $-195(%rip) - -LBB6_93: - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x0149; BYTE $0xf9 // addq %rdi, %r9 - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x894c; BYTE $0x08 // movq %r9, (%rax) - LONG $0xfdc0c748; WORD $0xffff; BYTE $0xff // movq $-3, %rax - LONG $0xffff24e9; BYTE $0xff // jmp LBB6_83, $-220(%rip) - -LBB6_94: - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x0149; BYTE $0xf9 // addq %rdi, %r9 - LONG $0x0000dae9; BYTE $0x00 // jmp LBB6_107, $218(%rip) - -LBB6_95: - LONG $0x21748d4b; BYTE $0x04 // leaq $4(%r9,%r12), %rsi - LONG $0x000005e9; BYTE $0x00 // jmp LBB6_97, $5(%rip) - -LBB6_96: - LONG $0x21748d4b; BYTE $0x05 // leaq $5(%r9,%r12), %rsi - -LBB6_97: - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x2948; BYTE $0xfa // subq %rdi, %rdx - LONG $0x02c28348 // addq $2, %rdx - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x8948; BYTE $0x10 // movq %rdx, (%rax) - WORD $0x4e8a; BYTE $0x02 // movb $2(%rsi), %cl - WORD $0x798d; BYTE $0xd0 // leal $-48(%rcx), %edi - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x0aff8040 // cmpb $10, %dil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_99, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xfed3870f; WORD $0xffff // ja LBB6_83, $-301(%rip) - -LBB6_99: - LONG $0x014a8d48 // leaq $1(%rdx), %rcx - LONG $0xc87d8b48 // movq $-56(%rbp), %rdi - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - WORD $0x4e8a; BYTE $0x03 // movb $3(%rsi), %cl - WORD $0x798d; BYTE $0xd0 // leal $-48(%rcx), %edi - LONG $0x0aff8040 // cmpb $10, %dil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_101, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xfea9870f; WORD $0xffff // ja LBB6_83, $-343(%rip) - -LBB6_101: - LONG $0x024a8d48 // leaq $2(%rdx), %rcx - LONG $0xc87d8b48 // movq $-56(%rbp), %rdi - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - WORD $0x4e8a; BYTE $0x04 // movb $4(%rsi), %cl - WORD $0x798d; BYTE $0xd0 // leal $-48(%rcx), %edi - LONG $0x0aff8040 // cmpb $10, %dil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_103, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xfe7f870f; WORD $0xffff // ja LBB6_83, $-385(%rip) - -LBB6_103: - LONG $0x034a8d48 // leaq $3(%rdx), %rcx - LONG $0xc87d8b48 // movq $-56(%rbp), %rdi - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - WORD $0x4e8a; BYTE $0x05 // movb $5(%rsi), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_105, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xfe55870f; WORD $0xffff // ja LBB6_83, $-427(%rip) - -LBB6_105: - LONG $0x04c28348 // addq $4, %rdx - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8948; BYTE $0x11 // movq %rdx, (%rcx) - LONG $0xfffe45e9; BYTE $0xff // jmp LBB6_83, $-443(%rip) - -LBB6_106: - WORD $0x2949; BYTE $0xf9 // subq %rdi, %r9 - WORD $0xff49; BYTE $0xc1 // incq %r9 - -LBB6_107: - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x894c; BYTE $0x08 // movq %r9, (%rax) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xfffe2ce9; BYTE $0xff // jmp LBB6_83, $-468(%rip) - -LBB6_108: - LONG $0x02b845f6 // testb $2, $-72(%rbp) - LONG $0x0015840f; WORD $0x0000 // je LBB6_111, $21(%rip) - LONG $0xef00c766; BYTE $0xbf // movw $-16401, (%rax) - LONG $0xbd0240c6 // movb $-67, $2(%rax) - LONG $0x03c08348 // addq $3, %rax - -LBB6_110: - WORD $0x3145; BYTE $0xed // xorl %r13d, %r13d - LONG $0xfffe07e9; BYTE $0xff // jmp LBB6_82, $-505(%rip) - -LBB6_111: - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x894c; BYTE $0x18 // movq %r11, (%rax) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xfffdfae9; BYTE $0xff // jmp LBB6_83, $-518(%rip) - -LBB6_112: - WORD $0x2949; BYTE $0xf9 // subq %rdi, %r9 - LONG $0xfcc18349 // addq $-4, %r9 - -LBB6_113: - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x894c; BYTE $0x08 // movq %r9, (%rax) - LONG $0xfcc0c748; WORD $0xffff; BYTE $0xff // movq $-4, %rax - LONG $0xfffde0e9; BYTE $0xff // jmp LBB6_83, $-544(%rip) - -LBB6_114: - LONG $0x21448d4b; BYTE $0x0a // leaq $10(%r9,%r12), %rax - LONG $0x000005e9; BYTE $0x00 // jmp LBB6_116, $5(%rip) - -LBB6_115: - LONG $0x21448d4b; BYTE $0x0b // leaq $11(%r9,%r12), %rax - -LBB6_116: - WORD $0x2948; BYTE $0xf8 // subq %rdi, %rax - LONG $0xfcc08348 // addq $-4, %rax - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - LONG $0xfcc0c748; WORD $0xffff; BYTE $0xff // movq $-4, %rax - LONG $0xfffdb7e9; BYTE $0xff // jmp LBB6_83, $-585(%rip) - -LBB6_117: - LONG $0x3a448d49; BYTE $0x04 // leaq $4(%r10,%rdi), %rax - WORD $0x2949; BYTE $0xc1 // subq %rax, %r9 - LONG $0xffffb7e9; BYTE $0xff // jmp LBB6_113, $-73(%rip) - -LBB6_118: - WORD $0x014d; BYTE $0xe1 // addq %r12, %r9 - WORD $0x2949; BYTE $0xf9 // subq %rdi, %r9 - LONG $0xfffface9; BYTE $0xff // jmp LBB6_113, $-84(%rip) - QUAD $0x0000000000000000; WORD $0x0000 // .p2align 4, 0x00 - -LCPI7_0: - QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - -LCPI7_1: - QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - -LCPI7_2: - QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' - -LCPI7_3: - QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' - - // .p2align 4, 0x90 -_html_escape: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x10ec8348 // subq $16, %rsp - LONG $0xc84d8948 // movq %rcx, $-56(%rbp) - WORD $0x8949; BYTE $0xd2 // movq %rdx, %r10 - LONG $0xd0558948 // movq %rdx, $-48(%rbp) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x04618e0f; WORD $0x0000 // jle LBB7_67, $1121(%rip) - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x8b4c; BYTE $0x08 // movq (%rax), %r9 - QUAD $0xffffff89056ff9c5 // vmovdqa $-119(%rip), %xmm0 /* LCPI7_0(%rip) */ - QUAD $0xffffff910d6ff9c5 // vmovdqa $-111(%rip), %xmm1 /* LCPI7_1(%rip) */ - QUAD $0xffffff99156ff9c5 // vmovdqa $-103(%rip), %xmm2 /* LCPI7_2(%rip) */ - QUAD $0xffffffa11d6ff9c5 // vmovdqa $-95(%rip), %xmm3 /* LCPI7_3(%rip) */ - LONG $0x5a1d8d4c; WORD $0x00e2; BYTE $0x00 // leaq $57946(%rip), %r11 /* __HtmlQuoteTab(%rip) */ - WORD $0x8949; BYTE $0xff // movq %rdi, %r15 - LONG $0xd0558b4c // movq $-48(%rbp), %r10 - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB7_2: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x043e8e0f; WORD $0x0000 // jle LBB7_3, $1086(%rip) - LONG $0x0ffe8348 // cmpq $15, %rsi - WORD $0x9f0f; BYTE $0xc3 // setg %bl - WORD $0x894d; BYTE $0xcc // movq %r9, %r12 - WORD $0x894d; BYTE $0xd0 // movq %r10, %r8 - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x894d; BYTE $0xfd // movq %r15, %r13 - LONG $0x10f98349 // cmpq $16, %r9 - LONG $0x008a8c0f; WORD $0x0000 // jl LBB7_11, $138(%rip) - LONG $0x10fe8348 // cmpq $16, %rsi - LONG $0x00808c0f; WORD $0x0000 // jl LBB7_11, $128(%rip) - WORD $0x894d; BYTE $0xfd // movq %r15, %r13 - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x894d; BYTE $0xd0 // movq %r10, %r8 - WORD $0x894c; BYTE $0xc9 // movq %r9, %rcx - LONG $0x90909090 // .p2align 4, 0x90 - -LBB7_7: - LONG $0x6f7ac1c4; WORD $0x0065 // vmovdqu (%r13), %xmm4 - LONG $0xe874d9c5 // vpcmpeqb %xmm0, %xmm4, %xmm5 - LONG $0xf174d9c5 // vpcmpeqb %xmm1, %xmm4, %xmm6 - LONG $0xedebc9c5 // vpor %xmm5, %xmm6, %xmm5 - LONG $0xf2dbd9c5 // vpand %xmm2, %xmm4, %xmm6 - LONG $0xf374c9c5 // vpcmpeqb %xmm3, %xmm6, %xmm6 - LONG $0xeeebd1c5 // vpor %xmm6, %xmm5, %xmm5 - LONG $0x7f7ac1c4; BYTE $0x20 // vmovdqu %xmm4, (%r8) - LONG $0xc5d7f9c5 // vpmovmskb %xmm5, %eax - WORD $0x8566; BYTE $0xc0 // testw %ax, %ax - LONG $0x0130850f; WORD $0x0000 // jne LBB7_8, $304(%rip) - LONG $0x10c58349 // addq $16, %r13 - LONG $0x10c08349 // addq $16, %r8 - LONG $0xf0428d48 // leaq $-16(%rdx), %rax - LONG $0xf0618d4c // leaq $-16(%rcx), %r12 - LONG $0x1ffa8348 // cmpq $31, %rdx - WORD $0x9f0f; BYTE $0xc3 // setg %bl - LONG $0x20fa8348 // cmpq $32, %rdx - LONG $0x001f8c0f; WORD $0x0000 // jl LBB7_11, $31(%rip) - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - LONG $0x1ff98348 // cmpq $31, %rcx - WORD $0x894c; BYTE $0xe1 // movq %r12, %rcx - LONG $0xff9f8f0f; WORD $0xffff // jg LBB7_7, $-97(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB7_11: - WORD $0xdb84 // testb %bl, %bl - LONG $0x0068840f; WORD $0x0000 // je LBB7_12, $104(%rip) - LONG $0x6f7ac1c4; WORD $0x0065 // vmovdqu (%r13), %xmm4 - LONG $0xe874d9c5 // vpcmpeqb %xmm0, %xmm4, %xmm5 - LONG $0xf174d9c5 // vpcmpeqb %xmm1, %xmm4, %xmm6 - LONG $0xedebc9c5 // vpor %xmm5, %xmm6, %xmm5 - LONG $0xf2dbd9c5 // vpand %xmm2, %xmm4, %xmm6 - LONG $0xf374c9c5 // vpcmpeqb %xmm3, %xmm6, %xmm6 - LONG $0xeeebd1c5 // vpor %xmm6, %xmm5, %xmm5 - LONG $0xc5d7f9c5 // vpmovmskb %xmm5, %eax - LONG $0x0100000d; BYTE $0x00 // orl $65536, %eax - LONG $0xf0bc0f44 // bsfl %eax, %r14d - LONG $0x7ef9e1c4; BYTE $0xe0 // vmovq %xmm4, %rax - WORD $0x394d; BYTE $0xf4 // cmpq %r14, %r12 - LONG $0x00ca8d0f; WORD $0x0000 // jge LBB7_15, $202(%rip) - LONG $0x08fc8349 // cmpq $8, %r12 - LONG $0x00f0820f; WORD $0x0000 // jb LBB7_26, $240(%rip) - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0x08758d4d // leaq $8(%r13), %r14 - LONG $0x08c08349 // addq $8, %r8 - LONG $0x24448d49; BYTE $0xf8 // leaq $-8(%r12), %rax - LONG $0x04f88348 // cmpq $4, %rax - LONG $0x00e68d0f; WORD $0x0000 // jge LBB7_29, $230(%rip) - LONG $0x0000f3e9; BYTE $0x00 // jmp LBB7_30, $243(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB7_12: - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x01148e0f; WORD $0x0000 // jle LBB7_13, $276(%rip) - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x010b8e0f; WORD $0x0000 // jle LBB7_40, $267(%rip) - QUAD $0x9090909090909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB7_36: - LONG $0x55b60f41; BYTE $0x00 // movzbl (%r13), %edx - LONG $0x3efa8348 // cmpq $62, %rdx - LONG $0x0014870f; WORD $0x0000 // ja LBB7_37, $20(%rip) - QUAD $0x004000000000b948; WORD $0x5000 // movabsq $5764607797912141824, %rcx - LONG $0xd1a30f48 // btq %rdx, %rcx - LONG $0x0080820f; WORD $0x0000 // jb LBB7_42, $128(%rip) - -LBB7_37: - WORD $0xfa80; BYTE $0xe2 // cmpb $-30, %dl - LONG $0x0077840f; WORD $0x0000 // je LBB7_42, $119(%rip) - LONG $0xff488d48 // leaq $-1(%rax), %rcx - WORD $0xff49; BYTE $0xc5 // incq %r13 - WORD $0x8841; BYTE $0x10 // movb %dl, (%r8) - LONG $0x02f88348 // cmpq $2, %rax - LONG $0x00c08c0f; WORD $0x0000 // jl LBB7_40, $192(%rip) - LONG $0x24548d49; BYTE $0xff // leaq $-1(%r12), %rdx - WORD $0xff49; BYTE $0xc0 // incq %r8 - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - LONG $0x01fc8349 // cmpq $1, %r12 - WORD $0x8949; BYTE $0xd4 // movq %rdx, %r12 - LONG $0xffa88f0f; WORD $0xffff // jg LBB7_36, $-88(%rip) - LONG $0x0000a3e9; BYTE $0x00 // jmp LBB7_40, $163(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB7_8: - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - WORD $0x294d; BYTE $0xfd // subq %r15, %r13 - LONG $0xe0bc0f44 // bsfl %eax, %r12d - WORD $0x014d; BYTE $0xec // addq %r13, %r12 - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x00f3890f; WORD $0x0000 // jns LBB7_46, $243(%rip) - LONG $0x000249e9; BYTE $0x00 // jmp LBB7_45, $585(%rip) - -LBB7_15: - LONG $0x08fe8341 // cmpl $8, %r14d - LONG $0x0095820f; WORD $0x0000 // jb LBB7_16, $149(%rip) - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0x08658d4d // leaq $8(%r13), %r12 - LONG $0x08c08349 // addq $8, %r8 - LONG $0xf8468d49 // leaq $-8(%r14), %rax - LONG $0x04f88348 // cmpq $4, %rax - LONG $0x008c8d0f; WORD $0x0000 // jge LBB7_19, $140(%rip) - LONG $0x00009ae9; BYTE $0x00 // jmp LBB7_20, $154(%rip) - -LBB7_42: - WORD $0x294d; BYTE $0xfd // subq %r15, %r13 - LONG $0x0000b2e9; BYTE $0x00 // jmp LBB7_43, $178(%rip) - -LBB7_26: - WORD $0x894d; BYTE $0xee // movq %r13, %r14 - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - LONG $0x04f88348 // cmpq $4, %rax - LONG $0x00128c0f; WORD $0x0000 // jl LBB7_30, $18(%rip) - -LBB7_29: - WORD $0x8b41; BYTE $0x0e // movl (%r14), %ecx - WORD $0x8941; BYTE $0x08 // movl %ecx, (%r8) - LONG $0x04c68349 // addq $4, %r14 - LONG $0x04c08349 // addq $4, %r8 - LONG $0xfcc08348 // addq $-4, %rax - -LBB7_30: - LONG $0x02f88348 // cmpq $2, %rax - LONG $0x015b830f; WORD $0x0000 // jae LBB7_31, $347(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0006840f; WORD $0x0000 // je LBB7_34, $6(%rip) - -LBB7_33: - WORD $0x8a41; BYTE $0x06 // movb (%r14), %al - WORD $0x8841; BYTE $0x00 // movb %al, (%r8) - -LBB7_34: - WORD $0x294d; BYTE $0xfc // subq %r15, %r12 - WORD $0x014d; BYTE $0xec // addq %r13, %r12 - WORD $0xf749; BYTE $0xd4 // notq %r12 - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x0071890f; WORD $0x0000 // jns LBB7_46, $113(%rip) - LONG $0x0001c7e9; BYTE $0x00 // jmp LBB7_45, $455(%rip) - -LBB7_13: - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - -LBB7_40: - WORD $0x294d; BYTE $0xfd // subq %r15, %r13 - WORD $0xf748; BYTE $0xd9 // negq %rcx - WORD $0x194d; BYTE $0xe4 // sbbq %r12, %r12 - WORD $0x314d; BYTE $0xec // xorq %r13, %r12 - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x0054890f; WORD $0x0000 // jns LBB7_46, $84(%rip) - LONG $0x0001aae9; BYTE $0x00 // jmp LBB7_45, $426(%rip) - -LBB7_16: - WORD $0x894d; BYTE $0xec // movq %r13, %r12 - WORD $0x894c; BYTE $0xf0 // movq %r14, %rax - LONG $0x04f88348 // cmpq $4, %rax - LONG $0x00138c0f; WORD $0x0000 // jl LBB7_20, $19(%rip) - -LBB7_19: - LONG $0x240c8b41 // movl (%r12), %ecx - WORD $0x8941; BYTE $0x08 // movl %ecx, (%r8) - LONG $0x04c48349 // addq $4, %r12 - LONG $0x04c08349 // addq $4, %r8 - LONG $0xfcc08348 // addq $-4, %rax - -LBB7_20: - LONG $0x02f88348 // cmpq $2, %rax - LONG $0x010d830f; WORD $0x0000 // jae LBB7_21, $269(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0007840f; WORD $0x0000 // je LBB7_24, $7(%rip) - -LBB7_23: - LONG $0x24048a41 // movb (%r12), %al - WORD $0x8841; BYTE $0x00 // movb %al, (%r8) - -LBB7_24: - WORD $0x294d; BYTE $0xfd // subq %r15, %r13 - WORD $0x014d; BYTE $0xf5 // addq %r14, %r13 - -LBB7_43: - WORD $0x894d; BYTE $0xec // movq %r13, %r12 - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x015b880f; WORD $0x0000 // js LBB7_45, $347(%rip) - -LBB7_46: - WORD $0x014d; BYTE $0xe7 // addq %r12, %r15 - WORD $0x014d; BYTE $0xe2 // addq %r12, %r10 - WORD $0x294c; BYTE $0xe6 // subq %r12, %rsi - LONG $0x016e8e0f; WORD $0x0000 // jle LBB7_47, $366(%rip) - WORD $0x294d; BYTE $0xe1 // subq %r12, %r9 - WORD $0x8a41; BYTE $0x0f // movb (%r15), %cl - WORD $0xf980; BYTE $0xe2 // cmpb $-30, %cl - LONG $0x00f0840f; WORD $0x0000 // je LBB7_50, $240(%rip) - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - -LBB7_54: - WORD $0xb60f; BYTE $0xd1 // movzbl %cl, %edx - LONG $0x04e2c148 // shlq $4, %rdx - LONG $0x1a0c8b4a // movq (%rdx,%r11), %rcx - WORD $0x634c; BYTE $0xe1 // movslq %ecx, %r12 - WORD $0x294d; BYTE $0xe1 // subq %r12, %r9 - LONG $0x015b8c0f; WORD $0x0000 // jl LBB7_55, $347(%rip) - LONG $0x20e1c148 // shlq $32, %rcx - LONG $0x1a748d4e; BYTE $0x08 // leaq $8(%rdx,%r11), %r14 - QUAD $0x000300000001bb48; WORD $0x0000 // movabsq $12884901889, %rbx - WORD $0x3948; BYTE $0xd9 // cmpq %rbx, %rcx - LONG $0x00238c0f; WORD $0x0000 // jl LBB7_59, $35(%rip) - WORD $0x8b41; BYTE $0x0e // movl (%r14), %ecx - WORD $0x8941; BYTE $0x0a // movl %ecx, (%r10) - LONG $0x1a748d4e; BYTE $0x0c // leaq $12(%rdx,%r11), %r14 - LONG $0x04428d4d // leaq $4(%r10), %r8 - LONG $0x24548d49; BYTE $0xfc // leaq $-4(%r12), %rdx - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0x0015830f; WORD $0x0000 // jae LBB7_62, $21(%rip) - LONG $0x000024e9; BYTE $0x00 // jmp LBB7_63, $36(%rip) - - // .p2align 4, 0x90 -LBB7_59: - WORD $0x894d; BYTE $0xd0 // movq %r10, %r8 - WORD $0x894c; BYTE $0xe2 // movq %r12, %rdx - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0x0014820f; WORD $0x0000 // jb LBB7_63, $20(%rip) - -LBB7_62: - LONG $0x0eb70f41 // movzwl (%r14), %ecx - LONG $0x08894166 // movw %cx, (%r8) - LONG $0x02c68349 // addq $2, %r14 - LONG $0x02c08349 // addq $2, %r8 - LONG $0xfec28348 // addq $-2, %rdx - -LBB7_63: - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0006840f; WORD $0x0000 // je LBB7_65, $6(%rip) - WORD $0x8a41; BYTE $0x0e // movb (%r14), %cl - WORD $0x8841; BYTE $0x08 // movb %cl, (%r8) - -LBB7_65: - WORD $0x014d; BYTE $0xe2 // addq %r12, %r10 - -LBB7_66: - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0xff4e8d48 // leaq $-1(%rsi), %rcx - WORD $0x8949; BYTE $0xc7 // movq %rax, %r15 - LONG $0x01fe8348 // cmpq $1, %rsi - WORD $0x8948; BYTE $0xce // movq %rcx, %rsi - LONG $0xfc938f0f; WORD $0xffff // jg LBB7_2, $-877(%rip) - LONG $0x0000b7e9; BYTE $0x00 // jmp LBB7_67, $183(%rip) - -LBB7_31: - LONG $0x0eb70f41 // movzwl (%r14), %ecx - LONG $0x08894166 // movw %cx, (%r8) - LONG $0x02c68349 // addq $2, %r14 - LONG $0x02c08349 // addq $2, %r8 - LONG $0xfec08348 // addq $-2, %rax - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xfe91850f; WORD $0xffff // jne LBB7_33, $-367(%rip) - LONG $0xfffe92e9; BYTE $0xff // jmp LBB7_34, $-366(%rip) - -LBB7_21: - LONG $0x0cb70f41; BYTE $0x24 // movzwl (%r12), %ecx - LONG $0x08894166 // movw %cx, (%r8) - LONG $0x02c48349 // addq $2, %r12 - LONG $0x02c08349 // addq $2, %r8 - LONG $0xfec08348 // addq $-2, %rax - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xfede850f; WORD $0xffff // jne LBB7_23, $-290(%rip) - LONG $0xfffee0e9; BYTE $0xff // jmp LBB7_24, $-288(%rip) - -LBB7_50: - LONG $0x03fe8348 // cmpq $3, %rsi - LONG $0x00288c0f; WORD $0x0000 // jl LBB7_56, $40(%rip) - LONG $0x017f8041; BYTE $0x80 // cmpb $-128, $1(%r15) - LONG $0x001d850f; WORD $0x0000 // jne LBB7_56, $29(%rip) - LONG $0x024f8a41 // movb $2(%r15), %cl - WORD $0xc889 // movl %ecx, %eax - WORD $0xfe24 // andb $-2, %al - WORD $0xa83c // cmpb $-88, %al - LONG $0x000d850f; WORD $0x0000 // jne LBB7_56, $13(%rip) - LONG $0x02478d49 // leaq $2(%r15), %rax - LONG $0xfec68348 // addq $-2, %rsi - LONG $0xfffee1e9; BYTE $0xff // jmp LBB7_54, $-287(%rip) - -LBB7_56: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x00558e0f; WORD $0x0000 // jle LBB7_3, $85(%rip) - LONG $0xe202c641 // movb $-30, (%r10) - WORD $0xff49; BYTE $0xc2 // incq %r10 - WORD $0xff49; BYTE $0xc9 // decq %r9 - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - LONG $0xffff52e9; BYTE $0xff // jmp LBB7_66, $-174(%rip) - -LBB7_45: - LONG $0xd0552b4c // subq $-48(%rbp), %r10 - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x014c; BYTE $0xd0 // addq %r10, %rax - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - WORD $0x294c; BYTE $0xff // subq %r15, %rdi - WORD $0x014c; BYTE $0xe7 // addq %r12, %rdi - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x00002ae9; BYTE $0x00 // jmp LBB7_68, $42(%rip) - -LBB7_47: - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - -LBB7_67: - LONG $0xd0552b4c // subq $-48(%rbp), %r10 - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x894c; BYTE $0x11 // movq %r10, (%rcx) - WORD $0x2948; BYTE $0xf8 // subq %rdi, %rax - LONG $0x000014e9; BYTE $0x00 // jmp LBB7_68, $20(%rip) - -LBB7_55: - LONG $0xd0552b4c // subq $-48(%rbp), %r10 - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x894c; BYTE $0x10 // movq %r10, (%rax) - -LBB7_3: - WORD $0xf749; BYTE $0xd7 // notq %r15 - WORD $0x0149; BYTE $0xff // addq %rdi, %r15 - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - -LBB7_68: - LONG $0x10c48348 // addq $16, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - BYTE $0x90 // .p2align 4, 0x90 - -_atof_eisel_lemire64: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - LONG $0x015c868d; WORD $0x0000 // leal $348(%rsi), %eax - LONG $0x0002b73d; BYTE $0x00 // cmpl $695, %eax - LONG $0x0115870f; WORD $0x0000 // ja LBB8_1, $277(%rip) - WORD $0x8949; BYTE $0xc8 // movq %rcx, %r8 - WORD $0x8941; BYTE $0xd1 // movl %edx, %r9d - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x000d840f; WORD $0x0000 // je LBB8_4, $13(%rip) - LONG $0xd7bd0f4c // bsrq %rdi, %r10 - LONG $0x3ff28349 // xorq $63, %r10 - LONG $0x000006e9; BYTE $0x00 // jmp LBB8_5, $6(%rip) - -LBB8_4: - LONG $0x0040ba41; WORD $0x0000 // movl $64, %r10d - -LBB8_5: - WORD $0x8944; BYTE $0xd1 // movl %r10d, %ecx - WORD $0xd348; BYTE $0xe7 // shlq %cl, %rdi - WORD $0xc389 // movl %eax, %ebx - LONG $0x04e3c148 // shlq $4, %rbx - LONG $0xf1358d4c; WORD $0x0067; BYTE $0x00 // leaq $26609(%rip), %r14 /* _POW10_M128_TAB(%rip) */ - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x3364f74a; BYTE $0x08 // mulq $8(%rbx,%r14) - WORD $0x8949; BYTE $0xc7 // movq %rax, %r15 - WORD $0x8949; BYTE $0xd3 // movq %rdx, %r11 - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - LONG $0x0001ff25; BYTE $0x00 // andl $511, %eax - WORD $0x8948; BYTE $0xf9 // movq %rdi, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - WORD $0x3949; BYTE $0xcf // cmpq %rcx, %r15 - LONG $0x004f860f; WORD $0x0000 // jbe LBB8_11, $79(%rip) - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - LONG $0x0001ff3d; BYTE $0x00 // cmpl $511, %eax - LONG $0x0044850f; WORD $0x0000 // jne LBB8_13, $68(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x3324f74a // mulq (%rbx,%r14) - WORD $0x014c; BYTE $0xfa // addq %r15, %rdx - LONG $0x00d38349 // adcq $0, %r11 - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0x001d860f; WORD $0x0000 // jbe LBB8_12, $29(%rip) - LONG $0xfffa8348 // cmpq $-1, %rdx - LONG $0x0013850f; WORD $0x0000 // jne LBB8_12, $19(%rip) - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - LONG $0x0001ff25; BYTE $0x00 // andl $511, %eax - LONG $0x0001ff3d; BYTE $0x00 // cmpl $511, %eax - LONG $0x0079840f; WORD $0x0000 // je LBB8_1, $121(%rip) - -LBB8_12: - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - LONG $0x0001ff25; BYTE $0x00 // andl $511, %eax - LONG $0x000003e9; BYTE $0x00 // jmp LBB8_13, $3(%rip) - -LBB8_11: - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - -LBB8_13: - WORD $0x894c; BYTE $0xdf // movq %r11, %rdi - LONG $0x3fefc148 // shrq $63, %rdi - WORD $0x4f8d; BYTE $0x09 // leal $9(%rdi), %ecx - WORD $0xd349; BYTE $0xeb // shrq %cl, %r11 - WORD $0x0948; BYTE $0xd0 // orq %rdx, %rax - LONG $0x000f850f; WORD $0x0000 // jne LBB8_16, $15(%rip) - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - WORD $0xe083; BYTE $0x03 // andl $3, %eax - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - LONG $0x0044840f; WORD $0x0000 // je LBB8_1, $68(%rip) - -LBB8_16: - LONG $0x526ac669; WORD $0x0003 // imull $217706, %esi, %eax - WORD $0xf8c1; BYTE $0x10 // sarl $16, %eax - LONG $0x00043f05; BYTE $0x00 // addl $1087, %eax - WORD $0x6348; BYTE $0xd0 // movslq %eax, %rdx - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - WORD $0xe083; BYTE $0x01 // andl $1, %eax - WORD $0x014c; BYTE $0xd8 // addq %r11, %rax - QUAD $0x000000000000b948; WORD $0x01c0 // movabsq $126100789566373888, %rcx - WORD $0x2148; BYTE $0xc1 // andq %rax, %rcx - WORD $0x294c; BYTE $0xd2 // subq %r10, %rdx - LONG $0x3a548d48; BYTE $0xfe // leaq $-2(%rdx,%rdi), %rdx - LONG $0x01f98348 // cmpq $1, %rcx - LONG $0xffda8348 // sbbq $-1, %rdx - LONG $0xfdfa8148; WORD $0x0007; BYTE $0x00 // cmpq $2045, %rdx - LONG $0x0009860f; WORD $0x0000 // jbe LBB8_18, $9(%rip) - -LBB8_1: - WORD $0xc031 // xorl %eax, %eax - -LBB8_19: - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB8_18: - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0x01f98348 // cmpq $1, %rcx - WORD $0x02b1 // movb $2, %cl - WORD $0xd980; BYTE $0x00 // sbbb $0, %cl - WORD $0xd348; BYTE $0xe8 // shrq %cl, %rax - LONG $0x34e2c148 // shlq $52, %rdx - QUAD $0xffffffffffffb948; WORD $0x000f // movabsq $4503599627370495, %rcx - WORD $0x2148; BYTE $0xc1 // andq %rax, %rcx - WORD $0x0948; BYTE $0xd1 // orq %rdx, %rcx - QUAD $0x000000000000b848; WORD $0x8000 // movabsq $-9223372036854775808, %rax - WORD $0x0948; BYTE $0xc8 // orq %rcx, %rax - LONG $0xfff98341 // cmpl $-1, %r9d - LONG $0xc1450f48 // cmovneq %rcx, %rax - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - WORD $0x01b0 // movb $1, %al - LONG $0xffffb7e9; BYTE $0xff // jmp LBB8_19, $-73(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_decimal_to_f64: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - WORD $0x8948; BYTE $0xf3 // movq %rsi, %rbx - WORD $0x8949; BYTE $0xff // movq %rdi, %r15 - QUAD $0x000000000000bd49; WORD $0x0010 // movabsq $4503599627370496, %r13 - LONG $0x00107f83 // cmpl $0, $16(%rdi) - LONG $0x002f840f; WORD $0x0000 // je LBB9_4, $47(%rip) - QUAD $0x000000000000be49; WORD $0x7ff0 // movabsq $9218868437227405312, %r14 - LONG $0x14478b41 // movl $20(%r15), %eax - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x0001363d; BYTE $0x00 // cmpl $310, %eax - LONG $0x034c8f0f; WORD $0x0000 // jg LBB9_64, $844(%rip) - LONG $0xfffeb63d; BYTE $0xff // cmpl $-330, %eax - LONG $0x00138d0f; WORD $0x0000 // jge LBB9_5, $19(%rip) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - LONG $0x000339e9; BYTE $0x00 // jmp LBB9_64, $825(%rip) - -LBB9_4: - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x00032ee9; BYTE $0x00 // jmp LBB9_64, $814(%rip) - -LBB9_5: - WORD $0xc085 // testl %eax, %eax - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0x005a8e0f; WORD $0x0000 // jle LBB9_12, $90(%rip) - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0xd8358d4c; WORD $0x0091; BYTE $0x00 // leaq $37336(%rip), %r14 /* _POW_TAB(%rip) */ - LONG $0x00002de9; BYTE $0x00 // jmp LBB9_8, $45(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB9_10: - WORD $0xc089 // movl %eax, %eax - LONG $0x861c8b41 // movl (%r14,%rax,4), %ebx - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0x000a840f; WORD $0x0000 // je LBB9_7, $10(%rip) - -LBB9_11: - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - WORD $0xde89 // movl %ebx, %esi - LONG $0x0060f5e8; BYTE $0x00 // callq _right_shift, $24821(%rip) - -LBB9_7: - WORD $0x0141; BYTE $0xdc // addl %ebx, %r12d - LONG $0x14478b41 // movl $20(%r15), %eax - WORD $0xc085 // testl %eax, %eax - LONG $0x001e8e0f; WORD $0x0000 // jle LBB9_12, $30(%rip) - -LBB9_8: - WORD $0xf883; BYTE $0x08 // cmpl $8, %eax - LONG $0xffcd8e0f; WORD $0xffff // jle LBB9_10, $-51(%rip) - LONG $0x00001bbb; BYTE $0x00 // movl $27, %ebx - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0xffce850f; WORD $0xffff // jne LBB9_11, $-50(%rip) - LONG $0xffffd3e9; BYTE $0xff // jmp LBB9_7, $-45(%rip) - -LBB9_12: - LONG $0x81358d4c; WORD $0x0091; BYTE $0x00 // leaq $37249(%rip), %r14 /* _POW_TAB(%rip) */ - LONG $0x00002de9; BYTE $0x00 // jmp LBB9_14, $45(%rip) - -LBB9_18: - LONG $0x00001bbb; BYTE $0x00 // movl $27, %ebx - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0x001a840f; WORD $0x0000 // je LBB9_13, $26(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB9_20: - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - WORD $0xde89 // movl %ebx, %esi - LONG $0x005ea6e8; BYTE $0x00 // callq _left_shift, $24230(%rip) - LONG $0x14478b41 // movl $20(%r15), %eax - -LBB9_13: - WORD $0x2941; BYTE $0xdc // subl %ebx, %r12d - -LBB9_14: - WORD $0xc085 // testl %eax, %eax - LONG $0x0017880f; WORD $0x0000 // js LBB9_17, $23(%rip) - LONG $0x0035850f; WORD $0x0000 // jne LBB9_21, $53(%rip) - WORD $0x8b49; BYTE $0x0f // movq (%r15), %rcx - WORD $0x3980; BYTE $0x35 // cmpb $53, (%rcx) - LONG $0x000e8c0f; WORD $0x0000 // jl LBB9_19, $14(%rip) - LONG $0x000024e9; BYTE $0x00 // jmp LBB9_21, $36(%rip) - - // .p2align 4, 0x90 -LBB9_17: - WORD $0xf883; BYTE $0xf8 // cmpl $-8, %eax - LONG $0xffab8c0f; WORD $0xffff // jl LBB9_18, $-85(%rip) - -LBB9_19: - WORD $0xc189 // movl %eax, %ecx - WORD $0xd9f7 // negl %ecx - WORD $0x6348; BYTE $0xc9 // movslq %ecx, %rcx - LONG $0x8e1c8b41 // movl (%r14,%rcx,4), %ebx - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0xffb1850f; WORD $0xffff // jne LBB9_20, $-79(%rip) - LONG $0xffffbae9; BYTE $0xff // jmp LBB9_13, $-70(%rip) - -LBB9_21: - LONG $0x02fc8141; WORD $0xfffc; BYTE $0xff // cmpl $-1022, %r12d - LONG $0x00538f0f; WORD $0x0000 // jg LBB9_27, $83(%rip) - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - LONG $0x0060840f; WORD $0x0000 // je LBB9_29, $96(%rip) - LONG $0xc6fc8141; WORD $0xfffb; BYTE $0xff // cmpl $-1082, %r12d - LONG $0x005e8f0f; WORD $0x0000 // jg LBB9_30, $94(%rip) - LONG $0xc1c48141; WORD $0x0003; BYTE $0x00 // addl $961, %r12d - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB9_25: - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - LONG $0x00003cbe; BYTE $0x00 // movl $60, %esi - LONG $0x006003e8; BYTE $0x00 // callq _right_shift, $24579(%rip) - LONG $0x3cc48341 // addl $60, %r12d - LONG $0x88fc8341 // cmpl $-120, %r12d - LONG $0xffe58c0f; WORD $0xffff // jl LBB9_25, $-27(%rip) - LONG $0x3cc48341 // addl $60, %r12d - LONG $0x00002ee9; BYTE $0x00 // jmp LBB9_31, $46(%rip) - -LBB9_27: - LONG $0x00fc8141; WORD $0x0004; BYTE $0x00 // cmpl $1024, %r12d - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - LONG $0x01a48f0f; WORD $0x0000 // jg LBB9_61, $420(%rip) - WORD $0xff41; BYTE $0xcc // decl %r12d - WORD $0x8945; BYTE $0xe6 // movl %r12d, %r14d - LONG $0x000026e9; BYTE $0x00 // jmp LBB9_32, $38(%rip) - -LBB9_29: - LONG $0xfc02be41; WORD $0xffff // movl $-1022, %r14d - LONG $0x000033e9; BYTE $0x00 // jmp LBB9_34, $51(%rip) - -LBB9_30: - LONG $0xfdc48141; WORD $0x0003; BYTE $0x00 // addl $1021, %r12d - -LBB9_31: - WORD $0xf741; BYTE $0xdc // negl %r12d - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - WORD $0x8944; BYTE $0xe6 // movl %r12d, %esi - LONG $0x005fb0e8; BYTE $0x00 // callq _right_shift, $24496(%rip) - LONG $0xfc02be41; WORD $0xffff // movl $-1022, %r14d - -LBB9_32: - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0x000d840f; WORD $0x0000 // je LBB9_34, $13(%rip) - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - LONG $0x000035be; BYTE $0x00 // movl $53, %esi - LONG $0x005da2e8; BYTE $0x00 // callq _left_shift, $23970(%rip) - -LBB9_34: - LONG $0x14478b41 // movl $20(%r15), %eax - LONG $0xffc4c749; WORD $0xffff; BYTE $0xff // movq $-1, %r12 - WORD $0xf883; BYTE $0x14 // cmpl $20, %eax - LONG $0x015f8f0f; WORD $0x0000 // jg LBB9_63, $351(%rip) - WORD $0xc085 // testl %eax, %eax - LONG $0x00548e0f; WORD $0x0000 // jle LBB9_40, $84(%rip) - LONG $0x10578b41 // movl $16(%r15), %edx - WORD $0xf631 // xorl %esi, %esi - WORD $0xd285 // testl %edx, %edx - WORD $0x480f; BYTE $0xd6 // cmovsl %esi, %edx - LONG $0xff488d4c // leaq $-1(%rax), %r9 - WORD $0x3949; BYTE $0xd1 // cmpq %rdx, %r9 - LONG $0xca430f44 // cmovael %edx, %r9d - LONG $0x01418d45 // leal $1(%r9), %r8d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB9_37: - WORD $0x3948; BYTE $0xf2 // cmpq %rsi, %rdx - LONG $0x002b840f; WORD $0x0000 // je LBB9_41, $43(%rip) - LONG $0xa43c8d4b // leaq (%r12,%r12,4), %rdi - WORD $0x8b49; BYTE $0x0f // movq (%r15), %rcx - LONG $0x0cbe0f48; BYTE $0x31 // movsbq (%rcx,%rsi), %rcx - LONG $0x79648d4c; BYTE $0xd0 // leaq $-48(%rcx,%rdi,2), %r12 - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x3948; BYTE $0xf0 // cmpq %rsi, %rax - LONG $0xffda850f; WORD $0xffff // jne LBB9_37, $-38(%rip) - WORD $0x8945; BYTE $0xc1 // movl %r8d, %r9d - LONG $0x000006e9; BYTE $0x00 // jmp LBB9_41, $6(%rip) - -LBB9_40: - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - -LBB9_41: - WORD $0x3944; BYTE $0xc8 // cmpl %r9d, %eax - LONG $0x00638e0f; WORD $0x0000 // jle LBB9_49, $99(%rip) - WORD $0xc689 // movl %eax, %esi - WORD $0x2944; BYTE $0xce // subl %r9d, %esi - WORD $0x8944; BYTE $0xca // movl %r9d, %edx - WORD $0xd2f7 // notl %edx - WORD $0xc201 // addl %eax, %edx - WORD $0xe683; BYTE $0x07 // andl $7, %esi - LONG $0x0022840f; WORD $0x0000 // je LBB9_46, $34(%rip) - WORD $0xdef7 // negl %esi - WORD $0xff31 // xorl %edi, %edi - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB9_44: - WORD $0x014d; BYTE $0xe4 // addq %r12, %r12 - LONG $0xa4248d4f // leaq (%r12,%r12,4), %r12 - WORD $0xcfff // decl %edi - WORD $0xfe39 // cmpl %edi, %esi - LONG $0xffef850f; WORD $0xffff // jne LBB9_44, $-17(%rip) - WORD $0x2941; BYTE $0xf9 // subl %edi, %r9d - -LBB9_46: - WORD $0xfa83; BYTE $0x07 // cmpl $7, %edx - LONG $0x0023820f; WORD $0x0000 // jb LBB9_49, $35(%rip) - WORD $0xc289 // movl %eax, %edx - WORD $0x2944; BYTE $0xca // subl %r9d, %edx - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB9_48: - LONG $0x00e4694d; WORD $0xf5e1; BYTE $0x05 // imulq $100000000, %r12, %r12 - WORD $0xc283; BYTE $0xf8 // addl $-8, %edx - LONG $0xfff0850f; WORD $0xffff // jne LBB9_48, $-16(%rip) - -LBB9_49: - WORD $0xc085 // testl %eax, %eax - LONG $0x0049880f; WORD $0x0000 // js LBB9_57, $73(%rip) - LONG $0x10778b41 // movl $16(%r15), %esi - WORD $0xc639 // cmpl %eax, %esi - LONG $0x003d8e0f; WORD $0x0000 // jle LBB9_57, $61(%rip) - WORD $0x8b49; BYTE $0x17 // movq (%r15), %rdx - WORD $0x0c8a; BYTE $0x02 // movb (%rdx,%rax), %cl - WORD $0x788d; BYTE $0x01 // leal $1(%rax), %edi - WORD $0xf739 // cmpl %esi, %edi - LONG $0x00be850f; WORD $0x0000 // jne LBB9_58, $190(%rip) - WORD $0xf980; BYTE $0x35 // cmpb $53, %cl - LONG $0x00b5850f; WORD $0x0000 // jne LBB9_58, $181(%rip) - LONG $0x1c7f8341; BYTE $0x00 // cmpl $0, $28(%r15) - WORD $0x950f; BYTE $0xc1 // setne %cl - LONG $0x0017850f; WORD $0x0000 // jne LBB9_59, $23(%rip) - WORD $0xc085 // testl %eax, %eax - LONG $0x000f8e0f; WORD $0x0000 // jle LBB9_59, $15(%rip) - WORD $0xc8ff // decl %eax - WORD $0x0c8a; BYTE $0x02 // movb (%rdx,%rax), %cl - WORD $0xe180; BYTE $0x01 // andb $1, %cl - LONG $0x000002e9; BYTE $0x00 // jmp LBB9_59, $2(%rip) - -LBB9_57: - WORD $0xc931 // xorl %ecx, %ecx - -LBB9_59: - WORD $0xb60f; BYTE $0xc1 // movzbl %cl, %eax - WORD $0x0149; BYTE $0xc4 // addq %rax, %r12 - QUAD $0x000000000000b848; WORD $0x0020 // movabsq $9007199254740992, %rax - WORD $0x3949; BYTE $0xc4 // cmpq %rax, %r12 - LONG $0x0025850f; WORD $0x0000 // jne LBB9_63, $37(%rip) - LONG $0xfefe8141; WORD $0x0003; BYTE $0x00 // cmpl $1022, %r14d - LONG $0x00128e0f; WORD $0x0000 // jle LBB9_62, $18(%rip) - -LBB9_61: - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - QUAD $0x000000000000be49; WORD $0x7ff0 // movabsq $9218868437227405312, %r14 - LONG $0x000025e9; BYTE $0x00 // jmp LBB9_64, $37(%rip) - -LBB9_62: - WORD $0xff41; BYTE $0xc6 // incl %r14d - WORD $0x894d; BYTE $0xec // movq %r13, %r12 - -LBB9_63: - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - WORD $0x214c; BYTE $0xe8 // andq %r13, %rax - LONG $0xffc68141; WORD $0x0003; BYTE $0x00 // addl $1023, %r14d - LONG $0xffe68141; WORD $0x0007; BYTE $0x00 // andl $2047, %r14d - LONG $0x34e6c149 // shlq $52, %r14 - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xf0440f4c // cmoveq %rax, %r14 - -LBB9_64: - WORD $0xff49; BYTE $0xcd // decq %r13 - WORD $0x214d; BYTE $0xe5 // andq %r12, %r13 - WORD $0x094d; BYTE $0xf5 // orq %r14, %r13 - QUAD $0x000000000000b848; WORD $0x8000 // movabsq $-9223372036854775808, %rax - WORD $0x094c; BYTE $0xe8 // orq %r13, %rax - LONG $0x187f8341; BYTE $0x00 // cmpl $0, $24(%r15) - LONG $0xc5440f49 // cmoveq %r13, %rax - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - WORD $0xc031 // xorl %eax, %eax - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB9_58: - WORD $0xf980; BYTE $0x34 // cmpb $52, %cl - WORD $0x9f0f; BYTE $0xc1 // setg %cl - LONG $0xffff65e9; BYTE $0xff // jmp LBB9_59, $-155(%rip) - WORD $0x9090 // .p2align 4, 0x90 - -_atof_native: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - LONG $0x30ec8348 // subq $48, %rsp - QUAD $0x00000000d845c748 // movq $0, $-40(%rbp) - LONG $0xe0558948 // movq %rdx, $-32(%rbp) - LONG $0xe84d8948 // movq %rcx, $-24(%rbp) - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x0044840f; WORD $0x0000 // je LBB10_5, $68(%rip) - WORD $0x02c6; BYTE $0x00 // movb $0, (%rdx) - LONG $0x01f98348 // cmpq $1, %rcx - LONG $0x0037840f; WORD $0x0000 // je LBB10_5, $55(%rip) - LONG $0x000142c6 // movb $0, $1(%rdx) - LONG $0xe87d8348; BYTE $0x03 // cmpq $3, $-24(%rbp) - LONG $0x0028820f; WORD $0x0000 // jb LBB10_5, $40(%rip) - LONG $0x000002b8; BYTE $0x00 // movl $2, %eax - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB10_4: - LONG $0xe04d8b48 // movq $-32(%rbp), %rcx - LONG $0x000104c6 // movb $0, (%rcx,%rax) - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0xe8453948 // cmpq %rax, $-24(%rbp) - LONG $0xffeb870f; WORD $0xffff // ja LBB10_4, $-21(%rip) - -LBB10_5: - LONG $0xc057f8c5 // vxorps %xmm0, %xmm0, %xmm0 - LONG $0x4511f8c5; BYTE $0xf0 // vmovups %xmm0, $-16(%rbp) - WORD $0x3f80; BYTE $0x2d // cmpb $45, (%rdi) - LONG $0x0021850f; WORD $0x0000 // jne LBB10_8, $33(%rip) - LONG $0x01f845c7; WORD $0x0000; BYTE $0x00 // movl $1, $-8(%rbp) - LONG $0x000001b8; BYTE $0x00 // movl $1, %eax - WORD $0x3948; BYTE $0xf0 // cmpq %rsi, %rax - LONG $0x00178c0f; WORD $0x0000 // jl LBB10_9, $23(%rip) - -LBB10_7: - LONG $0x00f445c7; WORD $0x0000; BYTE $0x00 // movl $0, $-12(%rbp) - LONG $0x0001a1e9; BYTE $0x00 // jmp LBB10_39, $417(%rip) - -LBB10_8: - WORD $0xc031 // xorl %eax, %eax - WORD $0x3948; BYTE $0xf0 // cmpq %rsi, %rax - LONG $0xffe98d0f; WORD $0xffff // jge LBB10_7, $-23(%rip) - -LBB10_9: - WORD $0xb341; BYTE $0x01 // movb $1, %r11b - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - LONG $0x00001fe9; BYTE $0x00 // jmp LBB10_13, $31(%rip) - -LBB10_21: - LONG $0x01fc45c7; WORD $0x0000; BYTE $0x00 // movl $1, $-4(%rbp) - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB10_12: - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x3948; BYTE $0xf0 // cmpq %rsi, %rax - LONG $0xc39c0f41 // setl %r11b - WORD $0x3948; BYTE $0xc6 // cmpq %rax, %rsi - LONG $0x0090840f; WORD $0x0000 // je LBB10_23, $144(%rip) - -LBB10_13: - LONG $0x070cb60f // movzbl (%rdi,%rax), %ecx - WORD $0x518d; BYTE $0xd0 // leal $-48(%rcx), %edx - WORD $0xfa80; BYTE $0x09 // cmpb $9, %dl - LONG $0x002d870f; WORD $0x0000 // ja LBB10_18, $45(%rip) - WORD $0xf980; BYTE $0x30 // cmpb $48, %cl - LONG $0x0044850f; WORD $0x0000 // jne LBB10_20, $68(%rip) - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x0063840f; WORD $0x0000 // je LBB10_22, $99(%rip) - WORD $0x634d; BYTE $0xd9 // movslq %r9d, %r11 - LONG $0xe85d394c // cmpq %r11, $-24(%rbp) - LONG $0x003b870f; WORD $0x0000 // ja LBB10_10, $59(%rip) - LONG $0x000049e9; BYTE $0x00 // jmp LBB10_11, $73(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB10_18: - WORD $0xf980; BYTE $0x2e // cmpb $46, %cl - LONG $0x009b850f; WORD $0x0000 // jne LBB10_30, $155(%rip) - LONG $0xf4558944 // movl %r10d, $-12(%rbp) - LONG $0x0001b841; WORD $0x0000 // movl $1, %r8d - LONG $0xffff98e9; BYTE $0xff // jmp LBB10_12, $-104(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB10_20: - WORD $0x634d; BYTE $0xda // movslq %r10d, %r11 - LONG $0xe85d394c // cmpq %r11, $-24(%rbp) - LONG $0xff77860f; WORD $0xffff // jbe LBB10_21, $-137(%rip) - -LBB10_10: - LONG $0xe0558b48 // movq $-32(%rbp), %rdx - LONG $0x1a0c8842 // movb %cl, (%rdx,%r11) - LONG $0xf04d8b44 // movl $-16(%rbp), %r9d - WORD $0xff41; BYTE $0xc1 // incl %r9d - LONG $0xf04d8944 // movl %r9d, $-16(%rbp) - -LBB10_11: - WORD $0x8945; BYTE $0xca // movl %r9d, %r10d - LONG $0xffff68e9; BYTE $0xff // jmp LBB10_12, $-152(%rip) - -LBB10_22: - WORD $0x4dff; BYTE $0xf4 // decl $-12(%rbp) - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - LONG $0xffff5de9; BYTE $0xff // jmp LBB10_12, $-163(%rip) - -LBB10_23: - WORD $0xf189 // movl %esi, %ecx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0x0004850f; WORD $0x0000 // jne LBB10_25, $4(%rip) - -LBB10_24: - LONG $0xf44d8944 // movl %r9d, $-12(%rbp) - -LBB10_25: - LONG $0x01c3f641 // testb $1, %r11b - LONG $0x00ba840f; WORD $0x0000 // je LBB10_39, $186(%rip) - WORD $0x0c8a; BYTE $0x0f // movb (%rdi,%rcx), %cl - WORD $0xc980; BYTE $0x20 // orb $32, %cl - WORD $0xf980; BYTE $0x65 // cmpb $101, %cl - LONG $0x00ab850f; WORD $0x0000 // jne LBB10_39, $171(%rip) - WORD $0xc289 // movl %eax, %edx - LONG $0x01174c8a // movb $1(%rdi,%rdx), %cl - WORD $0xf980; BYTE $0x2d // cmpb $45, %cl - LONG $0x0028840f; WORD $0x0000 // je LBB10_31, $40(%rip) - LONG $0x0001b841; WORD $0x0000 // movl $1, %r8d - WORD $0xf980; BYTE $0x2b // cmpb $43, %cl - LONG $0x0038850f; WORD $0x0000 // jne LBB10_33, $56(%rip) - WORD $0xc083; BYTE $0x02 // addl $2, %eax - LONG $0x00001ae9; BYTE $0x00 // jmp LBB10_32, $26(%rip) - -LBB10_30: - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0xffb5850f; WORD $0xffff // jne LBB10_25, $-75(%rip) - LONG $0xfffface9; BYTE $0xff // jmp LBB10_24, $-84(%rip) - -LBB10_31: - WORD $0xc083; BYTE $0x02 // addl $2, %eax - LONG $0xffffb841; WORD $0xffff // movl $-1, %r8d - -LBB10_32: - WORD $0xc289 // movl %eax, %edx - WORD $0x6348; BYTE $0xd2 // movslq %edx, %rdx - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x3948; BYTE $0xf2 // cmpq %rsi, %rdx - LONG $0x00178c0f; WORD $0x0000 // jl LBB10_34, $23(%rip) - LONG $0x00004de9; BYTE $0x00 // jmp LBB10_38, $77(%rip) - -LBB10_33: - WORD $0xff48; BYTE $0xc2 // incq %rdx - WORD $0x6348; BYTE $0xd2 // movslq %edx, %rdx - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x3948; BYTE $0xf2 // cmpq %rsi, %rdx - LONG $0x003b8d0f; WORD $0x0000 // jge LBB10_38, $59(%rip) - -LBB10_34: - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB10_35: - LONG $0x0ff98141; WORD $0x0027; BYTE $0x00 // cmpl $9999, %r9d - LONG $0x00248f0f; WORD $0x0000 // jg LBB10_38, $36(%rip) - LONG $0x170cb60f // movzbl (%rdi,%rdx), %ecx - WORD $0x418d; BYTE $0xd0 // leal $-48(%rcx), %eax - WORD $0x093c // cmpb $9, %al - LONG $0x0015870f; WORD $0x0000 // ja LBB10_38, $21(%rip) - LONG $0x89048d43 // leal (%r9,%r9,4), %eax - LONG $0x414c8d44; BYTE $0xd0 // leal $-48(%rcx,%rax,2), %r9d - WORD $0xff48; BYTE $0xc2 // incq %rdx - WORD $0x3948; BYTE $0xd6 // cmpq %rdx, %rsi - LONG $0xffcf850f; WORD $0xffff // jne LBB10_35, $-49(%rip) - -LBB10_38: - LONG $0xc8af0f45 // imull %r8d, %r9d - LONG $0xf44d0144 // addl %r9d, $-12(%rbp) - -LBB10_39: - LONG $0xe07d8d48 // leaq $-32(%rbp), %rdi - LONG $0xd8758d48 // leaq $-40(%rbp), %rsi - LONG $0xfff9eae8; BYTE $0xff // callq _decimal_to_f64, $-1558(%rip) - LONG $0x4510fbc5; BYTE $0xd8 // vmovsd $-40(%rbp), %xmm0 - LONG $0x30c48348 // addq $48, %rsp - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_value: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x28ec8348 // subq $40, %rsp - WORD $0x8949; BYTE $0xce // movq %rcx, %r14 - WORD $0x8949; BYTE $0xd4 // movq %rdx, %r12 - WORD $0x8949; BYTE $0xf7 // movq %rsi, %r15 - WORD $0x8949; BYTE $0xfd // movq %rdi, %r13 - LONG $0xd0558948 // movq %rdx, $-48(%rbp) - LONG $0xb07d8948 // movq %rdi, $-80(%rbp) - LONG $0xb8758948 // movq %rsi, $-72(%rbp) - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x2948; BYTE $0xf0 // subq %rsi, %rax - LONG $0x002b830f; WORD $0x0000 // jae LBB11_5, $43(%rip) - LONG $0x254c8a43; BYTE $0x00 // movb (%r13,%r12), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x001d840f; WORD $0x0000 // je LBB11_5, $29(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x0014840f; WORD $0x0000 // je LBB11_5, $20(%rip) - WORD $0x518d; BYTE $0xf7 // leal $-9(%rcx), %edx - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0008860f; WORD $0x0000 // jbe LBB11_5, $8(%rip) - WORD $0x894c; BYTE $0xe3 // movq %r12, %rbx - LONG $0x000132e9; BYTE $0x00 // jmp LBB11_28, $306(%rip) - -LBB11_5: - LONG $0x245c8d49; BYTE $0x01 // leaq $1(%r12), %rbx - WORD $0x394c; BYTE $0xfb // cmpq %r15, %rbx - LONG $0x0023830f; WORD $0x0000 // jae LBB11_9, $35(%rip) - LONG $0x1d4c8a41; BYTE $0x00 // movb (%r13,%rbx), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x0015840f; WORD $0x0000 // je LBB11_9, $21(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x000c840f; WORD $0x0000 // je LBB11_9, $12(%rip) - WORD $0x518d; BYTE $0xf7 // leal $-9(%rcx), %edx - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0101870f; WORD $0x0000 // ja LBB11_28, $257(%rip) - -LBB11_9: - LONG $0x245c8d49; BYTE $0x02 // leaq $2(%r12), %rbx - WORD $0x394c; BYTE $0xfb // cmpq %r15, %rbx - LONG $0x0023830f; WORD $0x0000 // jae LBB11_13, $35(%rip) - LONG $0x1d4c8a41; BYTE $0x00 // movb (%r13,%rbx), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x0015840f; WORD $0x0000 // je LBB11_13, $21(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x000c840f; WORD $0x0000 // je LBB11_13, $12(%rip) - WORD $0x518d; BYTE $0xf7 // leal $-9(%rcx), %edx - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x00d0870f; WORD $0x0000 // ja LBB11_28, $208(%rip) - -LBB11_13: - LONG $0x245c8d49; BYTE $0x03 // leaq $3(%r12), %rbx - WORD $0x394c; BYTE $0xfb // cmpq %r15, %rbx - LONG $0x0023830f; WORD $0x0000 // jae LBB11_17, $35(%rip) - LONG $0x1d4c8a41; BYTE $0x00 // movb (%r13,%rbx), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x0015840f; WORD $0x0000 // je LBB11_17, $21(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x000c840f; WORD $0x0000 // je LBB11_17, $12(%rip) - WORD $0x518d; BYTE $0xf7 // leal $-9(%rcx), %edx - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x009f870f; WORD $0x0000 // ja LBB11_28, $159(%rip) - -LBB11_17: - LONG $0x244c8d49; BYTE $0x04 // leaq $4(%r12), %rcx - WORD $0x394c; BYTE $0xf9 // cmpq %r15, %rcx - LONG $0x0057830f; WORD $0x0000 // jae LBB11_23, $87(%rip) - WORD $0x3949; BYTE $0xcf // cmpq %rcx, %r15 - LONG $0x005a840f; WORD $0x0000 // je LBB11_24, $90(%rip) - LONG $0x3d4c8d4b; BYTE $0x00 // leaq (%r13,%r15), %rcx - LONG $0x04c08348 // addq $4, %rax - LONG $0x2c5c8d4b; BYTE $0x05 // leaq $5(%r12,%r13), %rbx - QUAD $0x000100002600ba48; WORD $0x0000 // movabsq $4294977024, %rdx - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB11_20: - LONG $0xff73be0f // movsbl $-1(%rbx), %esi - WORD $0xfe83; BYTE $0x20 // cmpl $32, %esi - LONG $0x003e870f; WORD $0x0000 // ja LBB11_26, $62(%rip) - LONG $0xf2a30f48 // btq %rsi, %rdx - LONG $0x0034830f; WORD $0x0000 // jae LBB11_26, $52(%rip) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0xffdd850f; WORD $0xffff // jne LBB11_20, $-35(%rip) - LONG $0x00000fe9; BYTE $0x00 // jmp LBB11_25, $15(%rip) - -LBB11_23: - LONG $0xd04d8948 // movq %rcx, $-48(%rbp) - WORD $0x8949; BYTE $0xcc // movq %rcx, %r12 - LONG $0x000079e9; BYTE $0x00 // jmp LBB11_32, $121(%rip) - -LBB11_24: - WORD $0x014c; BYTE $0xe9 // addq %r13, %rcx - -LBB11_25: - WORD $0x294c; BYTE $0xe9 // subq %r13, %rcx - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - WORD $0x394c; BYTE $0xfb // cmpq %r15, %rbx - LONG $0x0017820f; WORD $0x0000 // jb LBB11_27, $23(%rip) - LONG $0x000062e9; BYTE $0x00 // jmp LBB11_32, $98(%rip) - -LBB11_26: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - WORD $0x394c; BYTE $0xfb // cmpq %r15, %rbx - LONG $0x0050830f; WORD $0x0000 // jae LBB11_32, $80(%rip) - -LBB11_27: - LONG $0x1d4c8a41; BYTE $0x00 // movb (%r13,%rbx), %cl - -LBB11_28: - LONG $0x01638d4c // leaq $1(%rbx), %r12 - LONG $0xd065894c // movq %r12, $-48(%rbp) - WORD $0xbe0f; BYTE $0xc1 // movsbl %cl, %eax - WORD $0xf883; BYTE $0x7d // cmpl $125, %eax - LONG $0x00c4870f; WORD $0x0000 // ja LBB11_41, $196(%rip) - LONG $0x83158d48; WORD $0x0003; BYTE $0x00 // leaq $899(%rip), %rdx /* LJTI11_0(%rip) */ - LONG $0x82046348 // movslq (%rdx,%rax,4), %rax - WORD $0x0148; BYTE $0xd0 // addq %rdx, %rax - JMP AX - -LBB11_30: - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0x02c0f641 // testb $2, %r8b - LONG $0x0035850f; WORD $0x0000 // jne LBB11_35, $53(%rip) - LONG $0xb07d8d48 // leaq $-80(%rbp), %rdi - LONG $0xd0758d48 // leaq $-48(%rbp), %rsi - WORD $0x894c; BYTE $0xf2 // movq %r14, %rdx - LONG $0x000b6ce8; BYTE $0x00 // callq _vnumber, $2924(%rip) - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - LONG $0x00000ae9; BYTE $0x00 // jmp LBB11_34, $10(%rip) - -LBB11_32: - LONG $0x0106c749; WORD $0x0000; BYTE $0x00 // movq $1, (%r14) - -LBB11_33: - WORD $0x894c; BYTE $0xe3 // movq %r12, %rbx - -LBB11_34: - WORD $0x8948; BYTE $0xd8 // movq %rbx, %rax - LONG $0x28c48348 // addq $40, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB11_35: - LONG $0xc875894c // movq %r14, $-56(%rbp) - LONG $0x1d748d4d; BYTE $0x00 // leaq (%r13,%rbx), %r14 - WORD $0xc031 // xorl %eax, %eax - WORD $0xf980; BYTE $0x2d // cmpb $45, %cl - WORD $0x940f; BYTE $0xc0 // sete %al - WORD $0x0149; BYTE $0xc6 // addq %rax, %r14 - WORD $0x2949; BYTE $0xc7 // subq %rax, %r15 - LONG $0x02e2840f; WORD $0x0000 // je LBB11_85, $738(%rip) - WORD $0x394c; BYTE $0xfb // cmpq %r15, %rbx - LONG $0x000d830f; WORD $0x0000 // jae LBB11_38, $13(%rip) - WORD $0x8a41; BYTE $0x06 // movb (%r14), %al - WORD $0xd004 // addb $-48, %al - WORD $0x0a3c // cmpb $10, %al - LONG $0x02e5830f; WORD $0x0000 // jae LBB11_87, $741(%rip) - -LBB11_38: - WORD $0x894c; BYTE $0xf7 // movq %r14, %rdi - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0x001f09e8; BYTE $0x00 // callq _do_skip_number, $7945(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x02cb880f; WORD $0x0000 // js LBB11_86, $715(%rip) - WORD $0x0149; BYTE $0xc6 // addq %rax, %r14 - WORD $0x294d; BYTE $0xee // subq %r13, %r14 - LONG $0xd075894c // movq %r14, $-48(%rbp) - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x02cc8e0f; WORD $0x0000 // jle LBB11_88, $716(%rip) - LONG $0xc8458b48 // movq $-56(%rbp), %rax - LONG $0x0800c748; WORD $0x0000; BYTE $0x00 // movq $8, (%rax) - LONG $0x18588948 // movq %rbx, $24(%rax) - WORD $0x894c; BYTE $0xf3 // movq %r14, %rbx - LONG $0xffff7de9; BYTE $0xff // jmp LBB11_34, $-131(%rip) - -LBB11_41: - LONG $0xfe06c749; WORD $0xffff; BYTE $0xff // movq $-2, (%r14) - LONG $0xffff71e9; BYTE $0xff // jmp LBB11_34, $-143(%rip) - -LBB11_42: - QUAD $0xffffffffc045c748 // movq $-1, $-64(%rbp) - LONG $0xb07d8d48 // leaq $-80(%rbp), %rdi - LONG $0xc0558d48 // leaq $-64(%rbp), %rdx - WORD $0x894c; BYTE $0xe6 // movq %r12, %rsi - WORD $0x894c; BYTE $0xc1 // movq %r8, %rcx - LONG $0x00054fe8; BYTE $0x00 // callq _advance_string, $1359(%rip) - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0150880f; WORD $0x0000 // js LBB11_61, $336(%rip) - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0x1066894d // movq %r12, $16(%r14) - LONG $0xc0458b48 // movq $-64(%rbp), %rax - WORD $0x3948; BYTE $0xd8 // cmpq %rbx, %rax - LONG $0xffc1c748; WORD $0xffff; BYTE $0xff // movq $-1, %rcx - LONG $0xc84c0f48 // cmovlq %rax, %rcx - LONG $0x184e8949 // movq %rcx, $24(%r14) - LONG $0x000007b8; BYTE $0x00 // movl $7, %eax - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0xffff1fe9; BYTE $0xff // jmp LBB11_34, $-225(%rip) - -LBB11_44: - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x00000bb9; BYTE $0x00 // movl $11, %ecx - LONG $0x0000f8e9; BYTE $0x00 // jmp LBB11_60, $248(%rip) - -LBB11_45: - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x00000ab9; BYTE $0x00 // movl $10, %ecx - LONG $0x0000e4e9; BYTE $0x00 // jmp LBB11_60, $228(%rip) - -LBB11_46: - LONG $0x0506c749; WORD $0x0000; BYTE $0x00 // movq $5, (%r14) - LONG $0xfffee8e9; BYTE $0xff // jmp LBB11_33, $-280(%rip) - -LBB11_47: - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x00000cb9; BYTE $0x00 // movl $12, %ecx - LONG $0x0000c4e9; BYTE $0x00 // jmp LBB11_60, $196(%rip) - -LBB11_48: - LONG $0xfc478d49 // leaq $-4(%r15), %rax - WORD $0x3948; BYTE $0xc3 // cmpq %rax, %rbx - LONG $0x008c830f; WORD $0x0000 // jae LBB11_57, $140(%rip) - LONG $0x254c8b43; BYTE $0x00 // movl (%r13,%r12), %ecx - LONG $0x6c61f981; WORD $0x6573 // cmpl $1702063201, %ecx - LONG $0x00ce850f; WORD $0x0000 // jne LBB11_62, $206(%rip) - LONG $0x05c38348 // addq $5, %rbx - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0x000004b8; BYTE $0x00 // movl $4, %eax - WORD $0x8949; BYTE $0xdf // movq %rbx, %r15 - LONG $0x0001aae9; BYTE $0x00 // jmp LBB11_84, $426(%rip) - -LBB11_51: - LONG $0xfd478d49 // leaq $-3(%r15), %rax - WORD $0x3948; BYTE $0xc3 // cmpq %rax, %rbx - LONG $0x0059830f; WORD $0x0000 // jae LBB11_57, $89(%rip) - LONG $0x1d4c8b41; BYTE $0x00 // movl (%r13,%rbx), %ecx - LONG $0x756ef981; WORD $0x6c6c // cmpl $1819047278, %ecx - LONG $0x00da850f; WORD $0x0000 // jne LBB11_66, $218(%rip) - LONG $0x04c38348 // addq $4, %rbx - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0x000002b8; BYTE $0x00 // movl $2, %eax - WORD $0x8949; BYTE $0xdf // movq %rbx, %r15 - LONG $0x000177e9; BYTE $0x00 // jmp LBB11_84, $375(%rip) - -LBB11_54: - LONG $0xfd478d49 // leaq $-3(%r15), %rax - WORD $0x3948; BYTE $0xc3 // cmpq %rax, %rbx - LONG $0x0026830f; WORD $0x0000 // jae LBB11_57, $38(%rip) - LONG $0x1d4c8b41; BYTE $0x00 // movl (%r13,%rbx), %ecx - LONG $0x7274f981; WORD $0x6575 // cmpl $1702195828, %ecx - LONG $0x00ea850f; WORD $0x0000 // jne LBB11_70, $234(%rip) - LONG $0x04c38348 // addq $4, %rbx - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0x000003b8; BYTE $0x00 // movl $3, %eax - WORD $0x8949; BYTE $0xdf // movq %rbx, %r15 - LONG $0x000144e9; BYTE $0x00 // jmp LBB11_84, $324(%rip) - -LBB11_57: - LONG $0xd07d894c // movq %r15, $-48(%rbp) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0x000134e9; BYTE $0x00 // jmp LBB11_84, $308(%rip) - -LBB11_58: - LONG $0x0606c749; WORD $0x0000; BYTE $0x00 // movq $6, (%r14) - LONG $0xfffe1fe9; BYTE $0xff // jmp LBB11_33, $-481(%rip) - -LBB11_59: - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x00000db9; BYTE $0x00 // movl $13, %ecx - -LBB11_60: - LONG $0xc8490f48 // cmovnsq %rax, %rcx - WORD $0x8949; BYTE $0x0e // movq %rcx, (%r14) - LONG $0x1ff8c141 // sarl $31, %r8d - WORD $0xf741; BYTE $0xd0 // notl %r8d - WORD $0x6349; BYTE $0xc0 // movslq %r8d, %rax - WORD $0x0149; BYTE $0xc4 // addq %rax, %r12 - LONG $0xfffdf7e9; BYTE $0xff // jmp LBB11_33, $-521(%rip) - -LBB11_61: - LONG $0xd07d894c // movq %r15, $-48(%rbp) - WORD $0x8949; BYTE $0x1e // movq %rbx, (%r14) - WORD $0x894c; BYTE $0xfb // movq %r15, %rbx - LONG $0xfffdebe9; BYTE $0xff // jmp LBB11_34, $-533(%rip) - -LBB11_62: - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - WORD $0xf980; BYTE $0x61 // cmpb $97, %cl - LONG $0x00bd850f; WORD $0x0000 // jne LBB11_74, $189(%rip) - LONG $0x1d7c8041; WORD $0x6c02 // cmpb $108, $2(%r13,%rbx) - LONG $0x00c1850f; WORD $0x0000 // jne LBB11_81, $193(%rip) - LONG $0x1d7c8041; WORD $0x7303 // cmpb $115, $3(%r13,%rbx) - LONG $0x00be850f; WORD $0x0000 // jne LBB11_79, $190(%rip) - LONG $0x047b8d4c // leaq $4(%rbx), %r15 - LONG $0x054b8d48 // leaq $5(%rbx), %rcx - LONG $0x1d7c8041; WORD $0x6504 // cmpb $101, $4(%r13,%rbx) - LONG $0xf9440f4c // cmoveq %rcx, %r15 - LONG $0x0000aee9; BYTE $0x00 // jmp LBB11_83, $174(%rip) - -LBB11_66: - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - WORD $0xf980; BYTE $0x6e // cmpb $110, %cl - LONG $0x0072850f; WORD $0x0000 // jne LBB11_76, $114(%rip) - LONG $0x1d7c8041; WORD $0x7501 // cmpb $117, $1(%r13,%rbx) - LONG $0x0076850f; WORD $0x0000 // jne LBB11_77, $118(%rip) - LONG $0x1d7c8041; WORD $0x6c02 // cmpb $108, $2(%r13,%rbx) - LONG $0x0072850f; WORD $0x0000 // jne LBB11_81, $114(%rip) - LONG $0x037b8d4c // leaq $3(%rbx), %r15 - LONG $0x044b8d48 // leaq $4(%rbx), %rcx - LONG $0x1d7c8041; WORD $0x6c03 // cmpb $108, $3(%r13,%rbx) - LONG $0xf9440f4c // cmoveq %rcx, %r15 - LONG $0x00006be9; BYTE $0x00 // jmp LBB11_83, $107(%rip) - -LBB11_70: - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - WORD $0xf980; BYTE $0x74 // cmpb $116, %cl - LONG $0x002f850f; WORD $0x0000 // jne LBB11_76, $47(%rip) - LONG $0x1d7c8041; WORD $0x7201 // cmpb $114, $1(%r13,%rbx) - LONG $0x0033850f; WORD $0x0000 // jne LBB11_77, $51(%rip) - LONG $0x1d7c8041; WORD $0x7502 // cmpb $117, $2(%r13,%rbx) - LONG $0x002f850f; WORD $0x0000 // jne LBB11_81, $47(%rip) - LONG $0x037b8d4c // leaq $3(%rbx), %r15 - LONG $0x044b8d48 // leaq $4(%rbx), %rcx - LONG $0x1d7c8041; WORD $0x6503 // cmpb $101, $3(%r13,%rbx) - LONG $0xf9440f4c // cmoveq %rcx, %r15 - LONG $0x000028e9; BYTE $0x00 // jmp LBB11_83, $40(%rip) - -LBB11_76: - WORD $0x8949; BYTE $0xdf // movq %rbx, %r15 - LONG $0x000024e9; BYTE $0x00 // jmp LBB11_84, $36(%rip) - -LBB11_74: - WORD $0x894d; BYTE $0xe7 // movq %r12, %r15 - LONG $0x00001ce9; BYTE $0x00 // jmp LBB11_84, $28(%rip) - -LBB11_77: - WORD $0xff48; BYTE $0xc3 // incq %rbx - LONG $0x00000de9; BYTE $0x00 // jmp LBB11_82, $13(%rip) - -LBB11_81: - LONG $0x02c38348 // addq $2, %rbx - LONG $0x000004e9; BYTE $0x00 // jmp LBB11_82, $4(%rip) - -LBB11_79: - LONG $0x03c38348 // addq $3, %rbx - -LBB11_82: - WORD $0x8949; BYTE $0xdf // movq %rbx, %r15 - -LBB11_83: - LONG $0xd07d894c // movq %r15, $-48(%rbp) - -LBB11_84: - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - WORD $0x894c; BYTE $0xfb // movq %r15, %rbx - LONG $0xfffcefe9; BYTE $0xff // jmp LBB11_34, $-785(%rip) - -LBB11_85: - WORD $0x294d; BYTE $0xee // subq %r13, %r14 - LONG $0xd075894c // movq %r14, $-48(%rbp) - LONG $0xffc3c748; WORD $0xffff; BYTE $0xff // movq $-1, %rbx - LONG $0x000014e9; BYTE $0x00 // jmp LBB11_88, $20(%rip) - -LBB11_86: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0149; BYTE $0xc6 // addq %rax, %r14 - -LBB11_87: - WORD $0x294d; BYTE $0xee // subq %r13, %r14 - LONG $0xd075894c // movq %r14, $-48(%rbp) - LONG $0xfec3c748; WORD $0xffff; BYTE $0xff // movq $-2, %rbx - -LBB11_88: - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x8948; BYTE $0x18 // movq %rbx, (%rax) - WORD $0x894c; BYTE $0xf3 // movq %r14, %rbx - LONG $0xfffcb9e9; BYTE $0xff // jmp LBB11_34, $-839(%rip) - WORD $0x9090 // .p2align 2, 0x90 - - // .set L11_0_set_32, LBB11_32-LJTI11_0 - // .set L11_0_set_41, LBB11_41-LJTI11_0 - // .set L11_0_set_42, LBB11_42-LJTI11_0 - // .set L11_0_set_44, LBB11_44-LJTI11_0 - // .set L11_0_set_30, LBB11_30-LJTI11_0 - // .set L11_0_set_45, LBB11_45-LJTI11_0 - // .set L11_0_set_46, LBB11_46-LJTI11_0 - // .set L11_0_set_47, LBB11_47-LJTI11_0 - // .set L11_0_set_48, LBB11_48-LJTI11_0 - // .set L11_0_set_51, LBB11_51-LJTI11_0 - // .set L11_0_set_54, LBB11_54-LJTI11_0 - // .set L11_0_set_58, LBB11_58-LJTI11_0 - // .set L11_0_set_59, LBB11_59-LJTI11_0 -LJTI11_0: - LONG $0xfffffcad // .long L11_0_set_32 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd46 // .long L11_0_set_42 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd98 // .long L11_0_set_44 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffc86 // .long L11_0_set_30 - LONG $0xfffffdac // .long L11_0_set_45 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffdc0 // .long L11_0_set_46 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffdcc // .long L11_0_set_47 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffde0 // .long L11_0_set_48 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffe13 // .long L11_0_set_51 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffe46 // .long L11_0_set_54 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffe89 // .long L11_0_set_58 - LONG $0xfffffd3a // .long L11_0_set_41 - LONG $0xfffffe95 // .long L11_0_set_59 - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -_vstring: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x10ec8348 // subq $16, %rsp - WORD $0x8949; BYTE $0xd6 // movq %rdx, %r14 - WORD $0x8948; BYTE $0xf3 // movq %rsi, %rbx - WORD $0x8949; BYTE $0xff // movq %rdi, %r15 - QUAD $0xffffffffd845c748 // movq $-1, $-40(%rbp) - WORD $0x8b4c; BYTE $0x26 // movq (%rsi), %r12 - LONG $0xd8558d48 // leaq $-40(%rbp), %rdx - WORD $0x894c; BYTE $0xe6 // movq %r12, %rsi - LONG $0x000081e8; BYTE $0x00 // callq _advance_string, $129(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0027880f; WORD $0x0000 // js LBB12_1, $39(%rip) - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - LONG $0x1066894d // movq %r12, $16(%r14) - LONG $0xd84d8b48 // movq $-40(%rbp), %rcx - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xc14c0f48 // cmovlq %rcx, %rax - LONG $0x18468949 // movq %rax, $24(%r14) - LONG $0x000007b8; BYTE $0x00 // movl $7, %eax - LONG $0x000007e9; BYTE $0x00 // jmp LBB12_3, $7(%rip) - -LBB12_1: - LONG $0x084f8b49 // movq $8(%r15), %rcx - WORD $0x8948; BYTE $0x0b // movq %rcx, (%rbx) - -LBB12_3: - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0x10c48348 // addq $16, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; WORD $0x0000 // .p2align 4, 0x00 - -LCPI13_0: - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - -LCPI13_1: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - -LCPI13_2: - QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - - // .p2align 4, 0x90 -_advance_string: - WORD $0xc1f6; BYTE $0x20 // testb $32, %cl - LONG $0x0005850f; WORD $0x0000 // jne LBB13_2, $5(%rip) - LONG $0x005552e9; BYTE $0x00 // jmp _advance_string_default, $21842(%rip) - -LBB13_2: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x20ec8348 // subq $32, %rsp - LONG $0x085f8b48 // movq $8(%rdi), %rbx - WORD $0x2948; BYTE $0xf3 // subq %rsi, %rbx - LONG $0x04d4840f; WORD $0x0000 // je LBB13_21, $1236(%rip) - WORD $0x8b48; BYTE $0x07 // movq (%rdi), %rax - LONG $0xc0458948 // movq %rax, $-64(%rbp) - WORD $0x0148; BYTE $0xc6 // addq %rax, %rsi - LONG $0xc8558948 // movq %rdx, $-56(%rbp) - LONG $0xff02c748; WORD $0xffff; BYTE $0xff // movq $-1, (%rdx) - LONG $0x40fb8348 // cmpq $64, %rbx - LONG $0x024a820f; WORD $0x0000 // jb LBB13_22, $586(%rip) - QUAD $0xffffffffd045c748 // movq $-1, $-48(%rbp) - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - QUAD $0xffffff72056f79c5 // vmovdqa $-142(%rip), %xmm8 /* LCPI13_0(%rip) */ - QUAD $0xffffff7a0d6ff9c5 // vmovdqa $-134(%rip), %xmm1 /* LCPI13_1(%rip) */ - QUAD $0xffffff82156ff9c5 // vmovdqa $-126(%rip), %xmm2 /* LCPI13_2(%rip) */ - LONG $0xdb76e1c5 // vpcmpeqd %xmm3, %xmm3, %xmm3 - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB13_5: - LONG $0xb85d8948 // movq %rbx, $-72(%rbp) - LONG $0x266ffac5 // vmovdqu (%rsi), %xmm4 - LONG $0x6e6ffac5; BYTE $0x10 // vmovdqu $16(%rsi), %xmm5 - LONG $0x766ffac5; BYTE $0x20 // vmovdqu $32(%rsi), %xmm6 - LONG $0x7e6ffac5; BYTE $0x30 // vmovdqu $48(%rsi), %xmm7 - LONG $0xc474b9c5 // vpcmpeqb %xmm4, %xmm8, %xmm0 - LONG $0xe8d779c5 // vpmovmskb %xmm0, %r13d - LONG $0xc574b9c5 // vpcmpeqb %xmm5, %xmm8, %xmm0 - LONG $0xd0d7f9c5 // vpmovmskb %xmm0, %edx - LONG $0xc674b9c5 // vpcmpeqb %xmm6, %xmm8, %xmm0 - LONG $0xf0d779c5 // vpmovmskb %xmm0, %r14d - LONG $0xc774b9c5 // vpcmpeqb %xmm7, %xmm8, %xmm0 - LONG $0xd8d779c5 // vpmovmskb %xmm0, %r11d - LONG $0xc174d9c5 // vpcmpeqb %xmm1, %xmm4, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0xc174d1c5 // vpcmpeqb %xmm1, %xmm5, %xmm0 - LONG $0xc8d779c5 // vpmovmskb %xmm0, %r9d - LONG $0xc174c9c5 // vpcmpeqb %xmm1, %xmm6, %xmm0 - LONG $0xc0d779c5 // vpmovmskb %xmm0, %r8d - LONG $0xc174c1c5 // vpcmpeqb %xmm1, %xmm7, %xmm0 - LONG $0xc0d7f9c5 // vpmovmskb %xmm0, %eax - LONG $0xc464e9c5 // vpcmpgtb %xmm4, %xmm2, %xmm0 - LONG $0xe364d9c5 // vpcmpgtb %xmm3, %xmm4, %xmm4 - LONG $0xc4dbf9c5 // vpand %xmm4, %xmm0, %xmm0 - LONG $0xd8d7f9c5 // vpmovmskb %xmm0, %ebx - LONG $0xc564e9c5 // vpcmpgtb %xmm5, %xmm2, %xmm0 - LONG $0xe364d1c5 // vpcmpgtb %xmm3, %xmm5, %xmm4 - LONG $0xc4dbf9c5 // vpand %xmm4, %xmm0, %xmm0 - LONG $0xf8d7f9c5 // vpmovmskb %xmm0, %edi - LONG $0xc664e9c5 // vpcmpgtb %xmm6, %xmm2, %xmm0 - LONG $0xe364c9c5 // vpcmpgtb %xmm3, %xmm6, %xmm4 - LONG $0xc4dbf9c5 // vpand %xmm4, %xmm0, %xmm0 - LONG $0xd0d779c5 // vpmovmskb %xmm0, %r10d - LONG $0xc764e9c5 // vpcmpgtb %xmm7, %xmm2, %xmm0 - LONG $0xe364c1c5 // vpcmpgtb %xmm3, %xmm7, %xmm4 - LONG $0xc4dbf9c5 // vpand %xmm4, %xmm0, %xmm0 - LONG $0xe0d779c5 // vpmovmskb %xmm0, %r12d - LONG $0x30e3c149 // shlq $48, %r11 - LONG $0x20e6c149 // shlq $32, %r14 - LONG $0x10e2c148 // shlq $16, %rdx - WORD $0x0949; BYTE $0xd5 // orq %rdx, %r13 - WORD $0x094d; BYTE $0xf5 // orq %r14, %r13 - WORD $0x094d; BYTE $0xdd // orq %r11, %r13 - LONG $0x30e0c148 // shlq $48, %rax - LONG $0x20e0c149 // shlq $32, %r8 - LONG $0x10e1c149 // shlq $16, %r9 - WORD $0x094c; BYTE $0xc9 // orq %r9, %rcx - WORD $0x094c; BYTE $0xc1 // orq %r8, %rcx - LONG $0x30e4c149 // shlq $48, %r12 - LONG $0x20e2c149 // shlq $32, %r10 - LONG $0x10e7c148 // shlq $16, %rdi - WORD $0x0948; BYTE $0xfb // orq %rdi, %rbx - WORD $0x094c; BYTE $0xd3 // orq %r10, %rbx - WORD $0x0948; BYTE $0xc1 // orq %rax, %rcx - LONG $0x003c850f; WORD $0x0000 // jne LBB13_10, $60(%rip) - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0x0057850f; WORD $0x0000 // jne LBB13_12, $87(%rip) - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - WORD $0x094c; BYTE $0xe3 // orq %r12, %rbx - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - LONG $0x009d850f; WORD $0x0000 // jne LBB13_13, $157(%rip) - -LBB13_8: - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x00f2850f; WORD $0x0000 // jne LBB13_19, $242(%rip) - LONG $0x40c68348 // addq $64, %rsi - LONG $0xb85d8b48 // movq $-72(%rbp), %rbx - LONG $0xc0c38348 // addq $-64, %rbx - LONG $0x3ffb8348 // cmpq $63, %rbx - LONG $0xfef0870f; WORD $0xffff // ja LBB13_5, $-272(%rip) - LONG $0x00010be9; BYTE $0x00 // jmp LBB13_23, $267(%rip) - -LBB13_10: - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x0019850f; WORD $0x0000 // jne LBB13_12, $25(%rip) - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - LONG $0xc0452b48 // subq $-64(%rbp), %rax - LONG $0xd1bc0f48 // bsfq %rcx, %rdx - WORD $0x0148; BYTE $0xc2 // addq %rax, %rdx - LONG $0xc8458b48 // movq $-56(%rbp), %rax - LONG $0xd0558948 // movq %rdx, $-48(%rbp) - WORD $0x8948; BYTE $0x10 // movq %rdx, (%rax) - -LBB13_12: - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x2148; BYTE $0xc8 // andq %rcx, %rax - LONG $0x00148d48 // leaq (%rax,%rax), %rdx - WORD $0x094c; BYTE $0xfa // orq %r15, %rdx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x2148; BYTE $0xcf // andq %rcx, %rdi - QUAD $0xaaaaaaaaaaaab948; WORD $0xaaaa // movabsq $-6148914691236517206, %rcx - WORD $0x2148; BYTE $0xcf // andq %rcx, %rdi - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - LONG $0xc7920f41 // setb %r15b - WORD $0x0148; BYTE $0xff // addq %rdi, %rdi - QUAD $0x555555555555b848; WORD $0x5555 // movabsq $6148914691236517205, %rax - WORD $0x3148; BYTE $0xc7 // xorq %rax, %rdi - WORD $0x2148; BYTE $0xd7 // andq %rdx, %rdi - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x2149; BYTE $0xfd // andq %rdi, %r13 - WORD $0x094c; BYTE $0xe3 // orq %r12, %rbx - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - LONG $0xff63840f; WORD $0xffff // je LBB13_8, $-157(%rip) - -LBB13_13: - LONG $0xc5bc0f49 // bsfq %r13, %rax - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0029840f; WORD $0x0000 // je LBB13_17, $41(%rip) - LONG $0xcbbc0f48 // bsfq %rbx, %rcx - LONG $0xc8558b48 // movq $-56(%rbp), %rdx - LONG $0xc0752b48 // subq $-64(%rbp), %rsi - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0x002a820f; WORD $0x0000 // jb LBB13_18, $42(%rip) - -LBB13_15: - LONG $0x06448d48; BYTE $0x01 // leaq $1(%rsi,%rax), %rax - -LBB13_16: - LONG $0x20c48348 // addq $32, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB13_17: - LONG $0x000040b9; BYTE $0x00 // movl $64, %ecx - LONG $0xc8558b48 // movq $-56(%rbp), %rdx - LONG $0xc0752b48 // subq $-64(%rbp), %rsi - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0xffd6830f; WORD $0xffff // jae LBB13_15, $-42(%rip) - -LBB13_18: - WORD $0x0148; BYTE $0xf1 // addq %rsi, %rcx - WORD $0x8948; BYTE $0x0a // movq %rcx, (%rdx) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xffffc9e9; BYTE $0xff // jmp LBB13_16, $-55(%rip) - -LBB13_19: - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0xffb7850f; WORD $0xffff // jne LBB13_16, $-73(%rip) - LONG $0xcbbc0f48 // bsfq %rbx, %rcx - LONG $0xc0752b48 // subq $-64(%rbp), %rsi - WORD $0x0148; BYTE $0xce // addq %rcx, %rsi - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8948; BYTE $0x31 // movq %rsi, (%rcx) - LONG $0xffffa0e9; BYTE $0xff // jmp LBB13_16, $-96(%rip) - -LBB13_22: - QUAD $0xffffffffd045c748 // movq $-1, $-48(%rbp) - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - -LBB13_23: - LONG $0x20fb8348 // cmpq $32, %rbx - LONG $0x00e1820f; WORD $0x0000 // jb LBB13_36, $225(%rip) - LONG $0x066ffac5 // vmovdqu (%rsi), %xmm0 - LONG $0x4e6ffac5; BYTE $0x10 // vmovdqu $16(%rsi), %xmm1 - QUAD $0xfffffd15156ff9c5 // vmovdqa $-747(%rip), %xmm2 /* LCPI13_0(%rip) */ - LONG $0xda74f9c5 // vpcmpeqb %xmm2, %xmm0, %xmm3 - LONG $0xdbd779c5 // vpmovmskb %xmm3, %r11d - LONG $0xd274f1c5 // vpcmpeqb %xmm2, %xmm1, %xmm2 - LONG $0xd2d7f9c5 // vpmovmskb %xmm2, %edx - QUAD $0xfffffd0d156ff9c5 // vmovdqa $-755(%rip), %xmm2 /* LCPI13_1(%rip) */ - LONG $0xda74f9c5 // vpcmpeqb %xmm2, %xmm0, %xmm3 - LONG $0xd3d779c5 // vpmovmskb %xmm3, %r10d - LONG $0xd274f1c5 // vpcmpeqb %xmm2, %xmm1, %xmm2 - LONG $0xc2d7f9c5 // vpmovmskb %xmm2, %eax - QUAD $0xfffffd05156ff9c5 // vmovdqa $-763(%rip), %xmm2 /* LCPI13_2(%rip) */ - LONG $0xd864e9c5 // vpcmpgtb %xmm0, %xmm2, %xmm3 - LONG $0xe476d9c5 // vpcmpeqd %xmm4, %xmm4, %xmm4 - LONG $0xc464f9c5 // vpcmpgtb %xmm4, %xmm0, %xmm0 - LONG $0xc0dbe1c5 // vpand %xmm0, %xmm3, %xmm0 - LONG $0xc0d779c5 // vpmovmskb %xmm0, %r8d - LONG $0xc164e9c5 // vpcmpgtb %xmm1, %xmm2, %xmm0 - LONG $0xcc64f1c5 // vpcmpgtb %xmm4, %xmm1, %xmm1 - LONG $0xc1dbf9c5 // vpand %xmm1, %xmm0, %xmm0 - LONG $0xf8d7f9c5 // vpmovmskb %xmm0, %edi - LONG $0x10e2c148 // shlq $16, %rdx - WORD $0x0949; BYTE $0xd3 // orq %rdx, %r11 - LONG $0x10e0c148 // shlq $16, %rax - LONG $0x10e7c148 // shlq $16, %rdi - WORD $0x0949; BYTE $0xc2 // orq %rax, %r10 - LONG $0x0111850f; WORD $0x0000 // jne LBB13_48, $273(%rip) - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0x012c850f; WORD $0x0000 // jne LBB13_50, $300(%rip) - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - -LBB13_27: - WORD $0x094c; BYTE $0xc7 // orq %r8, %rdi - LONG $0x000040b8; BYTE $0x00 // movl $64, %eax - LONG $0x000040ba; BYTE $0x00 // movl $64, %edx - WORD $0x854d; BYTE $0xdb // testq %r11, %r11 - LONG $0x0004840f; WORD $0x0000 // je LBB13_29, $4(%rip) - LONG $0xd3bc0f49 // bsfq %r11, %rdx - -LBB13_29: - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x0004840f; WORD $0x0000 // je LBB13_31, $4(%rip) - LONG $0xc7bc0f48 // bsfq %rdi, %rax - -LBB13_31: - WORD $0x854d; BYTE $0xdb // testq %r11, %r11 - LONG $0x0017840f; WORD $0x0000 // je LBB13_34, $23(%rip) - LONG $0xc0752b48 // subq $-64(%rbp), %rsi - WORD $0x3948; BYTE $0xd0 // cmpq %rdx, %rax - LONG $0x0124820f; WORD $0x0000 // jb LBB13_51, $292(%rip) - LONG $0x16448d48; BYTE $0x01 // leaq $1(%rsi,%rdx), %rax - LONG $0xfffebbe9; BYTE $0xff // jmp LBB13_16, $-325(%rip) - -LBB13_34: - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x0127850f; WORD $0x0000 // jne LBB13_52, $295(%rip) - LONG $0x20c68348 // addq $32, %rsi - LONG $0xe0c38348 // addq $-32, %rbx - -LBB13_36: - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0x0122850f; WORD $0x0000 // jne LBB13_53, $290(%rip) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0xfe91840f; WORD $0xffff // je LBB13_16, $-367(%rip) - -LBB13_38: - LONG $0xc87d8b48 // movq $-56(%rbp), %rdi - -LBB13_39: - WORD $0xb60f; BYTE $0x0e // movzbl (%rsi), %ecx - WORD $0xf980; BYTE $0x22 // cmpb $34, %cl - LONG $0x0075840f; WORD $0x0000 // je LBB13_47, $117(%rip) - WORD $0xf980; BYTE $0x5c // cmpb $92, %cl - LONG $0x0026840f; WORD $0x0000 // je LBB13_43, $38(%rip) - WORD $0xf980; BYTE $0x1f // cmpb $31, %cl - LONG $0x0146860f; WORD $0x0000 // jbe LBB13_57, $326(%rip) - LONG $0xffc1c748; WORD $0xffff; BYTE $0xff // movq $-1, %rcx - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - WORD $0x0148; BYTE $0xd6 // addq %rdx, %rsi - WORD $0x0148; BYTE $0xcb // addq %rcx, %rbx - LONG $0xffca850f; WORD $0xffff // jne LBB13_39, $-54(%rip) - LONG $0xfffe52e9; BYTE $0xff // jmp LBB13_16, $-430(%rip) - -LBB13_43: - LONG $0x01fb8348 // cmpq $1, %rbx - LONG $0xfe48840f; WORD $0xffff // je LBB13_16, $-440(%rip) - WORD $0x8949; BYTE $0xd8 // movq %rbx, %r8 - LONG $0xfec1c748; WORD $0xffff; BYTE $0xff // movq $-2, %rcx - LONG $0x000002ba; BYTE $0x00 // movl $2, %edx - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x000e850f; WORD $0x0000 // jne LBB13_46, $14(%rip) - WORD $0x8948; BYTE $0xf3 // movq %rsi, %rbx - LONG $0xc05d2b48 // subq $-64(%rbp), %rbx - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - WORD $0x8948; BYTE $0x1f // movq %rbx, (%rdi) - -LBB13_46: - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - WORD $0x0148; BYTE $0xd6 // addq %rdx, %rsi - WORD $0x0148; BYTE $0xcb // addq %rcx, %rbx - LONG $0xff84850f; WORD $0xffff // jne LBB13_39, $-124(%rip) - LONG $0xfffe0ce9; BYTE $0xff // jmp LBB13_16, $-500(%rip) - -LBB13_47: - LONG $0xc0752b48 // subq $-64(%rbp), %rsi - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - LONG $0xfffdfde9; BYTE $0xff // jmp LBB13_16, $-515(%rip) - -LBB13_48: - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x0019850f; WORD $0x0000 // jne LBB13_50, $25(%rip) - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - LONG $0xc0452b48 // subq $-64(%rbp), %rax - LONG $0xd2bc0f49 // bsfq %r10, %rdx - WORD $0x0148; BYTE $0xc2 // addq %rax, %rdx - LONG $0xc8458b48 // movq $-56(%rbp), %rax - LONG $0xd0558948 // movq %rdx, $-48(%rbp) - WORD $0x8948; BYTE $0x10 // movq %rdx, (%rax) - -LBB13_50: - WORD $0x8944; BYTE $0xf8 // movl %r15d, %eax - WORD $0xd0f7 // notl %eax - WORD $0x2144; BYTE $0xd0 // andl %r10d, %eax - LONG $0x470c8d45 // leal (%r15,%rax,2), %r9d - WORD $0x148d; BYTE $0x00 // leal (%rax,%rax), %edx - WORD $0xd2f7 // notl %edx - WORD $0x2144; BYTE $0xd2 // andl %r10d, %edx - LONG $0xaaaae281; WORD $0xaaaa // andl $-1431655766, %edx - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - WORD $0xc201 // addl %eax, %edx - LONG $0xc7920f41 // setb %r15b - WORD $0xd201 // addl %edx, %edx - LONG $0x5555f281; WORD $0x5555 // xorl $1431655765, %edx - WORD $0x2144; BYTE $0xca // andl %r9d, %edx - WORD $0xd2f7 // notl %edx - WORD $0x2141; BYTE $0xd3 // andl %edx, %r11d - LONG $0xfffe9fe9; BYTE $0xff // jmp LBB13_27, $-353(%rip) - -LBB13_51: - WORD $0x0148; BYTE $0xf0 // addq %rsi, %rax - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xfffd8be9; BYTE $0xff // jmp LBB13_16, $-629(%rip) - -LBB13_52: - LONG $0xc0752b48 // subq $-64(%rbp), %rsi - WORD $0x0148; BYTE $0xc6 // addq %rax, %rsi - LONG $0x00005ae9; BYTE $0x00 // jmp LBB13_58, $90(%rip) - -LBB13_53: - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0041840f; WORD $0x0000 // je LBB13_21, $65(%rip) - WORD $0x8948; BYTE $0xda // movq %rbx, %rdx - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x0015850f; WORD $0x0000 // jne LBB13_56, $21(%rip) - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - WORD $0x0148; BYTE $0xf1 // addq %rsi, %rcx - LONG $0xc8458b48 // movq $-56(%rbp), %rax - LONG $0xd04d8948 // movq %rcx, $-48(%rbp) - WORD $0x8948; BYTE $0x08 // movq %rcx, (%rax) - -LBB13_56: - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x8948; BYTE $0xd3 // movq %rdx, %rbx - WORD $0xff48; BYTE $0xcb // decq %rbx - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0xfea9850f; WORD $0xffff // jne LBB13_38, $-343(%rip) - LONG $0xfffd35e9; BYTE $0xff // jmp LBB13_16, $-715(%rip) - -LBB13_21: - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xfffd29e9; BYTE $0xff // jmp LBB13_16, $-727(%rip) - -LBB13_57: - LONG $0xc0752b48 // subq $-64(%rbp), %rsi - -LBB13_58: - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x8948; BYTE $0x30 // movq %rsi, (%rax) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xfffd12e9; BYTE $0xff // jmp LBB13_16, $-750(%rip) - QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI14_0: - LONG $0x43300000 // .long 1127219200 - LONG $0x45300000 // .long 1160773632 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - -LCPI14_1: - QUAD $0x4330000000000000 // .quad 0x4330000000000000 - QUAD $0x4530000000000000 // .quad 0x4530000000000000 - - // .p2align 3, 0x00 -LCPI14_2: - QUAD $0x430c6bf526340000 // .quad 0x430c6bf526340000 - -LCPI14_3: - QUAD $0xc30c6bf526340000 // .quad 0xc30c6bf526340000 - - // .p2align 4, 0x90 -_vnumber: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x38ec8348 // subq $56, %rsp - WORD $0x8949; BYTE $0xd6 // movq %rdx, %r14 - QUAD $0x00000000c845c748 // movq $0, $-56(%rbp) - WORD $0x8b48; BYTE $0x06 // movq (%rsi), %rax - WORD $0x8b4c; BYTE $0x3f // movq (%rdi), %r15 - LONG $0x086f8b4c // movq $8(%rdi), %r13 - LONG $0x205a8b48 // movq $32(%rdx), %rbx - LONG $0x285a8b4c // movq $40(%rdx), %r11 - LONG $0x0902c748; WORD $0x0000; BYTE $0x00 // movq $9, (%rdx) - LONG $0xc057f9c5 // vxorpd %xmm0, %xmm0, %xmm0 - LONG $0x4211f9c5; BYTE $0x08 // vmovupd %xmm0, $8(%rdx) - WORD $0x8b48; BYTE $0x0e // movq (%rsi), %rcx - LONG $0x184a8948 // movq %rcx, $24(%rdx) - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0045830f; WORD $0x0000 // jae LBB14_6, $69(%rip) - LONG $0x073c8a41 // movb (%r15,%rax), %dil - LONG $0x0001ba41; WORD $0x0000 // movl $1, %r10d - LONG $0x2dff8040 // cmpb $45, %dil - LONG $0x0016850f; WORD $0x0000 // jne LBB14_4, $22(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0025830f; WORD $0x0000 // jae LBB14_6, $37(%rip) - LONG $0x073c8a41 // movb (%r15,%rax), %dil - LONG $0xffffba41; WORD $0xffff // movl $-1, %r10d - -LBB14_4: - WORD $0x4f8d; BYTE $0xd0 // leal $-48(%rdi), %ecx - WORD $0xf980; BYTE $0x0a // cmpb $10, %cl - LONG $0x0028820f; WORD $0x0000 // jb LBB14_9, $40(%rip) - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xfe06c749; WORD $0xffff; BYTE $0xff // movq $-2, (%r14) - LONG $0x00000ae9; BYTE $0x00 // jmp LBB14_8, $10(%rip) - -LBB14_6: - WORD $0x894c; BYTE $0x2e // movq %r13, (%rsi) - -LBB14_7: - LONG $0xff06c749; WORD $0xffff; BYTE $0xff // movq $-1, (%r14) - -LBB14_8: - LONG $0x38c48348 // addq $56, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB14_9: - LONG $0x30ff8040 // cmpb $48, %dil - LONG $0x0035850f; WORD $0x0000 // jne LBB14_13, $53(%rip) - LONG $0x01488d4c // leaq $1(%rax), %r9 - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x00bf830f; WORD $0x0000 // jae LBB14_22, $191(%rip) - LONG $0x0f148a43 // movb (%r15,%r9), %dl - WORD $0xc280; BYTE $0xd2 // addb $-46, %dl - WORD $0xfa80; BYTE $0x37 // cmpb $55, %dl - LONG $0x00af870f; WORD $0x0000 // ja LBB14_22, $175(%rip) - LONG $0xc2b60f44 // movzbl %dl, %r8d - QUAD $0x000000800001ba48; WORD $0x0080 // movabsq $36028797027352577, %rdx - LONG $0xc2a30f4c // btq %r8, %rdx - LONG $0x0097830f; WORD $0x0000 // jae LBB14_22, $151(%rip) - -LBB14_13: - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0xa05d8948 // movq %rbx, $-96(%rbp) - LONG $0xc0558944 // movl %r10d, $-64(%rbp) - LONG $0xd0758948 // movq %rsi, $-48(%rbp) - LONG $0x0075830f; WORD $0x0000 // jae LBB14_21, $117(%rip) - WORD $0xf980; BYTE $0x09 // cmpb $9, %cl - LONG $0x0081870f; WORD $0x0000 // ja LBB14_23, $129(%rip) - LONG $0xffd0b841; WORD $0xffff // movl $4294967248, %r8d - LONG $0xff4d8d4d // leaq $-1(%r13), %r9 - WORD $0xc931 // xorl %ecx, %ecx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB14_16: - LONG $0x12fa8341 // cmpl $18, %r10d - LONG $0x00268f0f; WORD $0x0000 // jg LBB14_18, $38(%rip) - LONG $0xa4148d4b // leaq (%r12,%r12,4), %rdx - LONG $0xffbe0f40 // movsbl %dil, %edi - WORD $0x0144; BYTE $0xc7 // addl %r8d, %edi - LONG $0x57248d4c // leaq (%rdi,%rdx,2), %r12 - WORD $0xff41; BYTE $0xc2 // incl %r10d - LONG $0x000011e9; BYTE $0x00 // jmp LBB14_19, $17(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB14_18: - WORD $0xc1ff // incl %ecx - -LBB14_19: - WORD $0x3949; BYTE $0xc1 // cmpq %rax, %r9 - LONG $0x0079840f; WORD $0x0000 // je LBB14_28, $121(%rip) - LONG $0x7cb60f41; WORD $0x0107 // movzbl $1(%r15,%rax), %edi - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x578d; BYTE $0xd0 // leal $-48(%rdi), %edx - WORD $0xfa80; BYTE $0x0a // cmpb $10, %dl - LONG $0xffb0820f; WORD $0xffff // jb LBB14_16, $-80(%rip) - LONG $0x00001de9; BYTE $0x00 // jmp LBB14_24, $29(%rip) - -LBB14_21: - WORD $0xc931 // xorl %ecx, %ecx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x000055e9; BYTE $0x00 // jmp LBB14_29, $85(%rip) - -LBB14_22: - WORD $0x894c; BYTE $0x0e // movq %r9, (%rsi) - LONG $0xffff13e9; BYTE $0xff // jmp LBB14_8, $-237(%rip) - -LBB14_23: - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0xc931 // xorl %ecx, %ecx - -LBB14_24: - WORD $0xd231 // xorl %edx, %edx - WORD $0xc985 // testl %ecx, %ecx - WORD $0x9f0f; BYTE $0xc2 // setg %dl - WORD $0x5589; BYTE $0xc4 // movl %edx, $-60(%rbp) - WORD $0xb041; BYTE $0x01 // movb $1, %r8b - LONG $0x2eff8040 // cmpb $46, %dil - LONG $0x003b850f; WORD $0x0000 // jne LBB14_30, $59(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0x0806c749; WORD $0x0000; BYTE $0x00 // movq $8, (%r14) - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0268830f; WORD $0x0000 // jae LBB14_68, $616(%rip) - LONG $0x07148a41 // movb (%r15,%rax), %dl - WORD $0xc280; BYTE $0xd0 // addb $-48, %dl - WORD $0xfa80; BYTE $0x0a // cmpb $10, %dl - LONG $0x0401830f; WORD $0x0000 // jae LBB14_91, $1025(%rip) - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - LONG $0x000010e9; BYTE $0x00 // jmp LBB14_30, $16(%rip) - -LBB14_28: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - -LBB14_29: - WORD $0xd231 // xorl %edx, %edx - WORD $0xc985 // testl %ecx, %ecx - WORD $0x9f0f; BYTE $0xc2 // setg %dl - WORD $0x5589; BYTE $0xc4 // movl %edx, $-60(%rbp) - WORD $0xb041; BYTE $0x01 // movb $1, %r8b - -LBB14_30: - WORD $0xc985 // testl %ecx, %ecx - LONG $0x0056850f; WORD $0x0000 // jne LBB14_39, $86(%rip) - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x004d850f; WORD $0x0000 // jne LBB14_39, $77(%rip) - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x003c830f; WORD $0x0000 // jae LBB14_37, $60(%rip) - WORD $0xc689 // movl %eax, %esi - WORD $0x2944; BYTE $0xee // subl %r13d, %esi - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0xc931 // xorl %ecx, %ecx - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB14_34: - LONG $0x073c8041; BYTE $0x30 // cmpb $48, (%r15,%rax) - LONG $0x0024850f; WORD $0x0000 // jne LBB14_38, $36(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0xc9ff // decl %ecx - WORD $0x3949; BYTE $0xc5 // cmpq %rax, %r13 - LONG $0xffe7850f; WORD $0xffff // jne LBB14_34, $-25(%rip) - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0x8445; BYTE $0xc0 // testb %r8b, %r8b - LONG $0x0122850f; WORD $0x0000 // jne LBB14_58, $290(%rip) - LONG $0x000152e9; BYTE $0x00 // jmp LBB14_62, $338(%rip) - -LBB14_37: - WORD $0xc931 // xorl %ecx, %ecx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - -LBB14_38: - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - -LBB14_39: - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0051830f; WORD $0x0000 // jae LBB14_45, $81(%rip) - LONG $0x12fa8341 // cmpl $18, %r10d - LONG $0x00478f0f; WORD $0x0000 // jg LBB14_45, $71(%rip) - LONG $0xffd0b941; WORD $0xffff // movl $4294967248, %r9d - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB14_42: - LONG $0x14b60f41; BYTE $0x07 // movzbl (%r15,%rax), %edx - WORD $0x7a8d; BYTE $0xd0 // leal $-48(%rdx), %edi - LONG $0x09ff8040 // cmpb $9, %dil - LONG $0x002a870f; WORD $0x0000 // ja LBB14_45, $42(%rip) - LONG $0xa43c8d4b // leaq (%r12,%r12,4), %rdi - WORD $0x0144; BYTE $0xca // addl %r9d, %edx - LONG $0x7a248d4c // leaq (%rdx,%rdi,2), %r12 - WORD $0xc9ff // decl %ecx - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0011830f; WORD $0x0000 // jae LBB14_45, $17(%rip) - LONG $0x01528d41 // leal $1(%r10), %edx - LONG $0x12fa8341 // cmpl $18, %r10d - WORD $0x8941; BYTE $0xd2 // movl %edx, %r10d - LONG $0xffc48c0f; WORD $0xffff // jl LBB14_42, $-60(%rip) - -LBB14_45: - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x00a4830f; WORD $0x0000 // jae LBB14_57, $164(%rip) - LONG $0x07348a41 // movb (%r15,%rax), %sil - WORD $0x568d; BYTE $0xd0 // leal $-48(%rsi), %edx - WORD $0xfa80; BYTE $0x09 // cmpb $9, %dl - LONG $0x0030870f; WORD $0x0000 // ja LBB14_51, $48(%rip) - LONG $0xff7d8d49 // leaq $-1(%r13), %rdi - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB14_48: - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x0167840f; WORD $0x0000 // je LBB14_69, $359(%rip) - LONG $0x74b60f41; WORD $0x0107 // movzbl $1(%r15,%rax), %esi - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x568d; BYTE $0xd0 // leal $-48(%rsi), %edx - WORD $0xfa80; BYTE $0x09 // cmpb $9, %dl - LONG $0xffe2860f; WORD $0xffff // jbe LBB14_48, $-30(%rip) - LONG $0x01c445c7; WORD $0x0000; BYTE $0x00 // movl $1, $-60(%rbp) - -LBB14_51: - LONG $0x20ce8040 // orb $32, %sil - LONG $0x65fe8040 // cmpb $101, %sil - LONG $0x0056850f; WORD $0x0000 // jne LBB14_57, $86(%rip) - LONG $0x01788d48 // leaq $1(%rax), %rdi - LONG $0x0806c749; WORD $0x0000; BYTE $0x00 // movq $8, (%r14) - WORD $0x394c; BYTE $0xef // cmpq %r13, %rdi - LONG $0x011d830f; WORD $0x0000 // jae LBB14_68, $285(%rip) - LONG $0x3f348a41 // movb (%r15,%rdi), %sil - LONG $0x2dfe8040 // cmpb $45, %sil - LONG $0x0010840f; WORD $0x0000 // je LBB14_55, $16(%rip) - LONG $0x0001b841; WORD $0x0000 // movl $1, %r8d - LONG $0x2bfe8040 // cmpb $43, %sil - LONG $0x0298850f; WORD $0x0000 // jne LBB14_89, $664(%rip) - -LBB14_55: - LONG $0x02c08348 // addq $2, %rax - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x00f2830f; WORD $0x0000 // jae LBB14_68, $242(%rip) - WORD $0xd231 // xorl %edx, %edx - LONG $0x2bfe8040 // cmpb $43, %sil - WORD $0x940f; BYTE $0xc2 // sete %dl - LONG $0x12448d44; BYTE $0xff // leal $-1(%rdx,%rdx), %r8d - LONG $0x07348a41 // movb (%r15,%rax), %sil - LONG $0x000277e9; BYTE $0x00 // jmp LBB14_90, $631(%rip) - -LBB14_57: - WORD $0xce89 // movl %ecx, %esi - WORD $0x8949; BYTE $0xc5 // movq %rax, %r13 - WORD $0x8445; BYTE $0xc0 // testb %r8b, %r8b - LONG $0x0035840f; WORD $0x0000 // je LBB14_62, $53(%rip) - -LBB14_58: - WORD $0xf685 // testl %esi, %esi - LONG $0x0026850f; WORD $0x0000 // jne LBB14_61, $38(%rip) - QUAD $0x000000000000b848; WORD $0x8000 // movabsq $-9223372036854775808, %rax - LONG $0xc04d6348 // movslq $-64(%rbp), %rcx - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x00f2890f; WORD $0x0000 // jns LBB14_72, $242(%rip) - WORD $0x894c; BYTE $0xe2 // movq %r12, %rdx - WORD $0x2148; BYTE $0xca // andq %rcx, %rdx - WORD $0x3948; BYTE $0xc2 // cmpq %rax, %rdx - LONG $0x00e3840f; WORD $0x0000 // je LBB14_72, $227(%rip) - -LBB14_61: - LONG $0x0806c749; WORD $0x0000; BYTE $0x00 // movq $8, (%r14) - -LBB14_62: - QUAD $0x00000000b845c748 // movq $0, $-72(%rbp) - LONG $0x6ef9c1c4; BYTE $0xc4 // vmovq %r12, %xmm0 - QUAD $0xfffffc2f0562f9c5 // vpunpckldq $-977(%rip), %xmm0, %xmm0 /* LCPI14_0(%rip) */ - QUAD $0xfffffc37055cf9c5 // vsubpd $-969(%rip), %xmm0, %xmm0 /* LCPI14_1(%rip) */ - LONG $0x0579e3c4; WORD $0x01c8 // vpermilpd $1, %xmm0, %xmm1 - LONG $0xc058f3c5 // vaddsd %xmm0, %xmm1, %xmm0 - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - LONG $0x34e8c148 // shrq $52, %rax - LONG $0x011f850f; WORD $0x0000 // jne LBB14_77, $287(%rip) - LONG $0x7ef9e1c4; BYTE $0xc1 // vmovq %xmm0, %rcx - WORD $0x458b; BYTE $0xc0 // movl $-64(%rbp), %eax - WORD $0xe8c1; BYTE $0x1f // shrl $31, %eax - LONG $0x3fe0c148 // shlq $63, %rax - WORD $0x0948; BYTE $0xc8 // orq %rcx, %rax - LONG $0xc8458948 // movq %rax, $-56(%rbp) - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x019f840f; WORD $0x0000 // je LBB14_85, $415(%rip) - WORD $0xf685 // testl %esi, %esi - LONG $0x0197840f; WORD $0x0000 // je LBB14_85, $407(%rip) - LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq %rax, %xmm0 - WORD $0x468d; BYTE $0xff // leal $-1(%rsi), %eax - WORD $0xf883; BYTE $0x24 // cmpl $36, %eax - LONG $0x004a870f; WORD $0x0000 // ja LBB14_70, $74(%rip) - WORD $0xfe83; BYTE $0x17 // cmpl $23, %esi - LONG $0x00a48c0f; WORD $0x0000 // jl LBB14_73, $164(%rip) - WORD $0x468d; BYTE $0xea // leal $-22(%rsi), %eax - LONG $0xc00d8d48; WORD $0x00ed; BYTE $0x00 // leaq $60864(%rip), %rcx /* _P10_TAB(%rip) */ - LONG $0x0459fbc5; BYTE $0xc1 // vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - LONG $0x000016b8; BYTE $0x00 // movl $22, %eax - LONG $0x000088e9; BYTE $0x00 // jmp LBB14_74, $136(%rip) - -LBB14_68: - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x894c; BYTE $0x28 // movq %r13, (%rax) - LONG $0xfffc66e9; BYTE $0xff // jmp LBB14_7, $-922(%rip) - -LBB14_69: - LONG $0x01c445c7; WORD $0x0000; BYTE $0x00 // movl $1, $-60(%rbp) - WORD $0xce89 // movl %ecx, %esi - WORD $0x8445; BYTE $0xc0 // testb %r8b, %r8b - LONG $0xff15850f; WORD $0xffff // jne LBB14_58, $-235(%rip) - LONG $0xffff45e9; BYTE $0xff // jmp LBB14_62, $-187(%rip) - -LBB14_70: - WORD $0xfe83; BYTE $0xea // cmpl $-22, %esi - LONG $0x0094820f; WORD $0x0000 // jb LBB14_77, $148(%rip) - WORD $0xdef7 // negl %esi - LONG $0x77058d48; WORD $0x00ed; BYTE $0x00 // leaq $60791(%rip), %rax /* _P10_TAB(%rip) */ - LONG $0x045efbc5; BYTE $0xf0 // vdivsd (%rax,%rsi,8), %xmm0, %xmm0 - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - LONG $0x0000dee9; BYTE $0x00 // jmp LBB14_81, $222(%rip) - -LBB14_72: - LONG $0x6ef9c1c4; BYTE $0xc4 // vmovq %r12, %xmm0 - LONG $0xe1af0f4c // imulq %rcx, %r12 - QUAD $0xfffffb570562f9c5 // vpunpckldq $-1193(%rip), %xmm0, %xmm0 /* LCPI14_0(%rip) */ - QUAD $0xfffffb5f055cf9c5 // vsubpd $-1185(%rip), %xmm0, %xmm0 /* LCPI14_1(%rip) */ - LONG $0x1066894d // movq %r12, $16(%r14) - LONG $0x0579e3c4; WORD $0x01c8 // vpermilpd $1, %xmm0, %xmm1 - LONG $0xc058f3c5 // vaddsd %xmm0, %xmm1, %xmm0 - WORD $0x2148; BYTE $0xc8 // andq %rcx, %rax - LONG $0x7ef9e1c4; BYTE $0xc1 // vmovq %xmm0, %rcx - WORD $0x0948; BYTE $0xc1 // orq %rax, %rcx - LONG $0x084e8949 // movq %rcx, $8(%r14) - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x894c; BYTE $0x28 // movq %r13, (%rax) - LONG $0xfffbf3e9; BYTE $0xff // jmp LBB14_8, $-1037(%rip) - -LBB14_73: - WORD $0xf089 // movl %esi, %eax - -LBB14_74: - QUAD $0xfffffb3c052ef9c5 // vucomisd $-1220(%rip), %xmm0 /* LCPI14_2(%rip) */ - LONG $0x002a870f; WORD $0x0000 // ja LBB14_77, $42(%rip) - QUAD $0xfffffb360d10fbc5 // vmovsd $-1226(%rip), %xmm1 /* LCPI14_3(%rip) */ - LONG $0xc82ef9c5 // vucomisd %xmm0, %xmm1 - LONG $0x0018870f; WORD $0x0000 // ja LBB14_77, $24(%rip) - WORD $0xc089 // movl %eax, %eax - LONG $0xfb0d8d48; WORD $0x00ec; BYTE $0x00 // leaq $60667(%rip), %rcx /* _P10_TAB(%rip) */ - LONG $0x0459fbc5; BYTE $0xc1 // vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - LONG $0x000062e9; BYTE $0x00 // jmp LBB14_81, $98(%rip) - -LBB14_77: - LONG $0xa85d894c // movq %r11, $-88(%rbp) - LONG $0xc84d8d48 // leaq $-56(%rbp), %rcx - WORD $0x894c; BYTE $0xe7 // movq %r12, %rdi - WORD $0x5d8b; BYTE $0xc0 // movl $-64(%rbp), %ebx - WORD $0xda89 // movl %ebx, %edx - LONG $0xb0758948 // movq %rsi, $-80(%rbp) - LONG $0xffe613e8; BYTE $0xff // callq _atof_eisel_lemire64, $-6637(%rip) - WORD $0xc084 // testb %al, %al - LONG $0x004b840f; WORD $0x0000 // je LBB14_83, $75(%rip) - LONG $0xb0758b48 // movq $-80(%rbp), %rsi - LONG $0x00c47d83 // cmpl $0, $-60(%rbp) - LONG $0x006c840f; WORD $0x0000 // je LBB14_84, $108(%rip) - WORD $0xff49; BYTE $0xc4 // incq %r12 - LONG $0xb84d8d48 // leaq $-72(%rbp), %rcx - WORD $0x894c; BYTE $0xe7 // movq %r12, %rdi - WORD $0xda89 // movl %ebx, %edx - LONG $0xffe5ece8; BYTE $0xff // callq _atof_eisel_lemire64, $-6676(%rip) - WORD $0xc084 // testb %al, %al - LONG $0x0024840f; WORD $0x0000 // je LBB14_83, $36(%rip) - LONG $0x4d10fbc5; BYTE $0xb8 // vmovsd $-72(%rbp), %xmm1 - LONG $0x4510fbc5; BYTE $0xc8 // vmovsd $-56(%rbp), %xmm0 - LONG $0xc82ef9c5 // vucomisd %xmm0, %xmm1 - LONG $0x0010850f; WORD $0x0000 // jne LBB14_83, $16(%rip) - LONG $0x000a8a0f; WORD $0x0000 // jp LBB14_83, $10(%rip) - -LBB14_81: - LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq %xmm0, %rax - LONG $0x000033e9; BYTE $0x00 // jmp LBB14_85, $51(%rip) - -LBB14_83: - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - WORD $0x8b48; BYTE $0x03 // movq (%rbx), %rax - WORD $0x0149; BYTE $0xc7 // addq %rax, %r15 - WORD $0x894c; BYTE $0xee // movq %r13, %rsi - WORD $0x2948; BYTE $0xc6 // subq %rax, %rsi - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - LONG $0xa0558b48 // movq $-96(%rbp), %rdx - LONG $0xa84d8b48 // movq $-88(%rbp), %rcx - LONG $0xffeaf0e8; BYTE $0xff // callq _atof_native, $-5392(%rip) - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq %xmm0, %rax - LONG $0x000008e9; BYTE $0x00 // jmp LBB14_86, $8(%rip) - -LBB14_84: - LONG $0xc8458b48 // movq $-56(%rbp), %rax - -LBB14_85: - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - -LBB14_86: - QUAD $0x000000000000b948; WORD $0x8000 // movabsq $-9223372036854775808, %rcx - WORD $0xff48; BYTE $0xc9 // decq %rcx - WORD $0x2148; BYTE $0xc1 // andq %rax, %rcx - QUAD $0x000000000000ba48; WORD $0x7ff0 // movabsq $9218868437227405312, %rdx - WORD $0x3948; BYTE $0xd1 // cmpq %rdx, %rcx - LONG $0x0007850f; WORD $0x0000 // jne LBB14_88, $7(%rip) - LONG $0xf806c749; WORD $0xffff; BYTE $0xff // movq $-8, (%r14) - -LBB14_88: - LONG $0x08468949 // movq %rax, $8(%r14) - WORD $0x894c; BYTE $0x2b // movq %r13, (%rbx) - LONG $0xfffae0e9; BYTE $0xff // jmp LBB14_8, $-1312(%rip) - -LBB14_89: - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - -LBB14_90: - WORD $0x7e8d; BYTE $0xd0 // leal $-48(%rsi), %edi - LONG $0x09ff8040 // cmpb $9, %dil - LONG $0x0013860f; WORD $0x0000 // jbe LBB14_92, $19(%rip) - -LBB14_91: - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - LONG $0xfe06c749; WORD $0xffff; BYTE $0xff // movq $-2, (%r14) - LONG $0xfffabde9; BYTE $0xff // jmp LBB14_8, $-1347(%rip) - -LBB14_92: - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0049830f; WORD $0x0000 // jae LBB14_98, $73(%rip) - LONG $0x09ff8040 // cmpb $9, %dil - LONG $0x003f870f; WORD $0x0000 // ja LBB14_98, $63(%rip) - LONG $0xff4d8d4d // leaq $-1(%r13), %r9 - WORD $0xff31 // xorl %edi, %edi - -LBB14_95: - WORD $0xfa89 // movl %edi, %edx - LONG $0x2710ff81; WORD $0x0000 // cmpl $10000, %edi - WORD $0x3c8d; BYTE $0x92 // leal (%rdx,%rdx,4), %edi - LONG $0xf6b60f40 // movzbl %sil, %esi - LONG $0xd07e7c8d // leal $-48(%rsi,%rdi,2), %edi - WORD $0x4d0f; BYTE $0xfa // cmovgel %edx, %edi - WORD $0x3949; BYTE $0xc1 // cmpq %rax, %r9 - LONG $0x0021840f; WORD $0x0000 // je LBB14_99, $33(%rip) - LONG $0x74b60f41; WORD $0x0107 // movzbl $1(%r15,%rax), %esi - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x568d; BYTE $0xd0 // leal $-48(%rsi), %edx - WORD $0xfa80; BYTE $0x0a // cmpb $10, %dl - LONG $0xffcc820f; WORD $0xffff // jb LBB14_95, $-52(%rip) - LONG $0x00000ae9; BYTE $0x00 // jmp LBB14_100, $10(%rip) - -LBB14_98: - WORD $0xff31 // xorl %edi, %edi - LONG $0x000003e9; BYTE $0x00 // jmp LBB14_100, $3(%rip) - -LBB14_99: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - -LBB14_100: - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - LONG $0xf0af0f41 // imull %r8d, %esi - WORD $0xce01 // addl %ecx, %esi - WORD $0x8949; BYTE $0xc5 // movq %rax, %r13 - LONG $0xfffd3fe9; BYTE $0xff // jmp LBB14_62, $-705(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_vsigned: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - BYTE $0x53 // pushq %rbx - WORD $0x8b48; BYTE $0x06 // movq (%rsi), %rax - WORD $0x8b4c; BYTE $0x0f // movq (%rdi), %r9 - LONG $0x085f8b4c // movq $8(%rdi), %r11 - LONG $0x0902c748; WORD $0x0000; BYTE $0x00 // movq $9, (%rdx) - LONG $0xc057f8c5 // vxorps %xmm0, %xmm0, %xmm0 - LONG $0x4211f8c5; BYTE $0x08 // vmovups %xmm0, $8(%rdx) - WORD $0x8b48; BYTE $0x0e // movq (%rsi), %rcx - LONG $0x184a8948 // movq %rcx, $24(%rdx) - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x0044830f; WORD $0x0000 // jae LBB15_1, $68(%rip) - LONG $0x010c8a41 // movb (%r9,%rax), %cl - LONG $0x0001b841; WORD $0x0000 // movl $1, %r8d - WORD $0xf980; BYTE $0x2d // cmpb $45, %cl - LONG $0x0017850f; WORD $0x0000 // jne LBB15_5, $23(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x0025830f; WORD $0x0000 // jae LBB15_1, $37(%rip) - LONG $0x010c8a41 // movb (%r9,%rax), %cl - LONG $0xffc0c749; WORD $0xffff; BYTE $0xff // movq $-1, %r8 - -LBB15_5: - WORD $0x798d; BYTE $0xd0 // leal $-48(%rcx), %edi - LONG $0x0aff8040 // cmpb $10, %dil - LONG $0x001a820f; WORD $0x0000 // jb LBB15_7, $26(%rip) - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xfe02c748; WORD $0xffff; BYTE $0xff // movq $-2, (%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB15_1: - WORD $0x894c; BYTE $0x1e // movq %r11, (%rsi) - LONG $0xff02c748; WORD $0xffff; BYTE $0xff // movq $-1, (%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB15_7: - WORD $0xf980; BYTE $0x30 // cmpb $48, %cl - LONG $0x0035850f; WORD $0x0000 // jne LBB15_12, $53(%rip) - LONG $0x01788d48 // leaq $1(%rax), %rdi - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x0081830f; WORD $0x0000 // jae LBB15_11, $129(%rip) - LONG $0x390c8a41 // movb (%r9,%rdi), %cl - WORD $0xc180; BYTE $0xd2 // addb $-46, %cl - WORD $0xf980; BYTE $0x37 // cmpb $55, %cl - LONG $0x0071870f; WORD $0x0000 // ja LBB15_11, $113(%rip) - LONG $0xd1b60f44 // movzbl %cl, %r10d - QUAD $0x000000800001b948; WORD $0x0080 // movabsq $36028797027352577, %rcx - LONG $0xd1a30f4c // btq %r10, %rcx - LONG $0x0059830f; WORD $0x0000 // jae LBB15_11, $89(%rip) - -LBB15_12: - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - WORD $0x894d; BYTE $0xda // movq %r11, %r10 - LONG $0xd0470f4c // cmovaq %rax, %r10 - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB15_13: - WORD $0x3949; BYTE $0xc2 // cmpq %rax, %r10 - LONG $0x007f840f; WORD $0x0000 // je LBB15_23, $127(%rip) - LONG $0x3cbe0f49; BYTE $0x01 // movsbq (%r9,%rax), %rdi - WORD $0x5f8d; BYTE $0xd0 // leal $-48(%rdi), %ebx - WORD $0xfb80; BYTE $0x09 // cmpb $9, %bl - LONG $0x0033870f; WORD $0x0000 // ja LBB15_18, $51(%rip) - LONG $0x0ac96b48 // imulq $10, %rcx, %rcx - LONG $0x0013800f; WORD $0x0000 // jo LBB15_17, $19(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0xc783; BYTE $0xd0 // addl $-48, %edi - LONG $0xf8af0f49 // imulq %r8, %rdi - WORD $0x0148; BYTE $0xf9 // addq %rdi, %rcx - LONG $0xffc9810f; WORD $0xffff // jno LBB15_13, $-55(%rip) - -LBB15_17: - WORD $0xff48; BYTE $0xc8 // decq %rax - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xfb02c748; WORD $0xffff; BYTE $0xff // movq $-5, (%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB15_11: - WORD $0x8948; BYTE $0x3e // movq %rdi, (%rsi) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB15_18: - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x002f830f; WORD $0x0000 // jae LBB15_22, $47(%rip) - LONG $0x013c8a41 // movb (%r9,%rax), %dil - LONG $0x2eff8040 // cmpb $46, %dil - LONG $0x0014840f; WORD $0x0000 // je LBB15_25, $20(%rip) - LONG $0x45ff8040 // cmpb $69, %dil - LONG $0x000a840f; WORD $0x0000 // je LBB15_25, $10(%rip) - LONG $0x65ff8040 // cmpb $101, %dil - LONG $0x000d850f; WORD $0x0000 // jne LBB15_22, $13(%rip) - -LBB15_25: - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xfa02c748; WORD $0xffff; BYTE $0xff // movq $-6, (%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB15_22: - WORD $0x8949; BYTE $0xc2 // movq %rax, %r10 - -LBB15_23: - WORD $0x894c; BYTE $0x16 // movq %r10, (%rsi) - LONG $0x104a8948 // movq %rcx, $16(%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_vunsigned: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - BYTE $0x53 // pushq %rbx - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - WORD $0x8b48; BYTE $0x0e // movq (%rsi), %rcx - WORD $0x8b4c; BYTE $0x0f // movq (%rdi), %r9 - LONG $0x085f8b4c // movq $8(%rdi), %r11 - LONG $0x0902c748; WORD $0x0000; BYTE $0x00 // movq $9, (%rdx) - LONG $0xc057f8c5 // vxorps %xmm0, %xmm0, %xmm0 - LONG $0x4211f8c5; BYTE $0x08 // vmovups %xmm0, $8(%rdx) - WORD $0x8b48; BYTE $0x06 // movq (%rsi), %rax - LONG $0x18428948 // movq %rax, $24(%rdx) - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0x0019830f; WORD $0x0000 // jae LBB16_1, $25(%rip) - LONG $0x09048a41 // movb (%r9,%rcx), %al - WORD $0x2d3c // cmpb $45, %al - LONG $0x001a850f; WORD $0x0000 // jne LBB16_4, $26(%rip) - -LBB16_3: - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0xfa00c749; WORD $0xffff; BYTE $0xff // movq $-6, (%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_1: - WORD $0x894c; BYTE $0x1e // movq %r11, (%rsi) - LONG $0xff00c749; WORD $0xffff; BYTE $0xff // movq $-1, (%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_4: - WORD $0x508d; BYTE $0xd0 // leal $-48(%rax), %edx - WORD $0xfa80; BYTE $0x0a // cmpb $10, %dl - LONG $0x000d820f; WORD $0x0000 // jb LBB16_6, $13(%rip) - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0xfe00c749; WORD $0xffff; BYTE $0xff // movq $-2, (%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_6: - WORD $0x303c // cmpb $48, %al - LONG $0x0026850f; WORD $0x0000 // jne LBB16_7, $38(%rip) - LONG $0x09448a41; BYTE $0x01 // movb $1(%r9,%rcx), %al - WORD $0xd204 // addb $-46, %al - WORD $0x373c // cmpb $55, %al - LONG $0x00b6870f; WORD $0x0000 // ja LBB16_16, $182(%rip) - WORD $0xb60f; BYTE $0xc0 // movzbl %al, %eax - QUAD $0x000000800001ba48; WORD $0x0080 // movabsq $36028797027352577, %rdx - LONG $0xc2a30f48 // btq %rax, %rdx - LONG $0x009f830f; WORD $0x0000 // jae LBB16_16, $159(%rip) - -LBB16_7: - WORD $0xc031 // xorl %eax, %eax - LONG $0x000aba41; WORD $0x0000 // movl $10, %r10d - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB16_8: - WORD $0x3949; BYTE $0xcb // cmpq %rcx, %r11 - LONG $0x007b840f; WORD $0x0000 // je LBB16_22, $123(%rip) - LONG $0x3cbe0f41; BYTE $0x09 // movsbl (%r9,%rcx), %edi - WORD $0x578d; BYTE $0xd0 // leal $-48(%rdi), %edx - WORD $0xfa80; BYTE $0x09 // cmpb $9, %dl - LONG $0x003f870f; WORD $0x0000 // ja LBB16_17, $63(%rip) - WORD $0xf749; BYTE $0xe2 // mulq %r10 - LONG $0x0026800f; WORD $0x0000 // jo LBB16_13, $38(%rip) - WORD $0xff48; BYTE $0xc1 // incq %rcx - WORD $0xc783; BYTE $0xd0 // addl $-48, %edi - WORD $0xdb31 // xorl %ebx, %ebx - WORD $0x0148; BYTE $0xf8 // addq %rdi, %rax - WORD $0x920f; BYTE $0xc3 // setb %bl - WORD $0x8948; BYTE $0xda // movq %rbx, %rdx - WORD $0xf748; BYTE $0xda // negq %rdx - WORD $0x3148; BYTE $0xd3 // xorq %rdx, %rbx - LONG $0x0009850f; WORD $0x0000 // jne LBB16_13, $9(%rip) - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xffb7890f; WORD $0xffff // jns LBB16_8, $-73(%rip) - -LBB16_13: - WORD $0xff48; BYTE $0xc9 // decq %rcx - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0xfb00c749; WORD $0xffff; BYTE $0xff // movq $-5, (%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_17: - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0x001f830f; WORD $0x0000 // jae LBB16_21, $31(%rip) - LONG $0x09148a41 // movb (%r9,%rcx), %dl - WORD $0xfa80; BYTE $0x2e // cmpb $46, %dl - LONG $0xff1f840f; WORD $0xffff // je LBB16_3, $-225(%rip) - WORD $0xfa80; BYTE $0x45 // cmpb $69, %dl - LONG $0xff16840f; WORD $0xffff // je LBB16_3, $-234(%rip) - WORD $0xfa80; BYTE $0x65 // cmpb $101, %dl - LONG $0xff0d840f; WORD $0xffff // je LBB16_3, $-243(%rip) - -LBB16_21: - WORD $0x8949; BYTE $0xcb // movq %rcx, %r11 - -LBB16_22: - WORD $0x894c; BYTE $0x1e // movq %r11, (%rsi) - LONG $0x10408949 // movq %rax, $16(%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_16: - WORD $0xff48; BYTE $0xc1 // incq %rcx - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI17_0: - QUAD $0x0000000000000001 // .quad 1 - QUAD $0x0000000000000005 // .quad 5 - - // .p2align 4, 0x90 -_skip_array: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - QUAD $0xffffffdb0528f8c5 // vmovaps $-37(%rip), %xmm0 /* LCPI17_0(%rip) */ - LONG $0x0011f8c5 // vmovups %xmm0, (%rax) - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - BYTE $0x5d // popq %rbp - LONG $0x00000ee9; BYTE $0x00 // jmp _fsm_exec, $14(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_fsm_exec: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x28ec8348 // subq $40, %rsp - LONG $0xb84d8948 // movq %rcx, $-72(%rbp) - LONG $0x003f8348 // cmpq $0, (%rdi) - LONG $0x0591840f; WORD $0x0000 // je LBB18_76, $1425(%rip) - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - WORD $0x8949; BYTE $0xfc // movq %rdi, %r12 - LONG $0x08468d48 // leaq $8(%rsi), %rax - LONG $0xd0458948 // movq %rax, $-48(%rbp) - LONG $0xffc6c749; WORD $0xffff; BYTE $0xff // movq $-1, %r14 - QUAD $0x000100002600bb49; WORD $0x0000 // movabsq $4294977024, %r11 - LONG $0xc0758948 // movq %rsi, $-64(%rbp) - LONG $0x000029e9; BYTE $0x00 // jmp LBB18_3, $41(%rip) - -LBB18_2: - LONG $0x03488d48 // leaq $3(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x05a98e0f; WORD $0x0000 // jle LBB18_83, $1449(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB18_61: - LONG $0x24148b4d // movq (%r12), %r10 - WORD $0x894d; BYTE $0xf7 // movq %r14, %r15 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x0547840f; WORD $0x0000 // je LBB18_77, $1351(%rip) - -LBB18_3: - WORD $0x894d; BYTE $0xf1 // movq %r14, %r9 - WORD $0x8b48; BYTE $0x3e // movq (%rsi), %rdi - LONG $0x084e8b48 // movq $8(%rsi), %rcx - WORD $0x8b49; BYTE $0x00 // movq (%r8), %rax - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - WORD $0x2948; BYTE $0xca // subq %rcx, %rdx - LONG $0x0037830f; WORD $0x0000 // jae LBB18_8, $55(%rip) - WORD $0x1c8a; BYTE $0x07 // movb (%rdi,%rax), %bl - WORD $0xfb80; BYTE $0x0d // cmpb $13, %bl - LONG $0x002b840f; WORD $0x0000 // je LBB18_8, $43(%rip) - WORD $0xfb80; BYTE $0x20 // cmpb $32, %bl - LONG $0x0022840f; WORD $0x0000 // je LBB18_8, $34(%rip) - WORD $0xc380; BYTE $0xf7 // addb $-9, %bl - WORD $0xfb80; BYTE $0x01 // cmpb $1, %bl - LONG $0x0016860f; WORD $0x0000 // jbe LBB18_8, $22(%rip) - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - LONG $0x000130e9; BYTE $0x00 // jmp LBB18_29, $304(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB18_8: - LONG $0x01708d4c // leaq $1(%rax), %r14 - WORD $0x3949; BYTE $0xce // cmpq %rcx, %r14 - LONG $0x0023830f; WORD $0x0000 // jae LBB18_12, $35(%rip) - LONG $0x371c8a42 // movb (%rdi,%r14), %bl - WORD $0xfb80; BYTE $0x0d // cmpb $13, %bl - LONG $0x0016840f; WORD $0x0000 // je LBB18_12, $22(%rip) - WORD $0xfb80; BYTE $0x20 // cmpb $32, %bl - LONG $0x000d840f; WORD $0x0000 // je LBB18_12, $13(%rip) - WORD $0xc380; BYTE $0xf7 // addb $-9, %bl - WORD $0xfb80; BYTE $0x01 // cmpb $1, %bl - LONG $0x00f3870f; WORD $0x0000 // ja LBB18_29, $243(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB18_12: - LONG $0x02708d4c // leaq $2(%rax), %r14 - WORD $0x3949; BYTE $0xce // cmpq %rcx, %r14 - LONG $0x0023830f; WORD $0x0000 // jae LBB18_16, $35(%rip) - LONG $0x371c8a42 // movb (%rdi,%r14), %bl - WORD $0xfb80; BYTE $0x0d // cmpb $13, %bl - LONG $0x0016840f; WORD $0x0000 // je LBB18_16, $22(%rip) - WORD $0xfb80; BYTE $0x20 // cmpb $32, %bl - LONG $0x000d840f; WORD $0x0000 // je LBB18_16, $13(%rip) - WORD $0xc380; BYTE $0xf7 // addb $-9, %bl - WORD $0xfb80; BYTE $0x01 // cmpb $1, %bl - LONG $0x00c3870f; WORD $0x0000 // ja LBB18_29, $195(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB18_16: - LONG $0x03708d4c // leaq $3(%rax), %r14 - WORD $0x3949; BYTE $0xce // cmpq %rcx, %r14 - LONG $0x0023830f; WORD $0x0000 // jae LBB18_20, $35(%rip) - LONG $0x371c8a42 // movb (%rdi,%r14), %bl - WORD $0xfb80; BYTE $0x0d // cmpb $13, %bl - LONG $0x0016840f; WORD $0x0000 // je LBB18_20, $22(%rip) - WORD $0xfb80; BYTE $0x20 // cmpb $32, %bl - LONG $0x000d840f; WORD $0x0000 // je LBB18_20, $13(%rip) - WORD $0xc380; BYTE $0xf7 // addb $-9, %bl - WORD $0xfb80; BYTE $0x01 // cmpb $1, %bl - LONG $0x0093870f; WORD $0x0000 // ja LBB18_29, $147(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB18_20: - LONG $0x04588d48 // leaq $4(%rax), %rbx - WORD $0x3948; BYTE $0xd9 // cmpq %rbx, %rcx - LONG $0x0450860f; WORD $0x0000 // jbe LBB18_75, $1104(%rip) - WORD $0x3948; BYTE $0xd9 // cmpq %rbx, %rcx - LONG $0x004a840f; WORD $0x0000 // je LBB18_26, $74(%rip) - LONG $0x0f1c8d48 // leaq (%rdi,%rcx), %rbx - LONG $0x04c28348 // addq $4, %rdx - LONG $0x07748d4c; BYTE $0x05 // leaq $5(%rdi,%rax), %r14 - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB18_23: - LONG $0x46be0f41; BYTE $0xff // movsbl $-1(%r14), %eax - WORD $0xf883; BYTE $0x20 // cmpl $32, %eax - LONG $0x0042870f; WORD $0x0000 // ja LBB18_28, $66(%rip) - LONG $0xc3a30f49 // btq %rax, %r11 - LONG $0x0038830f; WORD $0x0000 // jae LBB18_28, $56(%rip) - WORD $0xff49; BYTE $0xc6 // incq %r14 - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0xffdc850f; WORD $0xffff // jne LBB18_23, $-36(%rip) - LONG $0x00000ae9; BYTE $0x00 // jmp LBB18_27, $10(%rip) - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB18_26: - WORD $0x0148; BYTE $0xfb // addq %rdi, %rbx - -LBB18_27: - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - WORD $0x8949; BYTE $0xde // movq %rbx, %r14 - WORD $0x3949; BYTE $0xce // cmpq %rcx, %r14 - LONG $0x0020820f; WORD $0x0000 // jb LBB18_29, $32(%rip) - LONG $0x0003e9e9; BYTE $0x00 // jmp LBB18_76, $1001(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB18_28: - WORD $0x8948; BYTE $0xfa // movq %rdi, %rdx - WORD $0xf748; BYTE $0xd2 // notq %rdx - WORD $0x0149; BYTE $0xd6 // addq %rdx, %r14 - WORD $0x3949; BYTE $0xce // cmpq %rcx, %r14 - LONG $0x03ce830f; WORD $0x0000 // jae LBB18_76, $974(%rip) - -LBB18_29: - LONG $0x014e8d49 // leaq $1(%r14), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x0cbe0f42; BYTE $0x37 // movsbl (%rdi,%r14), %ecx - LONG $0xffc7c749; WORD $0xffff; BYTE $0xff // movq $-1, %r15 - WORD $0xc985 // testl %ecx, %ecx - LONG $0x03ba840f; WORD $0x0000 // je LBB18_77, $954(%rip) - LONG $0x242c8b4d // movq (%r12), %r13 - LONG $0xff558d4d // leaq $-1(%r13), %r10 - LONG $0xec1c8b43 // movl (%r12,%r13,8), %ebx - LONG $0xfff98349 // cmpq $-1, %r9 - LONG $0xf1450f4d // cmovneq %r9, %r14 - WORD $0xcbff // decl %ebx - WORD $0xfb83; BYTE $0x05 // cmpl $5, %ebx - LONG $0x0037870f; WORD $0x0000 // ja LBB18_35, $55(%rip) - LONG $0xfd158d48; WORD $0x0004; BYTE $0x00 // leaq $1277(%rip), %rdx /* LJTI18_0(%rip) */ - LONG $0x9a046348 // movslq (%rdx,%rbx,4), %rax - WORD $0x0148; BYTE $0xd0 // addq %rdx, %rax - JMP AX - -LBB18_32: - WORD $0xf983; BYTE $0x2c // cmpl $44, %ecx - LONG $0x0199840f; WORD $0x0000 // je LBB18_53, $409(%rip) - WORD $0xf983; BYTE $0x5d // cmpl $93, %ecx - LONG $0x03d6850f; WORD $0x0000 // jne LBB18_85, $982(%rip) - LONG $0x2414894d // movq %r10, (%r12) - WORD $0x894d; BYTE $0xf7 // movq %r14, %r15 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xfe22850f; WORD $0xffff // jne LBB18_3, $-478(%rip) - LONG $0x000364e9; BYTE $0x00 // jmp LBB18_77, $868(%rip) - -LBB18_35: - LONG $0x2414894d // movq %r10, (%r12) - WORD $0xf983; BYTE $0x7b // cmpl $123, %ecx - LONG $0x00f8860f; WORD $0x0000 // jbe LBB18_51, $248(%rip) - LONG $0x0003afe9; BYTE $0x00 // jmp LBB18_85, $943(%rip) - -LBB18_36: - WORD $0xf983; BYTE $0x2c // cmpl $44, %ecx - LONG $0x0183840f; WORD $0x0000 // je LBB18_55, $387(%rip) - WORD $0xf983; BYTE $0x7d // cmpl $125, %ecx - LONG $0x039d850f; WORD $0x0000 // jne LBB18_85, $925(%rip) - LONG $0x2414894d // movq %r10, (%r12) - WORD $0x894d; BYTE $0xf7 // movq %r14, %r15 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xfde9850f; WORD $0xffff // jne LBB18_3, $-535(%rip) - LONG $0x00032be9; BYTE $0x00 // jmp LBB18_77, $811(%rip) - -LBB18_39: - WORD $0xf980; BYTE $0x22 // cmpb $34, %cl - LONG $0x037f850f; WORD $0x0000 // jne LBB18_85, $895(%rip) - QUAD $0x00000004ec04c74b // movq $4, (%r12,%r13,8) - -LBB18_41: - QUAD $0xffffffffc845c748 // movq $-1, $-56(%rbp) - WORD $0x8b4d; BYTE $0x28 // movq (%r8), %r13 - WORD $0x8948; BYTE $0xf7 // movq %rsi, %rdi - WORD $0x894c; BYTE $0xee // movq %r13, %rsi - LONG $0xc8558d48 // leaq $-56(%rbp), %rdx - LONG $0xb84d8b48 // movq $-72(%rbp), %rcx - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - LONG $0xffee92e8; BYTE $0xff // callq _advance_string, $-4462(%rip) - WORD $0x8949; BYTE $0xc7 // movq %rax, %r15 - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x030b880f; WORD $0x0000 // js LBB18_78, $779(%rip) - WORD $0x894c; BYTE $0x3b // movq %r15, (%rbx) - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - WORD $0x8949; BYTE $0xd8 // movq %rbx, %r8 - LONG $0xc0758b48 // movq $-64(%rbp), %rsi - QUAD $0x000100002600bb49; WORD $0x0000 // movabsq $4294977024, %r11 - LONG $0xfd798f0f; WORD $0xffff // jg LBB18_61, $-647(%rip) - LONG $0x000301e9; BYTE $0x00 // jmp LBB18_79, $769(%rip) - -LBB18_43: - WORD $0xf980; BYTE $0x3a // cmpb $58, %cl - LONG $0x031f850f; WORD $0x0000 // jne LBB18_85, $799(%rip) - QUAD $0x00000000ec04c74b // movq $0, (%r12,%r13,8) - LONG $0xfffd5ee9; BYTE $0xff // jmp LBB18_61, $-674(%rip) - -LBB18_45: - WORD $0xf980; BYTE $0x5d // cmpb $93, %cl - LONG $0x003c850f; WORD $0x0000 // jne LBB18_50, $60(%rip) - LONG $0x2414894d // movq %r10, (%r12) - WORD $0x894d; BYTE $0xf7 // movq %r14, %r15 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xfd55850f; WORD $0xffff // jne LBB18_3, $-683(%rip) - LONG $0x000297e9; BYTE $0x00 // jmp LBB18_77, $663(%rip) - -LBB18_47: - WORD $0xf983; BYTE $0x22 // cmpl $34, %ecx - LONG $0x00eb840f; WORD $0x0000 // je LBB18_57, $235(%rip) - WORD $0xf983; BYTE $0x7d // cmpl $125, %ecx - LONG $0x02e2850f; WORD $0x0000 // jne LBB18_85, $738(%rip) - LONG $0x2414894d // movq %r10, (%r12) - WORD $0x894d; BYTE $0xf7 // movq %r14, %r15 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xfd2e850f; WORD $0xffff // jne LBB18_3, $-722(%rip) - LONG $0x000270e9; BYTE $0x00 // jmp LBB18_77, $624(%rip) - -LBB18_50: - QUAD $0x00000001ec04c74b // movq $1, (%r12,%r13,8) - WORD $0xf983; BYTE $0x7b // cmpl $123, %ecx - LONG $0x02bc870f; WORD $0x0000 // ja LBB18_85, $700(%rip) - -LBB18_51: - WORD $0xc889 // movl %ecx, %eax - LONG $0xd70d8d48; WORD $0x0003; BYTE $0x00 // leaq $983(%rip), %rcx /* LJTI18_1(%rip) */ - LONG $0x81046348 // movslq (%rcx,%rax,4), %rax - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - JMP AX - -LBB18_52: - WORD $0x8b49; BYTE $0x18 // movq (%r8), %rbx - LONG $0xff7b8d4c // leaq $-1(%rbx), %r15 - LONG $0x1f7c8d48; BYTE $0xff // leaq $-1(%rdi,%rbx), %rdi - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x8b48; BYTE $0x30 // movq (%rax), %rsi - WORD $0x294c; BYTE $0xfe // subq %r15, %rsi - WORD $0x894d; BYTE $0xc5 // movq %r8, %r13 - LONG $0x000728e8; BYTE $0x00 // callq _do_skip_number, $1832(%rip) - QUAD $0x000100002600bb49; WORD $0x0000 // movabsq $4294977024, %r11 - LONG $0xc0758b48 // movq $-64(%rbp), %rsi - WORD $0x894d; BYTE $0xe8 // movq %r13, %r8 - LONG $0xff488d48 // leaq $-1(%rax), %rcx - LONG $0xfec2c748; WORD $0xffff; BYTE $0xff // movq $-2, %rdx - WORD $0x2948; BYTE $0xc2 // subq %rax, %rdx - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xd1490f48 // cmovnsq %rcx, %rdx - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xf8480f4c // cmovsq %rax, %r15 - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0x00558949 // movq %rdx, (%r13) - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0xfc97890f; WORD $0xffff // jns LBB18_61, $-873(%rip) - LONG $0x0001e9e9; BYTE $0x00 // jmp LBB18_77, $489(%rip) - -LBB18_53: - LONG $0xfffd8149; WORD $0x000f; BYTE $0x00 // cmpq $4095, %r13 - LONG $0x01ee8f0f; WORD $0x0000 // jg LBB18_80, $494(%rip) - LONG $0x01458d49 // leaq $1(%r13), %rax - LONG $0x24048949 // movq %rax, (%r12) - QUAD $0x00000008ec44c74b; BYTE $0x00 // movq $0, $8(%r12,%r13,8) - LONG $0xfffc6fe9; BYTE $0xff // jmp LBB18_61, $-913(%rip) - -LBB18_55: - LONG $0xfffd8149; WORD $0x000f; BYTE $0x00 // cmpq $4095, %r13 - LONG $0x01cb8f0f; WORD $0x0000 // jg LBB18_80, $459(%rip) - LONG $0x01458d49 // leaq $1(%r13), %rax - LONG $0x24048949 // movq %rax, (%r12) - QUAD $0x00000308ec44c74b; BYTE $0x00 // movq $3, $8(%r12,%r13,8) - LONG $0xfffc4ce9; BYTE $0xff // jmp LBB18_61, $-948(%rip) - -LBB18_57: - QUAD $0x00000002ec04c74b // movq $2, (%r12,%r13,8) - QUAD $0xffffffffc845c748 // movq $-1, $-56(%rbp) - WORD $0x8b4d; BYTE $0x28 // movq (%r8), %r13 - WORD $0x8948; BYTE $0xf7 // movq %rsi, %rdi - WORD $0x894c; BYTE $0xee // movq %r13, %rsi - LONG $0xc8558d48 // leaq $-56(%rbp), %rdx - LONG $0xb84d8b48 // movq $-72(%rbp), %rcx - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - LONG $0xffed13e8; BYTE $0xff // callq _advance_string, $-4845(%rip) - WORD $0x8949; BYTE $0xc7 // movq %rax, %r15 - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x018c880f; WORD $0x0000 // js LBB18_78, $396(%rip) - WORD $0x894c; BYTE $0x3b // movq %r15, (%rbx) - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - LONG $0x01988e0f; WORD $0x0000 // jle LBB18_79, $408(%rip) - LONG $0x24048b49 // movq (%r12), %rax - LONG $0x0fff3d48; WORD $0x0000 // cmpq $4095, %rax - LONG $0x01648f0f; WORD $0x0000 // jg LBB18_80, $356(%rip) - WORD $0x8949; BYTE $0xd8 // movq %rbx, %r8 - LONG $0x01488d48 // leaq $1(%rax), %rcx - LONG $0x240c8949 // movq %rcx, (%r12) - QUAD $0x00000408c444c749; BYTE $0x00 // movq $4, $8(%r12,%rax,8) - LONG $0xc0758b48 // movq $-64(%rbp), %rsi - QUAD $0x000100002600bb49; WORD $0x0000 // movabsq $4294977024, %r11 - LONG $0xfffbd4e9; BYTE $0xff // jmp LBB18_61, $-1068(%rip) - -LBB18_62: - WORD $0x8b4d; BYTE $0x38 // movq (%r8), %r15 - WORD $0x014c; BYTE $0xff // addq %r15, %rdi - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x8b48; BYTE $0x30 // movq (%rax), %rsi - WORD $0x294c; BYTE $0xfe // subq %r15, %rsi - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - LONG $0x00060ce8; BYTE $0x00 // callq _do_skip_number, $1548(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x015e880f; WORD $0x0000 // js LBB18_84, $350(%rip) - WORD $0x014c; BYTE $0xf8 // addq %r15, %rax - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - WORD $0x8949; BYTE $0xd8 // movq %rbx, %r8 - LONG $0xc0758b48 // movq $-64(%rbp), %rsi - QUAD $0x000100002600bb49; WORD $0x0000 // movabsq $4294977024, %r11 - LONG $0xfb938f0f; WORD $0xffff // jg LBB18_61, $-1133(%rip) - LONG $0x00014ee9; BYTE $0x00 // jmp LBB18_91, $334(%rip) - -LBB18_64: - LONG $0x24048b49 // movq (%r12), %rax - LONG $0x0fff3d48; WORD $0x0000 // cmpq $4095, %rax - LONG $0x00e78f0f; WORD $0x0000 // jg LBB18_80, $231(%rip) - LONG $0x01488d48 // leaq $1(%rax), %rcx - LONG $0x240c8949 // movq %rcx, (%r12) - QUAD $0x00000508c444c749; BYTE $0x00 // movq $5, $8(%r12,%rax,8) - LONG $0xfffb68e9; BYTE $0xff // jmp LBB18_61, $-1176(%rip) - -LBB18_66: - WORD $0x8b49; BYTE $0x00 // movq (%r8), %rax - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - WORD $0x8b48; BYTE $0x09 // movq (%rcx), %rcx - LONG $0xfc518d48 // leaq $-4(%rcx), %rdx - WORD $0x3948; BYTE $0xd0 // cmpq %rdx, %rax - LONG $0x00e9870f; WORD $0x0000 // ja LBB18_88, $233(%rip) - WORD $0x0c8b; BYTE $0x07 // movl (%rdi,%rax), %ecx - LONG $0x6c61f981; WORD $0x6573 // cmpl $1702063201, %ecx - LONG $0x010a850f; WORD $0x0000 // jne LBB18_92, $266(%rip) - LONG $0x04488d48 // leaq $4(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xfb328f0f; WORD $0xffff // jg LBB18_61, $-1230(%rip) - LONG $0x0000cde9; BYTE $0x00 // jmp LBB18_83, $205(%rip) - -LBB18_69: - WORD $0x8b49; BYTE $0x00 // movq (%r8), %rax - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - WORD $0x8b48; BYTE $0x09 // movq (%rcx), %rcx - LONG $0xfd518d48 // leaq $-3(%rcx), %rdx - WORD $0x3948; BYTE $0xd0 // cmpq %rdx, %rax - LONG $0x00ae870f; WORD $0x0000 // ja LBB18_88, $174(%rip) - QUAD $0x6c6c756eff077c81 // cmpl $1819047278, $-1(%rdi,%rax) - LONG $0xfaef840f; WORD $0xffff // je LBB18_2, $-1297(%rip) - LONG $0x00011de9; BYTE $0x00 // jmp LBB18_97, $285(%rip) - -LBB18_71: - WORD $0x8b49; BYTE $0x00 // movq (%r8), %rax - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - WORD $0x8b48; BYTE $0x09 // movq (%rcx), %rcx - LONG $0xfd518d48 // leaq $-3(%rcx), %rdx - WORD $0x3948; BYTE $0xd0 // cmpq %rdx, %rax - LONG $0x0084870f; WORD $0x0000 // ja LBB18_88, $132(%rip) - QUAD $0x65757274ff077c81 // cmpl $1702195828, $-1(%rdi,%rax) - LONG $0xfac5840f; WORD $0xffff // je LBB18_2, $-1339(%rip) - LONG $0x000142e9; BYTE $0x00 // jmp LBB18_101, $322(%rip) - -LBB18_73: - LONG $0x24048b49 // movq (%r12), %rax - LONG $0x0fff3d48; WORD $0x0000 // cmpq $4095, %rax - LONG $0x00328f0f; WORD $0x0000 // jg LBB18_80, $50(%rip) - LONG $0x01488d48 // leaq $1(%rax), %rcx - LONG $0x240c8949 // movq %rcx, (%r12) - QUAD $0x00000608c444c749; BYTE $0x00 // movq $6, $8(%r12,%rax,8) - LONG $0xfffab3e9; BYTE $0xff // jmp LBB18_61, $-1357(%rip) - -LBB18_75: - WORD $0x8949; BYTE $0x18 // movq %rbx, (%r8) - -LBB18_76: - LONG $0xffc7c749; WORD $0xffff; BYTE $0xff // movq $-1, %r15 - -LBB18_77: - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - LONG $0x28c48348 // addq $40, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB18_80: - LONG $0xf9c7c749; WORD $0xffff; BYTE $0xff // movq $-7, %r15 - LONG $0xffffe2e9; BYTE $0xff // jmp LBB18_77, $-30(%rip) - -LBB18_78: - LONG $0xffff8349 // cmpq $-1, %r15 - LONG $0xc8458d48 // leaq $-56(%rbp), %rax - LONG $0x45440f48; BYTE $0xd0 // cmoveq $-48(%rbp), %rax - WORD $0x8b48; BYTE $0x00 // movq (%rax), %rax - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - LONG $0xffffcae9; BYTE $0xff // jmp LBB18_77, $-54(%rip) - -LBB18_79: - WORD $0xff49; BYTE $0xcd // decq %r13 - WORD $0x894d; BYTE $0xef // movq %r13, %r15 - LONG $0xffffbfe9; BYTE $0xff // jmp LBB18_77, $-65(%rip) - -LBB18_88: - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0xffffb7e9; BYTE $0xff // jmp LBB18_77, $-73(%rip) - -LBB18_83: - WORD $0xff48; BYTE $0xc8 // decq %rax - WORD $0x8949; BYTE $0xc7 // movq %rax, %r15 - LONG $0xfffface9; BYTE $0xff // jmp LBB18_77, $-84(%rip) - -LBB18_84: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0149; BYTE $0xc7 // addq %rax, %r15 - WORD $0x894c; BYTE $0x3b // movq %r15, (%rbx) - -LBB18_85: - LONG $0xfec7c749; WORD $0xffff; BYTE $0xff // movq $-2, %r15 - LONG $0xffff97e9; BYTE $0xff // jmp LBB18_77, $-105(%rip) - -LBB18_91: - WORD $0xff49; BYTE $0xcf // decq %r15 - LONG $0xffff8fe9; BYTE $0xff // jmp LBB18_77, $-113(%rip) - -LBB18_92: - LONG $0xfec7c749; WORD $0xffff; BYTE $0xff // movq $-2, %r15 - WORD $0xf980; BYTE $0x61 // cmpb $97, %cl - LONG $0xff7f850f; WORD $0xffff // jne LBB18_77, $-129(%rip) - LONG $0x01488d48 // leaq $1(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x01077c80; BYTE $0x6c // cmpb $108, $1(%rdi,%rax) - LONG $0xff6d850f; WORD $0xffff // jne LBB18_77, $-147(%rip) - LONG $0x02488d48 // leaq $2(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x02077c80; BYTE $0x73 // cmpb $115, $2(%rdi,%rax) - LONG $0xff5b850f; WORD $0xffff // jne LBB18_77, $-165(%rip) - LONG $0x03488d48 // leaq $3(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x03077c80; BYTE $0x65 // cmpb $101, $3(%rdi,%rax) - LONG $0xff49850f; WORD $0xffff // jne LBB18_77, $-183(%rip) - LONG $0x04c08348 // addq $4, %rax - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0xffff3de9; BYTE $0xff // jmp LBB18_77, $-195(%rip) - -LBB18_97: - LONG $0xff488d48 // leaq $-1(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0xfec7c749; WORD $0xffff; BYTE $0xff // movq $-2, %r15 - LONG $0xff077c80; BYTE $0x6e // cmpb $110, $-1(%rdi,%rax) - LONG $0xff24850f; WORD $0xffff // jne LBB18_77, $-220(%rip) - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0x75073c80 // cmpb $117, (%rdi,%rax) - LONG $0xff17850f; WORD $0xffff // jne LBB18_77, $-233(%rip) - LONG $0x01488d48 // leaq $1(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x01077c80; BYTE $0x6c // cmpb $108, $1(%rdi,%rax) - LONG $0xff05850f; WORD $0xffff // jne LBB18_77, $-251(%rip) - LONG $0x02488d48 // leaq $2(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x02077c80; BYTE $0x6c // cmpb $108, $2(%rdi,%rax) - LONG $0xfef3850f; WORD $0xffff // jne LBB18_77, $-269(%rip) - LONG $0x00004ae9; BYTE $0x00 // jmp LBB18_105, $74(%rip) - -LBB18_101: - LONG $0xff488d48 // leaq $-1(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0xfec7c749; WORD $0xffff; BYTE $0xff // movq $-2, %r15 - LONG $0xff077c80; BYTE $0x74 // cmpb $116, $-1(%rdi,%rax) - LONG $0xfed5850f; WORD $0xffff // jne LBB18_77, $-299(%rip) - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0x72073c80 // cmpb $114, (%rdi,%rax) - LONG $0xfec8850f; WORD $0xffff // jne LBB18_77, $-312(%rip) - LONG $0x01488d48 // leaq $1(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x01077c80; BYTE $0x75 // cmpb $117, $1(%rdi,%rax) - LONG $0xfeb6850f; WORD $0xffff // jne LBB18_77, $-330(%rip) - LONG $0x02488d48 // leaq $2(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x02077c80; BYTE $0x65 // cmpb $101, $2(%rdi,%rax) - LONG $0xfea4850f; WORD $0xffff // jne LBB18_77, $-348(%rip) - -LBB18_105: - LONG $0x03c08348 // addq $3, %rax - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0xfffe98e9; BYTE $0xff // jmp LBB18_77, $-360(%rip) - BYTE $0x90 // .p2align 2, 0x90 - - // .set L18_0_set_32, LBB18_32-LJTI18_0 - // .set L18_0_set_36, LBB18_36-LJTI18_0 - // .set L18_0_set_39, LBB18_39-LJTI18_0 - // .set L18_0_set_43, LBB18_43-LJTI18_0 - // .set L18_0_set_45, LBB18_45-LJTI18_0 - // .set L18_0_set_47, LBB18_47-LJTI18_0 -LJTI18_0: - LONG $0xfffffb0c // .long L18_0_set_32 - LONG $0xfffffb45 // .long L18_0_set_36 - LONG $0xfffffb6c // .long L18_0_set_39 - LONG $0xfffffbcc // .long L18_0_set_43 - LONG $0xfffffbe2 // .long L18_0_set_45 - LONG $0xfffffc00 // .long L18_0_set_47 - - // .set L18_1_set_77, LBB18_77-LJTI18_1 - // .set L18_1_set_85, LBB18_85-LJTI18_1 - // .set L18_1_set_41, LBB18_41-LJTI18_1 - // .set L18_1_set_62, LBB18_62-LJTI18_1 - // .set L18_1_set_52, LBB18_52-LJTI18_1 - // .set L18_1_set_64, LBB18_64-LJTI18_1 - // .set L18_1_set_66, LBB18_66-LJTI18_1 - // .set L18_1_set_69, LBB18_69-LJTI18_1 - // .set L18_1_set_71, LBB18_71-LJTI18_1 - // .set L18_1_set_73, LBB18_73-LJTI18_1 -LJTI18_1: - LONG $0xfffffe7f // .long L18_1_set_77 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffb65 // .long L18_1_set_41 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffd54 // .long L18_1_set_62 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffc32 // .long L18_1_set_52 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffd9a // .long L18_1_set_64 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffdc0 // .long L18_1_set_66 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffdfb // .long L18_1_set_69 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffe25 // .long L18_1_set_71 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffedc // .long L18_1_set_85 - LONG $0xfffffe4f // .long L18_1_set_73 - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -LCPI19_0: - QUAD $0x0000000000000001 // .quad 1 - QUAD $0x0000000000000006 // .quad 6 - - // .p2align 4, 0x90 -_skip_object: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - QUAD $0xffffffdb0528f8c5 // vmovaps $-37(%rip), %xmm0 /* LCPI19_0(%rip) */ - LONG $0x0011f8c5 // vmovups %xmm0, (%rax) - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - BYTE $0x5d // popq %rbp - LONG $0xfff69ee9; BYTE $0xff // jmp _fsm_exec, $-2402(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_skip_string: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x10ec8348 // subq $16, %rsp - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8949; BYTE $0xff // movq %rdi, %r15 - QUAD $0xffffffffd845c748 // movq $-1, $-40(%rbp) - WORD $0x8b48; BYTE $0x1e // movq (%rsi), %rbx - LONG $0xd8658d4c // leaq $-40(%rbp), %r12 - WORD $0x8948; BYTE $0xde // movq %rbx, %rsi - WORD $0x894c; BYTE $0xe2 // movq %r12, %rdx - LONG $0xffe7aee8; BYTE $0xff // callq _advance_string, $-6226(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x000e880f; WORD $0x0000 // js LBB20_1, $14(%rip) - WORD $0xff48; BYTE $0xcb // decq %rbx - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x8948; BYTE $0xd8 // movq %rbx, %rax - LONG $0x000010e9; BYTE $0x00 // jmp LBB20_3, $16(%rip) - -LBB20_1: - LONG $0x08c78349 // addq $8, %r15 - LONG $0xfff88348 // cmpq $-1, %rax - LONG $0xe7440f4d // cmoveq %r15, %r12 - LONG $0x240c8b49 // movq (%r12), %rcx - -LBB20_3: - WORD $0x8949; BYTE $0x0e // movq %rcx, (%r14) - LONG $0x10c48348 // addq $16, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_skip_negative: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8b48; BYTE $0x1e // movq (%rsi), %rbx - WORD $0x8b48; BYTE $0x07 // movq (%rdi), %rax - WORD $0x0148; BYTE $0xd8 // addq %rbx, %rax - LONG $0x08778b48 // movq $8(%rdi), %rsi - WORD $0x2948; BYTE $0xde // subq %rbx, %rsi - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0x0000aee8; BYTE $0x00 // callq _do_skip_number, $174(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x000e880f; WORD $0x0000 // js LBB21_1, $14(%rip) - WORD $0x0148; BYTE $0xd8 // addq %rbx, %rax - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - WORD $0xff48; BYTE $0xcb // decq %rbx - LONG $0x000010e9; BYTE $0x00 // jmp LBB21_3, $16(%rip) - -LBB21_1: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - WORD $0x8949; BYTE $0x1e // movq %rbx, (%r14) - LONG $0xfec3c748; WORD $0xffff; BYTE $0xff // movq $-2, %rbx - -LBB21_3: - WORD $0x8948; BYTE $0xd8 // movq %rbx, %rax - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; LONG $0x00000000; WORD $0x0000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI22_0: - QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - -LCPI22_1: - QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - -LCPI22_2: - QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - -LCPI22_3: - QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - -LCPI22_4: - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - -LCPI22_5: - QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - -LCPI22_6: - QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' - - // .p2align 4, 0x90 -_do_skip_number: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0248840f; WORD $0x0000 // je LBB22_34, $584(%rip) - WORD $0x3f80; BYTE $0x30 // cmpb $48, (%rdi) - LONG $0x0033850f; WORD $0x0000 // jne LBB22_5, $51(%rip) - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - LONG $0x01fe8348 // cmpq $1, %rsi - LONG $0x0301840f; WORD $0x0000 // je LBB22_52, $769(%rip) - WORD $0x478a; BYTE $0x01 // movb $1(%rdi), %al - WORD $0xd204 // addb $-46, %al - WORD $0x373c // cmpb $55, %al - LONG $0x02f4870f; WORD $0x0000 // ja LBB22_52, $756(%rip) - WORD $0xb60f; BYTE $0xc0 // movzbl %al, %eax - QUAD $0x000000800001b948; WORD $0x0080 // movabsq $36028797027352577, %rcx - LONG $0xc1a30f48 // btq %rax, %rcx - LONG $0x02dd830f; WORD $0x0000 // jae LBB22_52, $733(%rip) - -LBB22_5: - LONG $0x10fe8348 // cmpq $16, %rsi - LONG $0x02fd820f; WORD $0x0000 // jb LBB22_57, $765(%rip) - LONG $0xffc1c749; WORD $0xffff; BYTE $0xff // movq $-1, %r9 - QUAD $0xffffff29056f79c5 // vmovdqa $-215(%rip), %xmm8 /* LCPI22_0(%rip) */ - QUAD $0xffffff310d6f79c5 // vmovdqa $-207(%rip), %xmm9 /* LCPI22_1(%rip) */ - QUAD $0xffffff39156f79c5 // vmovdqa $-199(%rip), %xmm10 /* LCPI22_2(%rip) */ - QUAD $0xffffff411d6f79c5 // vmovdqa $-191(%rip), %xmm11 /* LCPI22_3(%rip) */ - QUAD $0xffffff49256ff9c5 // vmovdqa $-183(%rip), %xmm4 /* LCPI22_4(%rip) */ - QUAD $0xffffff512d6ff9c5 // vmovdqa $-175(%rip), %xmm5 /* LCPI22_5(%rip) */ - QUAD $0xffffff59356ff9c5 // vmovdqa $-167(%rip), %xmm6 /* LCPI22_6(%rip) */ - LONG $0xffffbb41; WORD $0xffff // movl $4294967295, %r11d - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xffc0c749; WORD $0xffff; BYTE $0xff // movq $-1, %r8 - WORD $0x8949; BYTE $0xfa // movq %rdi, %r10 - WORD $0x9090 // .p2align 4, 0x90 - -LBB22_7: - LONG $0x6f7ac1c4; BYTE $0x3a // vmovdqu (%r10), %xmm7 - LONG $0x6441c1c4; BYTE $0xc0 // vpcmpgtb %xmm8, %xmm7, %xmm0 - LONG $0xcf64b1c5 // vpcmpgtb %xmm7, %xmm9, %xmm1 - LONG $0xc1dbf9c5 // vpand %xmm1, %xmm0, %xmm0 - LONG $0xcf74a9c5 // vpcmpeqb %xmm7, %xmm10, %xmm1 - LONG $0xd774a1c5 // vpcmpeqb %xmm7, %xmm11, %xmm2 - LONG $0xc9ebe9c5 // vpor %xmm1, %xmm2, %xmm1 - LONG $0xd4dbc1c5 // vpand %xmm4, %xmm7, %xmm2 - LONG $0xd674e9c5 // vpcmpeqb %xmm6, %xmm2, %xmm2 - LONG $0xfd74c1c5 // vpcmpeqb %xmm5, %xmm7, %xmm7 - LONG $0xdfebe9c5 // vpor %xmm7, %xmm2, %xmm3 - LONG $0xc0ebf1c5 // vpor %xmm0, %xmm1, %xmm0 - LONG $0xc0ebe1c5 // vpor %xmm0, %xmm3, %xmm0 - LONG $0xd7d7f9c5 // vpmovmskb %xmm7, %edx - LONG $0xfad779c5 // vpmovmskb %xmm2, %r15d - LONG $0xf1d779c5 // vpmovmskb %xmm1, %r14d - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - WORD $0x314c; BYTE $0xd9 // xorq %r11, %rcx - LONG $0xc9bc0f48 // bsfq %rcx, %rcx - WORD $0xf983; BYTE $0x10 // cmpl $16, %ecx - LONG $0x0014840f; WORD $0x0000 // je LBB22_9, $20(%rip) - LONG $0xffffffbb; BYTE $0xff // movl $-1, %ebx - WORD $0xe3d3 // shll %cl, %ebx - WORD $0xd3f7 // notl %ebx - WORD $0xda21 // andl %ebx, %edx - WORD $0x2141; BYTE $0xdf // andl %ebx, %r15d - WORD $0x2144; BYTE $0xf3 // andl %r14d, %ebx - WORD $0x8941; BYTE $0xde // movl %ebx, %r14d - -LBB22_9: - WORD $0x5a8d; BYTE $0xff // leal $-1(%rdx), %ebx - WORD $0xd321 // andl %edx, %ebx - LONG $0x01fa850f; WORD $0x0000 // jne LBB22_50, $506(%rip) - LONG $0xff5f8d41 // leal $-1(%r15), %ebx - WORD $0x2144; BYTE $0xfb // andl %r15d, %ebx - LONG $0x01ed850f; WORD $0x0000 // jne LBB22_50, $493(%rip) - LONG $0xff5e8d41 // leal $-1(%r14), %ebx - WORD $0x2144; BYTE $0xf3 // andl %r14d, %ebx - LONG $0x01e0850f; WORD $0x0000 // jne LBB22_50, $480(%rip) - WORD $0xd285 // testl %edx, %edx - LONG $0x0019840f; WORD $0x0000 // je LBB22_15, $25(%rip) - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - WORD $0xbc0f; BYTE $0xd2 // bsfl %edx, %edx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0xfff88349 // cmpq $-1, %r8 - LONG $0x01cb850f; WORD $0x0000 // jne LBB22_51, $459(%rip) - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - -LBB22_15: - WORD $0x8545; BYTE $0xff // testl %r15d, %r15d - LONG $0x001a840f; WORD $0x0000 // je LBB22_18, $26(%rip) - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - LONG $0xd7bc0f41 // bsfl %r15d, %edx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0xfff88348 // cmpq $-1, %rax - LONG $0x01a8850f; WORD $0x0000 // jne LBB22_51, $424(%rip) - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - -LBB22_18: - WORD $0x8545; BYTE $0xf6 // testl %r14d, %r14d - LONG $0x001a840f; WORD $0x0000 // je LBB22_21, $26(%rip) - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - LONG $0xd6bc0f41 // bsfl %r14d, %edx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0xfff98349 // cmpq $-1, %r9 - LONG $0x0185850f; WORD $0x0000 // jne LBB22_51, $389(%rip) - WORD $0x8949; BYTE $0xd1 // movq %rdx, %r9 - -LBB22_21: - WORD $0xf983; BYTE $0x10 // cmpl $16, %ecx - LONG $0x00b7850f; WORD $0x0000 // jne LBB22_35, $183(%rip) - LONG $0x10c28349 // addq $16, %r10 - LONG $0xf0c68348 // addq $-16, %rsi - LONG $0x0ffe8348 // cmpq $15, %rsi - LONG $0xfeef870f; WORD $0xffff // ja LBB22_7, $-273(%rip) - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x009f840f; WORD $0x0000 // je LBB22_36, $159(%rip) - -LBB22_24: - LONG $0x321c8d4d // leaq (%r10,%rsi), %r11 - LONG $0x9f1d8d48; WORD $0x0001; BYTE $0x00 // leaq $415(%rip), %rbx /* LJTI22_0(%rip) */ - LONG $0x000012e9; BYTE $0x00 // jmp LBB22_26, $18(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB22_25: - WORD $0x8949; BYTE $0xca // movq %rcx, %r10 - WORD $0xff48; BYTE $0xce // decq %rsi - LONG $0x0149840f; WORD $0x0000 // je LBB22_54, $329(%rip) - -LBB22_26: - LONG $0x12be0f41 // movsbl (%r10), %edx - WORD $0xc283; BYTE $0xd5 // addl $-43, %edx - WORD $0xfa83; BYTE $0x3a // cmpl $58, %edx - LONG $0x006d870f; WORD $0x0000 // ja LBB22_36, $109(%rip) - LONG $0x014a8d49 // leaq $1(%r10), %rcx - LONG $0x93146348 // movslq (%rbx,%rdx,4), %rdx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - JMP DX - -LBB22_28: - WORD $0x8948; BYTE $0xca // movq %rcx, %rdx - WORD $0x2948; BYTE $0xfa // subq %rdi, %rdx - LONG $0xfff98349 // cmpq $-1, %r9 - LONG $0x0134850f; WORD $0x0000 // jne LBB22_58, $308(%rip) - WORD $0xff48; BYTE $0xca // decq %rdx - WORD $0x8949; BYTE $0xd1 // movq %rdx, %r9 - LONG $0xffffbce9; BYTE $0xff // jmp LBB22_25, $-68(%rip) - -LBB22_30: - WORD $0x8948; BYTE $0xca // movq %rcx, %rdx - WORD $0x2948; BYTE $0xfa // subq %rdi, %rdx - LONG $0xfff88348 // cmpq $-1, %rax - LONG $0x0119850f; WORD $0x0000 // jne LBB22_58, $281(%rip) - WORD $0xff48; BYTE $0xca // decq %rdx - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - LONG $0xffffa1e9; BYTE $0xff // jmp LBB22_25, $-95(%rip) - -LBB22_32: - WORD $0x8948; BYTE $0xca // movq %rcx, %rdx - WORD $0x2948; BYTE $0xfa // subq %rdi, %rdx - LONG $0xfff88349 // cmpq $-1, %r8 - LONG $0x00fe850f; WORD $0x0000 // jne LBB22_58, $254(%rip) - WORD $0xff48; BYTE $0xca // decq %rdx - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - LONG $0xffff86e9; BYTE $0xff // jmp LBB22_25, $-122(%rip) - -LBB22_34: - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0x0000c8e9; BYTE $0x00 // jmp LBB22_53, $200(%rip) - -LBB22_35: - WORD $0x0149; BYTE $0xca // addq %rcx, %r10 - -LBB22_36: - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x00b2840f; WORD $0x0000 // je LBB22_52, $178(%rip) - -LBB22_37: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x00a9840f; WORD $0x0000 // je LBB22_52, $169(%rip) - WORD $0x854d; BYTE $0xc0 // testq %r8, %r8 - LONG $0x00a0840f; WORD $0x0000 // je LBB22_52, $160(%rip) - WORD $0x2949; BYTE $0xfa // subq %rdi, %r10 - LONG $0xff4a8d49 // leaq $-1(%r10), %rcx - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0x0036840f; WORD $0x0000 // je LBB22_45, $54(%rip) - WORD $0x3949; BYTE $0xc8 // cmpq %rcx, %r8 - LONG $0x002d840f; WORD $0x0000 // je LBB22_45, $45(%rip) - WORD $0x3949; BYTE $0xc9 // cmpq %rcx, %r9 - LONG $0x0024840f; WORD $0x0000 // je LBB22_45, $36(%rip) - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x00298e0f; WORD $0x0000 // jle LBB22_46, $41(%rip) - LONG $0xff498d49 // leaq $-1(%r9), %rcx - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0x001c840f; WORD $0x0000 // je LBB22_46, $28(%rip) - WORD $0xf749; BYTE $0xd1 // notq %r9 - WORD $0x894c; BYTE $0xca // movq %r9, %rdx - WORD $0x894c; BYTE $0xc8 // movq %r9, %rax - LONG $0x00005de9; BYTE $0x00 // jmp LBB22_53, $93(%rip) - -LBB22_45: - WORD $0xf749; BYTE $0xda // negq %r10 - WORD $0x894c; BYTE $0xd2 // movq %r10, %rdx - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - LONG $0x00004fe9; BYTE $0x00 // jmp LBB22_53, $79(%rip) - -LBB22_46: - WORD $0x894c; BYTE $0xc1 // movq %r8, %rcx - WORD $0x0948; BYTE $0xc1 // orq %rax, %rcx - WORD $0x3949; BYTE $0xc0 // cmpq %rax, %r8 - LONG $0x00178c0f; WORD $0x0000 // jl LBB22_49, $23(%rip) - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x000e880f; WORD $0x0000 // js LBB22_49, $14(%rip) - WORD $0xf749; BYTE $0xd0 // notq %r8 - WORD $0x894c; BYTE $0xc2 // movq %r8, %rdx - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - LONG $0x000029e9; BYTE $0x00 // jmp LBB22_53, $41(%rip) - -LBB22_49: - LONG $0xff508d48 // leaq $-1(%rax), %rdx - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - WORD $0xf748; BYTE $0xd0 // notq %rax - LONG $0xc2480f49 // cmovsq %r10, %rax - WORD $0x3949; BYTE $0xd0 // cmpq %rdx, %r8 - LONG $0xc2450f49 // cmovneq %r10, %rax - LONG $0x00000fe9; BYTE $0x00 // jmp LBB22_53, $15(%rip) - -LBB22_50: - WORD $0x2949; BYTE $0xfa // subq %rdi, %r10 - WORD $0xbc0f; BYTE $0xd3 // bsfl %ebx, %edx - WORD $0x014c; BYTE $0xd2 // addq %r10, %rdx - -LBB22_51: - WORD $0xf748; BYTE $0xd2 // notq %rdx - -LBB22_52: - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - -LBB22_53: - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB22_54: - WORD $0x894d; BYTE $0xda // movq %r11, %r10 - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xff31850f; WORD $0xffff // jne LBB22_37, $-207(%rip) - LONG $0xffffdee9; BYTE $0xff // jmp LBB22_52, $-34(%rip) - -LBB22_58: - WORD $0xf748; BYTE $0xda // negq %rdx - LONG $0xffffd6e9; BYTE $0xff // jmp LBB22_52, $-42(%rip) - -LBB22_57: - LONG $0xffc0c749; WORD $0xffff; BYTE $0xff // movq $-1, %r8 - WORD $0x8949; BYTE $0xfa // movq %rdi, %r10 - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xffc1c749; WORD $0xffff; BYTE $0xff // movq $-1, %r9 - LONG $0xfffe58e9; BYTE $0xff // jmp LBB22_24, $-424(%rip) - WORD $0x9090 // .p2align 2, 0x90 - - // .set L22_0_set_28, LBB22_28-LJTI22_0 - // .set L22_0_set_36, LBB22_36-LJTI22_0 - // .set L22_0_set_32, LBB22_32-LJTI22_0 - // .set L22_0_set_25, LBB22_25-LJTI22_0 - // .set L22_0_set_30, LBB22_30-LJTI22_0 -LJTI22_0: - LONG $0xfffffe95 // .long L22_0_set_28 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffe95 // .long L22_0_set_28 - LONG $0xfffffecb // .long L22_0_set_32 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffe6c // .long L22_0_set_25 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffeb0 // .long L22_0_set_30 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffef5 // .long L22_0_set_36 - LONG $0xfffffeb0 // .long L22_0_set_30 - - // .p2align 4, 0x90 -_skip_positive: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8b4c; BYTE $0x3e // movq (%rsi), %r15 - LONG $0xff5f8d49 // leaq $-1(%r15), %rbx - WORD $0x8b48; BYTE $0x07 // movq (%rdi), %rax - WORD $0x0148; BYTE $0xd8 // addq %rbx, %rax - LONG $0x08778b48 // movq $8(%rdi), %rsi - WORD $0x2948; BYTE $0xde // subq %rbx, %rsi - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0xfffb77e8; BYTE $0xff // callq _do_skip_number, $-1161(%rip) - LONG $0xff508d48 // leaq $-1(%rax), %rdx - LONG $0xfec1c748; WORD $0xffff; BYTE $0xff // movq $-2, %rcx - LONG $0xfec6c748; WORD $0xffff; BYTE $0xff // movq $-2, %rsi - WORD $0x2948; BYTE $0xc6 // subq %rax, %rsi - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xf2490f48 // cmovnsq %rdx, %rsi - LONG $0xcb490f48 // cmovnsq %rbx, %rcx - WORD $0x014c; BYTE $0xfe // addq %r15, %rsi - WORD $0x8949; BYTE $0x36 // movq %rsi, (%r14) - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_skip_number: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8b4c; BYTE $0x27 // movq (%rdi), %r12 - LONG $0x08778b48 // movq $8(%rdi), %rsi - WORD $0x8b4d; BYTE $0x3e // movq (%r14), %r15 - WORD $0xc031 // xorl %eax, %eax - LONG $0x3c3c8043; BYTE $0x2d // cmpb $45, (%r12,%r15) - LONG $0x3c1c8d4b // leaq (%r12,%r15), %rbx - WORD $0x940f; BYTE $0xc0 // sete %al - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - WORD $0x2948; BYTE $0xc6 // subq %rax, %rsi - LONG $0x003b840f; WORD $0x0000 // je LBB24_6, $59(%rip) - WORD $0x3949; BYTE $0xf7 // cmpq %rsi, %r15 - LONG $0x000c830f; WORD $0x0000 // jae LBB24_3, $12(%rip) - WORD $0x038a // movb (%rbx), %al - WORD $0xd004 // addb $-48, %al - WORD $0x093c // cmpb $9, %al - LONG $0x0038870f; WORD $0x0000 // ja LBB24_8, $56(%rip) - -LBB24_3: - WORD $0x8948; BYTE $0xdf // movq %rbx, %rdi - LONG $0xfffaf1e8; BYTE $0xff // callq _do_skip_number, $-1295(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0021880f; WORD $0x0000 // js LBB24_7, $33(%rip) - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - -LBB24_5: - WORD $0x294c; BYTE $0xe3 // subq %r12, %rbx - WORD $0x8949; BYTE $0x1e // movq %rbx, (%r14) - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB24_6: - LONG $0xffc7c749; WORD $0xffff; BYTE $0xff // movq $-1, %r15 - LONG $0xffffe2e9; BYTE $0xff // jmp LBB24_5, $-30(%rip) - -LBB24_7: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - -LBB24_8: - LONG $0xfec7c749; WORD $0xffff; BYTE $0xff // movq $-2, %r15 - LONG $0xffffd0e9; BYTE $0xff // jmp LBB24_5, $-48(%rip) - LONG $0x00000000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI25_0: - LONG $0x00000001 // .long 1 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - - // .p2align 4, 0x90 -_skip_one: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - QUAD $0xffffffdb0528f8c5 // vmovaps $-37(%rip), %xmm0 /* LCPI25_0(%rip) */ - LONG $0x0011f8c5 // vmovups %xmm0, (%rax) - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - BYTE $0x5d // popq %rbp - LONG $0xffefcee9; BYTE $0xff // jmp _fsm_exec, $-4146(%rip) - QUAD $0x0000000000000000; LONG $0x00000000; WORD $0x0000 // .p2align 4, 0x00 - -LCPI26_0: - LONG $0x00000001 // .long 1 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - - // .p2align 4, 0x90 -_validate_one: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - QUAD $0xffffffdb0528f8c5 // vmovaps $-37(%rip), %xmm0 /* LCPI26_0(%rip) */ - LONG $0x0011f8c5 // vmovups %xmm0, (%rax) - LONG $0x000020b9; BYTE $0x00 // movl $32, %ecx - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - BYTE $0x5d // popq %rbp - LONG $0xffef89e9; BYTE $0xff // jmp _fsm_exec, $-4215(%rip) - QUAD $0x0000000000000000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI27_0: - QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - -LCPI27_1: - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - -LCPI27_2: - QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - -LCPI27_3: - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - -LCPI27_4: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - -LCPI27_5: - QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - -LCPI27_6: - QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - -LCPI27_7: - QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - - // .p2align 4, 0x90 -_skip_one_fast: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0xe0e48348 // andq $-32, %rsp - LONG $0x80ec8148; WORD $0x0000; BYTE $0x00 // subq $128, %rsp - WORD $0x8b4c; BYTE $0x37 // movq (%rdi), %r14 - LONG $0x08478b4c // movq $8(%rdi), %r8 - WORD $0x8b48; BYTE $0x16 // movq (%rsi), %rdx - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x294c; BYTE $0xc0 // subq %r8, %rax - LONG $0x002a830f; WORD $0x0000 // jae LBB27_5, $42(%rip) - LONG $0x160c8a41 // movb (%r14,%rdx), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x001d840f; WORD $0x0000 // je LBB27_5, $29(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x0014840f; WORD $0x0000 // je LBB27_5, $20(%rip) - WORD $0xc180; BYTE $0xf7 // addb $-9, %cl - WORD $0xf980; BYTE $0x01 // cmpb $1, %cl - LONG $0x0008860f; WORD $0x0000 // jbe LBB27_5, $8(%rip) - WORD $0x8949; BYTE $0xd3 // movq %rdx, %r11 - LONG $0x000137e9; BYTE $0x00 // jmp LBB27_27, $311(%rip) - -LBB27_5: - LONG $0x015a8d4c // leaq $1(%rdx), %r11 - WORD $0x394d; BYTE $0xc3 // cmpq %r8, %r11 - LONG $0x0022830f; WORD $0x0000 // jae LBB27_9, $34(%rip) - LONG $0x1e0c8a43 // movb (%r14,%r11), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x0015840f; WORD $0x0000 // je LBB27_9, $21(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x000c840f; WORD $0x0000 // je LBB27_9, $12(%rip) - WORD $0xc180; BYTE $0xf7 // addb $-9, %cl - WORD $0xf980; BYTE $0x01 // cmpb $1, %cl - LONG $0x0108870f; WORD $0x0000 // ja LBB27_27, $264(%rip) - -LBB27_9: - LONG $0x025a8d4c // leaq $2(%rdx), %r11 - WORD $0x394d; BYTE $0xc3 // cmpq %r8, %r11 - LONG $0x0022830f; WORD $0x0000 // jae LBB27_13, $34(%rip) - LONG $0x1e0c8a43 // movb (%r14,%r11), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x0015840f; WORD $0x0000 // je LBB27_13, $21(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x000c840f; WORD $0x0000 // je LBB27_13, $12(%rip) - WORD $0xc180; BYTE $0xf7 // addb $-9, %cl - WORD $0xf980; BYTE $0x01 // cmpb $1, %cl - LONG $0x00d9870f; WORD $0x0000 // ja LBB27_27, $217(%rip) - -LBB27_13: - LONG $0x035a8d4c // leaq $3(%rdx), %r11 - WORD $0x394d; BYTE $0xc3 // cmpq %r8, %r11 - LONG $0x0022830f; WORD $0x0000 // jae LBB27_17, $34(%rip) - LONG $0x1e0c8a43 // movb (%r14,%r11), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x0015840f; WORD $0x0000 // je LBB27_17, $21(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x000c840f; WORD $0x0000 // je LBB27_17, $12(%rip) - WORD $0xc180; BYTE $0xf7 // addb $-9, %cl - WORD $0xf980; BYTE $0x01 // cmpb $1, %cl - LONG $0x00aa870f; WORD $0x0000 // ja LBB27_27, $170(%rip) - -LBB27_17: - LONG $0x044a8d48 // leaq $4(%rdx), %rcx - WORD $0x3949; BYTE $0xc8 // cmpq %rcx, %r8 - LONG $0x0057860f; WORD $0x0000 // jbe LBB27_23, $87(%rip) - WORD $0x3949; BYTE $0xc8 // cmpq %rcx, %r8 - LONG $0x005d840f; WORD $0x0000 // je LBB27_24, $93(%rip) - LONG $0x060c8d4b // leaq (%r14,%r8), %rcx - LONG $0x04c08348 // addq $4, %rax - LONG $0x325c8d4e; BYTE $0x05 // leaq $5(%rdx,%r14), %r11 - QUAD $0x000100002600ba48; WORD $0x0000 // movabsq $4294977024, %rdx - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB27_20: - LONG $0x5bbe0f41; BYTE $0xff // movsbl $-1(%r11), %ebx - WORD $0xfb83; BYTE $0x20 // cmpl $32, %ebx - LONG $0x0048870f; WORD $0x0000 // ja LBB27_26, $72(%rip) - LONG $0xdaa30f48 // btq %rbx, %rdx - LONG $0x003e830f; WORD $0x0000 // jae LBB27_26, $62(%rip) - WORD $0xff49; BYTE $0xc3 // incq %r11 - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0xffdc850f; WORD $0xffff // jne LBB27_20, $-36(%rip) - LONG $0x000012e9; BYTE $0x00 // jmp LBB27_25, $18(%rip) - -LBB27_23: - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0x000120e9; BYTE $0x00 // jmp LBB27_44, $288(%rip) - -LBB27_24: - WORD $0x014c; BYTE $0xf1 // addq %r14, %rcx - -LBB27_25: - WORD $0x294c; BYTE $0xf1 // subq %r14, %rcx - WORD $0x8949; BYTE $0xcb // movq %rcx, %r11 - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x394d; BYTE $0xc3 // cmpq %r8, %r11 - LONG $0x001e820f; WORD $0x0000 // jb LBB27_27, $30(%rip) - LONG $0x000102e9; BYTE $0x00 // jmp LBB27_44, $258(%rip) - -LBB27_26: - WORD $0x894c; BYTE $0xf0 // movq %r14, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0149; BYTE $0xc3 // addq %rax, %r11 - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x394d; BYTE $0xc3 // cmpq %r8, %r11 - LONG $0x00e9830f; WORD $0x0000 // jae LBB27_44, $233(%rip) - -LBB27_27: - LONG $0x015b8d49 // leaq $1(%r11), %rbx - WORD $0x8948; BYTE $0x1e // movq %rbx, (%rsi) - LONG $0x0cbe0f43; BYTE $0x1e // movsbl (%r14,%r11), %ecx - WORD $0xf983; BYTE $0x7b // cmpl $123, %ecx - LONG $0x00f9870f; WORD $0x0000 // ja LBB27_46, $249(%rip) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xf6158d48; WORD $0x0009; BYTE $0x00 // leaq $2550(%rip), %rdx /* LJTI27_0(%rip) */ - LONG $0x8a0c6348 // movslq (%rdx,%rcx,4), %rcx - WORD $0x0148; BYTE $0xd1 // addq %rdx, %rcx - JMP CX - -LBB27_29: - LONG $0x08478b48 // movq $8(%rdi), %rax - WORD $0x2948; BYTE $0xd8 // subq %rbx, %rax - WORD $0x014c; BYTE $0xf3 // addq %r14, %rbx - LONG $0x10f88348 // cmpq $16, %rax - LONG $0x0054820f; WORD $0x0000 // jb LBB27_33, $84(%rip) - QUAD $0xfffffda9056ff9c5 // vmovdqa $-599(%rip), %xmm0 /* LCPI27_0(%rip) */ - QUAD $0xfffffdb10d6ff9c5 // vmovdqa $-591(%rip), %xmm1 /* LCPI27_1(%rip) */ - QUAD $0xfffffdb9156ff9c5 // vmovdqa $-583(%rip), %xmm2 /* LCPI27_2(%rip) */ - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB27_31: - LONG $0x1b6ffac5 // vmovdqu (%rbx), %xmm3 - LONG $0xe074e1c5 // vpcmpeqb %xmm0, %xmm3, %xmm4 - LONG $0xd9dbe1c5 // vpand %xmm1, %xmm3, %xmm3 - LONG $0xda74e1c5 // vpcmpeqb %xmm2, %xmm3, %xmm3 - LONG $0xdcebe1c5 // vpor %xmm4, %xmm3, %xmm3 - LONG $0xcbd7f9c5 // vpmovmskb %xmm3, %ecx - WORD $0x8566; BYTE $0xc9 // testw %cx, %cx - LONG $0x0054850f; WORD $0x0000 // jne LBB27_41, $84(%rip) - LONG $0x10c38348 // addq $16, %rbx - LONG $0xf0c08348 // addq $-16, %rax - LONG $0x0ff88348 // cmpq $15, %rax - LONG $0xffcd870f; WORD $0xffff // ja LBB27_31, $-51(%rip) - -LBB27_33: - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0031840f; WORD $0x0000 // je LBB27_40, $49(%rip) - LONG $0x030c8d48 // leaq (%rbx,%rax), %rcx - -LBB27_35: - WORD $0xb60f; BYTE $0x13 // movzbl (%rbx), %edx - WORD $0xfa80; BYTE $0x2c // cmpb $44, %dl - LONG $0x0021840f; WORD $0x0000 // je LBB27_40, $33(%rip) - WORD $0xfa80; BYTE $0x7d // cmpb $125, %dl - LONG $0x0018840f; WORD $0x0000 // je LBB27_40, $24(%rip) - WORD $0xfa80; BYTE $0x5d // cmpb $93, %dl - LONG $0x000f840f; WORD $0x0000 // je LBB27_40, $15(%rip) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0xffd6850f; WORD $0xffff // jne LBB27_35, $-42(%rip) - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - -LBB27_40: - WORD $0x294c; BYTE $0xf3 // subq %r14, %rbx - LONG $0x00000de9; BYTE $0x00 // jmp LBB27_42, $13(%rip) - -LBB27_41: - WORD $0xb70f; BYTE $0xc1 // movzwl %cx, %eax - LONG $0xc0bc0f48 // bsfq %rax, %rax - WORD $0x294c; BYTE $0xf3 // subq %r14, %rbx - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - -LBB27_42: - WORD $0x8948; BYTE $0x1e // movq %rbx, (%rsi) - -LBB27_43: - WORD $0x894c; BYTE $0xd8 // movq %r11, %rax - -LBB27_44: - LONG $0xd8658d48 // leaq $-40(%rbp), %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB27_45: - LONG $0x044b8d49 // leaq $4(%r11), %rcx - LONG $0x084f3b48 // cmpq $8(%rdi), %rcx - LONG $0xffe0870f; WORD $0xffff // ja LBB27_44, $-32(%rip) - LONG $0x00049ce9; BYTE $0x00 // jmp LBB27_82, $1180(%rip) - -LBB27_46: - WORD $0x894c; BYTE $0x1e // movq %r11, (%rsi) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xffffcce9; BYTE $0xff // jmp LBB27_44, $-52(%rip) - -LBB27_47: - LONG $0x08478b4c // movq $8(%rdi), %r8 - WORD $0x894d; BYTE $0xc7 // movq %r8, %r15 - WORD $0x2949; BYTE $0xdf // subq %rbx, %r15 - LONG $0x20ff8349 // cmpq $32, %r15 - LONG $0x08b18c0f; WORD $0x0000 // jl LBB27_116, $2225(%rip) - LONG $0xffffb941; WORD $0xffff // movl $4294967295, %r9d - LONG $0x1e148d4f // leaq (%r14,%r11), %r10 - WORD $0x294d; BYTE $0xd8 // subq %r11, %r8 - LONG $0x001fbd41; WORD $0x0000 // movl $31, %r13d - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - QUAD $0xfffffcd2056ff9c5 // vmovdqa $-814(%rip), %xmm0 /* LCPI27_3(%rip) */ - QUAD $0xfffffcda0d6ff9c5 // vmovdqa $-806(%rip), %xmm1 /* LCPI27_4(%rip) */ - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x000024e9; BYTE $0x00 // jmp LBB27_49, $36(%rip) - WORD $0x9090 // .p2align 4, 0x90 - -LBB27_51: - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0xc985 // testl %ecx, %ecx - LONG $0x009e850f; WORD $0x0000 // jne LBB27_109, $158(%rip) - -LBB27_52: - LONG $0x20c78349 // addq $32, %r15 - LONG $0x284c8d4b; BYTE $0xe0 // leaq $-32(%r8,%r13), %rcx - LONG $0xe0c58349 // addq $-32, %r13 - LONG $0x3ff98348 // cmpq $63, %rcx - LONG $0x07dc8e0f; WORD $0x0000 // jle LBB27_53, $2012(%rip) - -LBB27_49: - LONG $0x6f7a81c4; WORD $0x3a54; BYTE $0x01 // vmovdqu $1(%r10,%r15), %xmm2 - LONG $0x6f7a81c4; WORD $0x3a5c; BYTE $0x11 // vmovdqu $17(%r10,%r15), %xmm3 - LONG $0xe074e9c5 // vpcmpeqb %xmm0, %xmm2, %xmm4 - LONG $0xfcd7f9c5 // vpmovmskb %xmm4, %edi - LONG $0xe074e1c5 // vpcmpeqb %xmm0, %xmm3, %xmm4 - LONG $0xccd7f9c5 // vpmovmskb %xmm4, %ecx - LONG $0x10e1c148 // shlq $16, %rcx - WORD $0x0948; BYTE $0xf9 // orq %rdi, %rcx - LONG $0xd174e9c5 // vpcmpeqb %xmm1, %xmm2, %xmm2 - LONG $0xdad7f9c5 // vpmovmskb %xmm2, %ebx - LONG $0xd174e1c5 // vpcmpeqb %xmm1, %xmm3, %xmm2 - LONG $0xfad7f9c5 // vpmovmskb %xmm2, %edi - LONG $0x10e7c148 // shlq $16, %rdi - WORD $0x0948; BYTE $0xdf // orq %rbx, %rdi - WORD $0x8948; BYTE $0xfb // movq %rdi, %rbx - WORD $0x094c; BYTE $0xe3 // orq %r12, %rbx - LONG $0xff96840f; WORD $0xffff // je LBB27_51, $-106(%rip) - WORD $0x8944; BYTE $0xe3 // movl %r12d, %ebx - WORD $0x3144; BYTE $0xcb // xorl %r9d, %ebx - WORD $0xdf21 // andl %ebx, %edi - WORD $0x1c8d; BYTE $0x3f // leal (%rdi,%rdi), %ebx - WORD $0x0944; BYTE $0xe3 // orl %r12d, %ebx - LONG $0xab918d41; WORD $0xaaaa; BYTE $0xaa // leal $-1431655765(%r9), %edx - WORD $0xda31 // xorl %ebx, %edx - WORD $0xfa21 // andl %edi, %edx - LONG $0xaaaae281; WORD $0xaaaa // andl $-1431655766, %edx - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0xfa01 // addl %edi, %edx - LONG $0xc4920f41 // setb %r12b - WORD $0xd201 // addl %edx, %edx - LONG $0x5555f281; WORD $0x5555 // xorl $1431655765, %edx - WORD $0xda21 // andl %ebx, %edx - WORD $0x3144; BYTE $0xca // xorl %r9d, %edx - WORD $0xd121 // andl %edx, %ecx - WORD $0xc985 // testl %ecx, %ecx - LONG $0xff62840f; WORD $0xffff // je LBB27_52, $-158(%rip) - -LBB27_109: - LONG $0xc1bc0f48 // bsfq %rcx, %rax - WORD $0x0149; BYTE $0xc2 // addq %rax, %r10 - WORD $0x014d; BYTE $0xfa // addq %r15, %r10 - WORD $0x294d; BYTE $0xf2 // subq %r14, %r10 - LONG $0x02c28349 // addq $2, %r10 - WORD $0x894c; BYTE $0x16 // movq %r10, (%rsi) - LONG $0xfffec3e9; BYTE $0xff // jmp LBB27_43, $-317(%rip) - -LBB27_56: - LONG $0x084f8b48 // movq $8(%rdi), %rcx - WORD $0x2948; BYTE $0xd9 // subq %rbx, %rcx - WORD $0x0149; BYTE $0xde // addq %rbx, %r14 - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - QUAD $0xfffffbf9156f79c5 // vmovdqa $-1031(%rip), %xmm10 /* LCPI27_4(%rip) */ - QUAD $0xfffffbe10d6ff9c5 // vmovdqa $-1055(%rip), %xmm1 /* LCPI27_3(%rip) */ - LONG $0x763141c4; BYTE $0xc9 // vpcmpeqd %xmm9, %xmm9, %xmm9 - QUAD $0xfffffc141d6ff9c5 // vmovdqa $-1004(%rip), %xmm3 /* LCPI27_7(%rip) */ - QUAD $0xfffffbbc256ff9c5 // vmovdqa $-1092(%rip), %xmm4 /* LCPI27_2(%rip) */ - LONG $0x573841c4; BYTE $0xc0 // vxorps %xmm8, %xmm8, %xmm8 - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0x40f98348 // cmpq $64, %rcx - LONG $0x244c8948; BYTE $0x08 // movq %rcx, $8(%rsp) - LONG $0x2444894c; BYTE $0x18 // movq %r8, $24(%rsp) - LONG $0x01338d0f; WORD $0x0000 // jge LBB27_57, $307(%rip) - -LBB27_66: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x076b8e0f; WORD $0x0000 // jle LBB27_117, $1899(%rip) - LONG $0x44297cc5; WORD $0x4024 // vmovaps %ymm8, $64(%rsp) - LONG $0x44297cc5; WORD $0x2024 // vmovaps %ymm8, $32(%rsp) - WORD $0x8944; BYTE $0xf1 // movl %r14d, %ecx - LONG $0x0fffe181; WORD $0x0000 // andl $4095, %ecx - LONG $0x0fc1f981; WORD $0x0000 // cmpl $4033, %ecx - LONG $0x0109820f; WORD $0x0000 // jb LBB27_57, $265(%rip) - LONG $0x247c8348; WORD $0x2008 // cmpq $32, $8(%rsp) - LONG $0x002e820f; WORD $0x0000 // jb LBB27_70, $46(%rip) - LONG $0x1078c1c4; BYTE $0x06 // vmovups (%r14), %xmm0 - LONG $0x4429f8c5; WORD $0x2024 // vmovaps %xmm0, $32(%rsp) - LONG $0x6f7ac1c4; WORD $0x1046 // vmovdqu $16(%r14), %xmm0 - LONG $0x447ff9c5; WORD $0x3024 // vmovdqa %xmm0, $48(%rsp) - LONG $0x20c68349 // addq $32, %r14 - LONG $0x244c8b48; BYTE $0x08 // movq $8(%rsp), %rcx - LONG $0xe0518d48 // leaq $-32(%rcx), %rdx - LONG $0x24448d4c; BYTE $0x40 // leaq $64(%rsp), %r8 - LONG $0x00000ae9; BYTE $0x00 // jmp LBB27_71, $10(%rip) - -LBB27_70: - LONG $0x24448d4c; BYTE $0x20 // leaq $32(%rsp), %r8 - LONG $0x24548b48; BYTE $0x08 // movq $8(%rsp), %rdx - -LBB27_71: - LONG $0x10fa8348 // cmpq $16, %rdx - LONG $0x005c820f; WORD $0x0000 // jb LBB27_72, $92(%rip) - LONG $0x6f7ac1c4; BYTE $0x06 // vmovdqu (%r14), %xmm0 - LONG $0x7f7ac1c4; BYTE $0x00 // vmovdqu %xmm0, (%r8) - LONG $0x10c68349 // addq $16, %r14 - LONG $0x10c08349 // addq $16, %r8 - LONG $0xf0c28348 // addq $-16, %rdx - LONG $0x08fa8348 // cmpq $8, %rdx - LONG $0x0046830f; WORD $0x0000 // jae LBB27_77, $70(%rip) - -LBB27_73: - LONG $0x04fa8348 // cmpq $4, %rdx - LONG $0x00588c0f; WORD $0x0000 // jl LBB27_74, $88(%rip) - -LBB27_78: - WORD $0x8b41; BYTE $0x0e // movl (%r14), %ecx - WORD $0x8941; BYTE $0x08 // movl %ecx, (%r8) - LONG $0x04c68349 // addq $4, %r14 - LONG $0x04c08349 // addq $4, %r8 - LONG $0xfcc28348 // addq $-4, %rdx - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0x0046830f; WORD $0x0000 // jae LBB27_79, $70(%rip) - -LBB27_75: - WORD $0x894c; BYTE $0xf1 // movq %r14, %rcx - LONG $0x24748d4c; BYTE $0x20 // leaq $32(%rsp), %r14 - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x005a850f; WORD $0x0000 // jne LBB27_80, $90(%rip) - LONG $0x00005fe9; BYTE $0x00 // jmp LBB27_57, $95(%rip) - -LBB27_72: - LONG $0x08fa8348 // cmpq $8, %rdx - LONG $0xffba820f; WORD $0xffff // jb LBB27_73, $-70(%rip) - -LBB27_77: - WORD $0x8b49; BYTE $0x0e // movq (%r14), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x08c68349 // addq $8, %r14 - LONG $0x08c08349 // addq $8, %r8 - LONG $0xf8c28348 // addq $-8, %rdx - LONG $0x04fa8348 // cmpq $4, %rdx - LONG $0xffa88d0f; WORD $0xffff // jge LBB27_78, $-88(%rip) - -LBB27_74: - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0xffba820f; WORD $0xffff // jb LBB27_75, $-70(%rip) - -LBB27_79: - LONG $0x0eb70f41 // movzwl (%r14), %ecx - LONG $0x08894166 // movw %cx, (%r8) - LONG $0x02c68349 // addq $2, %r14 - LONG $0x02c08349 // addq $2, %r8 - LONG $0xfec28348 // addq $-2, %rdx - WORD $0x894c; BYTE $0xf1 // movq %r14, %rcx - LONG $0x24748d4c; BYTE $0x20 // leaq $32(%rsp), %r14 - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x000a840f; WORD $0x0000 // je LBB27_57, $10(%rip) - -LBB27_80: - WORD $0x098a // movb (%rcx), %cl - WORD $0x8841; BYTE $0x08 // movb %cl, (%r8) - LONG $0x24748d4c; BYTE $0x20 // leaq $32(%rsp), %r14 - -LBB27_57: - LONG $0x6f7ac1c4; BYTE $0x16 // vmovdqu (%r14), %xmm2 - LONG $0x6f7ac1c4; WORD $0x106e // vmovdqu $16(%r14), %xmm5 - LONG $0x6f7ac1c4; WORD $0x207e // vmovdqu $32(%r14), %xmm7 - LONG $0x6f7ac1c4; WORD $0x3076 // vmovdqu $48(%r14), %xmm6 - LONG $0xc274a9c5 // vpcmpeqb %xmm2, %xmm10, %xmm0 - LONG $0xd0d7f9c5 // vpmovmskb %xmm0, %edx - LONG $0xc574a9c5 // vpcmpeqb %xmm5, %xmm10, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0xc774a9c5 // vpcmpeqb %xmm7, %xmm10, %xmm0 - LONG $0xe8d779c5 // vpmovmskb %xmm0, %r13d - LONG $0xc674a9c5 // vpcmpeqb %xmm6, %xmm10, %xmm0 - LONG $0xc8d779c5 // vpmovmskb %xmm0, %r9d - LONG $0x30e1c149 // shlq $48, %r9 - LONG $0x20e5c149 // shlq $32, %r13 - LONG $0x10e1c148 // shlq $16, %rcx - WORD $0x0948; BYTE $0xca // orq %rcx, %rdx - WORD $0x094c; BYTE $0xea // orq %r13, %rdx - WORD $0x094c; BYTE $0xca // orq %r9, %rdx - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x094c; BYTE $0xf9 // orq %r15, %rcx - LONG $0x004e840f; WORD $0x0000 // je LBB27_59, $78(%rip) - WORD $0x894d; BYTE $0xf8 // movq %r15, %r8 - WORD $0xf749; BYTE $0xd0 // notq %r8 - WORD $0x2149; BYTE $0xd0 // andq %rdx, %r8 - LONG $0x000c8d4f // leaq (%r8,%r8), %r9 - WORD $0x094d; BYTE $0xf9 // orq %r15, %r9 - WORD $0x894d; BYTE $0xcc // movq %r9, %r12 - QUAD $0xaaaaaaaaaaaab948; WORD $0xaaaa // movabsq $-6148914691236517206, %rcx - WORD $0x3149; BYTE $0xcc // xorq %rcx, %r12 - WORD $0x2148; BYTE $0xca // andq %rcx, %rdx - WORD $0x214c; BYTE $0xe2 // andq %r12, %rdx - WORD $0xc931 // xorl %ecx, %ecx - WORD $0x014c; BYTE $0xc2 // addq %r8, %rdx - WORD $0x920f; BYTE $0xc1 // setb %cl - LONG $0x244c8948; BYTE $0x10 // movq %rcx, $16(%rsp) - WORD $0x0148; BYTE $0xd2 // addq %rdx, %rdx - QUAD $0x555555555555b948; WORD $0x5555 // movabsq $6148914691236517205, %rcx - WORD $0x3148; BYTE $0xca // xorq %rcx, %rdx - WORD $0x214c; BYTE $0xca // andq %r9, %rdx - WORD $0xf748; BYTE $0xd2 // notq %rdx - LONG $0x00000ee9; BYTE $0x00 // jmp LBB27_60, $14(%rip) - -LBB27_59: - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x244c8948; BYTE $0x10 // movq %rcx, $16(%rsp) - -LBB27_60: - LONG $0xc174d1c5 // vpcmpeqb %xmm1, %xmm5, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0x10e1c148 // shlq $16, %rcx - LONG $0xc174e9c5 // vpcmpeqb %xmm1, %xmm2, %xmm0 - LONG $0xc8d779c5 // vpmovmskb %xmm0, %r9d - WORD $0x0949; BYTE $0xc9 // orq %rcx, %r9 - LONG $0xc174c1c5 // vpcmpeqb %xmm1, %xmm7, %xmm0 - LONG $0xe8d779c5 // vpmovmskb %xmm0, %r13d - LONG $0x20e5c149 // shlq $32, %r13 - WORD $0x094d; BYTE $0xcd // orq %r9, %r13 - LONG $0xc174c9c5 // vpcmpeqb %xmm1, %xmm6, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0x30e1c148 // shlq $48, %rcx - WORD $0x094c; BYTE $0xe9 // orq %r13, %rcx - WORD $0x2148; BYTE $0xd1 // andq %rdx, %rcx - LONG $0x6ef9e1c4; BYTE $0xc1 // vmovq %rcx, %xmm0 - LONG $0x4479c3c4; WORD $0x00c1 // vpclmulqdq $0, %xmm9, %xmm0, %xmm0 - LONG $0x7ef9c1c4; BYTE $0xc5 // vmovq %xmm0, %r13 - WORD $0x314d; BYTE $0xd5 // xorq %r10, %r13 - LONG $0xc374e9c5 // vpcmpeqb %xmm3, %xmm2, %xmm0 - LONG $0xf8d779c5 // vpmovmskb %xmm0, %r15d - LONG $0xc374d1c5 // vpcmpeqb %xmm3, %xmm5, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0xc374c1c5 // vpcmpeqb %xmm3, %xmm7, %xmm0 - LONG $0xc8d779c5 // vpmovmskb %xmm0, %r9d - LONG $0xc374c9c5 // vpcmpeqb %xmm3, %xmm6, %xmm0 - LONG $0xd0d779c5 // vpmovmskb %xmm0, %r10d - LONG $0x30e2c149 // shlq $48, %r10 - LONG $0x20e1c149 // shlq $32, %r9 - LONG $0x10e1c148 // shlq $16, %rcx - WORD $0x0949; BYTE $0xcf // orq %rcx, %r15 - WORD $0x094d; BYTE $0xcf // orq %r9, %r15 - WORD $0x094d; BYTE $0xd7 // orq %r10, %r15 - WORD $0x894d; BYTE $0xe9 // movq %r13, %r9 - WORD $0xf749; BYTE $0xd1 // notq %r9 - WORD $0x214d; BYTE $0xcf // andq %r9, %r15 - LONG $0xc474e9c5 // vpcmpeqb %xmm4, %xmm2, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0xc474d1c5 // vpcmpeqb %xmm4, %xmm5, %xmm0 - LONG $0xd0d779c5 // vpmovmskb %xmm0, %r10d - LONG $0xc474c1c5 // vpcmpeqb %xmm4, %xmm7, %xmm0 - LONG $0xc0d779c5 // vpmovmskb %xmm0, %r8d - LONG $0xc474c9c5 // vpcmpeqb %xmm4, %xmm6, %xmm0 - LONG $0xe0d779c5 // vpmovmskb %xmm0, %r12d - LONG $0x30e4c149 // shlq $48, %r12 - LONG $0x20e0c149 // shlq $32, %r8 - LONG $0x10e2c149 // shlq $16, %r10 - WORD $0x094c; BYTE $0xd1 // orq %r10, %rcx - WORD $0x094c; BYTE $0xc1 // orq %r8, %rcx - WORD $0x094c; BYTE $0xe1 // orq %r12, %rcx - WORD $0x214c; BYTE $0xc9 // andq %r9, %rcx - LONG $0x0039840f; WORD $0x0000 // je LBB27_64, $57(%rip) - LONG $0x24448b4c; BYTE $0x18 // movq $24(%rsp), %r8 - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB27_62: - LONG $0xff518d4c // leaq $-1(%rcx), %r10 - WORD $0x894c; BYTE $0xd2 // movq %r10, %rdx - WORD $0x214c; BYTE $0xfa // andq %r15, %rdx - LONG $0xb80f48f3; BYTE $0xd2 // popcntq %rdx, %rdx - WORD $0x014c; BYTE $0xc2 // addq %r8, %rdx - WORD $0x3948; BYTE $0xda // cmpq %rbx, %rdx - LONG $0x03e0860f; WORD $0x0000 // jbe LBB27_108, $992(%rip) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0x214c; BYTE $0xd1 // andq %r10, %rcx - LONG $0xffd9850f; WORD $0xffff // jne LBB27_62, $-39(%rip) - LONG $0x000005e9; BYTE $0x00 // jmp LBB27_65, $5(%rip) - -LBB27_64: - LONG $0x24448b4c; BYTE $0x18 // movq $24(%rsp), %r8 - -LBB27_65: - LONG $0x3ffdc149 // sarq $63, %r13 - LONG $0xb80f49f3; BYTE $0xcf // popcntq %r15, %rcx - WORD $0x0149; BYTE $0xc8 // addq %rcx, %r8 - LONG $0x40c68349 // addq $64, %r14 - LONG $0x244c8b48; BYTE $0x08 // movq $8(%rsp), %rcx - LONG $0xc0c18348 // addq $-64, %rcx - WORD $0x894d; BYTE $0xea // movq %r13, %r10 - LONG $0x247c8b4c; BYTE $0x10 // movq $16(%rsp), %r15 - LONG $0x40f98348 // cmpq $64, %rcx - LONG $0x244c8948; BYTE $0x08 // movq %rcx, $8(%rsp) - LONG $0x2444894c; BYTE $0x18 // movq %r8, $24(%rsp) - LONG $0xfe128d0f; WORD $0xffff // jge LBB27_57, $-494(%rip) - LONG $0xfffcdae9; BYTE $0xff // jmp LBB27_66, $-806(%rip) - -LBB27_81: - LONG $0x054b8d49 // leaq $5(%r11), %rcx - LONG $0x084f3b48 // cmpq $8(%rdi), %rcx - LONG $0xfb3f870f; WORD $0xffff // ja LBB27_44, $-1217(%rip) - -LBB27_82: - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0xfffb34e9; BYTE $0xff // jmp LBB27_43, $-1228(%rip) - -LBB27_83: - LONG $0x084f8b48 // movq $8(%rdi), %rcx - WORD $0x2948; BYTE $0xd9 // subq %rbx, %rcx - WORD $0x0149; BYTE $0xde // addq %rbx, %r14 - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - QUAD $0xfffff86a156f79c5 // vmovdqa $-1942(%rip), %xmm10 /* LCPI27_4(%rip) */ - QUAD $0xfffff8520d6ff9c5 // vmovdqa $-1966(%rip), %xmm1 /* LCPI27_3(%rip) */ - LONG $0x763141c4; BYTE $0xc9 // vpcmpeqd %xmm9, %xmm9, %xmm9 - QUAD $0xfffff8651d6ff9c5 // vmovdqa $-1947(%rip), %xmm3 /* LCPI27_5(%rip) */ - QUAD $0xfffff86d256ff9c5 // vmovdqa $-1939(%rip), %xmm4 /* LCPI27_6(%rip) */ - LONG $0x573841c4; BYTE $0xc0 // vxorps %xmm8, %xmm8, %xmm8 - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0x40f98348 // cmpq $64, %rcx - LONG $0x244c8948; BYTE $0x08 // movq %rcx, $8(%rsp) - LONG $0x2444894c; BYTE $0x18 // movq %r8, $24(%rsp) - LONG $0x01338d0f; WORD $0x0000 // jge LBB27_84, $307(%rip) - -LBB27_93: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x03dc8e0f; WORD $0x0000 // jle LBB27_117, $988(%rip) - LONG $0x44297cc5; WORD $0x4024 // vmovaps %ymm8, $64(%rsp) - LONG $0x44297cc5; WORD $0x2024 // vmovaps %ymm8, $32(%rsp) - WORD $0x8944; BYTE $0xf1 // movl %r14d, %ecx - LONG $0x0fffe181; WORD $0x0000 // andl $4095, %ecx - LONG $0x0fc1f981; WORD $0x0000 // cmpl $4033, %ecx - LONG $0x0109820f; WORD $0x0000 // jb LBB27_84, $265(%rip) - LONG $0x247c8348; WORD $0x2008 // cmpq $32, $8(%rsp) - LONG $0x002e820f; WORD $0x0000 // jb LBB27_97, $46(%rip) - LONG $0x1078c1c4; BYTE $0x06 // vmovups (%r14), %xmm0 - LONG $0x4429f8c5; WORD $0x2024 // vmovaps %xmm0, $32(%rsp) - LONG $0x6f7ac1c4; WORD $0x1046 // vmovdqu $16(%r14), %xmm0 - LONG $0x447ff9c5; WORD $0x3024 // vmovdqa %xmm0, $48(%rsp) - LONG $0x20c68349 // addq $32, %r14 - LONG $0x244c8b48; BYTE $0x08 // movq $8(%rsp), %rcx - LONG $0xe0518d48 // leaq $-32(%rcx), %rdx - LONG $0x24448d4c; BYTE $0x40 // leaq $64(%rsp), %r8 - LONG $0x00000ae9; BYTE $0x00 // jmp LBB27_98, $10(%rip) - -LBB27_97: - LONG $0x24448d4c; BYTE $0x20 // leaq $32(%rsp), %r8 - LONG $0x24548b48; BYTE $0x08 // movq $8(%rsp), %rdx - -LBB27_98: - LONG $0x10fa8348 // cmpq $16, %rdx - LONG $0x005c820f; WORD $0x0000 // jb LBB27_99, $92(%rip) - LONG $0x6f7ac1c4; BYTE $0x06 // vmovdqu (%r14), %xmm0 - LONG $0x7f7ac1c4; BYTE $0x00 // vmovdqu %xmm0, (%r8) - LONG $0x10c68349 // addq $16, %r14 - LONG $0x10c08349 // addq $16, %r8 - LONG $0xf0c28348 // addq $-16, %rdx - LONG $0x08fa8348 // cmpq $8, %rdx - LONG $0x0046830f; WORD $0x0000 // jae LBB27_104, $70(%rip) - -LBB27_100: - LONG $0x04fa8348 // cmpq $4, %rdx - LONG $0x00588c0f; WORD $0x0000 // jl LBB27_101, $88(%rip) - -LBB27_105: - WORD $0x8b41; BYTE $0x0e // movl (%r14), %ecx - WORD $0x8941; BYTE $0x08 // movl %ecx, (%r8) - LONG $0x04c68349 // addq $4, %r14 - LONG $0x04c08349 // addq $4, %r8 - LONG $0xfcc28348 // addq $-4, %rdx - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0x0046830f; WORD $0x0000 // jae LBB27_106, $70(%rip) - -LBB27_102: - WORD $0x894c; BYTE $0xf1 // movq %r14, %rcx - LONG $0x24748d4c; BYTE $0x20 // leaq $32(%rsp), %r14 - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x005a850f; WORD $0x0000 // jne LBB27_107, $90(%rip) - LONG $0x00005fe9; BYTE $0x00 // jmp LBB27_84, $95(%rip) - -LBB27_99: - LONG $0x08fa8348 // cmpq $8, %rdx - LONG $0xffba820f; WORD $0xffff // jb LBB27_100, $-70(%rip) - -LBB27_104: - WORD $0x8b49; BYTE $0x0e // movq (%r14), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0x08c68349 // addq $8, %r14 - LONG $0x08c08349 // addq $8, %r8 - LONG $0xf8c28348 // addq $-8, %rdx - LONG $0x04fa8348 // cmpq $4, %rdx - LONG $0xffa88d0f; WORD $0xffff // jge LBB27_105, $-88(%rip) - -LBB27_101: - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0xffba820f; WORD $0xffff // jb LBB27_102, $-70(%rip) - -LBB27_106: - LONG $0x0eb70f41 // movzwl (%r14), %ecx - LONG $0x08894166 // movw %cx, (%r8) - LONG $0x02c68349 // addq $2, %r14 - LONG $0x02c08349 // addq $2, %r8 - LONG $0xfec28348 // addq $-2, %rdx - WORD $0x894c; BYTE $0xf1 // movq %r14, %rcx - LONG $0x24748d4c; BYTE $0x20 // leaq $32(%rsp), %r14 - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x000a840f; WORD $0x0000 // je LBB27_84, $10(%rip) - -LBB27_107: - WORD $0x098a // movb (%rcx), %cl - WORD $0x8841; BYTE $0x08 // movb %cl, (%r8) - LONG $0x24748d4c; BYTE $0x20 // leaq $32(%rsp), %r14 - -LBB27_84: - LONG $0x6f7ac1c4; BYTE $0x16 // vmovdqu (%r14), %xmm2 - LONG $0x6f7ac1c4; WORD $0x106e // vmovdqu $16(%r14), %xmm5 - LONG $0x6f7ac1c4; WORD $0x207e // vmovdqu $32(%r14), %xmm7 - LONG $0x6f7ac1c4; WORD $0x3076 // vmovdqu $48(%r14), %xmm6 - LONG $0xc274a9c5 // vpcmpeqb %xmm2, %xmm10, %xmm0 - LONG $0xd0d7f9c5 // vpmovmskb %xmm0, %edx - LONG $0xc574a9c5 // vpcmpeqb %xmm5, %xmm10, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0xc774a9c5 // vpcmpeqb %xmm7, %xmm10, %xmm0 - LONG $0xe8d779c5 // vpmovmskb %xmm0, %r13d - LONG $0xc674a9c5 // vpcmpeqb %xmm6, %xmm10, %xmm0 - LONG $0xc8d779c5 // vpmovmskb %xmm0, %r9d - LONG $0x30e1c149 // shlq $48, %r9 - LONG $0x20e5c149 // shlq $32, %r13 - LONG $0x10e1c148 // shlq $16, %rcx - WORD $0x0948; BYTE $0xca // orq %rcx, %rdx - WORD $0x094c; BYTE $0xea // orq %r13, %rdx - WORD $0x094c; BYTE $0xca // orq %r9, %rdx - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x094c; BYTE $0xf9 // orq %r15, %rcx - LONG $0x004e840f; WORD $0x0000 // je LBB27_86, $78(%rip) - WORD $0x894d; BYTE $0xf8 // movq %r15, %r8 - WORD $0xf749; BYTE $0xd0 // notq %r8 - WORD $0x2149; BYTE $0xd0 // andq %rdx, %r8 - LONG $0x000c8d4f // leaq (%r8,%r8), %r9 - WORD $0x094d; BYTE $0xf9 // orq %r15, %r9 - WORD $0x894d; BYTE $0xcc // movq %r9, %r12 - QUAD $0xaaaaaaaaaaaab948; WORD $0xaaaa // movabsq $-6148914691236517206, %rcx - WORD $0x3149; BYTE $0xcc // xorq %rcx, %r12 - WORD $0x2148; BYTE $0xca // andq %rcx, %rdx - WORD $0x214c; BYTE $0xe2 // andq %r12, %rdx - WORD $0xc931 // xorl %ecx, %ecx - WORD $0x014c; BYTE $0xc2 // addq %r8, %rdx - WORD $0x920f; BYTE $0xc1 // setb %cl - LONG $0x244c8948; BYTE $0x10 // movq %rcx, $16(%rsp) - WORD $0x0148; BYTE $0xd2 // addq %rdx, %rdx - QUAD $0x555555555555b948; WORD $0x5555 // movabsq $6148914691236517205, %rcx - WORD $0x3148; BYTE $0xca // xorq %rcx, %rdx - WORD $0x214c; BYTE $0xca // andq %r9, %rdx - WORD $0xf748; BYTE $0xd2 // notq %rdx - LONG $0x00000ee9; BYTE $0x00 // jmp LBB27_87, $14(%rip) - -LBB27_86: - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x244c8948; BYTE $0x10 // movq %rcx, $16(%rsp) - -LBB27_87: - LONG $0xc174d1c5 // vpcmpeqb %xmm1, %xmm5, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0x10e1c148 // shlq $16, %rcx - LONG $0xc174e9c5 // vpcmpeqb %xmm1, %xmm2, %xmm0 - LONG $0xc8d779c5 // vpmovmskb %xmm0, %r9d - WORD $0x0949; BYTE $0xc9 // orq %rcx, %r9 - LONG $0xc174c1c5 // vpcmpeqb %xmm1, %xmm7, %xmm0 - LONG $0xe8d779c5 // vpmovmskb %xmm0, %r13d - LONG $0x20e5c149 // shlq $32, %r13 - WORD $0x094d; BYTE $0xcd // orq %r9, %r13 - LONG $0xc174c9c5 // vpcmpeqb %xmm1, %xmm6, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0x30e1c148 // shlq $48, %rcx - WORD $0x094c; BYTE $0xe9 // orq %r13, %rcx - WORD $0x2148; BYTE $0xd1 // andq %rdx, %rcx - LONG $0x6ef9e1c4; BYTE $0xc1 // vmovq %rcx, %xmm0 - LONG $0x4479c3c4; WORD $0x00c1 // vpclmulqdq $0, %xmm9, %xmm0, %xmm0 - LONG $0x7ef9c1c4; BYTE $0xc5 // vmovq %xmm0, %r13 - WORD $0x314d; BYTE $0xd5 // xorq %r10, %r13 - LONG $0xc374e9c5 // vpcmpeqb %xmm3, %xmm2, %xmm0 - LONG $0xf8d779c5 // vpmovmskb %xmm0, %r15d - LONG $0xc374d1c5 // vpcmpeqb %xmm3, %xmm5, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0xc374c1c5 // vpcmpeqb %xmm3, %xmm7, %xmm0 - LONG $0xc8d779c5 // vpmovmskb %xmm0, %r9d - LONG $0xc374c9c5 // vpcmpeqb %xmm3, %xmm6, %xmm0 - LONG $0xd0d779c5 // vpmovmskb %xmm0, %r10d - LONG $0x30e2c149 // shlq $48, %r10 - LONG $0x20e1c149 // shlq $32, %r9 - LONG $0x10e1c148 // shlq $16, %rcx - WORD $0x0949; BYTE $0xcf // orq %rcx, %r15 - WORD $0x094d; BYTE $0xcf // orq %r9, %r15 - WORD $0x094d; BYTE $0xd7 // orq %r10, %r15 - WORD $0x894d; BYTE $0xe9 // movq %r13, %r9 - WORD $0xf749; BYTE $0xd1 // notq %r9 - WORD $0x214d; BYTE $0xcf // andq %r9, %r15 - LONG $0xc474e9c5 // vpcmpeqb %xmm4, %xmm2, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0xc474d1c5 // vpcmpeqb %xmm4, %xmm5, %xmm0 - LONG $0xd0d779c5 // vpmovmskb %xmm0, %r10d - LONG $0xc474c1c5 // vpcmpeqb %xmm4, %xmm7, %xmm0 - LONG $0xc0d779c5 // vpmovmskb %xmm0, %r8d - LONG $0xc474c9c5 // vpcmpeqb %xmm4, %xmm6, %xmm0 - LONG $0xe0d779c5 // vpmovmskb %xmm0, %r12d - LONG $0x30e4c149 // shlq $48, %r12 - LONG $0x20e0c149 // shlq $32, %r8 - LONG $0x10e2c149 // shlq $16, %r10 - WORD $0x094c; BYTE $0xd1 // orq %r10, %rcx - WORD $0x094c; BYTE $0xc1 // orq %r8, %rcx - WORD $0x094c; BYTE $0xe1 // orq %r12, %rcx - WORD $0x214c; BYTE $0xc9 // andq %r9, %rcx - LONG $0x003a840f; WORD $0x0000 // je LBB27_91, $58(%rip) - LONG $0x24448b4c; BYTE $0x18 // movq $24(%rsp), %r8 - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB27_89: - LONG $0xff518d4c // leaq $-1(%rcx), %r10 - WORD $0x894c; BYTE $0xd2 // movq %r10, %rdx - WORD $0x214c; BYTE $0xfa // andq %r15, %rdx - LONG $0xb80f48f3; BYTE $0xd2 // popcntq %rdx, %rdx - WORD $0x014c; BYTE $0xc2 // addq %r8, %rdx - WORD $0x3948; BYTE $0xda // cmpq %rbx, %rdx - LONG $0x0050860f; WORD $0x0000 // jbe LBB27_108, $80(%rip) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0x214c; BYTE $0xd1 // andq %r10, %rcx - LONG $0xffd9850f; WORD $0xffff // jne LBB27_89, $-39(%rip) - LONG $0x000005e9; BYTE $0x00 // jmp LBB27_92, $5(%rip) - -LBB27_91: - LONG $0x24448b4c; BYTE $0x18 // movq $24(%rsp), %r8 - -LBB27_92: - LONG $0x3ffdc149 // sarq $63, %r13 - LONG $0xb80f49f3; BYTE $0xcf // popcntq %r15, %rcx - WORD $0x0149; BYTE $0xc8 // addq %rcx, %r8 - LONG $0x40c68349 // addq $64, %r14 - LONG $0x244c8b48; BYTE $0x08 // movq $8(%rsp), %rcx - LONG $0xc0c18348 // addq $-64, %rcx - WORD $0x894d; BYTE $0xea // movq %r13, %r10 - LONG $0x247c8b4c; BYTE $0x10 // movq $16(%rsp), %r15 - LONG $0x40f98348 // cmpq $64, %rcx - LONG $0x244c8948; BYTE $0x08 // movq %rcx, $8(%rsp) - LONG $0x2444894c; BYTE $0x18 // movq %r8, $24(%rsp) - LONG $0xfe118d0f; WORD $0xffff // jge LBB27_84, $-495(%rip) - LONG $0xfffcd9e9; BYTE $0xff // jmp LBB27_93, $-807(%rip) - -LBB27_108: - LONG $0x08478b48 // movq $8(%rdi), %rax - LONG $0xc9bc0f48 // bsfq %rcx, %rcx - LONG $0x244c2b48; BYTE $0x08 // subq $8(%rsp), %rcx - LONG $0x01448d48; BYTE $0x01 // leaq $1(%rcx,%rax), %rax - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0x084f8b48 // movq $8(%rdi), %rcx - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0xc1470f48 // cmovaq %rcx, %rax - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xd8470f4c // cmovaq %rax, %r11 - LONG $0xfff787e9; BYTE $0xff // jmp LBB27_43, $-2169(%rip) - -LBB27_53: - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x008e850f; WORD $0x0000 // jne LBB27_118, $142(%rip) - LONG $0x175c8d4b; BYTE $0x01 // leaq $1(%r15,%r10), %rbx - WORD $0xf749; BYTE $0xd7 // notq %r15 - WORD $0x014d; BYTE $0xc7 // addq %r8, %r15 - -LBB27_55: - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0x00248f0f; WORD $0x0000 // jg LBB27_112, $36(%rip) - LONG $0xfff768e9; BYTE $0xff // jmp LBB27_44, $-2200(%rip) - -LBB27_110: - LONG $0xfec1c748; WORD $0xffff; BYTE $0xff // movq $-2, %rcx - LONG $0x000002b8; BYTE $0x00 // movl $2, %eax - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x0149; BYTE $0xcf // addq %rcx, %r15 - LONG $0xf7498e0f; WORD $0xffff // jle LBB27_44, $-2231(%rip) - -LBB27_112: - WORD $0xb60f; BYTE $0x03 // movzbl (%rbx), %eax - WORD $0x5c3c // cmpb $92, %al - LONG $0xffd6840f; WORD $0xffff // je LBB27_110, $-42(%rip) - WORD $0x223c // cmpb $34, %al - LONG $0x0024840f; WORD $0x0000 // je LBB27_115, $36(%rip) - LONG $0xffc1c748; WORD $0xffff; BYTE $0xff // movq $-1, %rcx - LONG $0x000001b8; BYTE $0x00 // movl $1, %eax - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x0149; BYTE $0xcf // addq %rcx, %r15 - LONG $0xffce8f0f; WORD $0xffff // jg LBB27_112, $-50(%rip) - LONG $0xfff712e9; BYTE $0xff // jmp LBB27_44, $-2286(%rip) - -LBB27_115: - WORD $0x294c; BYTE $0xf3 // subq %r14, %rbx - WORD $0xff48; BYTE $0xc3 // incq %rbx - LONG $0xfff701e9; BYTE $0xff // jmp LBB27_42, $-2303(%rip) - -LBB27_116: - WORD $0x014c; BYTE $0xf3 // addq %r14, %rbx - LONG $0xffff89e9; BYTE $0xff // jmp LBB27_55, $-119(%rip) - -LBB27_117: - LONG $0x084f8b48 // movq $8(%rdi), %rcx - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0xfff6f3e9; BYTE $0xff // jmp LBB27_44, $-2317(%rip) - -LBB27_118: - LONG $0xff488d49 // leaq $-1(%r8), %rcx - WORD $0x394c; BYTE $0xf9 // cmpq %r15, %rcx - LONG $0xf6e6840f; WORD $0xffff // je LBB27_44, $-2330(%rip) - LONG $0x175c8d4b; BYTE $0x02 // leaq $2(%r15,%r10), %rbx - WORD $0x294d; BYTE $0xf8 // subq %r15, %r8 - LONG $0xfec08349 // addq $-2, %r8 - WORD $0x894d; BYTE $0xc7 // movq %r8, %r15 - LONG $0xffff5ce9; BYTE $0xff // jmp LBB27_55, $-164(%rip) - WORD $0x9090 // .p2align 2, 0x90 - - // .set L27_0_set_44, LBB27_44-LJTI27_0 - // .set L27_0_set_46, LBB27_46-LJTI27_0 - // .set L27_0_set_47, LBB27_47-LJTI27_0 - // .set L27_0_set_29, LBB27_29-LJTI27_0 - // .set L27_0_set_56, LBB27_56-LJTI27_0 - // .set L27_0_set_81, LBB27_81-LJTI27_0 - // .set L27_0_set_45, LBB27_45-LJTI27_0 - // .set L27_0_set_83, LBB27_83-LJTI27_0 -LJTI27_0: - LONG $0xfffff6d0 // .long L27_0_set_44 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff704 // .long L27_0_set_47 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff613 // .long L27_0_set_29 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff80a // .long L27_0_set_56 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffffb83 // .long L27_0_set_81 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6e2 // .long L27_0_set_45 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6e2 // .long L27_0_set_45 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffff6f5 // .long L27_0_set_46 - LONG $0xfffffb99 // .long L27_0_set_83 - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -LCPI28_0: - LONG $0x00000001 // .long 1 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - - // .p2align 4, 0x90 -_get_by_path: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x38ec8348 // subq $56, %rsp - WORD $0x8949; BYTE $0xf5 // movq %rsi, %r13 - WORD $0x8949; BYTE $0xfb // movq %rdi, %r11 - LONG $0x08528b4c // movq $8(%rdx), %r10 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x0f10840f; WORD $0x0000 // je LBB28_243, $3856(%rip) - WORD $0x8b48; BYTE $0x02 // movq (%rdx), %rax - LONG $0x04e2c149 // shlq $4, %r10 - LONG $0xb8458948 // movq %rax, $-72(%rbp) - WORD $0x0149; BYTE $0xc2 // addq %rax, %r10 - WORD $0x8b4d; BYTE $0x0b // movq (%r11), %r9 - LONG $0x00558b49 // movq (%r13), %rdx - QUAD $0x000100002600bc49; WORD $0x0000 // movabsq $4294977024, %r12 - LONG $0xc05d894c // movq %r11, $-64(%rbp) - LONG $0xa04d8948 // movq %rcx, $-96(%rbp) - LONG $0xa855894c // movq %r10, $-88(%rbp) - -LBB28_2: - LONG $0x08438b4d // movq $8(%r11), %r8 - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - WORD $0x294c; BYTE $0xc7 // subq %r8, %rdi - LONG $0x0031830f; WORD $0x0000 // jae LBB28_7, $49(%rip) - LONG $0x11048a41 // movb (%r9,%rdx), %al - WORD $0x0d3c // cmpb $13, %al - LONG $0x0025840f; WORD $0x0000 // je LBB28_7, $37(%rip) - WORD $0x203c // cmpb $32, %al - LONG $0x001d840f; WORD $0x0000 // je LBB28_7, $29(%rip) - WORD $0xf704 // addb $-9, %al - WORD $0x013c // cmpb $1, %al - LONG $0x0013860f; WORD $0x0000 // jbe LBB28_7, $19(%rip) - WORD $0x8948; BYTE $0xd6 // movq %rdx, %rsi - LONG $0x0000fde9; BYTE $0x00 // jmp LBB28_28, $253(%rip) - QUAD $0x9090909090909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_7: - LONG $0x01728d48 // leaq $1(%rdx), %rsi - WORD $0x394c; BYTE $0xc6 // cmpq %r8, %rsi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_11, $35(%rip) - LONG $0x31048a41 // movb (%r9,%rsi), %al - WORD $0x0d3c // cmpb $13, %al - LONG $0x0017840f; WORD $0x0000 // je LBB28_11, $23(%rip) - WORD $0x203c // cmpb $32, %al - LONG $0x000f840f; WORD $0x0000 // je LBB28_11, $15(%rip) - WORD $0xf704 // addb $-9, %al - WORD $0x013c // cmpb $1, %al - LONG $0x00c7870f; WORD $0x0000 // ja LBB28_28, $199(%rip) - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_11: - LONG $0x02728d48 // leaq $2(%rdx), %rsi - WORD $0x394c; BYTE $0xc6 // cmpq %r8, %rsi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_15, $35(%rip) - LONG $0x31048a41 // movb (%r9,%rsi), %al - WORD $0x0d3c // cmpb $13, %al - LONG $0x0017840f; WORD $0x0000 // je LBB28_15, $23(%rip) - WORD $0x203c // cmpb $32, %al - LONG $0x000f840f; WORD $0x0000 // je LBB28_15, $15(%rip) - WORD $0xf704 // addb $-9, %al - WORD $0x013c // cmpb $1, %al - LONG $0x0097870f; WORD $0x0000 // ja LBB28_28, $151(%rip) - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_15: - LONG $0x03728d48 // leaq $3(%rdx), %rsi - WORD $0x394c; BYTE $0xc6 // cmpq %r8, %rsi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_19, $35(%rip) - LONG $0x31048a41 // movb (%r9,%rsi), %al - WORD $0x0d3c // cmpb $13, %al - LONG $0x0017840f; WORD $0x0000 // je LBB28_19, $23(%rip) - WORD $0x203c // cmpb $32, %al - LONG $0x000f840f; WORD $0x0000 // je LBB28_19, $15(%rip) - WORD $0xf704 // addb $-9, %al - WORD $0x013c // cmpb $1, %al - LONG $0x0067870f; WORD $0x0000 // ja LBB28_28, $103(%rip) - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_19: - LONG $0x04428d48 // leaq $4(%rdx), %rax - WORD $0x3949; BYTE $0xc0 // cmpq %rax, %r8 - LONG $0x0083860f; WORD $0x0000 // jbe LBB28_25, $131(%rip) - WORD $0x3949; BYTE $0xc0 // cmpq %rax, %r8 - LONG $0x0095840f; WORD $0x0000 // je LBB28_26, $149(%rip) - LONG $0x01048d4b // leaq (%r9,%r8), %rax - LONG $0x04c78348 // addq $4, %rdi - LONG $0x11748d49; BYTE $0x05 // leaq $5(%r9,%rdx), %rsi - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_22: - LONG $0xff5ebe0f // movsbl $-1(%rsi), %ebx - WORD $0xfb83; BYTE $0x20 // cmpl $32, %ebx - LONG $0x0bae870f; WORD $0x0000 // ja LBB28_29, $2990(%rip) - LONG $0xdca30f49 // btq %rbx, %r12 - LONG $0x0ba4830f; WORD $0x0000 // jae LBB28_29, $2980(%rip) - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0xff48; BYTE $0xc7 // incq %rdi - LONG $0xffdd850f; WORD $0xffff // jne LBB28_22, $-35(%rip) - WORD $0x294c; BYTE $0xc8 // subq %r9, %rax - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0x394c; BYTE $0xc6 // cmpq %r8, %rsi - LONG $0x005b830f; WORD $0x0000 // jae LBB28_30, $91(%rip) - -LBB28_28: - LONG $0x01468d48 // leaq $1(%rsi), %rax - LONG $0x00458949 // movq %rax, (%r13) - LONG $0x31348a41 // movb (%r9,%rsi), %sil - LONG $0xb8558b48 // movq $-72(%rbp), %rdx - WORD $0x8b48; BYTE $0x12 // movq (%rdx), %rdx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0062850f; WORD $0x0000 // jne LBB28_31, $98(%rip) - LONG $0x000dece9; BYTE $0x00 // jmp LBB28_250, $3564(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_25: - LONG $0x00458949 // movq %rax, (%r13) - WORD $0xf631 // xorl %esi, %esi - LONG $0xb8558b48 // movq $-72(%rbp), %rdx - WORD $0x8b48; BYTE $0x12 // movq (%rdx), %rdx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x003a850f; WORD $0x0000 // jne LBB28_31, $58(%rip) - LONG $0x000dc4e9; BYTE $0x00 // jmp LBB28_250, $3524(%rip) - -LBB28_26: - WORD $0x014c; BYTE $0xc8 // addq %r9, %rax - WORD $0x294c; BYTE $0xc8 // subq %r9, %rax - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0x394c; BYTE $0xc6 // cmpq %r8, %rsi - LONG $0xffa5820f; WORD $0xffff // jb LBB28_28, $-91(%rip) - -LBB28_30: - WORD $0xf631 // xorl %esi, %esi - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - LONG $0xb8558b48 // movq $-72(%rbp), %rdx - WORD $0x8b48; BYTE $0x12 // movq (%rdx), %rdx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0d9d840f; WORD $0x0000 // je LBB28_250, $3485(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB28_31: - WORD $0x528a; BYTE $0x17 // movb $23(%rdx), %dl - WORD $0xe280; BYTE $0x1f // andb $31, %dl - WORD $0xfa80; BYTE $0x02 // cmpb $2, %dl - LONG $0x0021840f; WORD $0x0000 // je LBB28_183, $33(%rip) - WORD $0xfa80; BYTE $0x18 // cmpb $24, %dl - LONG $0x0d77850f; WORD $0x0000 // jne LBB28_250, $3447(%rip) - LONG $0x7bfe8040 // cmpb $123, %sil - LONG $0xc86d894c // movq %r13, $-56(%rbp) - LONG $0x0179840f; WORD $0x0000 // je LBB28_34, $377(%rip) - LONG $0x000d34e9; BYTE $0x00 // jmp LBB28_246, $3380(%rip) - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_183: - LONG $0x5bfe8040 // cmpb $91, %sil - LONG $0x0d25850f; WORD $0x0000 // jne LBB28_246, $3365(%rip) - LONG $0xb8558b48 // movq $-72(%rbp), %rdx - LONG $0x08528b48 // movq $8(%rdx), %rdx - WORD $0x8b4c; BYTE $0x32 // movq (%rdx), %r14 - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x0d41880f; WORD $0x0000 // js LBB28_250, $3393(%rip) - LONG $0x08438b4d // movq $8(%r11), %r8 - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0x294c; BYTE $0xc6 // subq %r8, %rsi - LONG $0x0032830f; WORD $0x0000 // jae LBB28_190, $50(%rip) - LONG $0x01148a41 // movb (%r9,%rax), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0025840f; WORD $0x0000 // je LBB28_190, $37(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x001c840f; WORD $0x0000 // je LBB28_190, $28(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0010860f; WORD $0x0000 // jbe LBB28_190, $16(%rip) - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0x000ac3e9; BYTE $0x00 // jmp LBB28_212, $2755(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB28_190: - LONG $0x01788d48 // leaq $1(%rax), %rdi - WORD $0x394c; BYTE $0xc7 // cmpq %r8, %rdi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_194, $35(%rip) - LONG $0x39148a41 // movb (%r9,%rdi), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_194, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_194, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0a8c870f; WORD $0x0000 // ja LBB28_212, $2700(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_194: - LONG $0x02788d48 // leaq $2(%rax), %rdi - WORD $0x394c; BYTE $0xc7 // cmpq %r8, %rdi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_198, $35(%rip) - LONG $0x39148a41 // movb (%r9,%rdi), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_198, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_198, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0a5c870f; WORD $0x0000 // ja LBB28_212, $2652(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_198: - LONG $0x03788d48 // leaq $3(%rax), %rdi - WORD $0x394c; BYTE $0xc7 // cmpq %r8, %rdi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_202, $35(%rip) - LONG $0x39148a41 // movb (%r9,%rdi), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_202, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_202, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0a2c870f; WORD $0x0000 // ja LBB28_212, $2604(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_202: - LONG $0x04508d48 // leaq $4(%rax), %rdx - WORD $0x3949; BYTE $0xd0 // cmpq %rdx, %r8 - LONG $0x09d2860f; WORD $0x0000 // jbe LBB28_208, $2514(%rip) - WORD $0x3949; BYTE $0xd0 // cmpq %rdx, %r8 - LONG $0x09ec840f; WORD $0x0000 // je LBB28_209, $2540(%rip) - LONG $0x01148d4b // leaq (%r9,%r8), %rdx - LONG $0x04c68348 // addq $4, %rsi - LONG $0x017c8d49; BYTE $0x05 // leaq $5(%r9,%rax), %rdi - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_205: - LONG $0xff4fbe0f // movsbl $-1(%rdi), %ecx - WORD $0xf983; BYTE $0x20 // cmpl $32, %ecx - LONG $0x09dc870f; WORD $0x0000 // ja LBB28_211, $2524(%rip) - LONG $0xcca30f49 // btq %rcx, %r12 - LONG $0x09d2830f; WORD $0x0000 // jae LBB28_211, $2514(%rip) - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0xff48; BYTE $0xc6 // incq %rsi - LONG $0xffdd850f; WORD $0xffff // jne LBB28_205, $-35(%rip) - LONG $0x0009ade9; BYTE $0x00 // jmp LBB28_210, $2477(%rip) - -LBB28_179: - WORD $0x894c; BYTE $0xca // movq %r9, %rdx - WORD $0xf748; BYTE $0xd2 // notq %rdx - WORD $0x0148; BYTE $0xd7 // addq %rdx, %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0x0bd5830f; WORD $0x0000 // jae LBB28_246, $3029(%rip) - -LBB28_180: - LONG $0x01478d48 // leaq $1(%rdi), %rax - LONG $0x00458949 // movq %rax, (%r13) - LONG $0x390c8a41 // movb (%r9,%rdi), %cl - WORD $0xf980; BYTE $0x2c // cmpb $44, %cl - LONG $0x0c06850f; WORD $0x0000 // jne LBB28_252, $3078(%rip) - -LBB28_34: - LONG $0x084b8b49 // movq $8(%r11), %rcx - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0x2948; BYTE $0xce // subq %rcx, %rsi - LONG $0x0031830f; WORD $0x0000 // jae LBB28_39, $49(%rip) - LONG $0x01148a41 // movb (%r9,%rax), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0024840f; WORD $0x0000 // je LBB28_39, $36(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x001b840f; WORD $0x0000 // je LBB28_39, $27(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x000f860f; WORD $0x0000 // jbe LBB28_39, $15(%rip) - WORD $0x8949; BYTE $0xc7 // movq %rax, %r15 - LONG $0x000129e9; BYTE $0x00 // jmp LBB28_60, $297(%rip) - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_39: - LONG $0x01788d4c // leaq $1(%rax), %r15 - WORD $0x3949; BYTE $0xcf // cmpq %rcx, %r15 - LONG $0x0023830f; WORD $0x0000 // jae LBB28_43, $35(%rip) - LONG $0x39148a43 // movb (%r9,%r15), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_43, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_43, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x00f3870f; WORD $0x0000 // ja LBB28_60, $243(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_43: - LONG $0x02788d4c // leaq $2(%rax), %r15 - WORD $0x3949; BYTE $0xcf // cmpq %rcx, %r15 - LONG $0x0023830f; WORD $0x0000 // jae LBB28_47, $35(%rip) - LONG $0x39148a43 // movb (%r9,%r15), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_47, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_47, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x00c3870f; WORD $0x0000 // ja LBB28_60, $195(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_47: - LONG $0x03788d4c // leaq $3(%rax), %r15 - WORD $0x3949; BYTE $0xcf // cmpq %rcx, %r15 - LONG $0x0023830f; WORD $0x0000 // jae LBB28_51, $35(%rip) - LONG $0x39148a43 // movb (%r9,%r15), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_51, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_51, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0093870f; WORD $0x0000 // ja LBB28_60, $147(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_51: - LONG $0x04508d48 // leaq $4(%rax), %rdx - WORD $0x3948; BYTE $0xd1 // cmpq %rdx, %rcx - LONG $0x0adb860f; WORD $0x0000 // jbe LBB28_244, $2779(%rip) - WORD $0x3948; BYTE $0xd1 // cmpq %rdx, %rcx - LONG $0x004a840f; WORD $0x0000 // je LBB28_57, $74(%rip) - LONG $0x09148d49 // leaq (%r9,%rcx), %rdx - LONG $0x04c68348 // addq $4, %rsi - LONG $0x017c8d4d; BYTE $0x05 // leaq $5(%r9,%rax), %r15 - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_54: - LONG $0x7fbe0f41; BYTE $0xff // movsbl $-1(%r15), %edi - WORD $0xff83; BYTE $0x20 // cmpl $32, %edi - LONG $0x0042870f; WORD $0x0000 // ja LBB28_59, $66(%rip) - LONG $0xfca30f49 // btq %rdi, %r12 - LONG $0x0038830f; WORD $0x0000 // jae LBB28_59, $56(%rip) - WORD $0xff49; BYTE $0xc7 // incq %r15 - WORD $0xff48; BYTE $0xc6 // incq %rsi - LONG $0xffdc850f; WORD $0xffff // jne LBB28_54, $-36(%rip) - LONG $0x00000ae9; BYTE $0x00 // jmp LBB28_58, $10(%rip) - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_57: - WORD $0x014c; BYTE $0xca // addq %r9, %rdx - -LBB28_58: - WORD $0x294c; BYTE $0xca // subq %r9, %rdx - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - WORD $0x3949; BYTE $0xcf // cmpq %rcx, %r15 - LONG $0x0020820f; WORD $0x0000 // jb LBB28_60, $32(%rip) - LONG $0x000a78e9; BYTE $0x00 // jmp LBB28_246, $2680(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_59: - WORD $0x894c; BYTE $0xca // movq %r9, %rdx - WORD $0xf748; BYTE $0xd2 // notq %rdx - WORD $0x0149; BYTE $0xd7 // addq %rdx, %r15 - WORD $0x3949; BYTE $0xcf // cmpq %rcx, %r15 - LONG $0x0a5d830f; WORD $0x0000 // jae LBB28_246, $2653(%rip) - -LBB28_60: - LONG $0x015f8d49 // leaq $1(%r15), %rbx - LONG $0x005d8949 // movq %rbx, (%r13) - LONG $0x390c8a43 // movb (%r9,%r15), %cl - WORD $0xf980; BYTE $0x22 // cmpb $34, %cl - LONG $0x0a8b850f; WORD $0x0000 // jne LBB28_251, $2699(%rip) - LONG $0xb8458b48 // movq $-72(%rbp), %rax - LONG $0x08408b48 // movq $8(%rax), %rax - WORD $0x8b4c; BYTE $0x30 // movq (%rax), %r14 - LONG $0x08688b4c // movq $8(%rax), %r13 - QUAD $0xffffffffb045c748 // movq $-1, $-80(%rbp) - WORD $0x894c; BYTE $0xdf // movq %r11, %rdi - WORD $0x8948; BYTE $0xde // movq %rbx, %rsi - LONG $0xb0558d48 // leaq $-80(%rbp), %rdx - LONG $0x0022c3e8; BYTE $0x00 // callq _advance_string_default, $8899(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0a7b880f; WORD $0x0000 // js LBB28_254, $2683(%rip) - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - LONG $0xb04d8b48 // movq $-80(%rbp), %rcx - LONG $0xfff98348 // cmpq $-1, %rcx - LONG $0x0009840f; WORD $0x0000 // je LBB28_64, $9(%rip) - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0x01308e0f; WORD $0x0000 // jle LBB28_84, $304(%rip) - -LBB28_64: - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - WORD $0x294c; BYTE $0xfa // subq %r15, %rdx - LONG $0xfec28348 // addq $-2, %rdx - LONG $0x0001ba41; WORD $0x0000 // movl $1, %r10d - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x094c; BYTE $0xe9 // orq %r13, %rcx - LONG $0xc05d8b4c // movq $-64(%rbp), %r11 - LONG $0x00cf840f; WORD $0x0000 // je LBB28_79, $207(%rip) - WORD $0x394c; BYTE $0xea // cmpq %r13, %rdx - LONG $0x00c3850f; WORD $0x0000 // jne LBB28_78, $195(%rip) - WORD $0x0349; BYTE $0x1b // addq (%r11), %rbx - LONG $0x10fd8349 // cmpq $16, %r13 - LONG $0x0033820f; WORD $0x0000 // jb LBB28_69, $51(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB28_67: - LONG $0x036ffac5 // vmovdqu (%rbx), %xmm0 - LONG $0x7479c1c4; BYTE $0x06 // vpcmpeqb (%r14), %xmm0, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0xfff98366 // cmpw $-1, %cx - LONG $0x0099850f; WORD $0x0000 // jne LBB28_78, $153(%rip) - LONG $0x10c38348 // addq $16, %rbx - LONG $0x10c68349 // addq $16, %r14 - LONG $0xf0c58349 // addq $-16, %r13 - LONG $0x0ffd8349 // cmpq $15, %r13 - LONG $0xffd3870f; WORD $0xffff // ja LBB28_67, $-45(%rip) - -LBB28_69: - WORD $0x8944; BYTE $0xf1 // movl %r14d, %ecx - LONG $0x0fffe181; WORD $0x0000 // andl $4095, %ecx - LONG $0x0ff0f981; WORD $0x0000 // cmpl $4080, %ecx - LONG $0x0042870f; WORD $0x0000 // ja LBB28_73, $66(%rip) - WORD $0xd989 // movl %ebx, %ecx - LONG $0x0fffe181; WORD $0x0000 // andl $4095, %ecx - LONG $0x0ff1f981; WORD $0x0000 // cmpl $4081, %ecx - LONG $0x002e830f; WORD $0x0000 // jae LBB28_73, $46(%rip) - LONG $0x036ffac5 // vmovdqu (%rbx), %xmm0 - LONG $0x7479c1c4; BYTE $0x06 // vpcmpeqb (%r14), %xmm0, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0xfff98366 // cmpw $-1, %cx - WORD $0x940f; BYTE $0xc2 // sete %dl - WORD $0xd1f7 // notl %ecx - WORD $0xb70f; BYTE $0xc9 // movzwl %cx, %ecx - LONG $0xc9bc0f48 // bsfq %rcx, %rcx - WORD $0x394c; BYTE $0xe9 // cmpq %r13, %rcx - WORD $0x930f; BYTE $0xc1 // setae %cl - WORD $0xd108 // orb %dl, %cl - LONG $0xd1b60f44 // movzbl %cl, %r10d - LONG $0x00002fe9; BYTE $0x00 // jmp LBB28_79, $47(%rip) - -LBB28_73: - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - LONG $0x0026840f; WORD $0x0000 // je LBB28_79, $38(%rip) - WORD $0xd231 // xorl %edx, %edx - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_75: - LONG $0x130cb60f // movzbl (%rbx,%rdx), %ecx - LONG $0x160c3a41 // cmpb (%r14,%rdx), %cl - LONG $0x0012850f; WORD $0x0000 // jne LBB28_78, $18(%rip) - WORD $0xff48; BYTE $0xc2 // incq %rdx - WORD $0x3949; BYTE $0xd5 // cmpq %rdx, %r13 - LONG $0xffe6850f; WORD $0xffff // jne LBB28_75, $-26(%rip) - LONG $0x000004e9; BYTE $0x00 // jmp LBB28_79, $4(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_78: - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - -LBB28_79: - WORD $0x8b4d; BYTE $0x0b // movq (%r11), %r9 - LONG $0xc86d8b4c // movq $-56(%rbp), %r13 - LONG $0x08738b49 // movq $8(%r11), %rsi - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - WORD $0x2948; BYTE $0xf7 // subq %rsi, %rdi - LONG $0x03f6830f; WORD $0x0000 // jae LBB28_131, $1014(%rip) - -LBB28_80: - LONG $0x01148a41 // movb (%r9,%rax), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x03e9840f; WORD $0x0000 // je LBB28_131, $1001(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x03e0840f; WORD $0x0000 // je LBB28_131, $992(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x03d4860f; WORD $0x0000 // jbe LBB28_131, $980(%rip) - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - LONG $0x0004eee9; BYTE $0x00 // jmp LBB28_152, $1262(%rip) - -LBB28_84: - QUAD $0x00000000d045c748 // movq $0, $-48(%rbp) - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - WORD $0x8b4c; BYTE $0x09 // movq (%rcx), %r9 - WORD $0x014c; BYTE $0xcb // addq %r9, %rbx - LONG $0x01448d4d; BYTE $0xff // leaq $-1(%r9,%rax), %r8 - LONG $0x2e1c8d4f // leaq (%r14,%r13), %r11 - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - LONG $0x037a8e0f; WORD $0x0000 // jle LBB28_128, $890(%rip) - WORD $0x3949; BYTE $0xd8 // cmpq %rbx, %r8 - LONG $0xc86d8b4c // movq $-56(%rbp), %r13 - LONG $0x0371860f; WORD $0x0000 // jbe LBB28_129, $881(%rip) - -LBB28_86: - WORD $0x0b8a // movb (%rbx), %cl - WORD $0xf980; BYTE $0x5c // cmpb $92, %cl - LONG $0x0058850f; WORD $0x0000 // jne LBB28_91, $88(%rip) - WORD $0x894c; BYTE $0xc2 // movq %r8, %rdx - WORD $0x2948; BYTE $0xda // subq %rbx, %rdx - LONG $0xffc1c748; WORD $0xffff; BYTE $0xff // movq $-1, %rcx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x09188e0f; WORD $0x0000 // jle LBB28_258, $2328(%rip) - LONG $0x0173b60f // movzbl $1(%rbx), %esi - LONG $0x0f3d8d48; WORD $0x0099; BYTE $0x00 // leaq $39183(%rip), %rdi /* __UnquoteTab(%rip) */ - LONG $0x3e3c8a44 // movb (%rsi,%rdi), %r15b - LONG $0xffff8041 // cmpb $-1, %r15b - LONG $0x003d840f; WORD $0x0000 // je LBB28_93, $61(%rip) - WORD $0x8445; BYTE $0xff // testb %r15b, %r15b - LONG $0x08e4840f; WORD $0x0000 // je LBB28_256, $2276(%rip) - LONG $0xd07d8844 // movb %r15b, $-48(%rbp) - LONG $0x02c38348 // addq $2, %rbx - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - LONG $0x15548d4c; BYTE $0xd0 // leaq $-48(%rbp,%rdx), %r10 - WORD $0x394d; BYTE $0xde // cmpq %r11, %r14 - LONG $0x0130820f; WORD $0x0000 // jb LBB28_104, $304(%rip) - LONG $0x0002e6e9; BYTE $0x00 // jmp LBB28_112, $742(%rip) - -LBB28_91: - WORD $0x3a41; BYTE $0x0e // cmpb (%r14), %cl - LONG $0x05c6850f; WORD $0x0000 // jne LBB28_182, $1478(%rip) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0xff49; BYTE $0xc6 // incq %r14 - LONG $0x0002dfe9; BYTE $0x00 // jmp LBB28_114, $735(%rip) - -LBB28_93: - LONG $0x03fa8348 // cmpq $3, %rdx - LONG $0x08b58e0f; WORD $0x0000 // jle LBB28_257, $2229(%rip) - WORD $0x4b8b; BYTE $0x02 // movl $2(%rbx), %ecx - WORD $0xce89 // movl %ecx, %esi - WORD $0xd6f7 // notl %esi - LONG $0xcfd0b98d; WORD $0xcfcf // leal $-808464432(%rcx), %edi - LONG $0x8080e681; WORD $0x8080 // andl $-2139062144, %esi - WORD $0xfe85 // testl %edi, %esi - LONG $0x087b850f; WORD $0x0000 // jne LBB28_255, $2171(%rip) - LONG $0x1919b98d; WORD $0x1919 // leal $421075225(%rcx), %edi - WORD $0xcf09 // orl %ecx, %edi - LONG $0x8080c7f7; WORD $0x8080 // testl $-2139062144, %edi - LONG $0x0867850f; WORD $0x0000 // jne LBB28_255, $2151(%rip) - WORD $0xcf89 // movl %ecx, %edi - LONG $0x7f7fe781; WORD $0x7f7f // andl $2139062143, %edi - LONG $0xc0c0ba41; WORD $0xc0c0 // movl $-1061109568, %r10d - WORD $0x2941; BYTE $0xfa // subl %edi, %r10d - LONG $0x46bf8d44; WORD $0x4646; BYTE $0x46 // leal $1179010630(%rdi), %r15d - WORD $0x2141; BYTE $0xf2 // andl %esi, %r10d - WORD $0x8545; BYTE $0xfa // testl %r15d, %r10d - LONG $0x0843850f; WORD $0x0000 // jne LBB28_255, $2115(%rip) - LONG $0xe0e0ba41; WORD $0xe0e0 // movl $-522133280, %r10d - WORD $0x2941; BYTE $0xfa // subl %edi, %r10d - LONG $0x3939c781; WORD $0x3939 // addl $960051513, %edi - WORD $0x2144; BYTE $0xd6 // andl %r10d, %esi - WORD $0xfe85 // testl %edi, %esi - LONG $0x0829850f; WORD $0x0000 // jne LBB28_255, $2089(%rip) - WORD $0xc90f // bswapl %ecx - WORD $0xce89 // movl %ecx, %esi - WORD $0xeec1; BYTE $0x04 // shrl $4, %esi - WORD $0xd6f7 // notl %esi - LONG $0x0101e681; WORD $0x0101 // andl $16843009, %esi - WORD $0x348d; BYTE $0xf6 // leal (%rsi,%rsi,8), %esi - LONG $0x0f0fe181; WORD $0x0f0f // andl $252645135, %ecx - WORD $0xf101 // addl %esi, %ecx - WORD $0x8941; BYTE $0xcf // movl %ecx, %r15d - LONG $0x04efc141 // shrl $4, %r15d - WORD $0x0941; BYTE $0xcf // orl %ecx, %r15d - WORD $0x8944; BYTE $0xfe // movl %r15d, %esi - WORD $0xeec1; BYTE $0x08 // shrl $8, %esi - LONG $0xff00e681; WORD $0x0000 // andl $65280, %esi - LONG $0xcfb60f41 // movzbl %r15b, %ecx - WORD $0xf109 // orl %esi, %ecx - LONG $0x06538d4c // leaq $6(%rbx), %r10 - WORD $0xf983; BYTE $0x7f // cmpl $127, %ecx - LONG $0x00ae860f; WORD $0x0000 // jbe LBB28_116, $174(%rip) - LONG $0x07fff981; WORD $0x0000 // cmpl $2047, %ecx - LONG $0x00b0860f; WORD $0x0000 // jbe LBB28_117, $176(%rip) - WORD $0x8944; BYTE $0xff // movl %r15d, %edi - LONG $0x0000e781; WORD $0x00f8 // andl $16252928, %edi - LONG $0x0000ff81; WORD $0x00d8 // cmpl $14155776, %edi - LONG $0x00bd840f; WORD $0x0000 // je LBB28_118, $189(%rip) - WORD $0xeec1; BYTE $0x0c // shrl $12, %esi - LONG $0xe0ce8040 // orb $-32, %sil - LONG $0xd0758840 // movb %sil, $-48(%rbp) - WORD $0xe9c1; BYTE $0x06 // shrl $6, %ecx - WORD $0xe180; BYTE $0x3f // andb $63, %cl - WORD $0xc980; BYTE $0x80 // orb $-128, %cl - WORD $0x4d88; BYTE $0xd1 // movb %cl, $-47(%rbp) - LONG $0x3fe78041 // andb $63, %r15b - LONG $0x80cf8041 // orb $-128, %r15b - LONG $0xd27d8844 // movb %r15b, $-46(%rbp) - LONG $0x000003ba; BYTE $0x00 // movl $3, %edx - WORD $0x8941; BYTE $0xf7 // movl %esi, %r15d - -LBB28_102: - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - LONG $0x15548d4c; BYTE $0xd0 // leaq $-48(%rbp,%rdx), %r10 - WORD $0x394d; BYTE $0xde // cmpq %r11, %r14 - LONG $0x01bb830f; WORD $0x0000 // jae LBB28_112, $443(%rip) - -LBB28_104: - LONG $0xd04d8d48 // leaq $-48(%rbp), %rcx - WORD $0x3949; BYTE $0xca // cmpq %rcx, %r10 - LONG $0x01ae860f; WORD $0x0000 // jbe LBB28_112, $430(%rip) - WORD $0x3845; BYTE $0x3e // cmpb %r15b, (%r14) - LONG $0x01a5850f; WORD $0x0000 // jne LBB28_112, $421(%rip) - WORD $0xff49; BYTE $0xc6 // incq %r14 - LONG $0xd1758d48 // leaq $-47(%rbp), %rsi - WORD $0x894c; BYTE $0xf7 // movq %r14, %rdi - -LBB28_107: - WORD $0x8949; BYTE $0xfe // movq %rdi, %r14 - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x394c; BYTE $0xd6 // cmpq %r10, %rsi - LONG $0x0190830f; WORD $0x0000 // jae LBB28_113, $400(%rip) - WORD $0x394d; BYTE $0xde // cmpq %r11, %r14 - LONG $0x0187830f; WORD $0x0000 // jae LBB28_113, $391(%rip) - LONG $0x0eb60f41 // movzbl (%r14), %ecx - LONG $0x017e8d49 // leaq $1(%r14), %rdi - LONG $0x01728d48 // leaq $1(%rdx), %rsi - WORD $0x0a3a // cmpb (%rdx), %cl - LONG $0xffd4840f; WORD $0xffff // je LBB28_107, $-44(%rip) - LONG $0x00016ee9; BYTE $0x00 // jmp LBB28_113, $366(%rip) - -LBB28_116: - LONG $0xd07d8844 // movb %r15b, $-48(%rbp) - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - LONG $0xffff90e9; BYTE $0xff // jmp LBB28_102, $-112(%rip) - -LBB28_117: - WORD $0xe9c1; BYTE $0x06 // shrl $6, %ecx - WORD $0xc980; BYTE $0xc0 // orb $-64, %cl - WORD $0x4d88; BYTE $0xd0 // movb %cl, $-48(%rbp) - LONG $0x3fe78041 // andb $63, %r15b - LONG $0x80cf8041 // orb $-128, %r15b - LONG $0xd17d8844 // movb %r15b, $-47(%rbp) - LONG $0x000002ba; BYTE $0x00 // movl $2, %edx - WORD $0x8941; BYTE $0xcf // movl %ecx, %r15d - LONG $0xffff6ee9; BYTE $0xff // jmp LBB28_102, $-146(%rip) - -LBB28_118: - LONG $0x06fa8348 // cmpq $6, %rdx - LONG $0x07388c0f; WORD $0x0000 // jl LBB28_260, $1848(%rip) - LONG $0xdbfff981; WORD $0x0000 // cmpl $56319, %ecx - LONG $0x072c870f; WORD $0x0000 // ja LBB28_260, $1836(%rip) - LONG $0x5c3a8041 // cmpb $92, (%r10) - LONG $0x0722850f; WORD $0x0000 // jne LBB28_260, $1826(%rip) - LONG $0x75077b80 // cmpb $117, $7(%rbx) - LONG $0x0718850f; WORD $0x0000 // jne LBB28_260, $1816(%rip) - LONG $0x08538d4c // leaq $8(%rbx), %r10 - WORD $0x538b; BYTE $0x08 // movl $8(%rbx), %edx - WORD $0xd789 // movl %edx, %edi - WORD $0xd7f7 // notl %edi - LONG $0xcfd0b28d; WORD $0xcfcf // leal $-808464432(%rdx), %esi - LONG $0x8080e781; WORD $0x8080 // andl $-2139062144, %edi - WORD $0xf785 // testl %esi, %edi - LONG $0x06ed850f; WORD $0x0000 // jne LBB28_259, $1773(%rip) - LONG $0x1919b28d; WORD $0x1919 // leal $421075225(%rdx), %esi - WORD $0xd609 // orl %edx, %esi - LONG $0x8080c6f7; WORD $0x8080 // testl $-2139062144, %esi - LONG $0x06d9850f; WORD $0x0000 // jne LBB28_259, $1753(%rip) - WORD $0xd689 // movl %edx, %esi - LONG $0x7f7fe681; WORD $0x7f7f // andl $2139062143, %esi - LONG $0xc0c0bf41; WORD $0xc0c0 // movl $-1061109568, %r15d - WORD $0x2941; BYTE $0xf7 // subl %esi, %r15d - LONG $0x46ae8d44; WORD $0x4646; BYTE $0x46 // leal $1179010630(%rsi), %r13d - WORD $0x2141; BYTE $0xff // andl %edi, %r15d - WORD $0x8545; BYTE $0xef // testl %r13d, %r15d - LONG $0x06b5850f; WORD $0x0000 // jne LBB28_259, $1717(%rip) - LONG $0xe0e0bf41; WORD $0xe0e0 // movl $-522133280, %r15d - WORD $0x2941; BYTE $0xf7 // subl %esi, %r15d - LONG $0x3939c681; WORD $0x3939 // addl $960051513, %esi - WORD $0x2144; BYTE $0xff // andl %r15d, %edi - WORD $0xf785 // testl %esi, %edi - LONG $0x069b850f; WORD $0x0000 // jne LBB28_259, $1691(%rip) - WORD $0xca0f // bswapl %edx - WORD $0xd689 // movl %edx, %esi - WORD $0xeec1; BYTE $0x04 // shrl $4, %esi - WORD $0xd6f7 // notl %esi - LONG $0x0101e681; WORD $0x0101 // andl $16843009, %esi - WORD $0x348d; BYTE $0xf6 // leal (%rsi,%rsi,8), %esi - LONG $0x0f0fe281; WORD $0x0f0f // andl $252645135, %edx - WORD $0xf201 // addl %esi, %edx - WORD $0xd689 // movl %edx, %esi - WORD $0xeec1; BYTE $0x04 // shrl $4, %esi - WORD $0xd609 // orl %edx, %esi - WORD $0xf289 // movl %esi, %edx - LONG $0x0000e281; WORD $0x00fc // andl $16515072, %edx - LONG $0x0000fa81; WORD $0x00dc // cmpl $14417920, %edx - LONG $0x0672850f; WORD $0x0000 // jne LBB28_260, $1650(%rip) - WORD $0xf289 // movl %esi, %edx - WORD $0xeac1; BYTE $0x08 // shrl $8, %edx - LONG $0xff00e281; WORD $0x0000 // andl $65280, %edx - LONG $0xf6b60f40 // movzbl %sil, %esi - WORD $0xd609 // orl %edx, %esi - WORD $0xe1c1; BYTE $0x0a // shll $10, %ecx - LONG $0x00318c8d; WORD $0xa024; BYTE $0xfc // leal $-56613888(%rcx,%rsi), %ecx - WORD $0x8941; BYTE $0xcf // movl %ecx, %r15d - LONG $0x12efc141 // shrl $18, %r15d - LONG $0xf0cf8041 // orb $-16, %r15b - LONG $0xd07d8844 // movb %r15b, $-48(%rbp) - WORD $0xca89 // movl %ecx, %edx - WORD $0xeac1; BYTE $0x0c // shrl $12, %edx - WORD $0xe280; BYTE $0x3f // andb $63, %dl - WORD $0xca80; BYTE $0x80 // orb $-128, %dl - WORD $0x5588; BYTE $0xd1 // movb %dl, $-47(%rbp) - WORD $0xca89 // movl %ecx, %edx - WORD $0xeac1; BYTE $0x06 // shrl $6, %edx - WORD $0xe280; BYTE $0x3f // andb $63, %dl - WORD $0xca80; BYTE $0x80 // orb $-128, %dl - WORD $0x5588; BYTE $0xd2 // movb %dl, $-46(%rbp) - WORD $0xe180; BYTE $0x3f // andb $63, %cl - WORD $0xc980; BYTE $0x80 // orb $-128, %cl - WORD $0x4d88; BYTE $0xd3 // movb %cl, $-45(%rbp) - LONG $0x0cc38348 // addq $12, %rbx - LONG $0x000004ba; BYTE $0x00 // movl $4, %edx - LONG $0xc86d8b4c // movq $-56(%rbp), %r13 - LONG $0x15548d4c; BYTE $0xd0 // leaq $-48(%rbp,%rdx), %r10 - WORD $0x394d; BYTE $0xde // cmpq %r11, %r14 - LONG $0xfe45820f; WORD $0xffff // jb LBB28_104, $-443(%rip) - -LBB28_112: - LONG $0xd0558d48 // leaq $-48(%rbp), %rdx - -LBB28_113: - WORD $0x394c; BYTE $0xd2 // cmpq %r10, %rdx - LONG $0x02dc850f; WORD $0x0000 // jne LBB28_182, $732(%rip) - -LBB28_114: - WORD $0x3949; BYTE $0xd8 // cmpq %rbx, %r8 - LONG $0x0012860f; WORD $0x0000 // jbe LBB28_129, $18(%rip) - WORD $0x394d; BYTE $0xde // cmpq %r11, %r14 - LONG $0xfc98820f; WORD $0xffff // jb LBB28_86, $-872(%rip) - LONG $0x000004e9; BYTE $0x00 // jmp LBB28_129, $4(%rip) - -LBB28_128: - LONG $0xc86d8b4c // movq $-56(%rbp), %r13 - -LBB28_129: - WORD $0x3149; BYTE $0xd8 // xorq %rbx, %r8 - WORD $0x314d; BYTE $0xde // xorq %r11, %r14 - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x094d; BYTE $0xc6 // orq %r8, %r14 - LONG $0xc2940f41 // sete %r10b - -LBB28_130: - LONG $0xc05d8b4c // movq $-64(%rbp), %r11 - LONG $0x08738b49 // movq $8(%r11), %rsi - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - WORD $0x2948; BYTE $0xf7 // subq %rsi, %rdi - LONG $0xfc10820f; WORD $0xffff // jb LBB28_80, $-1008(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB28_131: - LONG $0x01588d48 // leaq $1(%rax), %rbx - WORD $0x3948; BYTE $0xf3 // cmpq %rsi, %rbx - LONG $0x0023830f; WORD $0x0000 // jae LBB28_135, $35(%rip) - LONG $0x19148a41 // movb (%r9,%rbx), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_135, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_135, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x00f3870f; WORD $0x0000 // ja LBB28_152, $243(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_135: - LONG $0x02588d48 // leaq $2(%rax), %rbx - WORD $0x3948; BYTE $0xf3 // cmpq %rsi, %rbx - LONG $0x0023830f; WORD $0x0000 // jae LBB28_139, $35(%rip) - LONG $0x19148a41 // movb (%r9,%rbx), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_139, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_139, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x00c3870f; WORD $0x0000 // ja LBB28_152, $195(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_139: - LONG $0x03588d48 // leaq $3(%rax), %rbx - WORD $0x3948; BYTE $0xf3 // cmpq %rsi, %rbx - LONG $0x0023830f; WORD $0x0000 // jae LBB28_143, $35(%rip) - LONG $0x19148a41 // movb (%r9,%rbx), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_143, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_143, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0093870f; WORD $0x0000 // ja LBB28_152, $147(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_143: - LONG $0x04508d48 // leaq $4(%rax), %rdx - WORD $0x3948; BYTE $0xd6 // cmpq %rdx, %rsi - LONG $0x045b860f; WORD $0x0000 // jbe LBB28_244, $1115(%rip) - WORD $0x3948; BYTE $0xd6 // cmpq %rdx, %rsi - LONG $0x004a840f; WORD $0x0000 // je LBB28_149, $74(%rip) - LONG $0x31148d49 // leaq (%r9,%rsi), %rdx - LONG $0x04c78348 // addq $4, %rdi - LONG $0x015c8d49; BYTE $0x05 // leaq $5(%r9,%rax), %rbx - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_146: - LONG $0xff4bbe0f // movsbl $-1(%rbx), %ecx - WORD $0xf983; BYTE $0x20 // cmpl $32, %ecx - LONG $0x0043870f; WORD $0x0000 // ja LBB28_151, $67(%rip) - LONG $0xcca30f49 // btq %rcx, %r12 - LONG $0x0039830f; WORD $0x0000 // jae LBB28_151, $57(%rip) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0xff48; BYTE $0xc7 // incq %rdi - LONG $0xffdd850f; WORD $0xffff // jne LBB28_146, $-35(%rip) - LONG $0x00000be9; BYTE $0x00 // jmp LBB28_150, $11(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB28_149: - WORD $0x014c; BYTE $0xca // addq %r9, %rdx - -LBB28_150: - WORD $0x294c; BYTE $0xca // subq %r9, %rdx - WORD $0x8948; BYTE $0xd3 // movq %rdx, %rbx - WORD $0x3948; BYTE $0xf3 // cmpq %rsi, %rbx - LONG $0x0020820f; WORD $0x0000 // jb LBB28_152, $32(%rip) - LONG $0x0003f8e9; BYTE $0x00 // jmp LBB28_246, $1016(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_151: - WORD $0x894c; BYTE $0xc9 // movq %r9, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - WORD $0x0148; BYTE $0xcb // addq %rcx, %rbx - WORD $0x3948; BYTE $0xf3 // cmpq %rsi, %rbx - LONG $0x03dd830f; WORD $0x0000 // jae LBB28_246, $989(%rip) - -LBB28_152: - LONG $0x01538d48 // leaq $1(%rbx), %rdx - LONG $0x00558949 // movq %rdx, (%r13) - LONG $0x193c8041; BYTE $0x3a // cmpb $58, (%r9,%rbx) - LONG $0x03c7850f; WORD $0x0000 // jne LBB28_245, $967(%rip) - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x0379850f; WORD $0x0000 // jne LBB28_242, $889(%rip) - WORD $0x894c; BYTE $0xdf // movq %r11, %rdi - WORD $0x894c; BYTE $0xee // movq %r13, %rsi - LONG $0xffe6a7e8; BYTE $0xff // callq _skip_one_fast, $-6489(%rip) - LONG $0xc05d8b4c // movq $-64(%rbp), %r11 - WORD $0x8b4d; BYTE $0x0b // movq (%r11), %r9 - LONG $0x084b8b49 // movq $8(%r11), %rcx - LONG $0x00458b49 // movq (%r13), %rax - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0x2948; BYTE $0xce // subq %rcx, %rsi - LONG $0x002c830f; WORD $0x0000 // jae LBB28_159, $44(%rip) - LONG $0x01148a41 // movb (%r9,%rax), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x001f840f; WORD $0x0000 // je LBB28_159, $31(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_159, $22(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x000a860f; WORD $0x0000 // jbe LBB28_159, $10(%rip) - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0xfff79ce9; BYTE $0xff // jmp LBB28_180, $-2148(%rip) - WORD $0x9090 // .p2align 4, 0x90 - -LBB28_159: - LONG $0x01788d48 // leaq $1(%rax), %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_163, $35(%rip) - LONG $0x39148a41 // movb (%r9,%rdi), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_163, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_163, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0xf76b870f; WORD $0xffff // ja LBB28_180, $-2197(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_163: - LONG $0x02788d48 // leaq $2(%rax), %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_167, $35(%rip) - LONG $0x39148a41 // movb (%r9,%rdi), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_167, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_167, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0xf73b870f; WORD $0xffff // ja LBB28_180, $-2245(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_167: - LONG $0x03788d48 // leaq $3(%rax), %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_171, $35(%rip) - LONG $0x39148a41 // movb (%r9,%rdi), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_171, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_171, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0xf70b870f; WORD $0xffff // ja LBB28_180, $-2293(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_171: - LONG $0x04508d48 // leaq $4(%rax), %rdx - WORD $0x3948; BYTE $0xd1 // cmpq %rdx, %rcx - LONG $0x02cb860f; WORD $0x0000 // jbe LBB28_244, $715(%rip) - WORD $0x3948; BYTE $0xd1 // cmpq %rdx, %rcx - LONG $0x004a840f; WORD $0x0000 // je LBB28_177, $74(%rip) - LONG $0x09148d49 // leaq (%r9,%rcx), %rdx - LONG $0x04c68348 // addq $4, %rsi - LONG $0x017c8d49; BYTE $0x05 // leaq $5(%r9,%rax), %rdi - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_174: - LONG $0xff5fbe0f // movsbl $-1(%rdi), %ebx - WORD $0xfb83; BYTE $0x20 // cmpl $32, %ebx - LONG $0xf6bb870f; WORD $0xffff // ja LBB28_179, $-2373(%rip) - LONG $0xdca30f49 // btq %rbx, %r12 - LONG $0xf6b1830f; WORD $0xffff // jae LBB28_179, $-2383(%rip) - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0xff48; BYTE $0xc6 // incq %rsi - LONG $0xffdd850f; WORD $0xffff // jne LBB28_174, $-35(%rip) - LONG $0x00000be9; BYTE $0x00 // jmp LBB28_178, $11(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB28_177: - WORD $0x014c; BYTE $0xca // addq %r9, %rdx - -LBB28_178: - WORD $0x294c; BYTE $0xca // subq %r9, %rdx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0xf698820f; WORD $0xffff // jb LBB28_180, $-2408(%rip) - LONG $0x000268e9; BYTE $0x00 // jmp LBB28_246, $616(%rip) - -LBB28_182: - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - LONG $0xfffd47e9; BYTE $0xff // jmp LBB28_130, $-697(%rip) - -LBB28_208: - LONG $0x00558949 // movq %rdx, (%r13) - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - LONG $0x000053e9; BYTE $0x00 // jmp LBB28_213, $83(%rip) - -LBB28_29: - WORD $0x894c; BYTE $0xc8 // movq %r9, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0148; BYTE $0xc6 // addq %rax, %rsi - WORD $0x394c; BYTE $0xc6 // cmpq %r8, %rsi - LONG $0xf465820f; WORD $0xffff // jb LBB28_28, $-2971(%rip) - LONG $0xfff4bbe9; BYTE $0xff // jmp LBB28_30, $-2885(%rip) - -LBB28_209: - WORD $0x014c; BYTE $0xca // addq %r9, %rdx - -LBB28_210: - WORD $0x294c; BYTE $0xca // subq %r9, %rdx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - WORD $0x394c; BYTE $0xc7 // cmpq %r8, %rdi - LONG $0x0017820f; WORD $0x0000 // jb LBB28_212, $23(%rip) - LONG $0x000025e9; BYTE $0x00 // jmp LBB28_213, $37(%rip) - -LBB28_211: - WORD $0x894c; BYTE $0xc9 // movq %r9, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - WORD $0x0148; BYTE $0xcf // addq %rcx, %rdi - WORD $0x394c; BYTE $0xc7 // cmpq %r8, %rdi - LONG $0x0013830f; WORD $0x0000 // jae LBB28_213, $19(%rip) - -LBB28_212: - LONG $0x01478d48 // leaq $1(%rdi), %rax - LONG $0x00458949 // movq %rax, (%r13) - LONG $0x393c8041; BYTE $0x5d // cmpb $93, (%r9,%rdi) - LONG $0x0250840f; WORD $0x0000 // je LBB28_253, $592(%rip) - -LBB28_213: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0x00458949 // movq %rax, (%r13) - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x01a68e0f; WORD $0x0000 // jle LBB28_242, $422(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_214: - WORD $0x894c; BYTE $0xdf // movq %r11, %rdi - WORD $0x894c; BYTE $0xee // movq %r13, %rsi - LONG $0xffe4c5e8; BYTE $0xff // callq _skip_one_fast, $-6971(%rip) - LONG $0xc05d8b4c // movq $-64(%rbp), %r11 - WORD $0x8b4d; BYTE $0x0b // movq (%r11), %r9 - LONG $0x084b8b49 // movq $8(%r11), %rcx - LONG $0x00458b49 // movq (%r13), %rax - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0x2948; BYTE $0xce // subq %rcx, %rsi - LONG $0x002a830f; WORD $0x0000 // jae LBB28_219, $42(%rip) - LONG $0x01148a41 // movb (%r9,%rax), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x001d840f; WORD $0x0000 // je LBB28_219, $29(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x0014840f; WORD $0x0000 // je LBB28_219, $20(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0008860f; WORD $0x0000 // jbe LBB28_219, $8(%rip) - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0x000122e9; BYTE $0x00 // jmp LBB28_240, $290(%rip) - - // .p2align 4, 0x90 -LBB28_219: - LONG $0x01788d48 // leaq $1(%rax), %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_223, $35(%rip) - LONG $0x39148a41 // movb (%r9,%rdi), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_223, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_223, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x00f3870f; WORD $0x0000 // ja LBB28_240, $243(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_223: - LONG $0x02788d48 // leaq $2(%rax), %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_227, $35(%rip) - LONG $0x39148a41 // movb (%r9,%rdi), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_227, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_227, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x00c3870f; WORD $0x0000 // ja LBB28_240, $195(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_227: - LONG $0x03788d48 // leaq $3(%rax), %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0x0023830f; WORD $0x0000 // jae LBB28_231, $35(%rip) - LONG $0x39148a41 // movb (%r9,%rdi), %dl - WORD $0xfa80; BYTE $0x0d // cmpb $13, %dl - LONG $0x0016840f; WORD $0x0000 // je LBB28_231, $22(%rip) - WORD $0xfa80; BYTE $0x20 // cmpb $32, %dl - LONG $0x000d840f; WORD $0x0000 // je LBB28_231, $13(%rip) - WORD $0xc280; BYTE $0xf7 // addb $-9, %dl - WORD $0xfa80; BYTE $0x01 // cmpb $1, %dl - LONG $0x0093870f; WORD $0x0000 // ja LBB28_240, $147(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB28_231: - LONG $0x04508d48 // leaq $4(%rax), %rdx - WORD $0x3948; BYTE $0xd1 // cmpq %rdx, %rcx - LONG $0x00eb860f; WORD $0x0000 // jbe LBB28_244, $235(%rip) - WORD $0x3948; BYTE $0xd1 // cmpq %rdx, %rcx - LONG $0x004a840f; WORD $0x0000 // je LBB28_237, $74(%rip) - LONG $0x09148d49 // leaq (%r9,%rcx), %rdx - LONG $0x04c68348 // addq $4, %rsi - LONG $0x017c8d49; BYTE $0x05 // leaq $5(%r9,%rax), %rdi - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_234: - LONG $0xff5fbe0f // movsbl $-1(%rdi), %ebx - WORD $0xfb83; BYTE $0x20 // cmpl $32, %ebx - LONG $0x0043870f; WORD $0x0000 // ja LBB28_239, $67(%rip) - LONG $0xdca30f49 // btq %rbx, %r12 - LONG $0x0039830f; WORD $0x0000 // jae LBB28_239, $57(%rip) - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0xff48; BYTE $0xc6 // incq %rsi - LONG $0xffdd850f; WORD $0xffff // jne LBB28_234, $-35(%rip) - LONG $0x00000be9; BYTE $0x00 // jmp LBB28_238, $11(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB28_237: - WORD $0x014c; BYTE $0xca // addq %r9, %rdx - -LBB28_238: - WORD $0x294c; BYTE $0xca // subq %r9, %rdx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0x0020820f; WORD $0x0000 // jb LBB28_240, $32(%rip) - LONG $0x000088e9; BYTE $0x00 // jmp LBB28_246, $136(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_239: - WORD $0x894c; BYTE $0xca // movq %r9, %rdx - WORD $0xf748; BYTE $0xd2 // notq %rdx - WORD $0x0148; BYTE $0xd7 // addq %rdx, %rdi - WORD $0x3948; BYTE $0xcf // cmpq %rcx, %rdi - LONG $0x006d830f; WORD $0x0000 // jae LBB28_246, $109(%rip) - -LBB28_240: - LONG $0x01578d48 // leaq $1(%rdi), %rdx - LONG $0x00558949 // movq %rdx, (%r13) - LONG $0x39048a41 // movb (%r9,%rdi), %al - WORD $0x2c3c // cmpb $44, %al - LONG $0x0079850f; WORD $0x0000 // jne LBB28_248, $121(%rip) - LONG $0xff468d49 // leaq $-1(%r14), %rax - LONG $0x02fe8349 // cmpq $2, %r14 - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - LONG $0xfe698d0f; WORD $0xffff // jge LBB28_214, $-407(%rip) - -LBB28_242: - LONG $0xb8458b48 // movq $-72(%rbp), %rax - LONG $0x10c08348 // addq $16, %rax - LONG $0xa8558b4c // movq $-88(%rbp), %r10 - LONG $0xb8458948 // movq %rax, $-72(%rbp) - WORD $0x394c; BYTE $0xd0 // cmpq %r10, %rax - LONG $0xa04d8b48 // movq $-96(%rbp), %rcx - LONG $0xf11b850f; WORD $0xffff // jne LBB28_2, $-3813(%rip) - -LBB28_243: - QUAD $0xfffff0b4056ff9c5 // vmovdqa $-3916(%rip), %xmm0 /* LCPI28_0(%rip) */ - LONG $0x017ffac5 // vmovdqu %xmm0, (%rcx) - WORD $0x8948; BYTE $0xcf // movq %rcx, %rdi - WORD $0x894c; BYTE $0xde // movq %r11, %rsi - WORD $0x894c; BYTE $0xea // movq %r13, %rdx - WORD $0xc931 // xorl %ecx, %ecx - LONG $0xffd200e8; BYTE $0xff // callq _fsm_exec, $-11776(%rip) - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - LONG $0x000015e9; BYTE $0x00 // jmp LBB28_247, $21(%rip) - -LBB28_244: - LONG $0x00558949 // movq %rdx, (%r13) - -LBB28_245: - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - -LBB28_246: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0x00458949 // movq %rax, (%r13) - LONG $0xfec1c748; WORD $0xffff; BYTE $0xff // movq $-2, %rcx - -LBB28_247: - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - LONG $0x38c48348 // addq $56, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB28_248: - WORD $0x5d3c // cmpb $93, %al - LONG $0xffd5850f; WORD $0xffff // jne LBB28_245, $-43(%rip) - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - LONG $0x00001fe9; BYTE $0x00 // jmp LBB28_253, $31(%rip) - -LBB28_250: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0x00458949 // movq %rax, (%r13) - LONG $0xdec1c748; WORD $0xffff; BYTE $0xff // movq $-34, %rcx - LONG $0xffffcbe9; BYTE $0xff // jmp LBB28_247, $-53(%rip) - -LBB28_251: - WORD $0x8948; BYTE $0xd8 // movq %rbx, %rax - -LBB28_252: - WORD $0xf980; BYTE $0x7d // cmpb $125, %cl - LONG $0xffb1850f; WORD $0xffff // jne LBB28_246, $-79(%rip) - -LBB28_253: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0x00458949 // movq %rax, (%r13) - LONG $0xdfc1c748; WORD $0xffff; BYTE $0xff // movq $-33, %rcx - LONG $0xfffface9; BYTE $0xff // jmp LBB28_247, $-84(%rip) - -LBB28_254: - LONG $0xc0458b48 // movq $-64(%rbp), %rax - LONG $0x08408b48 // movq $8(%rax), %rax - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - LONG $0xffc1c748; WORD $0xffff; BYTE $0xff // movq $-1, %rcx - LONG $0xffff91e9; BYTE $0xff // jmp LBB28_247, $-111(%rip) - -LBB28_255: - LONG $0x02c38348 // addq $2, %rbx - LONG $0xfec1c748; WORD $0xffff; BYTE $0xff // movq $-2, %rcx - LONG $0x000012e9; BYTE $0x00 // jmp LBB28_258, $18(%rip) - -LBB28_256: - WORD $0xff48; BYTE $0xc3 // incq %rbx - LONG $0xfdc1c748; WORD $0xffff; BYTE $0xff // movq $-3, %rcx - LONG $0x000003e9; BYTE $0x00 // jmp LBB28_258, $3(%rip) - -LBB28_257: - WORD $0xff48; BYTE $0xc3 // incq %rbx - -LBB28_258: - WORD $0x294c; BYTE $0xcb // subq %r9, %rbx - LONG $0x005d8949 // movq %rbx, (%r13) - LONG $0xffff63e9; BYTE $0xff // jmp LBB28_247, $-157(%rip) - -LBB28_259: - LONG $0xfec1c748; WORD $0xffff; BYTE $0xff // movq $-2, %rcx - LONG $0x000007e9; BYTE $0x00 // jmp LBB28_261, $7(%rip) - -LBB28_260: - LONG $0xfcc1c748; WORD $0xffff; BYTE $0xff // movq $-4, %rcx - -LBB28_261: - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - LONG $0xc86d8b4c // movq $-56(%rbp), %r13 - LONG $0xffffd5e9; BYTE $0xff // jmp LBB28_258, $-43(%rip) - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_validate_utf8: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - WORD $0x8b4c; BYTE $0x17 // movq (%rdi), %r10 - LONG $0x085f8b4c // movq $8(%rdi), %r11 - WORD $0x8b48; BYTE $0x0e // movq (%rsi), %rcx - WORD $0x014c; BYTE $0xd1 // addq %r10, %rcx - LONG $0x1a448d4f; BYTE $0xfd // leaq $-3(%r10,%r11), %r8 - LONG $0x000010e9; BYTE $0x00 // jmp LBB29_1, $16(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB29_19: - WORD $0x0148; BYTE $0xd9 // addq %rbx, %rcx - -LBB29_1: - WORD $0x394c; BYTE $0xc1 // cmpq %r8, %rcx - LONG $0x00e1830f; WORD $0x0000 // jae LBB29_2, $225(%rip) - LONG $0x000001bb; BYTE $0x00 // movl $1, %ebx - WORD $0x3980; BYTE $0x00 // cmpb $0, (%rcx) - LONG $0xffe6890f; WORD $0xffff // jns LBB29_19, $-26(%rip) - WORD $0x018b // movl (%rcx), %eax - WORD $0xc789 // movl %eax, %edi - LONG $0xc0f0e781; WORD $0x00c0 // andl $12632304, %edi - LONG $0x80e0ff81; WORD $0x0080 // cmpl $8421600, %edi - LONG $0x0030850f; WORD $0x0000 // jne LBB29_10, $48(%rip) - WORD $0xc789 // movl %eax, %edi - LONG $0x200fe781; WORD $0x0000 // andl $8207, %edi - LONG $0x200dff81; WORD $0x0000 // cmpl $8205, %edi - LONG $0x001c840f; WORD $0x0000 // je LBB29_10, $28(%rip) - LONG $0x000003bb; BYTE $0x00 // movl $3, %ebx - WORD $0xff85 // testl %edi, %edi - LONG $0xffaf850f; WORD $0xffff // jne LBB29_19, $-81(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB29_10: - WORD $0xc789 // movl %eax, %edi - LONG $0xc0e0e781; WORD $0x0000 // andl $49376, %edi - LONG $0x80c0ff81; WORD $0x0000 // cmpl $32960, %edi - LONG $0x0010850f; WORD $0x0000 // jne LBB29_12, $16(%rip) - WORD $0xc789 // movl %eax, %edi - LONG $0x000002bb; BYTE $0x00 // movl $2, %ebx - WORD $0xe783; BYTE $0x1e // andl $30, %edi - LONG $0xff7c850f; WORD $0xffff // jne LBB29_19, $-132(%rip) - -LBB29_12: - WORD $0xc789 // movl %eax, %edi - LONG $0xc0f8e781; WORD $0xc0c0 // andl $-1061109512, %edi - LONG $0x80f0ff81; WORD $0x8080 // cmpl $-2139062032, %edi - LONG $0x0026850f; WORD $0x0000 // jne LBB29_16, $38(%rip) - WORD $0xc789 // movl %eax, %edi - LONG $0x3007e781; WORD $0x0000 // andl $12295, %edi - LONG $0x0018840f; WORD $0x0000 // je LBB29_16, $24(%rip) - LONG $0x000004bb; BYTE $0x00 // movl $4, %ebx - WORD $0x04a8 // testb $4, %al - LONG $0xff4d840f; WORD $0xffff // je LBB29_19, $-179(%rip) - LONG $0x00300325; BYTE $0x00 // andl $12291, %eax - LONG $0xff42840f; WORD $0xffff // je LBB29_19, $-190(%rip) - -LBB29_16: - WORD $0x8948; BYTE $0xcf // movq %rcx, %rdi - WORD $0x294c; BYTE $0xd7 // subq %r10, %rdi - WORD $0x8b48; BYTE $0x1a // movq (%rdx), %rbx - LONG $0x00fb8148; WORD $0x0010; BYTE $0x00 // cmpq $4096, %rbx - LONG $0x0187830f; WORD $0x0000 // jae LBB29_17, $391(%rip) - WORD $0x6348; BYTE $0xc7 // movslq %edi, %rax - LONG $0x017b8d48 // leaq $1(%rbx), %rdi - WORD $0x8948; BYTE $0x3a // movq %rdi, (%rdx) - LONG $0xda448948; BYTE $0x08 // movq %rax, $8(%rdx,%rbx,8) - LONG $0x000001bb; BYTE $0x00 // movl $1, %ebx - LONG $0xffff13e9; BYTE $0xff // jmp LBB29_19, $-237(%rip) - -LBB29_2: - WORD $0x014d; BYTE $0xd3 // addq %r10, %r11 - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0x013e830f; WORD $0x0000 // jae LBB29_36, $318(%rip) - LONG $0xdc458d4c // leaq $-36(%rbp), %r8 - LONG $0xda4d8d4c // leaq $-38(%rbp), %r9 - LONG $0x000016e9; BYTE $0x00 // jmp LBB29_4, $22(%rip) - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB29_5: - WORD $0xff48; BYTE $0xc1 // incq %rcx - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0x011b830f; WORD $0x0000 // jae LBB29_36, $283(%rip) - -LBB29_4: - WORD $0x3980; BYTE $0x00 // cmpb $0, (%rcx) - LONG $0xffeb890f; WORD $0xffff // jns LBB29_5, $-21(%rip) - LONG $0x00dc45c6 // movb $0, $-36(%rbp) - LONG $0x00da45c6 // movb $0, $-38(%rbp) - WORD $0x894c; BYTE $0xdb // movq %r11, %rbx - WORD $0x2948; BYTE $0xcb // subq %rcx, %rbx - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0x0035820f; WORD $0x0000 // jb LBB29_21, $53(%rip) - LONG $0x21b60f44 // movzbl (%rcx), %r12d - LONG $0x71b60f44; BYTE $0x01 // movzbl $1(%rcx), %r14d - LONG $0xdc658844 // movb %r12b, $-36(%rbp) - LONG $0x02798d4c // leaq $2(%rcx), %r15 - LONG $0xfec38348 // addq $-2, %rbx - WORD $0x894c; BYTE $0xcf // movq %r9, %rdi - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0029840f; WORD $0x0000 // je LBB29_24, $41(%rip) - -LBB29_25: - LONG $0x07b60f41 // movzbl (%r15), %eax - WORD $0x0788 // movb %al, (%rdi) - LONG $0x65b60f44; BYTE $0xdc // movzbl $-36(%rbp), %r12d - LONG $0xda7db60f // movzbl $-38(%rbp), %edi - LONG $0x000017e9; BYTE $0x00 // jmp LBB29_26, $23(%rip) - -LBB29_21: - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x894c; BYTE $0xc7 // movq %r8, %rdi - WORD $0x8949; BYTE $0xcf // movq %rcx, %r15 - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0xffd7850f; WORD $0xffff // jne LBB29_25, $-41(%rip) - -LBB29_24: - WORD $0xff31 // xorl %edi, %edi - -LBB29_26: - LONG $0xc7b60f40 // movzbl %dil, %eax - WORD $0xe0c1; BYTE $0x10 // shll $16, %eax - LONG $0xdeb60f41 // movzbl %r14b, %ebx - WORD $0xe3c1; BYTE $0x08 // shll $8, %ebx - LONG $0xfcb60f41 // movzbl %r12b, %edi - WORD $0xdf09 // orl %ebx, %edi - WORD $0xf809 // orl %edi, %eax - LONG $0xc0c0f025; BYTE $0x00 // andl $12632304, %eax - LONG $0x8080e03d; BYTE $0x00 // cmpl $8421600, %eax - LONG $0x0021850f; WORD $0x0000 // jne LBB29_29, $33(%rip) - WORD $0xf889 // movl %edi, %eax - LONG $0x00200f25; BYTE $0x00 // andl $8207, %eax - LONG $0x00200d3d; BYTE $0x00 // cmpl $8205, %eax - LONG $0x000f840f; WORD $0x0000 // je LBB29_29, $15(%rip) - LONG $0x000003bb; BYTE $0x00 // movl $3, %ebx - WORD $0xc085 // testl %eax, %eax - LONG $0x0023850f; WORD $0x0000 // jne LBB29_34, $35(%rip) - WORD $0x9090 // .p2align 4, 0x90 - -LBB29_29: - LONG $0x1ec4f641 // testb $30, %r12b - LONG $0x0028840f; WORD $0x0000 // je LBB29_31, $40(%rip) - LONG $0xc0e0e781; WORD $0x0000 // andl $49376, %edi - LONG $0x000002bb; BYTE $0x00 // movl $2, %ebx - LONG $0x80c0ff81; WORD $0x0000 // cmpl $32960, %edi - LONG $0x0011850f; WORD $0x0000 // jne LBB29_31, $17(%rip) - -LBB29_34: - WORD $0x0148; BYTE $0xd9 // addq %rbx, %rcx - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0xff1f820f; WORD $0xffff // jb LBB29_4, $-225(%rip) - LONG $0x000035e9; BYTE $0x00 // jmp LBB29_36, $53(%rip) - -LBB29_31: - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - WORD $0x294c; BYTE $0xd0 // subq %r10, %rax - WORD $0x8b48; BYTE $0x3a // movq (%rdx), %rdi - LONG $0x00ff8148; WORD $0x0010; BYTE $0x00 // cmpq $4096, %rdi - LONG $0x0034830f; WORD $0x0000 // jae LBB29_32, $52(%rip) - WORD $0x9848 // cltq - LONG $0x015f8d48 // leaq $1(%rdi), %rbx - WORD $0x8948; BYTE $0x1a // movq %rbx, (%rdx) - LONG $0xfa448948; BYTE $0x08 // movq %rax, $8(%rdx,%rdi,8) - LONG $0x000001bb; BYTE $0x00 // movl $1, %ebx - WORD $0x0148; BYTE $0xd9 // addq %rbx, %rcx - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0xfee5820f; WORD $0xffff // jb LBB29_4, $-283(%rip) - -LBB29_36: - WORD $0x294c; BYTE $0xd1 // subq %r10, %rcx - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - WORD $0xc031 // xorl %eax, %eax - -LBB29_37: - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB29_32: - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xffffe4e9; BYTE $0xff // jmp LBB29_37, $-28(%rip) - -LBB29_17: - WORD $0x8948; BYTE $0x3e // movq %rdi, (%rsi) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xffffd5e9; BYTE $0xff // jmp LBB29_37, $-43(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_validate_utf8_fast: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - WORD $0x8b4c; BYTE $0x17 // movq (%rdi), %r10 - LONG $0x085f8b4c // movq $8(%rdi), %r11 - LONG $0x1a748d4b; BYTE $0xfd // leaq $-3(%r10,%r11), %rsi - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - WORD $0x3949; BYTE $0xf2 // cmpq %rsi, %r10 - LONG $0x00e0830f; WORD $0x0000 // jae LBB30_14, $224(%rip) - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - LONG $0x000016e9; BYTE $0x00 // jmp LBB30_3, $22(%rip) - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB30_2: - WORD $0x0148; BYTE $0xd0 // addq %rdx, %rax - WORD $0x3948; BYTE $0xf0 // cmpq %rsi, %rax - LONG $0x00c2830f; WORD $0x0000 // jae LBB30_14, $194(%rip) - -LBB30_3: - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - WORD $0x3880; BYTE $0x00 // cmpb $0, (%rax) - LONG $0xffe6890f; WORD $0xffff // jns LBB30_2, $-26(%rip) - WORD $0x388b // movl (%rax), %edi - WORD $0xf989 // movl %edi, %ecx - LONG $0xc0f0e181; WORD $0x00c0 // andl $12632304, %ecx - LONG $0x80e0f981; WORD $0x0080 // cmpl $8421600, %ecx - LONG $0x0030850f; WORD $0x0000 // jne LBB30_7, $48(%rip) - WORD $0xf989 // movl %edi, %ecx - LONG $0x200fe181; WORD $0x0000 // andl $8207, %ecx - LONG $0x200df981; WORD $0x0000 // cmpl $8205, %ecx - LONG $0x001c840f; WORD $0x0000 // je LBB30_7, $28(%rip) - LONG $0x000003ba; BYTE $0x00 // movl $3, %edx - WORD $0xc985 // testl %ecx, %ecx - LONG $0xffaf850f; WORD $0xffff // jne LBB30_2, $-81(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB30_7: - WORD $0xf989 // movl %edi, %ecx - LONG $0xc0e0e181; WORD $0x0000 // andl $49376, %ecx - LONG $0x80c0f981; WORD $0x0000 // cmpl $32960, %ecx - LONG $0x0010850f; WORD $0x0000 // jne LBB30_9, $16(%rip) - WORD $0xf989 // movl %edi, %ecx - LONG $0x000002ba; BYTE $0x00 // movl $2, %edx - WORD $0xe183; BYTE $0x1e // andl $30, %ecx - LONG $0xff7c850f; WORD $0xffff // jne LBB30_2, $-132(%rip) - -LBB30_9: - WORD $0xf989 // movl %edi, %ecx - LONG $0xc0f8e181; WORD $0xc0c0 // andl $-1061109512, %ecx - LONG $0x80f0f981; WORD $0x8080 // cmpl $-2139062032, %ecx - LONG $0x0029850f; WORD $0x0000 // jne LBB30_13, $41(%rip) - WORD $0xf989 // movl %edi, %ecx - LONG $0x3007e181; WORD $0x0000 // andl $12295, %ecx - LONG $0x001b840f; WORD $0x0000 // je LBB30_13, $27(%rip) - LONG $0x000004ba; BYTE $0x00 // movl $4, %edx - LONG $0x04c7f640 // testb $4, %dil - LONG $0xff4b840f; WORD $0xffff // je LBB30_2, $-181(%rip) - LONG $0x3003e781; WORD $0x0000 // andl $12291, %edi - LONG $0xff3f840f; WORD $0xffff // je LBB30_2, $-193(%rip) - -LBB30_13: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x014c; BYTE $0xd0 // addq %r10, %rax - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB30_14: - WORD $0x014d; BYTE $0xd3 // addq %r10, %r11 - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x0103830f; WORD $0x0000 // jae LBB30_30, $259(%rip) - LONG $0xf4458d4c // leaq $-12(%rbp), %r8 - LONG $0xf24d8d4c // leaq $-14(%rbp), %r9 - LONG $0x000015e9; BYTE $0x00 // jmp LBB30_17, $21(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB30_16: - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x00e1830f; WORD $0x0000 // jae LBB30_30, $225(%rip) - -LBB30_17: - WORD $0x3880; BYTE $0x00 // cmpb $0, (%rax) - LONG $0xffeb890f; WORD $0xffff // jns LBB30_16, $-21(%rip) - LONG $0x00f445c6 // movb $0, $-12(%rbp) - LONG $0x00f245c6 // movb $0, $-14(%rbp) - WORD $0x894c; BYTE $0xda // movq %r11, %rdx - WORD $0x2948; BYTE $0xc2 // subq %rax, %rdx - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0x0031820f; WORD $0x0000 // jb LBB30_21, $49(%rip) - WORD $0xb60f; BYTE $0x30 // movzbl (%rax), %esi - LONG $0x0178b60f // movzbl $1(%rax), %edi - LONG $0xf4758840 // movb %sil, $-12(%rbp) - LONG $0x02488d48 // leaq $2(%rax), %rcx - LONG $0xfec28348 // addq $-2, %rdx - WORD $0x894c; BYTE $0xcb // movq %r9, %rbx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0025840f; WORD $0x0000 // je LBB30_22, $37(%rip) - -LBB30_20: - WORD $0xb60f; BYTE $0x09 // movzbl (%rcx), %ecx - WORD $0x0b88 // movb %cl, (%rbx) - LONG $0xf475b60f // movzbl $-12(%rbp), %esi - LONG $0xf24db60f // movzbl $-14(%rbp), %ecx - LONG $0x000015e9; BYTE $0x00 // jmp LBB30_23, $21(%rip) - -LBB30_21: - WORD $0xf631 // xorl %esi, %esi - WORD $0xff31 // xorl %edi, %edi - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xffdb850f; WORD $0xffff // jne LBB30_20, $-37(%rip) - -LBB30_22: - WORD $0xc931 // xorl %ecx, %ecx - -LBB30_23: - WORD $0xb60f; BYTE $0xc9 // movzbl %cl, %ecx - WORD $0xe1c1; BYTE $0x10 // shll $16, %ecx - LONG $0xffb60f40 // movzbl %dil, %edi - WORD $0xe7c1; BYTE $0x08 // shll $8, %edi - LONG $0xd6b60f40 // movzbl %sil, %edx - WORD $0xfa09 // orl %edi, %edx - WORD $0xd109 // orl %edx, %ecx - LONG $0xc0f0e181; WORD $0x00c0 // andl $12632304, %ecx - LONG $0x80e0f981; WORD $0x0080 // cmpl $8421600, %ecx - LONG $0x0026850f; WORD $0x0000 // jne LBB30_26, $38(%rip) - WORD $0xd789 // movl %edx, %edi - LONG $0x200fe781; WORD $0x0000 // andl $8207, %edi - LONG $0x200dff81; WORD $0x0000 // cmpl $8205, %edi - LONG $0x0012840f; WORD $0x0000 // je LBB30_26, $18(%rip) - LONG $0x000003b9; BYTE $0x00 // movl $3, %ecx - WORD $0xff85 // testl %edi, %edi - LONG $0x0026850f; WORD $0x0000 // jne LBB30_28, $38(%rip) - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB30_26: - LONG $0x1ec6f640 // testb $30, %sil - LONG $0xff07840f; WORD $0xffff // je LBB30_13, $-249(%rip) - LONG $0xc0e0e281; WORD $0x0000 // andl $49376, %edx - LONG $0x000002b9; BYTE $0x00 // movl $2, %ecx - LONG $0x80c0fa81; WORD $0x0000 // cmpl $32960, %edx - LONG $0xfef0850f; WORD $0xffff // jne LBB30_13, $-272(%rip) - -LBB30_28: - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0xff1f820f; WORD $0xffff // jb LBB30_17, $-225(%rip) - -LBB30_30: - WORD $0xc031 // xorl %eax, %eax - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; QUAD $0x0000000000000000; QUAD $0x0000000000000000; WORD $0x0000 // .p2align 5, 0x00 - -LCPI31_0: - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - - // .p2align 4, 0x90 -_f32toa: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0xc07ef9c5 // vmovd %xmm0, %eax - WORD $0xc189 // movl %eax, %ecx - WORD $0xe9c1; BYTE $0x17 // shrl $23, %ecx - WORD $0xb60f; BYTE $0xd9 // movzbl %cl, %ebx - LONG $0x00fffb81; WORD $0x0000 // cmpl $255, %ebx - LONG $0x0cf1840f; WORD $0x0000 // je LBB31_138, $3313(%rip) - WORD $0x07c6; BYTE $0x2d // movb $45, (%rdi) - WORD $0x8941; BYTE $0xc1 // movl %eax, %r9d - LONG $0x1fe9c141 // shrl $31, %r9d - LONG $0x0f048d4e // leaq (%rdi,%r9), %r8 - LONG $0xffffffa9; BYTE $0x7f // testl $2147483647, %eax - LONG $0x01bf840f; WORD $0x0000 // je LBB31_11, $447(%rip) - LONG $0x7fffff25; BYTE $0x00 // andl $8388607, %eax - WORD $0xdb85 // testl %ebx, %ebx - LONG $0x0cd3840f; WORD $0x0000 // je LBB31_139, $3283(%rip) - LONG $0x0000b08d; WORD $0x0080 // leal $8388608(%rax), %esi - LONG $0x6abb8d44; WORD $0xffff; BYTE $0xff // leal $-150(%rbx), %r15d - WORD $0x4b8d; BYTE $0x81 // leal $-127(%rbx), %ecx - WORD $0xf983; BYTE $0x17 // cmpl $23, %ecx - LONG $0x0019870f; WORD $0x0000 // ja LBB31_5, $25(%rip) - WORD $0x8944; BYTE $0xf9 // movl %r15d, %ecx - WORD $0xd9f7 // negl %ecx - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - WORD $0xd348; BYTE $0xe2 // shlq %cl, %rdx - WORD $0xd2f7 // notl %edx - WORD $0xf285 // testl %esi, %edx - LONG $0x03fc840f; WORD $0x0000 // je LBB31_32, $1020(%rip) - -LBB31_5: - WORD $0x8941; BYTE $0xf6 // movl %esi, %r14d - LONG $0x01e68341 // andl $1, %r14d - WORD $0xc085 // testl %eax, %eax - WORD $0x940f; BYTE $0xc0 // sete %al - WORD $0xfb83; BYTE $0x01 // cmpl $1, %ebx - WORD $0x970f; BYTE $0xc1 // seta %cl - WORD $0xc120 // andb %al, %cl - WORD $0xb60f; BYTE $0xc9 // movzbl %cl, %ecx - WORD $0x8941; BYTE $0xf2 // movl %esi, %r10d - LONG $0x02e2c141 // shll $2, %r10d - LONG $0xfeb1448d // leal $-2(%rcx,%rsi,4), %eax - LONG $0x13d76941; WORD $0x1344; BYTE $0x00 // imull $1262611, %r15d, %edx - WORD $0xdb31 // xorl %ebx, %ebx - WORD $0xc984 // testb %cl, %cl - LONG $0x0101bb41; WORD $0xfff8 // movl $-524031, %r11d - LONG $0xdb440f44 // cmovel %ebx, %r11d - WORD $0x0141; BYTE $0xd3 // addl %edx, %r11d - LONG $0x16fbc141 // sarl $22, %r11d - LONG $0xb1cb6941; WORD $0xe56c; BYTE $0xff // imull $-1741647, %r11d, %ecx - WORD $0xe9c1; BYTE $0x13 // shrl $19, %ecx - WORD $0x0144; BYTE $0xf9 // addl %r15d, %ecx - LONG $0x00001fba; BYTE $0x00 // movl $31, %edx - WORD $0x2944; BYTE $0xda // subl %r11d, %edx - LONG $0x991d8d48; WORD $0x00b4; BYTE $0x00 // leaq $46233(%rip), %rbx /* _pow10_ceil_sig_f32.g(%rip) */ - WORD $0xc1fe // incb %cl - WORD $0xe0d3 // shll %cl, %eax - LONG $0xd3248b4c // movq (%rbx,%rdx,8), %r12 - WORD $0xf749; BYTE $0xe4 // mulq %r12 - LONG $0x20e8c148 // shrq $32, %rax - WORD $0xdb31 // xorl %ebx, %ebx - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - WORD $0x970f; BYTE $0xc3 // seta %bl - WORD $0xd341; BYTE $0xe2 // shll %cl, %r10d - WORD $0xd309 // orl %edx, %ebx - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - WORD $0xf749; BYTE $0xe4 // mulq %r12 - WORD $0x8949; BYTE $0xd2 // movq %rdx, %r10 - LONG $0x20e8c148 // shrq $32, %rax - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - LONG $0xc7970f41 // seta %r15b - LONG $0x02b5048d; WORD $0x0000; BYTE $0x00 // leal $2(,%rsi,4), %eax - WORD $0xe0d3 // shll %cl, %eax - WORD $0x0945; BYTE $0xd7 // orl %r10d, %r15d - WORD $0xf749; BYTE $0xe4 // mulq %r12 - LONG $0x20e8c148 // shrq $32, %rax - WORD $0xc931 // xorl %ecx, %ecx - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - WORD $0x970f; BYTE $0xc1 // seta %cl - WORD $0xd109 // orl %edx, %ecx - WORD $0x0144; BYTE $0xf3 // addl %r14d, %ebx - WORD $0x2944; BYTE $0xf1 // subl %r14d, %ecx - LONG $0x28ff8341 // cmpl $40, %r15d - LONG $0x003d820f; WORD $0x0000 // jb LBB31_7, $61(%rip) - WORD $0x8944; BYTE $0xd0 // movl %r10d, %eax - LONG $0xcccdbd41; WORD $0xcccc // movl $3435973837, %r13d - LONG $0xe8af0f4c // imulq %rax, %r13 - LONG $0x25edc149 // shrq $37, %r13 - WORD $0x8941; BYTE $0xde // movl %ebx, %r14d - QUAD $0x00000000ed348d4a // leaq (,%r13,8), %rsi - LONG $0xb6048d48 // leaq (%rsi,%rsi,4), %rax - WORD $0x394c; BYTE $0xf0 // cmpq %r14, %rax - LONG $0xc6920f41 // setb %r14b - LONG $0xb6648d4c; BYTE $0x28 // leaq $40(%rsi,%rsi,4), %r12 - WORD $0xce89 // movl %ecx, %esi - WORD $0x3949; BYTE $0xf4 // cmpq %rsi, %r12 - WORD $0x960f; BYTE $0xc0 // setbe %al - WORD $0x3044; BYTE $0xf0 // xorb %r14b, %al - LONG $0x01e9840f; WORD $0x0000 // je LBB31_16, $489(%rip) - -LBB31_7: - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - LONG $0x02e8c148 // shrq $2, %rax - WORD $0x8944; BYTE $0xd6 // movl %r10d, %esi - WORD $0xe683; BYTE $0xfc // andl $-4, %esi - WORD $0xf339 // cmpl %esi, %ebx - LONG $0xc6970f41 // seta %r14b - WORD $0x568d; BYTE $0x04 // leal $4(%rsi), %edx - WORD $0xca39 // cmpl %ecx, %edx - WORD $0x960f; BYTE $0xc3 // setbe %bl - WORD $0x3044; BYTE $0xf3 // xorb %r14b, %bl - LONG $0x0074840f; WORD $0x0000 // je LBB31_12, $116(%rip) - WORD $0xce83; BYTE $0x02 // orl $2, %esi - LONG $0x0001bd41; WORD $0x0000 // movl $1, %r13d - WORD $0x3941; BYTE $0xf7 // cmpl %esi, %r15d - LONG $0x000e870f; WORD $0x0000 // ja LBB31_10, $14(%rip) - WORD $0x940f; BYTE $0xc1 // sete %cl - LONG $0x02eac041 // shrb $2, %r10b - WORD $0x2041; BYTE $0xca // andb %cl, %r10b - LONG $0xeab60f45 // movzbl %r10b, %r13d - -LBB31_10: - WORD $0x0141; BYTE $0xc5 // addl %eax, %r13d - LONG $0xa0fd8141; WORD $0x0186; BYTE $0x00 // cmpl $100000, %r13d - LONG $0x0059820f; WORD $0x0000 // jb LBB31_17, $89(%rip) - -LBB31_13: - LONG $0x000006be; BYTE $0x00 // movl $6, %esi - LONG $0x40fd8141; WORD $0x0f42; BYTE $0x00 // cmpl $1000000, %r13d - LONG $0x0086820f; WORD $0x0000 // jb LBB31_22, $134(%rip) - LONG $0x000007be; BYTE $0x00 // movl $7, %esi - LONG $0x80fd8141; WORD $0x9896; BYTE $0x00 // cmpl $10000000, %r13d - LONG $0x0074820f; WORD $0x0000 // jb LBB31_22, $116(%rip) - LONG $0x00fd8141; WORD $0xf5e1; BYTE $0x05 // cmpl $100000000, %r13d - LONG $0x000009be; BYTE $0x00 // movl $9, %esi - LONG $0x000060e9; BYTE $0x00 // jmp LBB31_21, $96(%rip) - -LBB31_11: - LONG $0x3000c641 // movb $48, (%r8) - WORD $0x2941; BYTE $0xf8 // subl %edi, %r8d - WORD $0xff41; BYTE $0xc0 // incl %r8d - LONG $0x000af9e9; BYTE $0x00 // jmp LBB31_137, $2809(%rip) - -LBB31_12: - WORD $0xd139 // cmpl %edx, %ecx - WORD $0xd883; BYTE $0xff // sbbl $-1, %eax - WORD $0x8941; BYTE $0xc5 // movl %eax, %r13d - LONG $0xa0fd8141; WORD $0x0186; BYTE $0x00 // cmpl $100000, %r13d - LONG $0xffa7830f; WORD $0xffff // jae LBB31_13, $-89(%rip) - -LBB31_17: - LONG $0x000001be; BYTE $0x00 // movl $1, %esi - LONG $0x0afd8341 // cmpl $10, %r13d - LONG $0x0030820f; WORD $0x0000 // jb LBB31_22, $48(%rip) - LONG $0x000002be; BYTE $0x00 // movl $2, %esi - LONG $0x64fd8341 // cmpl $100, %r13d - LONG $0x0021820f; WORD $0x0000 // jb LBB31_22, $33(%rip) - LONG $0x000003be; BYTE $0x00 // movl $3, %esi - LONG $0xe8fd8141; WORD $0x0003; BYTE $0x00 // cmpl $1000, %r13d - LONG $0x000f820f; WORD $0x0000 // jb LBB31_22, $15(%rip) - LONG $0x10fd8141; WORD $0x0027; BYTE $0x00 // cmpl $10000, %r13d - LONG $0x000005be; BYTE $0x00 // movl $5, %esi - -LBB31_21: - WORD $0xde83; BYTE $0x00 // sbbl $0, %esi - -LBB31_22: - LONG $0x1e148d46 // leal (%rsi,%r11), %r10d - LONG $0x1e448d42; BYTE $0x05 // leal $5(%rsi,%r11), %eax - WORD $0xf883; BYTE $0x1b // cmpl $27, %eax - LONG $0x0075820f; WORD $0x0000 // jb LBB31_26, $117(%rip) - WORD $0xf089 // movl %esi, %eax - LONG $0x00748d4d; BYTE $0x01 // leaq $1(%r8,%rax), %r14 - LONG $0x10fd8141; WORD $0x0027; BYTE $0x00 // cmpl $10000, %r13d - LONG $0x00f3820f; WORD $0x0000 // jb LBB31_30, $243(%rip) - WORD $0x8944; BYTE $0xe8 // movl %r13d, %eax - LONG $0xb71759bb; BYTE $0xd1 // movl $3518437209, %ebx - LONG $0xd8af0f48 // imulq %rax, %rbx - LONG $0x2debc148 // shrq $45, %rbx - LONG $0xd8f0c369; WORD $0xffff // imull $-10000, %ebx, %eax - WORD $0x0144; BYTE $0xe8 // addl %r13d, %eax - LONG $0x048b840f; WORD $0x0000 // je LBB31_62, $1163(%rip) - WORD $0xc189 // movl %eax, %ecx - LONG $0x1fc96948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rcx - LONG $0x25e9c148 // shrq $37, %rcx - WORD $0xd16b; BYTE $0x64 // imull $100, %ecx, %edx - WORD $0xd029 // subl %edx, %eax - LONG $0x32158d48; WORD $0x003f; BYTE $0x00 // leaq $16178(%rip), %rdx /* _Digits(%rip) */ - LONG $0x4204b70f // movzwl (%rdx,%rax,2), %eax - LONG $0x46894166; BYTE $0xfe // movw %ax, $-2(%r14) - LONG $0x4a04b70f // movzwl (%rdx,%rcx,2), %eax - LONG $0x46894166; BYTE $0xfc // movw %ax, $-4(%r14) - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - LONG $0xfc4e8d49 // leaq $-4(%r14), %rcx - WORD $0xfb83; BYTE $0x64 // cmpl $100, %ebx - LONG $0x00ab830f; WORD $0x0000 // jae LBB31_64, $171(%rip) - -LBB31_31: - WORD $0xda89 // movl %ebx, %edx - LONG $0x0000e8e9; BYTE $0x00 // jmp LBB31_66, $232(%rip) - -LBB31_26: - WORD $0x8941; BYTE $0xf4 // movl %esi, %r12d - WORD $0x8545; BYTE $0xdb // testl %r11d, %r11d - LONG $0x021d880f; WORD $0x0000 // js LBB31_38, $541(%rip) - LONG $0x20348d4b // leaq (%r8,%r12), %rsi - LONG $0x10fd8141; WORD $0x0027; BYTE $0x00 // cmpl $10000, %r13d - LONG $0x028d820f; WORD $0x0000 // jb LBB31_43, $653(%rip) - WORD $0x8944; BYTE $0xe8 // movl %r13d, %eax - LONG $0xb71759b9; BYTE $0xd1 // movl $3518437209, %ecx - LONG $0xc8af0f48 // imulq %rax, %rcx - LONG $0x2de9c148 // shrq $45, %rcx - LONG $0xd8f0c169; WORD $0xffff // imull $-10000, %ecx, %eax - WORD $0x0144; BYTE $0xe8 // addl %r13d, %eax - LONG $0x1fd06948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rax, %rdx - LONG $0x25eac148 // shrq $37, %rdx - WORD $0xda6b; BYTE $0x64 // imull $100, %edx, %ebx - WORD $0xd829 // subl %ebx, %eax - LONG $0xbc1d8d48; WORD $0x003e; BYTE $0x00 // leaq $16060(%rip), %rbx /* _Digits(%rip) */ - LONG $0x4304b70f // movzwl (%rbx,%rax,2), %eax - LONG $0xfe468966 // movw %ax, $-2(%rsi) - LONG $0xfc468d48 // leaq $-4(%rsi), %rax - LONG $0x5314b70f // movzwl (%rbx,%rdx,2), %edx - LONG $0xfc568966 // movw %dx, $-4(%rsi) - WORD $0x8941; BYTE $0xcd // movl %ecx, %r13d - LONG $0x64fd8341 // cmpl $100, %r13d - LONG $0x0249830f; WORD $0x0000 // jae LBB31_44, $585(%rip) - -LBB31_29: - WORD $0x8944; BYTE $0xe9 // movl %r13d, %ecx - LONG $0x000286e9; BYTE $0x00 // jmp LBB31_46, $646(%rip) - -LBB31_16: - WORD $0x394c; BYTE $0xe6 // cmpq %r12, %rsi - LONG $0xffdd8341 // sbbl $-1, %r13d - WORD $0xff41; BYTE $0xc3 // incl %r11d - LONG $0xa0fd8141; WORD $0x0186; BYTE $0x00 // cmpl $100000, %r13d - LONG $0xfe54830f; WORD $0xffff // jae LBB31_13, $-428(%rip) - LONG $0xfffea8e9; BYTE $0xff // jmp LBB31_17, $-344(%rip) - -LBB31_30: - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x894c; BYTE $0xf1 // movq %r14, %rcx - WORD $0x8944; BYTE $0xeb // movl %r13d, %ebx - WORD $0xfb83; BYTE $0x64 // cmpl $100, %ebx - LONG $0xff55820f; WORD $0xffff // jb LBB31_31, $-171(%rip) - -LBB31_64: - WORD $0xff48; BYTE $0xc9 // decq %rcx - LONG $0x5b1d8d4c; WORD $0x003e; BYTE $0x00 // leaq $15963(%rip), %r11 /* _Digits(%rip) */ - QUAD $0x9090909090909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB31_65: - WORD $0xda89 // movl %ebx, %edx - LONG $0x1fd26948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rdx, %rdx - LONG $0x25eac148 // shrq $37, %rdx - WORD $0xc26b; BYTE $0x64 // imull $100, %edx, %eax - WORD $0xde89 // movl %ebx, %esi - WORD $0xc629 // subl %eax, %esi - LONG $0x04b70f41; BYTE $0x73 // movzwl (%r11,%rsi,2), %eax - LONG $0xff418966 // movw %ax, $-1(%rcx) - LONG $0xfec18348 // addq $-2, %rcx - LONG $0x270ffb81; WORD $0x0000 // cmpl $9999, %ebx - WORD $0xd389 // movl %edx, %ebx - LONG $0xffd1870f; WORD $0xffff // ja LBB31_65, $-47(%rip) - -LBB31_66: - LONG $0x01708d49 // leaq $1(%r8), %rsi - WORD $0xfa83; BYTE $0x0a // cmpl $10, %edx - LONG $0x001d820f; WORD $0x0000 // jb LBB31_68, $29(%rip) - WORD $0xd089 // movl %edx, %eax - LONG $0x0b0d8d48; WORD $0x003e; BYTE $0x00 // leaq $15883(%rip), %rcx /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x41 // movb (%rcx,%rax,2), %dl - LONG $0x0141448a // movb $1(%rcx,%rax,2), %al - LONG $0x01508841 // movb %dl, $1(%r8) - LONG $0x02408841 // movb %al, $2(%r8) - LONG $0x000005e9; BYTE $0x00 // jmp LBB31_69, $5(%rip) - -LBB31_68: - WORD $0xc280; BYTE $0x30 // addb $48, %dl - WORD $0x1688 // movb %dl, (%rsi) - -LBB31_69: - WORD $0x294d; BYTE $0xce // subq %r9, %r14 - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB31_70: - LONG $0xff7e8041; BYTE $0x30 // cmpb $48, $-1(%r14) - LONG $0xff768d4d // leaq $-1(%r14), %r14 - LONG $0xfff1840f; WORD $0xffff // je LBB31_70, $-15(%rip) - WORD $0x8841; BYTE $0x10 // movb %dl, (%r8) - LONG $0x01468d49 // leaq $1(%r14), %rax - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x2948; BYTE $0xf1 // subq %rsi, %rcx - LONG $0x02f98348 // cmpq $2, %rcx - LONG $0x00068c0f; WORD $0x0000 // jl LBB31_73, $6(%rip) - WORD $0x06c6; BYTE $0x2e // movb $46, (%rsi) - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - -LBB31_73: - LONG $0x6506c641 // movb $101, (%r14) - LONG $0xff428d41 // leal $-1(%r10), %eax - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x01228e0f; WORD $0x0000 // jle LBB31_76, $290(%rip) - LONG $0x0146c641; BYTE $0x2b // movb $43, $1(%r14) - WORD $0xf883; BYTE $0x0a // cmpl $10, %eax - LONG $0x01248c0f; WORD $0x0000 // jl LBB31_77, $292(%rip) - -LBB31_75: - WORD $0x9848 // cltq - LONG $0x8c0d8d48; WORD $0x003d; BYTE $0x00 // leaq $15756(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x46894166; BYTE $0x02 // movw %ax, $2(%r14) - LONG $0x04c68349 // addq $4, %r14 - WORD $0x894d; BYTE $0xf0 // movq %r14, %r8 - LONG $0x000889e9; BYTE $0x00 // jmp LBB31_136, $2185(%rip) - -LBB31_32: - WORD $0xeed3 // shrl %cl, %esi - LONG $0x86a0fe81; WORD $0x0001 // cmpl $100000, %esi - LONG $0x01f1820f; WORD $0x0000 // jb LBB31_52, $497(%rip) - LONG $0x000006b8; BYTE $0x00 // movl $6, %eax - LONG $0x4240fe81; WORD $0x000f // cmpl $1000000, %esi - LONG $0x0020820f; WORD $0x0000 // jb LBB31_36, $32(%rip) - LONG $0x000007b8; BYTE $0x00 // movl $7, %eax - LONG $0x9680fe81; WORD $0x0098 // cmpl $10000000, %esi - LONG $0x000f820f; WORD $0x0000 // jb LBB31_36, $15(%rip) - LONG $0xe100fe81; WORD $0x05f5 // cmpl $100000000, %esi - LONG $0x000009b8; BYTE $0x00 // movl $9, %eax - LONG $0x00d88348 // sbbq $0, %rax - -LBB31_36: - WORD $0x014c; BYTE $0xc0 // addq %r8, %rax - -LBB31_37: - WORD $0xf189 // movl %esi, %ecx - LONG $0xb71759ba; BYTE $0xd1 // movl $3518437209, %edx - LONG $0xd1af0f48 // imulq %rcx, %rdx - LONG $0x2deac148 // shrq $45, %rdx - LONG $0xd8f0ca69; WORD $0xffff // imull $-10000, %edx, %ecx - WORD $0xf101 // addl %esi, %ecx - LONG $0x1ff16948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rsi - LONG $0x25eec148 // shrq $37, %rsi - WORD $0xde6b; BYTE $0x64 // imull $100, %esi, %ebx - WORD $0xd929 // subl %ebx, %ecx - LONG $0x071d8d48; WORD $0x003d; BYTE $0x00 // leaq $15623(%rip), %rbx /* _Digits(%rip) */ - LONG $0x4b0cb70f // movzwl (%rbx,%rcx,2), %ecx - LONG $0xfe488966 // movw %cx, $-2(%rax) - LONG $0x730cb70f // movzwl (%rbx,%rsi,2), %ecx - LONG $0xfc488966 // movw %cx, $-4(%rax) - WORD $0x8949; BYTE $0xc1 // movq %rax, %r9 - LONG $0xfcc08348 // addq $-4, %rax - WORD $0xd689 // movl %edx, %esi - WORD $0xfe83; BYTE $0x64 // cmpl $100, %esi - LONG $0x01ac830f; WORD $0x0000 // jae LBB31_56, $428(%rip) - LONG $0x0001efe9; BYTE $0x00 // jmp LBB31_58, $495(%rip) - -LBB31_38: - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x04878f0f; WORD $0x0000 // jg LBB31_96, $1159(%rip) - LONG $0x00c74166; WORD $0x2e30 // movw $11824, (%r8) - LONG $0x02c08349 // addq $2, %r8 - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x0474890f; WORD $0x0000 // jns LBB31_96, $1140(%rip) - WORD $0xd6f7 // notl %esi - WORD $0x2944; BYTE $0xde // subl %r11d, %esi - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - WORD $0xfe83; BYTE $0x7f // cmpl $127, %esi - LONG $0x043e820f; WORD $0x0000 // jb LBB31_94, $1086(%rip) - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x8949; BYTE $0xf7 // movq %rsi, %r15 - LONG $0x80e78349 // andq $-128, %r15 - LONG $0x80478d49 // leaq $-128(%r15), %rax - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - LONG $0x07eec149 // shrq $7, %r14 - WORD $0xff49; BYTE $0xc6 // incq %r14 - WORD $0x8945; BYTE $0xf3 // movl %r14d, %r11d - LONG $0x03e38341 // andl $3, %r11d - LONG $0x01803d48; WORD $0x0000 // cmpq $384, %rax - LONG $0x0321830f; WORD $0x0000 // jae LBB31_88, $801(%rip) - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0x0003c4e9; BYTE $0x00 // jmp LBB31_90, $964(%rip) - -LBB31_76: - LONG $0x0146c641; BYTE $0x2d // movb $45, $1(%r14) - WORD $0xd8f7 // negl %eax - WORD $0xf883; BYTE $0x0a // cmpl $10, %eax - LONG $0xfedc8d0f; WORD $0xffff // jge LBB31_75, $-292(%rip) - -LBB31_77: - WORD $0x3004 // addb $48, %al - LONG $0x02468841 // movb %al, $2(%r14) - LONG $0x03c68349 // addq $3, %r14 - WORD $0x894d; BYTE $0xf0 // movq %r14, %r8 - LONG $0x000771e9; BYTE $0x00 // jmp LBB31_136, $1905(%rip) - -LBB31_43: - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - LONG $0x64fd8341 // cmpl $100, %r13d - LONG $0xfdb7820f; WORD $0xffff // jb LBB31_29, $-585(%rip) - -LBB31_44: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0x481d8d4c; WORD $0x003c; BYTE $0x00 // leaq $15432(%rip), %r11 /* _Digits(%rip) */ - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB31_45: - WORD $0x8944; BYTE $0xe9 // movl %r13d, %ecx - LONG $0x1fc96948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rcx - LONG $0x25e9c148 // shrq $37, %rcx - WORD $0xd96b; BYTE $0x64 // imull $100, %ecx, %ebx - WORD $0x8944; BYTE $0xea // movl %r13d, %edx - WORD $0xda29 // subl %ebx, %edx - LONG $0x14b70f41; BYTE $0x53 // movzwl (%r11,%rdx,2), %edx - LONG $0xff508966 // movw %dx, $-1(%rax) - LONG $0xfec08348 // addq $-2, %rax - LONG $0x0ffd8141; WORD $0x0027; BYTE $0x00 // cmpl $9999, %r13d - WORD $0x8941; BYTE $0xcd // movl %ecx, %r13d - LONG $0xffcd870f; WORD $0xffff // ja LBB31_45, $-51(%rip) - -LBB31_46: - WORD $0x6349; BYTE $0xc2 // movslq %r10d, %rax - WORD $0xf983; BYTE $0x0a // cmpl $10, %ecx - LONG $0x0022820f; WORD $0x0000 // jb LBB31_48, $34(%rip) - WORD $0xc989 // movl %ecx, %ecx - LONG $0xf8158d48; WORD $0x003b; BYTE $0x00 // leaq $15352(%rip), %rdx /* _Digits(%rip) */ - LONG $0x4a0cb70f // movzwl (%rdx,%rcx,2), %ecx - LONG $0x08894166 // movw %cx, (%r8) - WORD $0x0149; BYTE $0xc0 // addq %rax, %r8 - WORD $0x3949; BYTE $0xc4 // cmpq %rax, %r12 - LONG $0x00178c0f; WORD $0x0000 // jl LBB31_49, $23(%rip) - LONG $0x0006f1e9; BYTE $0x00 // jmp LBB31_136, $1777(%rip) - -LBB31_48: - WORD $0xc180; BYTE $0x30 // addb $48, %cl - WORD $0x8841; BYTE $0x08 // movb %cl, (%r8) - WORD $0x0149; BYTE $0xc0 // addq %rax, %r8 - WORD $0x3949; BYTE $0xc4 // cmpq %rax, %r12 - LONG $0x06df8d0f; WORD $0x0000 // jge LBB31_136, $1759(%rip) - -LBB31_49: - LONG $0x21048d4b // leaq (%r9,%r12), %rax - LONG $0x075c8d4c; BYTE $0x01 // leaq $1(%rdi,%rax), %r11 - WORD $0x394d; BYTE $0xc3 // cmpq %r8, %r11 - LONG $0xd8460f4d // cmovbeq %r8, %r11 - LONG $0x0f0c8d4a // leaq (%rdi,%r9), %rcx - WORD $0x014c; BYTE $0xe1 // addq %r12, %rcx - WORD $0x2949; BYTE $0xcb // subq %rcx, %r11 - LONG $0x80fb8149; WORD $0x0000; BYTE $0x00 // cmpq $128, %r11 - LONG $0x0206820f; WORD $0x0000 // jb LBB31_85, $518(%rip) - WORD $0x894d; BYTE $0xda // movq %r11, %r10 - LONG $0x80e28349 // andq $-128, %r10 - LONG $0x804a8d49 // leaq $-128(%r10), %rcx - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - LONG $0x07ebc148 // shrq $7, %rbx - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0xda89 // movl %ebx, %edx - WORD $0xe283; BYTE $0x03 // andl $3, %edx - LONG $0x80f98148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rcx - LONG $0x00d7830f; WORD $0x0000 // jae LBB31_78, $215(%rip) - WORD $0xc031 // xorl %eax, %eax - LONG $0x000188e9; BYTE $0x00 // jmp LBB31_80, $392(%rip) - -LBB31_52: - LONG $0x0001b941; WORD $0x0000 // movl $1, %r9d - WORD $0xfe83; BYTE $0x0a // cmpl $10, %esi - LONG $0x0021820f; WORD $0x0000 // jb LBB31_55, $33(%rip) - LONG $0x0002b941; WORD $0x0000 // movl $2, %r9d - WORD $0xfe83; BYTE $0x64 // cmpl $100, %esi - LONG $0x0012820f; WORD $0x0000 // jb LBB31_55, $18(%rip) - LONG $0x0003b941; WORD $0x0000 // movl $3, %r9d - LONG $0x03e8fe81; WORD $0x0000 // cmpl $1000, %esi - LONG $0x01bc830f; WORD $0x0000 // jae LBB31_86, $444(%rip) - -LBB31_55: - WORD $0x014d; BYTE $0xc1 // addq %r8, %r9 - WORD $0x894c; BYTE $0xc8 // movq %r9, %rax - WORD $0xfe83; BYTE $0x64 // cmpl $100, %esi - LONG $0x0048820f; WORD $0x0000 // jb LBB31_58, $72(%rip) - -LBB31_56: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0x2f158d4c; WORD $0x003b; BYTE $0x00 // leaq $15151(%rip), %r10 /* _Digits(%rip) */ - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB31_57: - WORD $0xf389 // movl %esi, %ebx - WORD $0xf689 // movl %esi, %esi - LONG $0x1ff66948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rsi, %rsi - LONG $0x25eec148 // shrq $37, %rsi - WORD $0xce6b; BYTE $0x64 // imull $100, %esi, %ecx - WORD $0xda89 // movl %ebx, %edx - WORD $0xca29 // subl %ecx, %edx - LONG $0x0cb70f41; BYTE $0x52 // movzwl (%r10,%rdx,2), %ecx - LONG $0xff488966 // movw %cx, $-1(%rax) - LONG $0xfec08348 // addq $-2, %rax - LONG $0x270ffb81; WORD $0x0000 // cmpl $9999, %ebx - LONG $0xffd1870f; WORD $0xffff // ja LBB31_57, $-47(%rip) - -LBB31_58: - WORD $0xfe83; BYTE $0x0a // cmpl $10, %esi - LONG $0x0016820f; WORD $0x0000 // jb LBB31_60, $22(%rip) - WORD $0xf089 // movl %esi, %eax - LONG $0xdf0d8d48; WORD $0x003a; BYTE $0x00 // leaq $15071(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x00894166 // movw %ax, (%r8) - LONG $0x000007e9; BYTE $0x00 // jmp LBB31_61, $7(%rip) - -LBB31_60: - LONG $0x30c68040 // addb $48, %sil - WORD $0x8841; BYTE $0x30 // movb %sil, (%r8) - -LBB31_61: - WORD $0x2941; BYTE $0xf9 // subl %edi, %r9d - WORD $0x8945; BYTE $0xc8 // movl %r9d, %r8d - LONG $0x0005d5e9; BYTE $0x00 // jmp LBB31_137, $1493(%rip) - -LBB31_62: - LONG $0x0004b941; WORD $0x0000 // movl $4, %r9d - LONG $0xfc4e8d49 // leaq $-4(%r14), %rcx - WORD $0xfb83; BYTE $0x64 // cmpl $100, %ebx - LONG $0xfb9d820f; WORD $0xffff // jb LBB31_31, $-1123(%rip) - LONG $0xfffc43e9; BYTE $0xff // jmp LBB31_64, $-957(%rip) - -LBB31_78: - QUAD $0x000001e0078c8d48 // leaq $480(%rdi,%rax), %rcx - LONG $0xfce38348 // andq $-4, %rbx - WORD $0xf748; BYTE $0xdb // negq %rbx - WORD $0xc031 // xorl %eax, %eax - QUAD $0xfffff87f056ffdc5 // vmovdqa $-1921(%rip), %ymm0 /* LCPI31_0(%rip) */ - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB31_79: - QUAD $0xfffe2001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-480(%rcx,%rax) - QUAD $0xfffe4001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-448(%rcx,%rax) - QUAD $0xfffe6001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-416(%rcx,%rax) - QUAD $0xfffe8001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-384(%rcx,%rax) - QUAD $0xfffea001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-352(%rcx,%rax) - QUAD $0xfffec001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-320(%rcx,%rax) - QUAD $0xfffee001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-288(%rcx,%rax) - QUAD $0xffff0001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-256(%rcx,%rax) - QUAD $0xffff2001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-224(%rcx,%rax) - QUAD $0xffff4001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-192(%rcx,%rax) - QUAD $0xffff6001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-160(%rcx,%rax) - LONG $0x447ffec5; WORD $0x8001 // vmovdqu %ymm0, $-128(%rcx,%rax) - LONG $0x447ffec5; WORD $0xa001 // vmovdqu %ymm0, $-96(%rcx,%rax) - LONG $0x447ffec5; WORD $0xc001 // vmovdqu %ymm0, $-64(%rcx,%rax) - LONG $0x447ffec5; WORD $0xe001 // vmovdqu %ymm0, $-32(%rcx,%rax) - LONG $0x047ffec5; BYTE $0x01 // vmovdqu %ymm0, (%rcx,%rax) - LONG $0x02000548; WORD $0x0000 // addq $512, %rax - LONG $0x04c38348 // addq $4, %rbx - LONG $0xff70850f; WORD $0xffff // jne LBB31_79, $-144(%rip) - -LBB31_80: - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0037840f; WORD $0x0000 // je LBB31_83, $55(%rip) - WORD $0x014c; BYTE $0xc8 // addq %r9, %rax - WORD $0x014c; BYTE $0xe0 // addq %r12, %rax - LONG $0x07448d48; BYTE $0x60 // leaq $96(%rdi,%rax), %rax - WORD $0xf748; BYTE $0xda // negq %rdx - QUAD $0xfffff7c1056ffdc5 // vmovdqa $-2111(%rip), %ymm0 /* LCPI31_0(%rip) */ - BYTE $0x90 // .p2align 4, 0x90 - -LBB31_82: - LONG $0x407ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rax) - LONG $0x407ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rax) - LONG $0x407ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rax) - LONG $0x007ffec5 // vmovdqu %ymm0, (%rax) - LONG $0x80e88348 // subq $-128, %rax - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0xffe0850f; WORD $0xffff // jne LBB31_82, $-32(%rip) - -LBB31_83: - WORD $0x394d; BYTE $0xda // cmpq %r11, %r10 - LONG $0x04b9840f; WORD $0x0000 // je LBB31_136, $1209(%rip) - WORD $0x014c; BYTE $0xd6 // addq %r10, %rsi - LONG $0x90909090 // .p2align 4, 0x90 - -LBB31_85: - WORD $0x06c6; BYTE $0x30 // movb $48, (%rsi) - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x394c; BYTE $0xc6 // cmpq %r8, %rsi - LONG $0xfff1820f; WORD $0xffff // jb LBB31_85, $-15(%rip) - LONG $0x00049ee9; BYTE $0x00 // jmp LBB31_136, $1182(%rip) - -LBB31_86: - LONG $0x2710fe81; WORD $0x0000 // cmpl $10000, %esi - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - LONG $0x00d88348 // sbbq $0, %rax - LONG $0x05c08348 // addq $5, %rax - LONG $0x2710fe81; WORD $0x0000 // cmpl $10000, %esi - LONG $0xfc3a830f; WORD $0xffff // jae LBB31_37, $-966(%rip) - WORD $0x8949; BYTE $0xc1 // movq %rax, %r9 - LONG $0xfffe2ee9; BYTE $0xff // jmp LBB31_56, $-466(%rip) - -LBB31_88: - QUAD $0x000001e239848d49 // leaq $482(%r9,%rdi), %rax - LONG $0xfce68349 // andq $-4, %r14 - WORD $0xf749; BYTE $0xde // negq %r14 - WORD $0xdb31 // xorl %ebx, %ebx - QUAD $0xfffff73e056ffdc5 // vmovdqa $-2242(%rip), %ymm0 /* LCPI31_0(%rip) */ - -LBB31_89: - QUAD $0xfffe2018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-480(%rax,%rbx) - QUAD $0xfffe4018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-448(%rax,%rbx) - QUAD $0xfffe6018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-416(%rax,%rbx) - QUAD $0xfffe8018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-384(%rax,%rbx) - QUAD $0xfffea018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-352(%rax,%rbx) - QUAD $0xfffec018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-320(%rax,%rbx) - QUAD $0xfffee018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-288(%rax,%rbx) - QUAD $0xffff0018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-256(%rax,%rbx) - QUAD $0xffff2018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-224(%rax,%rbx) - QUAD $0xffff4018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-192(%rax,%rbx) - QUAD $0xffff6018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-160(%rax,%rbx) - LONG $0x447ffec5; WORD $0x8018 // vmovdqu %ymm0, $-128(%rax,%rbx) - LONG $0x447ffec5; WORD $0xa018 // vmovdqu %ymm0, $-96(%rax,%rbx) - LONG $0x447ffec5; WORD $0xc018 // vmovdqu %ymm0, $-64(%rax,%rbx) - LONG $0x447ffec5; WORD $0xe018 // vmovdqu %ymm0, $-32(%rax,%rbx) - LONG $0x047ffec5; BYTE $0x18 // vmovdqu %ymm0, (%rax,%rbx) - LONG $0x00c38148; WORD $0x0002; BYTE $0x00 // addq $512, %rbx - LONG $0x04c68349 // addq $4, %r14 - LONG $0xff6f850f; WORD $0xffff // jne LBB31_89, $-145(%rip) - -LBB31_90: - WORD $0x854d; BYTE $0xdb // testq %r11, %r11 - LONG $0x0033840f; WORD $0x0000 // je LBB31_93, $51(%rip) - WORD $0x014c; BYTE $0xcb // addq %r9, %rbx - LONG $0x1f448d48; BYTE $0x62 // leaq $98(%rdi,%rbx), %rax - WORD $0xf749; BYTE $0xdb // negq %r11 - QUAD $0xfffff691056ffdc5 // vmovdqa $-2415(%rip), %ymm0 /* LCPI31_0(%rip) */ - -LBB31_92: - LONG $0x407ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rax) - LONG $0x407ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rax) - LONG $0x407ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rax) - LONG $0x007ffec5 // vmovdqu %ymm0, (%rax) - LONG $0x80e88348 // subq $-128, %rax - WORD $0xff49; BYTE $0xc3 // incq %r11 - LONG $0xffe0850f; WORD $0xffff // jne LBB31_92, $-32(%rip) - -LBB31_93: - WORD $0x014d; BYTE $0xf8 // addq %r15, %r8 - WORD $0x394c; BYTE $0xfe // cmpq %r15, %rsi - LONG $0x0025840f; WORD $0x0000 // je LBB31_96, $37(%rip) - -LBB31_94: - WORD $0x0145; BYTE $0xd7 // addl %r10d, %r15d - WORD $0xf741; BYTE $0xdf // negl %r15d - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB31_95: - LONG $0x3000c641 // movb $48, (%r8) - WORD $0xff49; BYTE $0xc0 // incq %r8 - WORD $0xff41; BYTE $0xcf // decl %r15d - LONG $0xfff0850f; WORD $0xffff // jne LBB31_95, $-16(%rip) - -LBB31_96: - LONG $0x20048d4b // leaq (%r8,%r12), %rax - LONG $0x10fd8141; WORD $0x0027; BYTE $0x00 // cmpl $10000, %r13d - LONG $0x0063820f; WORD $0x0000 // jb LBB31_99, $99(%rip) - WORD $0x8944; BYTE $0xe9 // movl %r13d, %ecx - LONG $0x1759bb41; WORD $0xd1b7 // movl $3518437209, %r11d - LONG $0xd9af0f4c // imulq %rcx, %r11 - LONG $0x2debc149 // shrq $45, %r11 - LONG $0xf0cb6941; WORD $0xffd8; BYTE $0xff // imull $-10000, %r11d, %ecx - WORD $0x0144; BYTE $0xe9 // addl %r13d, %ecx - LONG $0x0190840f; WORD $0x0000 // je LBB31_101, $400(%rip) - WORD $0xca89 // movl %ecx, %edx - LONG $0x1fd26948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rdx, %rdx - LONG $0x25eac148 // shrq $37, %rdx - WORD $0xda6b; BYTE $0x64 // imull $100, %edx, %ebx - WORD $0xd929 // subl %ebx, %ecx - LONG $0x051d8d48; WORD $0x0038; BYTE $0x00 // leaq $14341(%rip), %rbx /* _Digits(%rip) */ - LONG $0x4b0cb70f // movzwl (%rbx,%rcx,2), %ecx - LONG $0xfe488966 // movw %cx, $-2(%rax) - LONG $0x530cb70f // movzwl (%rbx,%rdx,2), %ecx - LONG $0xfc488966 // movw %cx, $-4(%rax) - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - LONG $0xfcc08348 // addq $-4, %rax - LONG $0x64fb8341 // cmpl $100, %r11d - LONG $0x0018830f; WORD $0x0000 // jae LBB31_103, $24(%rip) - -LBB31_100: - WORD $0x8944; BYTE $0xd9 // movl %r11d, %ecx - LONG $0x00004ee9; BYTE $0x00 // jmp LBB31_105, $78(%rip) - -LBB31_99: - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x8945; BYTE $0xeb // movl %r13d, %r11d - LONG $0x64fb8341 // cmpl $100, %r11d - LONG $0xffe8820f; WORD $0xffff // jb LBB31_100, $-24(%rip) - -LBB31_103: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0xc2158d48; WORD $0x0037; BYTE $0x00 // leaq $14274(%rip), %rdx /* _Digits(%rip) */ - WORD $0x9090 // .p2align 4, 0x90 - -LBB31_104: - WORD $0x8944; BYTE $0xd9 // movl %r11d, %ecx - LONG $0x1fc96948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rcx - LONG $0x25e9c148 // shrq $37, %rcx - WORD $0xd96b; BYTE $0x64 // imull $100, %ecx, %ebx - WORD $0x8944; BYTE $0xde // movl %r11d, %esi - WORD $0xde29 // subl %ebx, %esi - LONG $0x7234b70f // movzwl (%rdx,%rsi,2), %esi - LONG $0xff708966 // movw %si, $-1(%rax) - LONG $0xfec08348 // addq $-2, %rax - LONG $0x0ffb8141; WORD $0x0027; BYTE $0x00 // cmpl $9999, %r11d - WORD $0x8941; BYTE $0xcb // movl %ecx, %r11d - LONG $0xffce870f; WORD $0xffff // ja LBB31_104, $-50(%rip) - -LBB31_105: - WORD $0xf983; BYTE $0x0a // cmpl $10, %ecx - LONG $0x0016820f; WORD $0x0000 // jb LBB31_107, $22(%rip) - WORD $0xc889 // movl %ecx, %eax - LONG $0x7c0d8d48; WORD $0x0037; BYTE $0x00 // leaq $14204(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x00894166 // movw %ax, (%r8) - LONG $0x000006e9; BYTE $0x00 // jmp LBB31_108, $6(%rip) - -LBB31_107: - WORD $0xc180; BYTE $0x30 // addb $48, %cl - WORD $0x8841; BYTE $0x08 // movb %cl, (%r8) - -LBB31_108: - WORD $0x294d; BYTE $0xcc // subq %r9, %r12 - LONG $0x24548d49; BYTE $0x01 // leaq $1(%r12), %rdx - LONG $0x24748d49; BYTE $0x61 // leaq $97(%r12), %rsi - LONG $0x24448d49; BYTE $0x02 // leaq $2(%r12), %rax - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB31_109: - WORD $0xff48; BYTE $0xce // decq %rsi - WORD $0xff48; BYTE $0xca // decq %rdx - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0x207c8043; WORD $0x30ff // cmpb $48, $-1(%r8,%r12) - LONG $0x24648d4d; BYTE $0xff // leaq $-1(%r12), %r12 - LONG $0xffe6840f; WORD $0xffff // je LBB31_109, $-26(%rip) - LONG $0x100c8d4d // leaq (%r8,%rdx), %r9 - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x00938e0f; WORD $0x0000 // jle LBB31_115, $147(%rip) - WORD $0x8944; BYTE $0xc9 // movl %r9d, %ecx - WORD $0x2944; BYTE $0xc1 // subl %r8d, %ecx - WORD $0xcb89 // movl %ecx, %ebx - WORD $0x2944; BYTE $0xd3 // subl %r10d, %ebx - LONG $0x00278e0f; WORD $0x0000 // jle LBB31_116, $39(%rip) - WORD $0xdb85 // testl %ebx, %ebx - LONG $0x00fa8e0f; WORD $0x0000 // jle LBB31_127, $250(%rip) - WORD $0x8941; BYTE $0xdb // movl %ebx, %r11d - LONG $0xff4b8d49 // leaq $-1(%r11), %rcx - WORD $0x8945; BYTE $0xd9 // movl %r11d, %r9d - LONG $0x03e18341 // andl $3, %r9d - LONG $0x03f98348 // cmpq $3, %rcx - LONG $0x0083830f; WORD $0x0000 // jae LBB31_121, $131(%rip) - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x0000ade9; BYTE $0x00 // jmp LBB31_124, $173(%rip) - -LBB31_116: - WORD $0x8945; BYTE $0xd6 // movl %r10d, %r14d - WORD $0x2941; BYTE $0xce // subl %ecx, %r14d - LONG $0x004f8e0f; WORD $0x0000 // jle LBB31_115, $79(%rip) - WORD $0x0145; BYTE $0xc2 // addl %r8d, %r10d - WORD $0x8945; BYTE $0xcb // movl %r9d, %r11d - WORD $0xf741; BYTE $0xd3 // notl %r11d - WORD $0x0145; BYTE $0xd3 // addl %r10d, %r11d - WORD $0xc031 // xorl %eax, %eax - LONG $0x7efb8341 // cmpl $126, %r11d - LONG $0x01bd860f; WORD $0x0000 // jbe LBB31_134, $445(%rip) - WORD $0xff49; BYTE $0xc3 // incq %r11 - WORD $0x894c; BYTE $0xd8 // movq %r11, %rax - LONG $0x80e08348 // andq $-128, %rax - LONG $0x000c8d4d // leaq (%r8,%rax), %r9 - LONG $0x80488d48 // leaq $-128(%rax), %rcx - WORD $0x8949; BYTE $0xcf // movq %rcx, %r15 - LONG $0x07efc149 // shrq $7, %r15 - WORD $0xff49; BYTE $0xc7 // incq %r15 - WORD $0x8945; BYTE $0xfa // movl %r15d, %r10d - LONG $0x03e28341 // andl $3, %r10d - LONG $0x80f98148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rcx - LONG $0x0097830f; WORD $0x0000 // jae LBB31_128, $151(%rip) - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x000139e9; BYTE $0x00 // jmp LBB31_130, $313(%rip) - -LBB31_115: - WORD $0x894d; BYTE $0xc8 // movq %r9, %r8 - LONG $0x0001a0e9; BYTE $0x00 // jmp LBB31_136, $416(%rip) - -LBB31_101: - LONG $0x0004b941; WORD $0x0000 // movl $4, %r9d - LONG $0xfcc08348 // addq $-4, %rax - LONG $0x64fb8341 // cmpl $100, %r11d - LONG $0xfe96820f; WORD $0xffff // jb LBB31_100, $-362(%rip) - LONG $0xfffea9e9; BYTE $0xff // jmp LBB31_103, $-343(%rip) - -LBB31_121: - LONG $0xfce38341 // andl $-4, %r11d - WORD $0xf749; BYTE $0xdb // negq %r11 - WORD $0xc931 // xorl %ecx, %ecx - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB31_122: - LONG $0x081c8d49 // leaq (%r8,%rcx), %rbx - LONG $0xfc1a748b // movl $-4(%rdx,%rbx), %esi - LONG $0xfd1a7489 // movl %esi, $-3(%rdx,%rbx) - LONG $0xfcc18348 // addq $-4, %rcx - WORD $0x3949; BYTE $0xcb // cmpq %rcx, %r11 - LONG $0xffe7850f; WORD $0xffff // jne LBB31_122, $-25(%rip) - WORD $0xf748; BYTE $0xd9 // negq %rcx - -LBB31_124: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x0025840f; WORD $0x0000 // je LBB31_127, $37(%rip) - WORD $0xf749; BYTE $0xd9 // negq %r9 - WORD $0x894c; BYTE $0xc2 // movq %r8, %rdx - WORD $0x2948; BYTE $0xca // subq %rcx, %rdx - WORD $0xc931 // xorl %ecx, %ecx - - // .p2align 4, 0x90 -LBB31_126: - LONG $0x0a348d48 // leaq (%rdx,%rcx), %rsi - LONG $0x1cb60f41; BYTE $0x34 // movzbl (%r12,%rsi), %ebx - LONG $0x345c8841; BYTE $0x01 // movb %bl, $1(%r12,%rsi) - WORD $0xff48; BYTE $0xc9 // decq %rcx - WORD $0x3949; BYTE $0xc9 // cmpq %rcx, %r9 - LONG $0xffe6850f; WORD $0xffff // jne LBB31_126, $-26(%rip) - -LBB31_127: - WORD $0x6349; BYTE $0xca // movslq %r10d, %rcx - LONG $0x0804c641; BYTE $0x2e // movb $46, (%r8,%rcx) - WORD $0x0149; BYTE $0xc0 // addq %rax, %r8 - LONG $0x000118e9; BYTE $0x00 // jmp LBB31_136, $280(%rip) - -LBB31_128: - LONG $0xfce78349 // andq $-4, %r15 - WORD $0xf749; BYTE $0xdf // negq %r15 - WORD $0xc931 // xorl %ecx, %ecx - QUAD $0xfffff3e5056ffdc5 // vmovdqa $-3099(%rip), %ymm0 /* LCPI31_0(%rip) */ - -LBB31_129: - LONG $0x081c8d49 // leaq (%r8,%rcx), %rbx - LONG $0x047ffec5; BYTE $0x1a // vmovdqu %ymm0, (%rdx,%rbx) - LONG $0x447ffec5; WORD $0x201a // vmovdqu %ymm0, $32(%rdx,%rbx) - LONG $0x447ffec5; WORD $0x401a // vmovdqu %ymm0, $64(%rdx,%rbx) - LONG $0x447ffec5; WORD $0x601a // vmovdqu %ymm0, $96(%rdx,%rbx) - QUAD $0x0000801a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $128(%rdx,%rbx) - QUAD $0x0000a01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $160(%rdx,%rbx) - QUAD $0x0000c01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $192(%rdx,%rbx) - QUAD $0x0000e01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $224(%rdx,%rbx) - QUAD $0x0001001a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $256(%rdx,%rbx) - QUAD $0x0001201a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $288(%rdx,%rbx) - QUAD $0x0001401a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $320(%rdx,%rbx) - QUAD $0x0001601a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $352(%rdx,%rbx) - QUAD $0x0001801a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $384(%rdx,%rbx) - QUAD $0x0001a01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $416(%rdx,%rbx) - QUAD $0x0001c01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $448(%rdx,%rbx) - QUAD $0x0001e01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $480(%rdx,%rbx) - LONG $0x00c18148; WORD $0x0002; BYTE $0x00 // addq $512, %rcx - LONG $0x04c78349 // addq $4, %r15 - LONG $0xff68850f; WORD $0xffff // jne LBB31_129, $-152(%rip) - -LBB31_130: - WORD $0x0149; BYTE $0xd1 // addq %rdx, %r9 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x0035840f; WORD $0x0000 // je LBB31_133, $53(%rip) - WORD $0x0149; BYTE $0xc8 // addq %rcx, %r8 - WORD $0x0149; BYTE $0xf0 // addq %rsi, %r8 - WORD $0xf749; BYTE $0xda // negq %r10 - QUAD $0xfffff330056ffdc5 // vmovdqa $-3280(%rip), %ymm0 /* LCPI31_0(%rip) */ - -LBB31_132: - LONG $0x7f7ec1c4; WORD $0xa040 // vmovdqu %ymm0, $-96(%r8) - LONG $0x7f7ec1c4; WORD $0xc040 // vmovdqu %ymm0, $-64(%r8) - LONG $0x7f7ec1c4; WORD $0xe040 // vmovdqu %ymm0, $-32(%r8) - LONG $0x7f7ec1c4; BYTE $0x00 // vmovdqu %ymm0, (%r8) - LONG $0x80e88349 // subq $-128, %r8 - WORD $0xff49; BYTE $0xc2 // incq %r10 - LONG $0xffdc850f; WORD $0xffff // jne LBB31_132, $-36(%rip) - -LBB31_133: - WORD $0x894d; BYTE $0xc8 // movq %r9, %r8 - WORD $0x3949; BYTE $0xc3 // cmpq %rax, %r11 - LONG $0x0022840f; WORD $0x0000 // je LBB31_136, $34(%rip) - -LBB31_134: - WORD $0x894d; BYTE $0xc8 // movq %r9, %r8 - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB31_135: - LONG $0x3000c641 // movb $48, (%r8) - WORD $0xff49; BYTE $0xc0 // incq %r8 - WORD $0xc0ff // incl %eax - WORD $0x3944; BYTE $0xf0 // cmpl %r14d, %eax - LONG $0xffee8c0f; WORD $0xffff // jl LBB31_135, $-18(%rip) - -LBB31_136: - WORD $0x2941; BYTE $0xf8 // subl %edi, %r8d - -LBB31_137: - WORD $0x8944; BYTE $0xc0 // movl %r8d, %eax - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB31_138: - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - LONG $0xffffe7e9; BYTE $0xff // jmp LBB31_137, $-25(%rip) - -LBB31_139: - LONG $0xff6bbf41; WORD $0xffff // movl $-149, %r15d - WORD $0xc689 // movl %eax, %esi - LONG $0xfff352e9; BYTE $0xff // jmp LBB31_5, $-3246(%rip) - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -_format_significand: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - WORD $0x634c; BYTE $0xc2 // movslq %edx, %r8 - WORD $0x0149; BYTE $0xf0 // addq %rsi, %r8 - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x20e8c148 // shrq $32, %rax - LONG $0x001c850f; WORD $0x0000 // jne LBB32_2, $28(%rip) - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x894d; BYTE $0xc6 // movq %r8, %r14 - WORD $0x8948; BYTE $0xfa // movq %rdi, %rdx - LONG $0x2710fa81; WORD $0x0000 // cmpl $10000, %edx - LONG $0x00e3830f; WORD $0x0000 // jae LBB32_8, $227(%rip) - -LBB32_7: - WORD $0xd789 // movl %edx, %edi - LONG $0x000132e9; BYTE $0x00 // jmp LBB32_10, $306(%rip) - -LBB32_2: - QUAD $0x77118461cefdb948; WORD $0xabcc // movabsq $-6067343680855748867, %rcx - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - WORD $0xf748; BYTE $0xe1 // mulq %rcx - LONG $0x1aeac148 // shrq $26, %rdx - LONG $0x1f00ca69; WORD $0xfa0a // imull $-100000000, %edx, %ecx - WORD $0xf901 // addl %edi, %ecx - LONG $0x00a4840f; WORD $0x0000 // je LBB32_3, $164(%rip) - WORD $0xc889 // movl %ecx, %eax - LONG $0x1759b941; WORD $0xd1b7 // movl $3518437209, %r9d - LONG $0xc1af0f49 // imulq %r9, %rax - LONG $0x2de8c148 // shrq $45, %rax - LONG $0x2710f869; WORD $0x0000 // imull $10000, %eax, %edi - WORD $0xf929 // subl %edi, %ecx - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0xf9af0f49 // imulq %r9, %rdi - LONG $0x2defc148 // shrq $45, %rdi - LONG $0x2710ff69; WORD $0x0000 // imull $10000, %edi, %edi - WORD $0xf829 // subl %edi, %eax - WORD $0xb70f; BYTE $0xf9 // movzwl %cx, %edi - WORD $0xefc1; BYTE $0x02 // shrl $2, %edi - LONG $0x7bcf6944; WORD $0x0014; BYTE $0x00 // imull $5243, %edi, %r9d - LONG $0x11e9c141 // shrl $17, %r9d - LONG $0x64f96b41 // imull $100, %r9d, %edi - WORD $0xf929 // subl %edi, %ecx - LONG $0xd1b70f44 // movzwl %cx, %r10d - WORD $0xb70f; BYTE $0xf8 // movzwl %ax, %edi - WORD $0xefc1; BYTE $0x02 // shrl $2, %edi - LONG $0x147bff69; WORD $0x0000 // imull $5243, %edi, %edi - WORD $0xefc1; BYTE $0x11 // shrl $17, %edi - WORD $0xcf6b; BYTE $0x64 // imull $100, %edi, %ecx - WORD $0xc829 // subl %ecx, %eax - LONG $0xd8b70f44 // movzwl %ax, %r11d - LONG $0x030d8d48; WORD $0x0034; BYTE $0x00 // leaq $13315(%rip), %rcx /* _Digits(%rip) */ - LONG $0x04b70f42; BYTE $0x51 // movzwl (%rcx,%r10,2), %eax - LONG $0x40894166; BYTE $0xfe // movw %ax, $-2(%r8) - LONG $0x04b70f42; BYTE $0x49 // movzwl (%rcx,%r9,2), %eax - LONG $0x40894166; BYTE $0xfc // movw %ax, $-4(%r8) - LONG $0x04b70f42; BYTE $0x59 // movzwl (%rcx,%r11,2), %eax - LONG $0x40894166; BYTE $0xfa // movw %ax, $-6(%r8) - LONG $0x7904b70f // movzwl (%rcx,%rdi,2), %eax - LONG $0x40894166; BYTE $0xf8 // movw %ax, $-8(%r8) - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - LONG $0xf8708d4d // leaq $-8(%r8), %r14 - LONG $0x2710fa81; WORD $0x0000 // cmpl $10000, %edx - LONG $0xff38820f; WORD $0xffff // jb LBB32_7, $-200(%rip) - LONG $0x000016e9; BYTE $0x00 // jmp LBB32_8, $22(%rip) - -LBB32_3: - LONG $0x0008b941; WORD $0x0000 // movl $8, %r9d - LONG $0xf8708d4d // leaq $-8(%r8), %r14 - LONG $0x2710fa81; WORD $0x0000 // cmpl $10000, %edx - LONG $0xff1d820f; WORD $0xffff // jb LBB32_7, $-227(%rip) - -LBB32_8: - LONG $0x1759ba41; WORD $0xd1b7 // movl $3518437209, %r10d - LONG $0xa11d8d4c; WORD $0x0033; BYTE $0x00 // leaq $13217(%rip), %r11 /* _Digits(%rip) */ - BYTE $0x90 // .p2align 4, 0x90 - -LBB32_9: - WORD $0xd789 // movl %edx, %edi - LONG $0xfaaf0f49 // imulq %r10, %rdi - LONG $0x2defc148 // shrq $45, %rdi - LONG $0xd8f0c769; WORD $0xffff // imull $-10000, %edi, %eax - WORD $0xd001 // addl %edx, %eax - LONG $0x1fd86948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rax, %rbx - LONG $0x25ebc148 // shrq $37, %rbx - WORD $0xcb6b; BYTE $0x64 // imull $100, %ebx, %ecx - WORD $0xc829 // subl %ecx, %eax - LONG $0x04b70f41; BYTE $0x43 // movzwl (%r11,%rax,2), %eax - LONG $0x46894166; BYTE $0xfe // movw %ax, $-2(%r14) - LONG $0x04b70f41; BYTE $0x5b // movzwl (%r11,%rbx,2), %eax - LONG $0x46894166; BYTE $0xfc // movw %ax, $-4(%r14) - LONG $0xfcc68349 // addq $-4, %r14 - LONG $0xe0fffa81; WORD $0x05f5 // cmpl $99999999, %edx - WORD $0xfa89 // movl %edi, %edx - LONG $0xffb8870f; WORD $0xffff // ja LBB32_9, $-72(%rip) - -LBB32_10: - WORD $0xff83; BYTE $0x64 // cmpl $100, %edi - LONG $0x0020830f; WORD $0x0000 // jae LBB32_11, $32(%rip) - WORD $0xff83; BYTE $0x0a // cmpl $10, %edi - LONG $0x004d820f; WORD $0x0000 // jb LBB32_14, $77(%rip) - -LBB32_13: - WORD $0xf889 // movl %edi, %eax - LONG $0x3d0d8d48; WORD $0x0033; BYTE $0x00 // leaq $13117(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x46894166; BYTE $0xfe // movw %ax, $-2(%r14) - LONG $0x00003de9; BYTE $0x00 // jmp LBB32_15, $61(%rip) - -LBB32_11: - WORD $0xb70f; BYTE $0xc7 // movzwl %di, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx - WORD $0xcf29 // subl %ecx, %edi - WORD $0xb70f; BYTE $0xcf // movzwl %di, %ecx - LONG $0x11158d48; WORD $0x0033; BYTE $0x00 // leaq $13073(%rip), %rdx /* _Digits(%rip) */ - LONG $0x4a0cb70f // movzwl (%rdx,%rcx,2), %ecx - LONG $0x4e894166; BYTE $0xfe // movw %cx, $-2(%r14) - LONG $0xfec68349 // addq $-2, %r14 - WORD $0xc789 // movl %eax, %edi - WORD $0xff83; BYTE $0x0a // cmpl $10, %edi - LONG $0xffb3830f; WORD $0xffff // jae LBB32_13, $-77(%rip) - -LBB32_14: - LONG $0x30c78040 // addb $48, %dil - WORD $0x8840; BYTE $0x3e // movb %dil, (%rsi) - -LBB32_15: - WORD $0x294d; BYTE $0xc8 // subq %r9, %r8 - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_left_shift: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - WORD $0xf189 // movl %esi, %ecx - LONG $0x68d16b48 // imulq $104, %rcx, %rdx - LONG $0xbc358d48; WORD $0x008c; BYTE $0x00 // leaq $36028(%rip), %rsi /* _LSHIFT_TAB(%rip) */ - LONG $0x32048b44 // movl (%rdx,%rsi), %r8d - WORD $0x8b4c; BYTE $0x17 // movq (%rdi), %r10 - LONG $0x104f634c // movslq $16(%rdi), %r9 - LONG $0x0432448a // movb $4(%rdx,%rsi), %al - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x0036840f; WORD $0x0000 // je LBB33_6, $54(%rip) - LONG $0x32548d48; BYTE $0x05 // leaq $5(%rdx,%rsi), %rdx - WORD $0xf631 // xorl %esi, %esi - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB33_3: - WORD $0xc084 // testb %al, %al - LONG $0x0025840f; WORD $0x0000 // je LBB33_8, $37(%rip) - LONG $0x32043841 // cmpb %al, (%r10,%rsi) - LONG $0x0189850f; WORD $0x0000 // jne LBB33_5, $393(%rip) - LONG $0x3204b60f // movzbl (%rdx,%rsi), %eax - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x3949; BYTE $0xf1 // cmpq %rsi, %r9 - LONG $0xffde850f; WORD $0xffff // jne LBB33_3, $-34(%rip) - -LBB33_6: - WORD $0xc084 // testb %al, %al - LONG $0x0003840f; WORD $0x0000 // je LBB33_8, $3(%rip) - -LBB33_7: - WORD $0xff41; BYTE $0xc8 // decl %r8d - -LBB33_8: - WORD $0x8545; BYTE $0xc9 // testl %r9d, %r9d - LONG $0x008c8e0f; WORD $0x0000 // jle LBB33_23, $140(%rip) - LONG $0x08048d43 // leal (%r8,%r9), %eax - WORD $0x634c; BYTE $0xf0 // movslq %eax, %r14 - WORD $0xff49; BYTE $0xce // decq %r14 - WORD $0xd231 // xorl %edx, %edx - QUAD $0xcccccccccccdbb49; WORD $0xcccc // movabsq $-3689348814741910323, %r11 - LONG $0x90909090 // .p2align 4, 0x90 - -LBB33_10: - LONG $0x74be0f4b; WORD $0xff0a // movsbq $-1(%r10,%r9), %rsi - LONG $0xd0c68348 // addq $-48, %rsi - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0x0148; BYTE $0xd6 // addq %rdx, %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - LONG $0x03eac148 // shrq $3, %rdx - LONG $0x12048d48 // leaq (%rdx,%rdx), %rax - LONG $0x801c8d48 // leaq (%rax,%rax,4), %rbx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x2948; BYTE $0xd8 // subq %rbx, %rax - LONG $0x0877394c // cmpq %r14, $8(%rdi) - LONG $0x000e860f; WORD $0x0000 // jbe LBB33_16, $14(%rip) - WORD $0x3004 // addb $48, %al - LONG $0x32048843 // movb %al, (%r10,%r14) - LONG $0x000013e9; BYTE $0x00 // jmp LBB33_18, $19(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB33_16: - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0007840f; WORD $0x0000 // je LBB33_18, $7(%rip) - LONG $0x011c47c7; WORD $0x0000; BYTE $0x00 // movl $1, $28(%rdi) - -LBB33_18: - LONG $0x02f98349 // cmpq $2, %r9 - LONG $0x000e8c0f; WORD $0x0000 // jl LBB33_12, $14(%rip) - WORD $0xff49; BYTE $0xc9 // decq %r9 - WORD $0x8b4c; BYTE $0x17 // movq (%rdi), %r10 - WORD $0xff49; BYTE $0xce // decq %r14 - LONG $0xffff98e9; BYTE $0xff // jmp LBB33_10, $-104(%rip) - -LBB33_12: - LONG $0x0afe8348 // cmpq $10, %rsi - LONG $0x0067830f; WORD $0x0000 // jae LBB33_13, $103(%rip) - -LBB33_23: - LONG $0x104f6348 // movslq $16(%rdi), %rcx - WORD $0x6349; BYTE $0xc0 // movslq %r8d, %rax - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - WORD $0x4789; BYTE $0x10 // movl %eax, $16(%rdi) - LONG $0x084f8b48 // movq $8(%rdi), %rcx - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0x0005870f; WORD $0x0000 // ja LBB33_25, $5(%rip) - WORD $0x4f89; BYTE $0x10 // movl %ecx, $16(%rdi) - WORD $0xc889 // movl %ecx, %eax - -LBB33_25: - LONG $0x14470144 // addl %r8d, $20(%rdi) - WORD $0xc085 // testl %eax, %eax - LONG $0x002f8e0f; WORD $0x0000 // jle LBB33_29, $47(%rip) - WORD $0x8b48; BYTE $0x0f // movq (%rdi), %rcx - WORD $0xc289 // movl %eax, %edx - WORD $0xff48; BYTE $0xc2 // incq %rdx - QUAD $0x9090909090909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB33_27: - WORD $0xc8ff // decl %eax - LONG $0x30013c80 // cmpb $48, (%rcx,%rax) - LONG $0x0018850f; WORD $0x0000 // jne LBB33_31, $24(%rip) - WORD $0x4789; BYTE $0x10 // movl %eax, $16(%rdi) - WORD $0xff48; BYTE $0xca // decq %rdx - LONG $0x01fa8348 // cmpq $1, %rdx - LONG $0xffe48f0f; WORD $0xffff // jg LBB33_27, $-28(%rip) - -LBB33_29: - WORD $0xc085 // testl %eax, %eax - LONG $0x006b840f; WORD $0x0000 // je LBB33_30, $107(%rip) - -LBB33_31: - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB33_13: - WORD $0x6349; BYTE $0xf6 // movslq %r14d, %rsi - WORD $0xff48; BYTE $0xce // decq %rsi - LONG $0x000021e9; BYTE $0x00 // jmp LBB33_14, $33(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB33_15: - WORD $0x3004 // addb $48, %al - WORD $0x8b48; BYTE $0x1f // movq (%rdi), %rbx - WORD $0x0488; BYTE $0x33 // movb %al, (%rbx,%rsi) - -LBB33_22: - WORD $0xff48; BYTE $0xce // decq %rsi - LONG $0x09f98348 // cmpq $9, %rcx - LONG $0xff6d860f; WORD $0xffff // jbe LBB33_23, $-147(%rip) - -LBB33_14: - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - LONG $0x03eac148 // shrq $3, %rdx - LONG $0x12048d48 // leaq (%rdx,%rdx), %rax - LONG $0x801c8d48 // leaq (%rax,%rax,4), %rbx - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - WORD $0x2948; BYTE $0xd8 // subq %rbx, %rax - LONG $0x08773948 // cmpq %rsi, $8(%rdi) - LONG $0xffc6870f; WORD $0xffff // ja LBB33_15, $-58(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xffc5840f; WORD $0xffff // je LBB33_22, $-59(%rip) - LONG $0x011c47c7; WORD $0x0000; BYTE $0x00 // movl $1, $28(%rdi) - LONG $0xffffb9e9; BYTE $0xff // jmp LBB33_22, $-71(%rip) - -LBB33_30: - LONG $0x001447c7; WORD $0x0000; BYTE $0x00 // movl $0, $20(%rdi) - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB33_5: - LONG $0xfe898c0f; WORD $0xffff // jl LBB33_7, $-375(%rip) - LONG $0xfffe87e9; BYTE $0xff // jmp LBB33_8, $-377(%rip) - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -_right_shift: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - BYTE $0x53 // pushq %rbx - WORD $0xf189 // movl %esi, %ecx - LONG $0x10478b44 // movl $16(%rdi), %r8d - WORD $0xd231 // xorl %edx, %edx - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0x0000bb41; WORD $0x0000 // movl $0, %r11d - LONG $0xd8490f45 // cmovnsl %r8d, %r11d - WORD $0xc031 // xorl %eax, %eax - LONG $0x90909090 // .p2align 4, 0x90 - -LBB34_1: - WORD $0x3949; BYTE $0xd3 // cmpq %rdx, %r11 - LONG $0x0132840f; WORD $0x0000 // je LBB34_2, $306(%rip) - LONG $0x80048d48 // leaq (%rax,%rax,4), %rax - WORD $0x8b48; BYTE $0x37 // movq (%rdi), %rsi - LONG $0x34be0f48; BYTE $0x16 // movsbq (%rsi,%rdx), %rsi - LONG $0x46448d48; BYTE $0xd0 // leaq $-48(%rsi,%rax,2), %rax - WORD $0xff48; BYTE $0xc2 // incq %rdx - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0xd348; BYTE $0xee // shrq %cl, %rsi - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0xffd4840f; WORD $0xffff // je LBB34_1, $-44(%rip) - WORD $0x8941; BYTE $0xd3 // movl %edx, %r11d - -LBB34_7: - WORD $0x578b; BYTE $0x14 // movl $20(%rdi), %edx - WORD $0x2944; BYTE $0xda // subl %r11d, %edx - WORD $0xc2ff // incl %edx - LONG $0xffc1c749; WORD $0xffff; BYTE $0xff // movq $-1, %r9 - WORD $0xd349; BYTE $0xe1 // shlq %cl, %r9 - WORD $0x5789; BYTE $0x14 // movl %edx, $20(%rdi) - WORD $0xf749; BYTE $0xd1 // notq %r9 - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3945; BYTE $0xc3 // cmpl %r8d, %r11d - LONG $0x00648d0f; WORD $0x0000 // jge LBB34_10, $100(%rip) - WORD $0x634d; BYTE $0xc3 // movslq %r11d, %r8 - WORD $0x8b48; BYTE $0x37 // movq (%rdi), %rsi - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - LONG $0x90909090 // .p2align 4, 0x90 - -LBB34_9: - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - WORD $0xd348; BYTE $0xea // shrq %cl, %rdx - WORD $0x214c; BYTE $0xc8 // andq %r9, %rax - WORD $0xc280; BYTE $0x30 // addb $48, %dl - LONG $0x16148842 // movb %dl, (%rsi,%r10) - WORD $0x8b48; BYTE $0x37 // movq (%rdi), %rsi - LONG $0x06148d4a // leaq (%rsi,%r8), %rdx - LONG $0x1cbe0f4d; BYTE $0x12 // movsbq (%r10,%rdx), %r11 - LONG $0x105c8d4b; BYTE $0x01 // leaq $1(%r8,%r10), %rbx - LONG $0x01528d4d // leaq $1(%r10), %r10 - LONG $0x80048d48 // leaq (%rax,%rax,4), %rax - LONG $0x43448d49; BYTE $0xd0 // leaq $-48(%r11,%rax,2), %rax - LONG $0x10576348 // movslq $16(%rdi), %rdx - WORD $0x3948; BYTE $0xd3 // cmpq %rdx, %rbx - LONG $0xffc58c0f; WORD $0xffff // jl LBB34_9, $-59(%rip) - LONG $0x000017e9; BYTE $0x00 // jmp LBB34_10, $23(%rip) - - // .p2align 4, 0x90 -LBB34_12: - LONG $0x30c68040 // addb $48, %sil - WORD $0x8b48; BYTE $0x1f // movq (%rdi), %rbx - LONG $0x13348840 // movb %sil, (%rbx,%rdx) - WORD $0xc2ff // incl %edx - WORD $0x8941; BYTE $0xd2 // movl %edx, %r10d - -LBB34_15: - WORD $0x0148; BYTE $0xc0 // addq %rax, %rax - LONG $0x80048d48 // leaq (%rax,%rax,4), %rax - -LBB34_10: - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x002b840f; WORD $0x0000 // je LBB34_16, $43(%rip) - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0xd348; BYTE $0xee // shrq %cl, %rsi - WORD $0x214c; BYTE $0xc8 // andq %r9, %rax - WORD $0x6349; BYTE $0xd2 // movslq %r10d, %rdx - LONG $0x08573948 // cmpq %rdx, $8(%rdi) - LONG $0xffca870f; WORD $0xffff // ja LBB34_12, $-54(%rip) - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0xffd1840f; WORD $0xffff // je LBB34_15, $-47(%rip) - LONG $0x011c47c7; WORD $0x0000; BYTE $0x00 // movl $1, $28(%rdi) - LONG $0xffffc5e9; BYTE $0xff // jmp LBB34_15, $-59(%rip) - -LBB34_16: - LONG $0x10578944 // movl %r10d, $16(%rdi) - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x00378e0f; WORD $0x0000 // jle LBB34_20, $55(%rip) - WORD $0x8b48; BYTE $0x07 // movq (%rdi), %rax - WORD $0x8944; BYTE $0xd1 // movl %r10d, %ecx - WORD $0xff48; BYTE $0xc1 // incq %rcx - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB34_18: - WORD $0xff41; BYTE $0xca // decl %r10d - LONG $0x103c8042; BYTE $0x30 // cmpb $48, (%rax,%r10) - LONG $0x001a850f; WORD $0x0000 // jne LBB34_22, $26(%rip) - LONG $0x10578944 // movl %r10d, $16(%rdi) - WORD $0xff48; BYTE $0xc9 // decq %rcx - LONG $0x01f98348 // cmpq $1, %rcx - LONG $0xffe18f0f; WORD $0xffff // jg LBB34_18, $-31(%rip) - -LBB34_20: - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x0045840f; WORD $0x0000 // je LBB34_21, $69(%rip) - -LBB34_22: - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB34_2: - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0043840f; WORD $0x0000 // je LBB34_23, $67(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - WORD $0xd348; BYTE $0xea // shrq %cl, %rdx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xfed0850f; WORD $0xffff // jne LBB34_7, $-304(%rip) - -LBB34_4: - WORD $0x0148; BYTE $0xc0 // addq %rax, %rax - LONG $0x80048d48 // leaq (%rax,%rax,4), %rax - WORD $0xff41; BYTE $0xc3 // incl %r11d - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - WORD $0xd348; BYTE $0xea // shrq %cl, %rdx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xffe7840f; WORD $0xffff // je LBB34_4, $-25(%rip) - LONG $0xfffeb2e9; BYTE $0xff // jmp LBB34_7, $-334(%rip) - -LBB34_21: - LONG $0x001447c7; WORD $0x0000; BYTE $0x00 // movl $0, $20(%rdi) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB34_23: - LONG $0x001047c7; WORD $0x0000; BYTE $0x00 // movl $0, $16(%rdi) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; LONG $0x00000000; WORD $0x0000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI35_0: - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - -LCPI35_1: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - - // .p2align 4, 0x90 -_advance_string_default: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - LONG $0x087f8b4c // movq $8(%rdi), %r15 - WORD $0x2949; BYTE $0xf7 // subq %rsi, %r15 - LONG $0x0327840f; WORD $0x0000 // je LBB35_13, $807(%rip) - WORD $0x8b4c; BYTE $0x1f // movq (%rdi), %r11 - WORD $0x014c; BYTE $0xde // addq %r11, %rsi - LONG $0xff02c748; WORD $0xffff; BYTE $0xff // movq $-1, (%rdx) - LONG $0x40ff8349 // cmpq $64, %r15 - LONG $0x015f820f; WORD $0x0000 // jb LBB35_14, $351(%rip) - QUAD $0xffffffffd045c748 // movq $-1, $-48(%rbp) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - QUAD $0xffffff9b056ff9c5 // vmovdqa $-101(%rip), %xmm0 /* LCPI35_0(%rip) */ - QUAD $0xffffffa30d6ff9c5 // vmovdqa $-93(%rip), %xmm1 /* LCPI35_1(%rip) */ - QUAD $0x555555555555ba49; WORD $0x5555 // movabsq $6148914691236517205, %r10 - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB35_3: - LONG $0x166ffac5 // vmovdqu (%rsi), %xmm2 - LONG $0x5e6ffac5; BYTE $0x10 // vmovdqu $16(%rsi), %xmm3 - LONG $0x666ffac5; BYTE $0x20 // vmovdqu $32(%rsi), %xmm4 - LONG $0x6e6ffac5; BYTE $0x30 // vmovdqu $48(%rsi), %xmm5 - LONG $0xf074e9c5 // vpcmpeqb %xmm0, %xmm2, %xmm6 - LONG $0xe6d779c5 // vpmovmskb %xmm6, %r12d - LONG $0xf074e1c5 // vpcmpeqb %xmm0, %xmm3, %xmm6 - LONG $0xc6d7f9c5 // vpmovmskb %xmm6, %eax - LONG $0xf074d9c5 // vpcmpeqb %xmm0, %xmm4, %xmm6 - LONG $0xced7f9c5 // vpmovmskb %xmm6, %ecx - LONG $0xf074d1c5 // vpcmpeqb %xmm0, %xmm5, %xmm6 - LONG $0xfed7f9c5 // vpmovmskb %xmm6, %edi - LONG $0xd174e9c5 // vpcmpeqb %xmm1, %xmm2, %xmm2 - LONG $0xdad7f9c5 // vpmovmskb %xmm2, %ebx - LONG $0xd174e1c5 // vpcmpeqb %xmm1, %xmm3, %xmm2 - LONG $0xead779c5 // vpmovmskb %xmm2, %r13d - LONG $0xd174d9c5 // vpcmpeqb %xmm1, %xmm4, %xmm2 - LONG $0xc2d779c5 // vpmovmskb %xmm2, %r8d - LONG $0xd174d1c5 // vpcmpeqb %xmm1, %xmm5, %xmm2 - LONG $0xcad779c5 // vpmovmskb %xmm2, %r9d - LONG $0x30e7c148 // shlq $48, %rdi - LONG $0x20e1c148 // shlq $32, %rcx - LONG $0x10e0c148 // shlq $16, %rax - WORD $0x0949; BYTE $0xc4 // orq %rax, %r12 - WORD $0x0949; BYTE $0xcc // orq %rcx, %r12 - WORD $0x0949; BYTE $0xfc // orq %rdi, %r12 - LONG $0x30e1c149 // shlq $48, %r9 - LONG $0x20e0c149 // shlq $32, %r8 - LONG $0x10e5c149 // shlq $16, %r13 - WORD $0x094c; BYTE $0xeb // orq %r13, %rbx - WORD $0x094c; BYTE $0xc3 // orq %r8, %rbx - WORD $0x094c; BYTE $0xcb // orq %r9, %rbx - LONG $0x002c850f; WORD $0x0000 // jne LBB35_7, $44(%rip) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x0042850f; WORD $0x0000 // jne LBB35_9, $66(%rip) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x007e850f; WORD $0x0000 // jne LBB35_10, $126(%rip) - -LBB35_6: - LONG $0x40c68348 // addq $64, %rsi - LONG $0xc0c78349 // addq $-64, %r15 - LONG $0x3fff8349 // cmpq $63, %r15 - LONG $0xff56870f; WORD $0xffff // ja LBB35_3, $-170(%rip) - LONG $0x00008de9; BYTE $0x00 // jmp LBB35_15, $141(%rip) - -LBB35_7: - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x0014850f; WORD $0x0000 // jne LBB35_9, $20(%rip) - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x294c; BYTE $0xd8 // subq %r11, %rax - LONG $0xcbbc0f48 // bsfq %rbx, %rcx - WORD $0x0148; BYTE $0xc1 // addq %rax, %rcx - LONG $0xd04d8948 // movq %rcx, $-48(%rbp) - WORD $0x8948; BYTE $0x0a // movq %rcx, (%rdx) - -LBB35_9: - WORD $0x894c; BYTE $0xf0 // movq %r14, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x2148; BYTE $0xd8 // andq %rbx, %rax - LONG $0x000c8d48 // leaq (%rax,%rax), %rcx - WORD $0x094c; BYTE $0xf1 // orq %r14, %rcx - WORD $0x8948; BYTE $0xcf // movq %rcx, %rdi - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x2148; BYTE $0xdf // andq %rbx, %rdi - QUAD $0xaaaaaaaaaaaabb48; WORD $0xaaaa // movabsq $-6148914691236517206, %rbx - WORD $0x2148; BYTE $0xdf // andq %rbx, %rdi - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - LONG $0xc6920f41 // setb %r14b - WORD $0x0148; BYTE $0xff // addq %rdi, %rdi - WORD $0x314c; BYTE $0xd7 // xorq %r10, %rdi - WORD $0x2148; BYTE $0xcf // andq %rcx, %rdi - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x2149; BYTE $0xfc // andq %rdi, %r12 - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0xff82840f; WORD $0xffff // je LBB35_6, $-126(%rip) - -LBB35_10: - LONG $0xc4bc0f49 // bsfq %r12, %rax - -LBB35_11: - WORD $0x294c; BYTE $0xde // subq %r11, %rsi - LONG $0x06448d48; BYTE $0x01 // leaq $1(%rsi,%rax), %rax - -LBB35_12: - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB35_14: - QUAD $0xffffffffd045c748 // movq $-1, $-48(%rbp) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - -LBB35_15: - LONG $0x20ff8349 // cmpq $32, %r15 - LONG $0x00cb820f; WORD $0x0000 // jb LBB35_24, $203(%rip) - LONG $0x066ffac5 // vmovdqu (%rsi), %xmm0 - LONG $0x4e6ffac5; BYTE $0x10 // vmovdqu $16(%rsi), %xmm1 - QUAD $0xfffffe29156ff9c5 // vmovdqa $-471(%rip), %xmm2 /* LCPI35_0(%rip) */ - QUAD $0xfffffe311d6ff9c5 // vmovdqa $-463(%rip), %xmm3 /* LCPI35_1(%rip) */ - LONG $0xe274f9c5 // vpcmpeqb %xmm2, %xmm0, %xmm4 - LONG $0xfcd7f9c5 // vpmovmskb %xmm4, %edi - LONG $0xd274f1c5 // vpcmpeqb %xmm2, %xmm1, %xmm2 - LONG $0xc2d7f9c5 // vpmovmskb %xmm2, %eax - LONG $0xc374f9c5 // vpcmpeqb %xmm3, %xmm0, %xmm0 - LONG $0xd8d7f9c5 // vpmovmskb %xmm0, %ebx - LONG $0xc374f1c5 // vpcmpeqb %xmm3, %xmm1, %xmm0 - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - LONG $0x10e0c148 // shlq $16, %rax - WORD $0x0948; BYTE $0xc7 // orq %rax, %rdi - LONG $0x10e1c148 // shlq $16, %rcx - WORD $0x0948; BYTE $0xcb // orq %rcx, %rbx - LONG $0x001e850f; WORD $0x0000 // jne LBB35_20, $30(%rip) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x0034850f; WORD $0x0000 // jne LBB35_22, $52(%rip) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x0061840f; WORD $0x0000 // je LBB35_23, $97(%rip) - -LBB35_19: - LONG $0xc7bc0f48 // bsfq %rdi, %rax - LONG $0xffff69e9; BYTE $0xff // jmp LBB35_11, $-151(%rip) - -LBB35_20: - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x0014850f; WORD $0x0000 // jne LBB35_22, $20(%rip) - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x294c; BYTE $0xd8 // subq %r11, %rax - LONG $0xcbbc0f48 // bsfq %rbx, %rcx - WORD $0x0148; BYTE $0xc1 // addq %rax, %rcx - LONG $0xd04d8948 // movq %rcx, $-48(%rbp) - WORD $0x8948; BYTE $0x0a // movq %rcx, (%rdx) - -LBB35_22: - WORD $0x8944; BYTE $0xf0 // movl %r14d, %eax - WORD $0xd0f7 // notl %eax - WORD $0xd821 // andl %ebx, %eax - LONG $0x46048d45 // leal (%r14,%rax,2), %r8d - WORD $0x0c8d; BYTE $0x00 // leal (%rax,%rax), %ecx - WORD $0xd1f7 // notl %ecx - WORD $0xd921 // andl %ebx, %ecx - LONG $0xaaaae181; WORD $0xaaaa // andl $-1431655766, %ecx - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0xc101 // addl %eax, %ecx - LONG $0xc6920f41 // setb %r14b - WORD $0xc901 // addl %ecx, %ecx - LONG $0x5555f181; WORD $0x5555 // xorl $1431655765, %ecx - WORD $0x2144; BYTE $0xc1 // andl %r8d, %ecx - WORD $0xd1f7 // notl %ecx - WORD $0xcf21 // andl %ecx, %edi - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0xff9f850f; WORD $0xffff // jne LBB35_19, $-97(%rip) - -LBB35_23: - LONG $0x20c68348 // addq $32, %rsi - LONG $0xe0c78349 // addq $-32, %r15 - -LBB35_24: - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x0089850f; WORD $0x0000 // jne LBB35_35, $137(%rip) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0xfef8840f; WORD $0xffff // je LBB35_12, $-264(%rip) - -LBB35_26: - WORD $0x894d; BYTE $0xd9 // movq %r11, %r9 - WORD $0xf749; BYTE $0xd1 // notq %r9 - -LBB35_27: - LONG $0x017e8d48 // leaq $1(%rsi), %rdi - WORD $0xb60f; BYTE $0x1e // movzbl (%rsi), %ebx - WORD $0xfb80; BYTE $0x22 // cmpb $34, %bl - LONG $0x0058840f; WORD $0x0000 // je LBB35_34, $88(%rip) - LONG $0xff578d4d // leaq $-1(%r15), %r10 - WORD $0xfb80; BYTE $0x5c // cmpb $92, %bl - LONG $0x0014840f; WORD $0x0000 // je LBB35_30, $20(%rip) - WORD $0x894d; BYTE $0xd7 // movq %r10, %r15 - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xffd4850f; WORD $0xffff // jne LBB35_27, $-44(%rip) - LONG $0xfffec1e9; BYTE $0xff // jmp LBB35_12, $-319(%rip) - -LBB35_30: - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xfeb8840f; WORD $0xffff // je LBB35_12, $-328(%rip) - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x000a850f; WORD $0x0000 // jne LBB35_33, $10(%rip) - WORD $0x014c; BYTE $0xcf // addq %r9, %rdi - WORD $0x8948; BYTE $0x3a // movq %rdi, (%rdx) - LONG $0xd07d8948 // movq %rdi, $-48(%rbp) - -LBB35_33: - LONG $0x02c68348 // addq $2, %rsi - LONG $0xfec78349 // addq $-2, %r15 - WORD $0x894d; BYTE $0xfa // movq %r15, %r10 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xff9d850f; WORD $0xffff // jne LBB35_27, $-99(%rip) - LONG $0xfffe8ae9; BYTE $0xff // jmp LBB35_12, $-374(%rip) - -LBB35_34: - WORD $0x294c; BYTE $0xdf // subq %r11, %rdi - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0xfffe7fe9; BYTE $0xff // jmp LBB35_12, $-385(%rip) - -LBB35_35: - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0x0036840f; WORD $0x0000 // je LBB35_13, $54(%rip) - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x0010850f; WORD $0x0000 // jne LBB35_38, $16(%rip) - WORD $0x894c; BYTE $0xd8 // movq %r11, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0148; BYTE $0xf0 // addq %rsi, %rax - LONG $0xd0458948 // movq %rax, $-48(%rbp) - WORD $0x8948; BYTE $0x02 // movq %rax, (%rdx) - -LBB35_38: - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0xff49; BYTE $0xcf // decq %r15 - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0xff4d850f; WORD $0xffff // jne LBB35_26, $-179(%rip) - LONG $0xfffe40e9; BYTE $0xff // jmp LBB35_12, $-448(%rip) - -LBB35_13: - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xfffe34e9; BYTE $0xff // jmp LBB35_12, $-460(%rip) - WORD $0x0000 // .p2align 4, 0x00 - -_POW10_M128_TAB: - QUAD $0x1732c869cd60e453 // .quad 1671618768450675795 - QUAD $0xfa8fd5a0081c0288 // .quad -391859759250406776 - QUAD $0x0e7fbd42205c8eb4 // .quad 1044761730281672372 - QUAD $0x9c99e58405118195 // .quad -7162441377172586091 - QUAD $0x521fac92a873b261 // .quad 5917638181279478369 - QUAD $0xc3c05ee50655e1fa // .quad -4341365703038344710 - QUAD $0xe6a797b752909ef9 // .quad -1826324310255427847 - QUAD $0xf4b0769e47eb5a78 // .quad -815021110370542984 - QUAD $0x9028bed2939a635c // .quad -8058981721550724260 - QUAD $0x98ee4a22ecf3188b // .quad -7426917221622671221 - QUAD $0x7432ee873880fc33 // .quad 8373016921771146291 - QUAD $0xbf29dcaba82fdeae // .quad -4671960508600951122 - QUAD $0x113faa2906a13b3f // .quad 1242899115359157055 - QUAD $0xeef453d6923bd65a // .quad -1228264617323800998 - QUAD $0x4ac7ca59a424c507 // .quad 5388497965526861063 - QUAD $0x9558b4661b6565f8 // .quad -7685194413468457480 - QUAD $0x5d79bcf00d2df649 // .quad 6735622456908576329 - QUAD $0xbaaee17fa23ebf76 // .quad -4994806998408183946 - QUAD $0xf4d82c2c107973dc // .quad -803843965719055396 - QUAD $0xe95a99df8ace6f53 // .quad -1631822729582842029 - QUAD $0x79071b9b8a4be869 // .quad 8720969558280366185 - QUAD $0x91d8a02bb6c10594 // .quad -7937418233630358124 - QUAD $0x9748e2826cdee284 // .quad -7545532125859093884 - QUAD $0xb64ec836a47146f9 // .quad -5310086773610559751 - QUAD $0xfd1b1b2308169b25 // .quad -208543120469091547 - QUAD $0xe3e27a444d8d98b7 // .quad -2025922448585811785 - QUAD $0xfe30f0f5e50e20f7 // .quad -130339450293182217 - QUAD $0x8e6d8c6ab0787f72 // .quad -8183730558007214222 - QUAD $0xbdbd2d335e51a935 // .quad -4774610331293865675 - QUAD $0xb208ef855c969f4f // .quad -5617977179081629873 - QUAD $0xad2c788035e61382 // .quad -5968262914117332094 - QUAD $0xde8b2b66b3bc4723 // .quad -2410785455424649437 - QUAD $0x4c3bcb5021afcc31 // .quad 5493207715531443249 - QUAD $0x8b16fb203055ac76 // .quad -8424269937281487754 - QUAD $0xdf4abe242a1bbf3d // .quad -2356862392440471747 - QUAD $0xaddcb9e83c6b1793 // .quad -5918651403174471789 - QUAD $0xd71d6dad34a2af0d // .quad -2946077990550589683 - QUAD $0xd953e8624b85dd78 // .quad -2786628235540701832 - QUAD $0x8672648c40e5ad68 // .quad -8758827771735200408 - QUAD $0x87d4713d6f33aa6b // .quad -8659171674854020501 - QUAD $0x680efdaf511f18c2 // .quad 7498209359040551106 - QUAD $0xa9c98d8ccb009506 // .quad -6212278575140137722 - QUAD $0x0212bd1b2566def2 // .quad 149389661945913074 - QUAD $0xd43bf0effdc0ba48 // .quad -3153662200497784248 - QUAD $0x014bb630f7604b57 // .quad 93368538716195671 - QUAD $0x84a57695fe98746d // .quad -8888567902952197011 - QUAD $0x419ea3bd35385e2d // .quad 4728396691822632493 - QUAD $0xa5ced43b7e3e9188 // .quad -6499023860262858360 - QUAD $0x52064cac828675b9 // .quad 5910495864778290617 - QUAD $0xcf42894a5dce35ea // .quad -3512093806901185046 - QUAD $0x7343efebd1940993 // .quad 8305745933913819539 - QUAD $0x818995ce7aa0e1b2 // .quad -9112587656954322510 - QUAD $0x1014ebe6c5f90bf8 // .quad 1158810380537498616 - QUAD $0xa1ebfb4219491a1f // .quad -6779048552765515233 - QUAD $0xd41a26e077774ef6 // .quad -3163173042755514634 - QUAD $0xca66fa129f9b60a6 // .quad -3862124672529506138 - QUAD $0x8920b098955522b4 // .quad -8565652321871781196 - QUAD $0xfd00b897478238d0 // .quad -215969822234494768 - QUAD $0x55b46e5f5d5535b0 // .quad 6175682344898606512 - QUAD $0x9e20735e8cb16382 // .quad -7052510166537641086 - QUAD $0xeb2189f734aa831d // .quad -1503769105731517667 - QUAD $0xc5a890362fddbc62 // .quad -4203951689744663454 - QUAD $0xa5e9ec7501d523e4 // .quad -6491397400591784988 - QUAD $0xf712b443bbd52b7b // .quad -643253593753441413 - QUAD $0x47b233c92125366e // .quad 5166248661484910190 - QUAD $0x9a6bb0aa55653b2d // .quad -7319562523736982739 - QUAD $0x999ec0bb696e840a // .quad -7377247228426025974 - QUAD $0xc1069cd4eabe89f8 // .quad -4537767136243840520 - QUAD $0xc00670ea43ca250d // .quad -4609873017105144563 - QUAD $0xf148440a256e2c76 // .quad -1060522901877412746 - QUAD $0x380406926a5e5728 // .quad 4036358391950366504 - QUAD $0x96cd2a865764dbca // .quad -7580355841314464822 - QUAD $0xc605083704f5ecf2 // .quad -4177924046916817678 - QUAD $0xbc807527ed3e12bc // .quad -4863758783215693124 - QUAD $0xf7864a44c633682e // .quad -610719040218634194 - QUAD $0xeba09271e88d976b // .quad -1468012460592228501 - QUAD $0x7ab3ee6afbe0211d // .quad 8841672636718129437 - QUAD $0x93445b8731587ea3 // .quad -7835036815511224669 - QUAD $0x5960ea05bad82964 // .quad 6440404777470273892 - QUAD $0xb8157268fdae9e4c // .quad -5182110000961642932 - QUAD $0x6fb92487298e33bd // .quad 8050505971837842365 - QUAD $0xe61acf033d1a45df // .quad -1865951482774665761 - QUAD $0xa5d3b6d479f8e056 // .quad -6497648813669818282 - QUAD $0x8fd0c16206306bab // .quad -8083748704375247957 - QUAD $0x8f48a4899877186c // .quad -8122061017087272852 - QUAD $0xb3c4f1ba87bc8696 // .quad -5492999862041672042 - QUAD $0x331acdabfe94de87 // .quad 3682481783923072647 - QUAD $0xe0b62e2929aba83c // .quad -2254563809124702148 - QUAD $0x9ff0c08b7f1d0b14 // .quad -6921820921902855404 - QUAD $0x8c71dcd9ba0b4925 // .quad -8326631408344020699 - QUAD $0x07ecf0ae5ee44dd9 // .quad 571095884476206553 - QUAD $0xaf8e5410288e1b6f // .quad -5796603242002637969 - QUAD $0xc9e82cd9f69d6150 // .quad -3897816162832129712 - QUAD $0xdb71e91432b1a24a // .quad -2634068034075909558 - QUAD $0xbe311c083a225cd2 // .quad -4741978110983775022 - QUAD $0x892731ac9faf056e // .quad -8563821548938525330 - QUAD $0x6dbd630a48aaf406 // .quad 7907585416552444934 - QUAD $0xab70fe17c79ac6ca // .quad -6093090917745768758 - QUAD $0x092cbbccdad5b108 // .quad 661109733835780360 - QUAD $0xd64d3d9db981787d // .quad -3004677628754823043 - QUAD $0x25bbf56008c58ea5 // .quad 2719036592861056677 - QUAD $0x85f0468293f0eb4e // .quad -8795452545612846258 - QUAD $0xaf2af2b80af6f24e // .quad -5824576295778454962 - QUAD $0xa76c582338ed2621 // .quad -6382629663588669919 - QUAD $0x1af5af660db4aee1 // .quad 1942651667131707105 - QUAD $0xd1476e2c07286faa // .quad -3366601061058449494 - QUAD $0x50d98d9fc890ed4d // .quad 5825843310384704845 - QUAD $0x82cca4db847945ca // .quad -9021654690802612790 - QUAD $0xe50ff107bab528a0 // .quad -1941067898873894752 - QUAD $0xa37fce126597973c // .quad -6665382345075878084 - QUAD $0x1e53ed49a96272c8 // .quad 2185351144835019464 - QUAD $0xcc5fc196fefd7d0c // .quad -3720041912917459700 - QUAD $0x25e8e89c13bb0f7a // .quad 2731688931043774330 - QUAD $0xff77b1fcbebcdc4f // .quad -38366372719436721 - QUAD $0x77b191618c54e9ac // .quad 8624834609543440812 - QUAD $0x9faacf3df73609b1 // .quad -6941508010590729807 - QUAD $0xd59df5b9ef6a2417 // .quad -3054014793352862697 - QUAD $0xc795830d75038c1d // .quad -4065198994811024355 - QUAD $0x4b0573286b44ad1d // .quad 5405853545163697437 - QUAD $0xf97ae3d0d2446f25 // .quad -469812725086392539 - QUAD $0x4ee367f9430aec32 // .quad 5684501474941004850 - QUAD $0x9becce62836ac577 // .quad -7211161980820077193 - QUAD $0x229c41f793cda73f // .quad 2493940825248868159 - QUAD $0xc2e801fb244576d5 // .quad -4402266457597708587 - QUAD $0x6b43527578c1110f // .quad 7729112049988473103 - QUAD $0xf3a20279ed56d48a // .quad -891147053569747830 - QUAD $0x830a13896b78aaa9 // .quad -9004363024039368023 - QUAD $0x9845418c345644d6 // .quad -7474495936122174250 - QUAD $0x23cc986bc656d553 // .quad 2579604275232953683 - QUAD $0xbe5691ef416bd60c // .quad -4731433901725329908 - QUAD $0x2cbfbe86b7ec8aa8 // .quad 3224505344041192104 - QUAD $0xedec366b11c6cb8f // .quad -1302606358729274481 - QUAD $0x7bf7d71432f3d6a9 // .quad 8932844867666826921 - QUAD $0x94b3a202eb1c3f39 // .quad -7731658001846878407 - QUAD $0xdaf5ccd93fb0cc53 // .quad -2669001970698630061 - QUAD $0xb9e08a83a5e34f07 // .quad -5052886483881210105 - QUAD $0xd1b3400f8f9cff68 // .quad -3336252463373287576 - QUAD $0xe858ad248f5c22c9 // .quad -1704422086424124727 - QUAD $0x23100809b9c21fa1 // .quad 2526528228819083169 - QUAD $0x91376c36d99995be // .quad -7982792831656159810 - QUAD $0xabd40a0c2832a78a // .quad -6065211750830921846 - QUAD $0xb58547448ffffb2d // .quad -5366805021142811859 - QUAD $0x16c90c8f323f516c // .quad 1641857348316123500 - QUAD $0xe2e69915b3fff9f9 // .quad -2096820258001126919 - QUAD $0xae3da7d97f6792e3 // .quad -5891368184943504669 - QUAD $0x8dd01fad907ffc3b // .quad -8228041688891786181 - QUAD $0x99cd11cfdf41779c // .quad -7364210231179380836 - QUAD $0xb1442798f49ffb4a // .quad -5673366092687344822 - QUAD $0x40405643d711d583 // .quad 4629795266307937667 - QUAD $0xdd95317f31c7fa1d // .quad -2480021597431793123 - QUAD $0x482835ea666b2572 // .quad 5199465050656154994 - QUAD $0x8a7d3eef7f1cfc52 // .quad -8467542526035952558 - QUAD $0xda3243650005eecf // .quad -2724040723534582065 - QUAD $0xad1c8eab5ee43b66 // .quad -5972742139117552794 - QUAD $0x90bed43e40076a82 // .quad -8016736922845615486 - QUAD $0xd863b256369d4a40 // .quad -2854241655469553088 - QUAD $0x5a7744a6e804a291 // .quad 6518754469289960081 - QUAD $0x873e4f75e2224e68 // .quad -8701430062309552536 - QUAD $0x711515d0a205cb36 // .quad 8148443086612450102 - QUAD $0xa90de3535aaae202 // .quad -6265101559459552766 - QUAD $0x0d5a5b44ca873e03 // .quad 962181821410786819 - QUAD $0xd3515c2831559a83 // .quad -3219690930897053053 - QUAD $0xe858790afe9486c2 // .quad -1704479370831952190 - QUAD $0x8412d9991ed58091 // .quad -8929835859451740015 - QUAD $0x626e974dbe39a872 // .quad 7092772823314835570 - QUAD $0xa5178fff668ae0b6 // .quad -6550608805887287114 - QUAD $0xfb0a3d212dc8128f // .quad -357406007711231345 - QUAD $0xce5d73ff402d98e3 // .quad -3576574988931720989 - QUAD $0x7ce66634bc9d0b99 // .quad 8999993282035256217 - QUAD $0x80fa687f881c7f8e // .quad -9152888395723407474 - QUAD $0x1c1fffc1ebc44e80 // .quad 2026619565689294464 - QUAD $0xa139029f6a239f72 // .quad -6829424476226871438 - QUAD $0xa327ffb266b56220 // .quad -6690097579743157728 - QUAD $0xc987434744ac874e // .quad -3925094576856201394 - QUAD $0x4bf1ff9f0062baa8 // .quad 5472436080603216552 - QUAD $0xfbe9141915d7a922 // .quad -294682202642863838 - QUAD $0x6f773fc3603db4a9 // .quad 8031958568804398249 - QUAD $0x9d71ac8fada6c9b5 // .quad -7101705404292871755 - QUAD $0xcb550fb4384d21d3 // .quad -3795109844276665901 - QUAD $0xc4ce17b399107c22 // .quad -4265445736938701790 - QUAD $0x7e2a53a146606a48 // .quad 9091170749936331336 - QUAD $0xf6019da07f549b2b // .quad -720121152745989333 - QUAD $0x2eda7444cbfc426d // .quad 3376138709496513133 - QUAD $0x99c102844f94e0fb // .quad -7367604748107325189 - QUAD $0xfa911155fefb5308 // .quad -391512631556746488 - QUAD $0xc0314325637a1939 // .quad -4597819916706768583 - QUAD $0x793555ab7eba27ca // .quad 8733981247408842698 - QUAD $0xf03d93eebc589f88 // .quad -1135588877456072824 - QUAD $0x4bc1558b2f3458de // .quad 5458738279630526686 - QUAD $0x96267c7535b763b5 // .quad -7627272076051127371 - QUAD $0x9eb1aaedfb016f16 // .quad -7011635205744005354 - QUAD $0xbbb01b9283253ca2 // .quad -4922404076636521310 - QUAD $0x465e15a979c1cadc // .quad 5070514048102157020 - QUAD $0xea9c227723ee8bcb // .quad -1541319077368263733 - QUAD $0x0bfacd89ec191ec9 // .quad 863228270850154185 - QUAD $0x92a1958a7675175f // .quad -7880853450996246689 - QUAD $0xcef980ec671f667b // .quad -3532650679864695173 - QUAD $0xb749faed14125d36 // .quad -5239380795317920458 - QUAD $0x82b7e12780e7401a // .quad -9027499368258256870 - QUAD $0xe51c79a85916f484 // .quad -1937539975720012668 - QUAD $0xd1b2ecb8b0908810 // .quad -3336344095947716592 - QUAD $0x8f31cc0937ae58d2 // .quad -8128491512466089774 - QUAD $0x861fa7e6dcb4aa15 // .quad -8782116138362033643 - QUAD $0xb2fe3f0b8599ef07 // .quad -5548928372155224313 - QUAD $0x67a791e093e1d49a // .quad 7469098900757009562 - QUAD $0xdfbdcece67006ac9 // .quad -2324474446766642487 - QUAD $0xe0c8bb2c5c6d24e0 // .quad -2249342214667950880 - QUAD $0x8bd6a141006042bd // .quad -8370325556870233411 - QUAD $0x58fae9f773886e18 // .quad 6411694268519837208 - QUAD $0xaecc49914078536d // .quad -5851220927660403859 - QUAD $0xaf39a475506a899e // .quad -5820440219632367202 - QUAD $0xda7f5bf590966848 // .quad -2702340141148116920 - QUAD $0x6d8406c952429603 // .quad 7891439908798240259 - QUAD $0x888f99797a5e012d // .quad -8606491615858654931 - QUAD $0xc8e5087ba6d33b83 // .quad -3970758169284363389 - QUAD $0xaab37fd7d8f58178 // .quad -6146428501395930760 - QUAD $0xfb1e4a9a90880a64 // .quad -351761693178066332 - QUAD $0xd5605fcdcf32e1d6 // .quad -3071349608317525546 - QUAD $0x5cf2eea09a55067f // .quad 6697677969404790399 - QUAD $0x855c3be0a17fcd26 // .quad -8837122532839535322 - QUAD $0xf42faa48c0ea481e // .quad -851274575098787810 - QUAD $0xa6b34ad8c9dfc06f // .quad -6434717147622031249 - QUAD $0xf13b94daf124da26 // .quad -1064093218873484762 - QUAD $0xd0601d8efc57b08b // .quad -3431710416100151157 - QUAD $0x76c53d08d6b70858 // .quad 8558313775058847832 - QUAD $0x823c12795db6ce57 // .quad -9062348037703676329 - QUAD $0x54768c4b0c64ca6e // .quad 6086206200396171886 - QUAD $0xa2cb1717b52481ed // .quad -6716249028702207507 - QUAD $0xa9942f5dcf7dfd09 // .quad -6227300304786948855 - QUAD $0xcb7ddcdda26da268 // .quad -3783625267450371480 - QUAD $0xd3f93b35435d7c4c // .quad -3172439362556298164 - QUAD $0xfe5d54150b090b02 // .quad -117845565885576446 - QUAD $0xc47bc5014a1a6daf // .quad -4288617610811380305 - QUAD $0x9efa548d26e5a6e1 // .quad -6991182506319567135 - QUAD $0x359ab6419ca1091b // .quad 3862600023340550427 - QUAD $0xc6b8e9b0709f109a // .quad -4127292114472071014 - QUAD $0xc30163d203c94b62 // .quad -4395122007679087774 - QUAD $0xf867241c8cc6d4c0 // .quad -547429124662700864 - QUAD $0x79e0de63425dcf1d // .quad 8782263791269039901 - QUAD $0x9b407691d7fc44f8 // .quad -7259672230555269896 - QUAD $0x985915fc12f542e4 // .quad -7468914334623251740 - QUAD $0xc21094364dfb5636 // .quad -4462904269766699466 - QUAD $0x3e6f5b7b17b2939d // .quad 4498915137003099037 - QUAD $0xf294b943e17a2bc4 // .quad -966944318780986428 - QUAD $0xa705992ceecf9c42 // .quad -6411550076227838910 - QUAD $0x979cf3ca6cec5b5a // .quad -7521869226879198374 - QUAD $0x50c6ff782a838353 // .quad 5820620459997365075 - QUAD $0xbd8430bd08277231 // .quad -4790650515171610063 - QUAD $0xa4f8bf5635246428 // .quad -6559282480285457368 - QUAD $0xece53cec4a314ebd // .quad -1376627125537124675 - QUAD $0x871b7795e136be99 // .quad -8711237568605798759 - QUAD $0x940f4613ae5ed136 // .quad -7777920981101784778 - QUAD $0x28e2557b59846e3f // .quad 2946011094524915263 - QUAD $0xb913179899f68584 // .quad -5110715207949843068 - QUAD $0x331aeada2fe589cf // .quad 3682513868156144079 - QUAD $0xe757dd7ec07426e5 // .quad -1776707991509915931 - QUAD $0x3ff0d2c85def7621 // .quad 4607414176811284001 - QUAD $0x9096ea6f3848984f // .quad -8027971522334779313 - QUAD $0x0fed077a756b53a9 // .quad 1147581702586717097 - QUAD $0xb4bca50b065abe63 // .quad -5423278384491086237 - QUAD $0xd3e8495912c62894 // .quad -3177208890193991532 - QUAD $0xe1ebce4dc7f16dfb // .quad -2167411962186469893 - QUAD $0x64712dd7abbbd95c // .quad 7237616480483531100 - QUAD $0x8d3360f09cf6e4bd // .quad -8272161504007625539 - QUAD $0xbd8d794d96aacfb3 // .quad -4788037454677749837 - QUAD $0xb080392cc4349dec // .quad -5728515861582144020 - QUAD $0xecf0d7a0fc5583a0 // .quad -1373360799919799392 - QUAD $0xdca04777f541c567 // .quad -2548958808550292121 - QUAD $0xf41686c49db57244 // .quad -858350499949874620 - QUAD $0x89e42caaf9491b60 // .quad -8510628282985014432 - QUAD $0x311c2875c522ced5 // .quad 3538747893490044629 - QUAD $0xac5d37d5b79b6239 // .quad -6026599335303880135 - QUAD $0x7d633293366b828b // .quad 9035120885289943691 - QUAD $0xd77485cb25823ac7 // .quad -2921563150702462265 - QUAD $0xae5dff9c02033197 // .quad -5882264492762254953 - QUAD $0x86a8d39ef77164bc // .quad -8743505996830120772 - QUAD $0xd9f57f830283fdfc // .quad -2741144597525430788 - QUAD $0xa8530886b54dbdeb // .quad -6317696477610263061 - QUAD $0xd072df63c324fd7b // .quad -3426430746906788485 - QUAD $0xd267caa862a12d66 // .quad -3285434578585440922 - QUAD $0x4247cb9e59f71e6d // .quad 4776009810824339053 - QUAD $0x8380dea93da4bc60 // .quad -8970925639256982432 - QUAD $0x52d9be85f074e608 // .quad 5970012263530423816 - QUAD $0xa46116538d0deb78 // .quad -6601971030643840136 - QUAD $0x67902e276c921f8b // .quad 7462515329413029771 - QUAD $0xcd795be870516656 // .quad -3640777769877412266 - QUAD $0x00ba1cd8a3db53b6 // .quad 52386062455755702 - QUAD $0x806bd9714632dff6 // .quad -9193015133814464522 - QUAD $0x80e8a40eccd228a4 // .quad -9157889458785081180 - QUAD $0xa086cfcd97bf97f3 // .quad -6879582898840692749 - QUAD $0x6122cd128006b2cd // .quad 6999382250228200141 - QUAD $0xc8a883c0fdaf7df0 // .quad -3987792605123478032 - QUAD $0x796b805720085f81 // .quad 8749227812785250177 - QUAD $0xfad2a4b13d1b5d6c // .quad -373054737976959636 - QUAD $0xcbe3303674053bb0 // .quad -3755104653863994448 - QUAD $0x9cc3a6eec6311a63 // .quad -7150688238876681629 - QUAD $0xbedbfc4411068a9c // .quad -4693880817329993060 - QUAD $0xc3f490aa77bd60fc // .quad -4326674280168464132 - QUAD $0xee92fb5515482d44 // .quad -1255665003235103420 - QUAD $0xf4f1b4d515acb93b // .quad -796656831783192261 - QUAD $0x751bdd152d4d1c4a // .quad 8438581409832836170 - QUAD $0x991711052d8bf3c5 // .quad -7415439547505577019 - QUAD $0xd262d45a78a0635d // .quad -3286831292991118499 - QUAD $0xbf5cd54678eef0b6 // .quad -4657613415954583370 - QUAD $0x86fb897116c87c34 // .quad -8720225134666286028 - QUAD $0xef340a98172aace4 // .quad -1210330751515841308 - QUAD $0xd45d35e6ae3d4da0 // .quad -3144297699952734816 - QUAD $0x9580869f0e7aac0e // .quad -7673985747338482674 - QUAD $0x8974836059cca109 // .quad -8542058143368306423 - QUAD $0xbae0a846d2195712 // .quad -4980796165745715438 - QUAD $0x2bd1a438703fc94b // .quad 3157485376071780683 - QUAD $0xe998d258869facd7 // .quad -1614309188754756393 - QUAD $0x7b6306a34627ddcf // .quad 8890957387685944783 - QUAD $0x91ff83775423cc06 // .quad -7926472270612804602 - QUAD $0x1a3bc84c17b1d542 // .quad 1890324697752655170 - QUAD $0xb67f6455292cbf08 // .quad -5296404319838617848 - QUAD $0x20caba5f1d9e4a93 // .quad 2362905872190818963 - QUAD $0xe41f3d6a7377eeca // .quad -2008819381370884406 - QUAD $0x547eb47b7282ee9c // .quad 6088502188546649756 - QUAD $0x8e938662882af53e // .quad -8173041140997884610 - QUAD $0xe99e619a4f23aa43 // .quad -1612744301171463613 - QUAD $0xb23867fb2a35b28d // .quad -5604615407819967859 - QUAD $0x6405fa00e2ec94d4 // .quad 7207441660390446292 - QUAD $0xdec681f9f4c31f31 // .quad -2394083241347571919 - QUAD $0xde83bc408dd3dd04 // .quad -2412877989897052924 - QUAD $0x8b3c113c38f9f37e // .quad -8413831053483314306 - QUAD $0x9624ab50b148d445 // .quad -7627783505798704059 - QUAD $0xae0b158b4738705e // .quad -5905602798426754978 - QUAD $0x3badd624dd9b0957 // .quad 4300328673033783639 - QUAD $0xd98ddaee19068c76 // .quad -2770317479606055818 - QUAD $0xe54ca5d70a80e5d6 // .quad -1923980597781273130 - QUAD $0x87f8a8d4cfa417c9 // .quad -8648977452394866743 - QUAD $0x5e9fcf4ccd211f4c // .quad 6818396289628184396 - QUAD $0xa9f6d30a038d1dbc // .quad -6199535797066195524 - QUAD $0x7647c3200069671f // .quad 8522995362035230495 - QUAD $0xd47487cc8470652b // .quad -3137733727905356501 - QUAD $0x29ecd9f40041e073 // .quad 3021029092058325107 - QUAD $0x84c8d4dfd2c63f3b // .quad -8878612607581929669 - QUAD $0xf468107100525890 // .quad -835399653354481520 - QUAD $0xa5fb0a17c777cf09 // .quad -6486579741050024183 - QUAD $0x7182148d4066eeb4 // .quad 8179122470161673908 - QUAD $0xcf79cc9db955c2cc // .quad -3496538657885142324 - QUAD $0xc6f14cd848405530 // .quad -4111420493003729616 - QUAD $0x81ac1fe293d599bf // .quad -9102865688819295809 - QUAD $0xb8ada00e5a506a7c // .quad -5139275616254662020 - QUAD $0xa21727db38cb002f // .quad -6766896092596731857 - QUAD $0xa6d90811f0e4851c // .quad -6424094520318327524 - QUAD $0xca9cf1d206fdc03b // .quad -3846934097318526917 - QUAD $0x908f4a166d1da663 // .quad -8030118150397909405 - QUAD $0xfd442e4688bd304a // .quad -196981603220770742 - QUAD $0x9a598e4e043287fe // .quad -7324666853212387330 - QUAD $0x9e4a9cec15763e2e // .quad -7040642529654063570 - QUAD $0x40eff1e1853f29fd // .quad 4679224488766679549 - QUAD $0xc5dd44271ad3cdba // .quad -4189117143640191558 - QUAD $0xd12bee59e68ef47c // .quad -3374341425896426372 - QUAD $0xf7549530e188c128 // .quad -624710411122851544 - QUAD $0x82bb74f8301958ce // .quad -9026492418826348338 - QUAD $0x9a94dd3e8cf578b9 // .quad -7307973034592864071 - QUAD $0xe36a52363c1faf01 // .quad -2059743486678159615 - QUAD $0xc13a148e3032d6e7 // .quad -4523280274813692185 - QUAD $0xdc44e6c3cb279ac1 // .quad -2574679358347699519 - QUAD $0xf18899b1bc3f8ca1 // .quad -1042414325089727327 - QUAD $0x29ab103a5ef8c0b9 // .quad 3002511419460075705 - QUAD $0x96f5600f15a7b7e5 // .quad -7569037980822161435 - QUAD $0x7415d448f6b6f0e7 // .quad 8364825292752482535 - QUAD $0xbcb2b812db11a5de // .quad -4849611457600313890 - QUAD $0x111b495b3464ad21 // .quad 1232659579085827361 - QUAD $0xebdf661791d60f56 // .quad -1450328303573004458 - QUAD $0xcab10dd900beec34 // .quad -3841273781498745804 - QUAD $0x936b9fcebb25c995 // .quad -7823984217374209643 - QUAD $0x3d5d514f40eea742 // .quad 4421779809981343554 - QUAD $0xb84687c269ef3bfb // .quad -5168294253290374149 - QUAD $0x0cb4a5a3112a5112 // .quad 915538744049291538 - QUAD $0xe65829b3046b0afa // .quad -1848681798185579782 - QUAD $0x47f0e785eaba72ab // .quad 5183897733458195115 - QUAD $0x8ff71a0fe2c2e6dc // .quad -8072955151507069220 - QUAD $0x59ed216765690f56 // .quad 6479872166822743894 - QUAD $0xb3f4e093db73a093 // .quad -5479507920956448621 - QUAD $0x306869c13ec3532c // .quad 3488154190101041964 - QUAD $0xe0f218b8d25088b8 // .quad -2237698882768172872 - QUAD $0x1e414218c73a13fb // .quad 2180096368813151227 - QUAD $0x8c974f7383725573 // .quad -8316090829371189901 - QUAD $0xe5d1929ef90898fa // .quad -1886565557410948870 - QUAD $0xafbd2350644eeacf // .quad -5783427518286599473 - QUAD $0xdf45f746b74abf39 // .quad -2358206946763686087 - QUAD $0xdbac6c247d62a583 // .quad -2617598379430861437 - QUAD $0x6b8bba8c328eb783 // .quad 7749492695127472003 - QUAD $0x894bc396ce5da772 // .quad -8553528014785370254 - QUAD $0x066ea92f3f326564 // .quad 463493832054564196 - QUAD $0xab9eb47c81f5114f // .quad -6080224000054324913 - QUAD $0xc80a537b0efefebd // .quad -4032318728359182659 - QUAD $0xd686619ba27255a2 // .quad -2988593981640518238 - QUAD $0xbd06742ce95f5f36 // .quad -4826042214438183114 - QUAD $0x8613fd0145877585 // .quad -8785400266166405755 - QUAD $0x2c48113823b73704 // .quad 3190819268807046916 - QUAD $0xa798fc4196e952e7 // .quad -6370064314280619289 - QUAD $0xf75a15862ca504c5 // .quad -623161932418579259 - QUAD $0xd17f3b51fca3a7a0 // .quad -3350894374423386208 - QUAD $0x9a984d73dbe722fb // .quad -7307005235402693893 - QUAD $0x82ef85133de648c4 // .quad -9011838011655698236 - QUAD $0xc13e60d0d2e0ebba // .quad -4522070525825979462 - QUAD $0xa3ab66580d5fdaf5 // .quad -6653111496142234891 - QUAD $0x318df905079926a8 // .quad 3570783879572301480 - QUAD $0xcc963fee10b7d1b3 // .quad -3704703351750405709 - QUAD $0xfdf17746497f7052 // .quad -148206168962011054 - QUAD $0xffbbcfe994e5c61f // .quad -19193171260619233 - QUAD $0xfeb6ea8bedefa633 // .quad -92628855601256909 - QUAD $0x9fd561f1fd0f9bd3 // .quad -6929524759678968877 - QUAD $0xfe64a52ee96b8fc0 // .quad -115786069501571136 - QUAD $0xc7caba6e7c5382c8 // .quad -4050219931171323192 - QUAD $0x3dfdce7aa3c673b0 // .quad 4466953431550423984 - QUAD $0xf9bd690a1b68637b // .quad -451088895536766085 - QUAD $0x06bea10ca65c084e // .quad 486002885505321038 - QUAD $0x9c1661a651213e2d // .quad -7199459587351560659 - QUAD $0x486e494fcff30a62 // .quad 5219189625309039202 - QUAD $0xc31bfa0fe5698db8 // .quad -4387638465762062920 - QUAD $0x5a89dba3c3efccfa // .quad 6523987031636299002 - QUAD $0xf3e2f893dec3f126 // .quad -872862063775190746 - QUAD $0xf89629465a75e01c // .quad -534194123654701028 - QUAD $0x986ddb5c6b3a76b7 // .quad -7463067817500576073 - QUAD $0xf6bbb397f1135823 // .quad -667742654568376285 - QUAD $0xbe89523386091465 // .quad -4717148753448332187 - QUAD $0x746aa07ded582e2c // .quad 8388693718644305452 - QUAD $0xee2ba6c0678b597f // .quad -1284749923383027329 - QUAD $0xa8c2a44eb4571cdc // .quad -6286281471915778852 - QUAD $0x94db483840b717ef // .quad -7720497729755473937 - QUAD $0x92f34d62616ce413 // .quad -7857851839894723565 - QUAD $0xba121a4650e4ddeb // .quad -5038936143766954517 - QUAD $0x77b020baf9c81d17 // .quad 8624429273841147159 - QUAD $0xe896a0d7e51e1566 // .quad -1686984161281305242 - QUAD $0x0ace1474dc1d122e // .quad 778582277723329070 - QUAD $0x915e2486ef32cd60 // .quad -7971894128441897632 - QUAD $0x0d819992132456ba // .quad 973227847154161338 - QUAD $0xb5b5ada8aaff80b8 // .quad -5353181642124984136 - QUAD $0x10e1fff697ed6c69 // .quad 1216534808942701673 - QUAD $0xe3231912d5bf60e6 // .quad -2079791034228842266 - QUAD $0xca8d3ffa1ef463c1 // .quad -3851351762838199359 - QUAD $0x8df5efabc5979c8f // .quad -8217398424034108273 - QUAD $0xbd308ff8a6b17cb2 // .quad -4814189703547749198 - QUAD $0xb1736b96b6fd83b3 // .quad -5660062011615247437 - QUAD $0xac7cb3f6d05ddbde // .quad -6017737129434686498 - QUAD $0xddd0467c64bce4a0 // .quad -2463391496091671392 - QUAD $0x6bcdf07a423aa96b // .quad 7768129340171790699 - QUAD $0x8aa22c0dbef60ee4 // .quad -8457148712698376476 - QUAD $0x86c16c98d2c953c6 // .quad -8736582398494813242 - QUAD $0xad4ab7112eb3929d // .quad -5959749872445582691 - QUAD $0xe871c7bf077ba8b7 // .quad -1697355961263740745 - QUAD $0xd89d64d57a607744 // .quad -2838001322129590460 - QUAD $0x11471cd764ad4972 // .quad 1244995533423855986 - QUAD $0x87625f056c7c4a8b // .quad -8691279853972075893 - QUAD $0xd598e40d3dd89bcf // .quad -3055441601647567921 - QUAD $0xa93af6c6c79b5d2d // .quad -6252413799037706963 - QUAD $0x4aff1d108d4ec2c3 // .quad 5404070034795315907 - QUAD $0xd389b47879823479 // .quad -3203831230369745799 - QUAD $0xcedf722a585139ba // .quad -3539985255894009414 - QUAD $0x843610cb4bf160cb // .quad -8919923546622172981 - QUAD $0xc2974eb4ee658828 // .quad -4424981569867511768 - QUAD $0xa54394fe1eedb8fe // .quad -6538218414850328322 - QUAD $0x733d226229feea32 // .quad 8303831092947774002 - QUAD $0xce947a3da6a9273e // .quad -3561087000135522498 - QUAD $0x0806357d5a3f525f // .quad 578208414664970847 - QUAD $0x811ccc668829b887 // .quad -9143208402725783417 - QUAD $0xca07c2dcb0cf26f7 // .quad -3888925500096174345 - QUAD $0xa163ff802a3426a8 // .quad -6817324484979841368 - QUAD $0xfc89b393dd02f0b5 // .quad -249470856692830027 - QUAD $0xc9bcff6034c13052 // .quad -3909969587797413806 - QUAD $0xbbac2078d443ace2 // .quad -4923524589293425438 - QUAD $0xfc2c3f3841f17c67 // .quad -275775966319379353 - QUAD $0xd54b944b84aa4c0d // .quad -3077202868308390899 - QUAD $0x9d9ba7832936edc0 // .quad -7089889006590693952 - QUAD $0x0a9e795e65d4df11 // .quad 765182433041899281 - QUAD $0xc5029163f384a931 // .quad -4250675239810979535 - QUAD $0x4d4617b5ff4a16d5 // .quad 5568164059729762005 - QUAD $0xf64335bcf065d37d // .quad -701658031336336515 - QUAD $0x504bced1bf8e4e45 // .quad 5785945546544795205 - QUAD $0x99ea0196163fa42e // .quad -7356065297226292178 - QUAD $0xe45ec2862f71e1d6 // .quad -1990940103673781802 - QUAD $0xc06481fb9bcf8d39 // .quad -4583395603105477319 - QUAD $0x5d767327bb4e5a4c // .quad 6734696907262548556 - QUAD $0xf07da27a82c37088 // .quad -1117558485454458744 - QUAD $0x3a6a07f8d510f86f // .quad 4209185567039092847 - QUAD $0x964e858c91ba2655 // .quad -7616003081050118571 - QUAD $0x890489f70a55368b // .quad -8573576096483297653 - QUAD $0xbbe226efb628afea // .quad -4908317832885260310 - QUAD $0x2b45ac74ccea842e // .quad 3118087934678041646 - QUAD $0xeadab0aba3b2dbe5 // .quad -1523711272679187483 - QUAD $0x3b0b8bc90012929d // .quad 4254647968387469981 - QUAD $0x92c8ae6b464fc96f // .quad -7869848573065574033 - QUAD $0x09ce6ebb40173744 // .quad 706623942056949572 - QUAD $0xb77ada0617e3bbcb // .quad -5225624697904579637 - QUAD $0xcc420a6a101d0515 // .quad -3728406090856200939 - QUAD $0xe55990879ddcaabd // .quad -1920344853953336643 - QUAD $0x9fa946824a12232d // .quad -6941939825212513491 - QUAD $0x8f57fa54c2a9eab6 // .quad -8117744561361917258 - QUAD $0x47939822dc96abf9 // .quad 5157633273766521849 - QUAD $0xb32df8e9f3546564 // .quad -5535494683275008668 - QUAD $0x59787e2b93bc56f7 // .quad 6447041592208152311 - QUAD $0xdff9772470297ebd // .quad -2307682335666372931 - QUAD $0x57eb4edb3c55b65a // .quad 6335244004343789146 - QUAD $0x8bfbea76c619ef36 // .quad -8359830487432564938 - QUAD $0xede622920b6b23f1 // .quad -1304317031425039375 - QUAD $0xaefae51477a06b03 // .quad -5838102090863318269 - QUAD $0xe95fab368e45eced // .quad -1630396289281299219 - QUAD $0xdab99e59958885c4 // .quad -2685941595151759932 - QUAD $0x11dbcb0218ebb414 // .quad 1286845328412881940 - QUAD $0x88b402f7fd75539b // .quad -8596242524610931813 - QUAD $0xd652bdc29f26a119 // .quad -3003129357911285479 - QUAD $0xaae103b5fcd2a881 // .quad -6133617137336276863 - QUAD $0x4be76d3346f0495f // .quad 5469460339465668959 - QUAD $0xd59944a37c0752a2 // .quad -3055335403242958174 - QUAD $0x6f70a4400c562ddb // .quad 8030098730593431003 - QUAD $0x857fcae62d8493a5 // .quad -8827113654667930715 - QUAD $0xcb4ccd500f6bb952 // .quad -3797434642040374958 - QUAD $0xa6dfbd9fb8e5b88e // .quad -6422206049907525490 - QUAD $0x7e2000a41346a7a7 // .quad 9088264752731695015 - QUAD $0xd097ad07a71f26b2 // .quad -3416071543957018958 - QUAD $0x8ed400668c0c28c8 // .quad -8154892584824854328 - QUAD $0x825ecc24c873782f // .quad -9052573742614218705 - QUAD $0x728900802f0f32fa // .quad 8253128342678483706 - QUAD $0xa2f67f2dfa90563b // .quad -6704031159840385477 - QUAD $0x4f2b40a03ad2ffb9 // .quad 5704724409920716729 - QUAD $0xcbb41ef979346bca // .quad -3768352931373093942 - QUAD $0xe2f610c84987bfa8 // .quad -2092466524453879896 - QUAD $0xfea126b7d78186bc // .quad -98755145788979524 - QUAD $0x0dd9ca7d2df4d7c9 // .quad 998051431430019017 - QUAD $0x9f24b832e6b0f436 // .quad -6979250993759194058 - QUAD $0x91503d1c79720dbb // .quad -7975807747567252037 - QUAD $0xc6ede63fa05d3143 // .quad -4112377723771604669 - QUAD $0x75a44c6397ce912a // .quad 8476984389250486570 - QUAD $0xf8a95fcf88747d94 // .quad -528786136287117932 - QUAD $0xc986afbe3ee11aba // .quad -3925256793573221702 - QUAD $0x9b69dbe1b548ce7c // .quad -7248020362820530564 - QUAD $0xfbe85badce996168 // .quad -294884973539139224 - QUAD $0xc24452da229b021b // .quad -4448339435098275301 - QUAD $0xfae27299423fb9c3 // .quad -368606216923924029 - QUAD $0xf2d56790ab41c2a2 // .quad -948738275445456222 - QUAD $0xdccd879fc967d41a // .quad -2536221894791146470 - QUAD $0x97c560ba6b0919a5 // .quad -7510490449794491995 - QUAD $0x5400e987bbc1c920 // .quad 6053094668365842720 - QUAD $0xbdb6b8e905cb600f // .quad -4776427043815727089 - QUAD $0x290123e9aab23b68 // .quad 2954682317029915496 - QUAD $0xed246723473e3813 // .quad -1358847786342270957 - QUAD $0xf9a0b6720aaf6521 // .quad -459166561069996767 - QUAD $0x9436c0760c86e30b // .quad -7766808894105001205 - QUAD $0xf808e40e8d5b3e69 // .quad -573958201337495959 - QUAD $0xb94470938fa89bce // .quad -5096825099203863602 - QUAD $0xb60b1d1230b20e04 // .quad -5329133770099257852 - QUAD $0xe7958cb87392c2c2 // .quad -1759345355577441598 - QUAD $0xb1c6f22b5e6f48c2 // .quad -5636551615525730110 - QUAD $0x90bd77f3483bb9b9 // .quad -8017119874876982855 - QUAD $0x1e38aeb6360b1af3 // .quad 2177682517447613171 - QUAD $0xb4ecd5f01a4aa828 // .quad -5409713825168840664 - QUAD $0x25c6da63c38de1b0 // .quad 2722103146809516464 - QUAD $0xe2280b6c20dd5232 // .quad -2150456263033662926 - QUAD $0x579c487e5a38ad0e // .quad 6313000485183335694 - QUAD $0x8d590723948a535f // .quad -8261564192037121185 - QUAD $0x2d835a9df0c6d851 // .quad 3279564588051781713 - QUAD $0xb0af48ec79ace837 // .quad -5715269221619013577 - QUAD $0xf8e431456cf88e65 // .quad -512230283362660763 - QUAD $0xdcdb1b2798182244 // .quad -2532400508596379068 - QUAD $0x1b8e9ecb641b58ff // .quad 1985699082112030975 - QUAD $0x8a08f0f8bf0f156b // .quad -8500279345513818773 - QUAD $0xe272467e3d222f3f // .quad -2129562165787349185 - QUAD $0xac8b2d36eed2dac5 // .quad -6013663163464885563 - QUAD $0x5b0ed81dcc6abb0f // .quad 6561419329620589327 - QUAD $0xd7adf884aa879177 // .quad -2905392935903719049 - QUAD $0x98e947129fc2b4e9 // .quad -7428327965055601431 - QUAD $0x86ccbb52ea94baea // .quad -8733399612580906262 - QUAD $0x3f2398d747b36224 // .quad 4549648098962661924 - QUAD $0xa87fea27a539e9a5 // .quad -6305063497298744923 - QUAD $0x8eec7f0d19a03aad // .quad -8147997931578836307 - QUAD $0xd29fe4b18e88640e // .quad -3269643353196043250 - QUAD $0x1953cf68300424ac // .quad 1825030320404309164 - QUAD $0x83a3eeeef9153e89 // .quad -8961056123388608887 - QUAD $0x5fa8c3423c052dd7 // .quad 6892973918932774359 - QUAD $0xa48ceaaab75a8e2b // .quad -6589634135808373205 - QUAD $0x3792f412cb06794d // .quad 4004531380238580045 - QUAD $0xcdb02555653131b6 // .quad -3625356651333078602 - QUAD $0xe2bbd88bbee40bd0 // .quad -2108853905778275376 - QUAD $0x808e17555f3ebf11 // .quad -9183376934724255983 - QUAD $0x5b6aceaeae9d0ec4 // .quad 6587304654631931588 - QUAD $0xa0b19d2ab70e6ed6 // .quad -6867535149977932074 - QUAD $0xf245825a5a445275 // .quad -989241218564861323 - QUAD $0xc8de047564d20a8b // .quad -3972732919045027189 - QUAD $0xeed6e2f0f0d56712 // .quad -1236551523206076654 - QUAD $0xfb158592be068d2e // .quad -354230130378896082 - QUAD $0x55464dd69685606b // .quad 6144684325637283947 - QUAD $0x9ced737bb6c4183d // .quad -7138922859127891907 - QUAD $0xaa97e14c3c26b886 // .quad -6154202648235558778 - QUAD $0xc428d05aa4751e4c // .quad -4311967555482476980 - QUAD $0xd53dd99f4b3066a8 // .quad -3081067291867060568 - QUAD $0xf53304714d9265df // .quad -778273425925708321 - QUAD $0xe546a8038efe4029 // .quad -1925667057416912855 - QUAD $0x993fe2c6d07b7fab // .quad -7403949918844649557 - QUAD $0xde98520472bdd033 // .quad -2407083821771141069 - QUAD $0xbf8fdb78849a5f96 // .quad -4643251380128424042 - QUAD $0x963e66858f6d4440 // .quad -7620540795641314240 - QUAD $0xef73d256a5c0f77c // .quad -1192378206733142148 - QUAD $0xdde7001379a44aa8 // .quad -2456994988062127448 - QUAD $0x95a8637627989aad // .quad -7662765406849295699 - QUAD $0x5560c018580d5d52 // .quad 6152128301777116498 - QUAD $0xbb127c53b17ec159 // .quad -4966770740134231719 - QUAD $0xaab8f01e6e10b4a6 // .quad -6144897678060768090 - QUAD $0xe9d71b689dde71af // .quad -1596777406740401745 - QUAD $0xcab3961304ca70e8 // .quad -3840561048787980056 - QUAD $0x9226712162ab070d // .quad -7915514906853832947 - QUAD $0x3d607b97c5fd0d22 // .quad 4422670725869800738 - QUAD $0xb6b00d69bb55c8d1 // .quad -5282707615139903279 - QUAD $0x8cb89a7db77c506a // .quad -8306719647944912790 - QUAD $0xe45c10c42a2b3b05 // .quad -1991698500497491195 - QUAD $0x77f3608e92adb242 // .quad 8643358275316593218 - QUAD $0x8eb98a7a9a5b04e3 // .quad -8162340590452013853 - QUAD $0x55f038b237591ed3 // .quad 6192511825718353619 - QUAD $0xb267ed1940f1c61c // .quad -5591239719637629412 - QUAD $0x6b6c46dec52f6688 // .quad 7740639782147942024 - QUAD $0xdf01e85f912e37a3 // .quad -2377363631119648861 - QUAD $0x2323ac4b3b3da015 // .quad 2532056854628769813 - QUAD $0x8b61313bbabce2c6 // .quad -8403381297090862394 - QUAD $0xabec975e0a0d081a // .quad -6058300968568813542 - QUAD $0xae397d8aa96c1b77 // .quad -5892540602936190089 - QUAD $0x96e7bd358c904a21 // .quad -7572876210711016927 - QUAD $0xd9c7dced53c72255 // .quad -2753989735242849707 - QUAD $0x7e50d64177da2e54 // .quad 9102010423587778132 - QUAD $0x881cea14545c7575 // .quad -8638772612167862923 - QUAD $0xdde50bd1d5d0b9e9 // .quad -2457545025797441047 - QUAD $0xaa242499697392d2 // .quad -6186779746782440750 - QUAD $0x955e4ec64b44e864 // .quad -7683617300674189212 - QUAD $0xd4ad2dbfc3d07787 // .quad -3121788665050663033 - QUAD $0xbd5af13bef0b113e // .quad -4802260812921368258 - QUAD $0x84ec3c97da624ab4 // .quad -8868646943297746252 - QUAD $0xecb1ad8aeacdd58e // .quad -1391139997724322418 - QUAD $0xa6274bbdd0fadd61 // .quad -6474122660694794911 - QUAD $0x67de18eda5814af2 // .quad 7484447039699372786 - QUAD $0xcfb11ead453994ba // .quad -3480967307441105734 - QUAD $0x80eacf948770ced7 // .quad -9157278655470055721 - QUAD $0x81ceb32c4b43fcf4 // .quad -9093133594791772940 - QUAD $0xa1258379a94d028d // .quad -6834912300910181747 - QUAD $0xa2425ff75e14fc31 // .quad -6754730975062328271 - QUAD $0x096ee45813a04330 // .quad 679731660717048624 - QUAD $0xcad2f7f5359a3b3e // .quad -3831727700400522434 - QUAD $0x8bca9d6e188853fc // .quad -8373707460958465028 - QUAD $0xfd87b5f28300ca0d // .quad -177973607073265139 - QUAD $0x775ea264cf55347d // .quad 8601490892183123069 - QUAD $0x9e74d1b791e07e48 // .quad -7028762532061872568 - QUAD $0x95364afe032a819d // .quad -7694880458480647779 - QUAD $0xc612062576589dda // .quad -4174267146649952806 - QUAD $0x3a83ddbd83f52204 // .quad 4216457482181353988 - QUAD $0xf79687aed3eec551 // .quad -606147914885053103 - QUAD $0xc4926a9672793542 // .quad -4282243101277735614 - QUAD $0x9abe14cd44753b52 // .quad -7296371474444240046 - QUAD $0x75b7053c0f178293 // .quad 8482254178684994195 - QUAD $0xc16d9a0095928a27 // .quad -4508778324627912153 - QUAD $0x5324c68b12dd6338 // .quad 5991131704928854840 - QUAD $0xf1c90080baf72cb1 // .quad -1024286887357502287 - QUAD $0xd3f6fc16ebca5e03 // .quad -3173071712060547581 - QUAD $0x971da05074da7bee // .quad -7557708332239520786 - QUAD $0x88f4bb1ca6bcf584 // .quad -8578025658503072380 - QUAD $0xbce5086492111aea // .quad -4835449396872013078 - QUAD $0x2b31e9e3d06c32e5 // .quad 3112525982153323237 - QUAD $0xec1e4a7db69561a5 // .quad -1432625727662628443 - QUAD $0x3aff322e62439fcf // .quad 4251171748059520975 - QUAD $0x9392ee8e921d5d07 // .quad -7812920107430224633 - QUAD $0x09befeb9fad487c2 // .quad 702278666647013314 - QUAD $0xb877aa3236a4b449 // .quad -5154464115860392887 - QUAD $0x4c2ebe687989a9b3 // .quad 5489534351736154547 - QUAD $0xe69594bec44de15b // .quad -1831394126398103205 - QUAD $0x0f9d37014bf60a10 // .quad 1125115960621402640 - QUAD $0x901d7cf73ab0acd9 // .quad -8062150356639896359 - QUAD $0x538484c19ef38c94 // .quad 6018080969204141204 - QUAD $0xb424dc35095cd80f // .quad -5466001927372482545 - QUAD $0x2865a5f206b06fb9 // .quad 2910915193077788601 - QUAD $0xe12e13424bb40e13 // .quad -2220816390788215277 - QUAD $0xf93f87b7442e45d3 // .quad -486521013540076077 - QUAD $0x8cbccc096f5088cb // .quad -8305539271883716405 - QUAD $0xf78f69a51539d748 // .quad -608151266925095096 - QUAD $0xafebff0bcb24aafe // .quad -5770238071427257602 - QUAD $0xb573440e5a884d1b // .quad -5371875102083756773 - QUAD $0xdbe6fecebdedd5be // .quad -2601111570856684098 - QUAD $0x31680a88f8953030 // .quad 3560107088838733872 - QUAD $0x89705f4136b4a597 // .quad -8543223759426509417 - QUAD $0xfdc20d2b36ba7c3d // .quad -161552157378970563 - QUAD $0xabcc77118461cefc // .quad -6067343680855748868 - QUAD $0x3d32907604691b4c // .quad 4409745821703674700 - QUAD $0xd6bf94d5e57a42bc // .quad -2972493582642298180 - QUAD $0xa63f9a49c2c1b10f // .quad -6467280898289979121 - QUAD $0x8637bd05af6c69b5 // .quad -8775337516792518219 - QUAD $0x0fcf80dc33721d53 // .quad 1139270913992301907 - QUAD $0xa7c5ac471b478423 // .quad -6357485877563259869 - QUAD $0xd3c36113404ea4a8 // .quad -3187597375937010520 - QUAD $0xd1b71758e219652b // .quad -3335171328526686933 - QUAD $0x645a1cac083126e9 // .quad 7231123676894144233 - QUAD $0x83126e978d4fdf3b // .quad -9002011107970261189 - QUAD $0x3d70a3d70a3d70a3 // .quad 4427218577690292387 - QUAD $0xa3d70a3d70a3d70a // .quad -6640827866535438582 - QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8000000000000000 // .quad -9223372036854775808 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa000000000000000 // .quad -6917529027641081856 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xc800000000000000 // .quad -4035225266123964416 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xfa00000000000000 // .quad -432345564227567616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9c40000000000000 // .quad -7187745005283311616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xc350000000000000 // .quad -4372995238176751616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xf424000000000000 // .quad -854558029293551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9896800000000000 // .quad -7451627795949551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xbebc200000000000 // .quad -4702848726509551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xee6b280000000000 // .quad -1266874889709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9502f90000000000 // .quad -7709325833709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xba43b74000000000 // .quad -5024971273709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xe8d4a51000000000 // .quad -1669528073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9184e72a00000000 // .quad -7960984073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xb5e620f480000000 // .quad -5339544073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xe35fa931a0000000 // .quad -2062744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8e1bc9bf04000000 // .quad -8206744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xb1a2bc2ec5000000 // .quad -5646744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xde0b6b3a76400000 // .quad -2446744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8ac7230489e80000 // .quad -8446744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xad78ebc5ac620000 // .quad -5946744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xd8d726b7177a8000 // .quad -2821744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x878678326eac9000 // .quad -8681119073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa968163f0a57b400 // .quad -6239712823709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xd3c21bcecceda100 // .quad -3187955011209551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x84595161401484a0 // .quad -8910000909647051616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa56fa5b99019a5c8 // .quad -6525815118631426616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xcecb8f27f4200f3a // .quad -3545582879861895366 - QUAD $0x4000000000000000 // .quad 4611686018427387904 - QUAD $0x813f3978f8940984 // .quad -9133518327554766460 - QUAD $0x5000000000000000 // .quad 5764607523034234880 - QUAD $0xa18f07d736b90be5 // .quad -6805211891016070171 - QUAD $0xa400000000000000 // .quad -6629298651489370112 - QUAD $0xc9f2c9cd04674ede // .quad -3894828845342699810 - QUAD $0x4d00000000000000 // .quad 5548434740920451072 - QUAD $0xfc6f7c4045812296 // .quad -256850038250986858 - QUAD $0xf020000000000000 // .quad -1143914305352105984 - QUAD $0x9dc5ada82b70b59d // .quad -7078060301547948643 - QUAD $0x6c28000000000000 // .quad 7793479155164643328 - QUAD $0xc5371912364ce305 // .quad -4235889358507547899 - QUAD $0xc732000000000000 // .quad -4093209111326359552 - QUAD $0xf684df56c3e01bc6 // .quad -683175679707046970 - QUAD $0x3c7f400000000000 // .quad 4359273333062107136 - QUAD $0x9a130b963a6c115c // .quad -7344513827457986212 - QUAD $0x4b9f100000000000 // .quad 5449091666327633920 - QUAD $0xc097ce7bc90715b3 // .quad -4568956265895094861 - QUAD $0x1e86d40000000000 // .quad 2199678564482154496 - QUAD $0xf0bdc21abb48db20 // .quad -1099509313941480672 - QUAD $0x1314448000000000 // .quad 1374799102801346560 - QUAD $0x96769950b50d88f4 // .quad -7604722348854507276 - QUAD $0x17d955a000000000 // .quad 1718498878501683200 - QUAD $0xbc143fa4e250eb31 // .quad -4894216917640746191 - QUAD $0x5dcfab0800000000 // .quad 6759809616554491904 - QUAD $0xeb194f8e1ae525fd // .quad -1506085128623544835 - QUAD $0x5aa1cae500000000 // .quad 6530724019560251392 - QUAD $0x92efd1b8d0cf37be // .quad -7858832233030797378 - QUAD $0xf14a3d9e40000000 // .quad -1059967012404461568 - QUAD $0xb7abc627050305ad // .quad -5211854272861108819 - QUAD $0x6d9ccd05d0000000 // .quad 7898413271349198848 - QUAD $0xe596b7b0c643c719 // .quad -1903131822648998119 - QUAD $0xe4820023a2000000 // .quad -1981020733047832576 - QUAD $0x8f7e32ce7bea5c6f // .quad -8106986416796705681 - QUAD $0xdda2802c8a800000 // .quad -2476275916309790720 - QUAD $0xb35dbf821ae4f38b // .quad -5522047002568494197 - QUAD $0xd50b2037ad200000 // .quad -3095344895387238400 - QUAD $0xe0352f62a19e306e // .quad -2290872734783229842 - QUAD $0x4526f422cc340000 // .quad 4982938468024057856 - QUAD $0x8c213d9da502de45 // .quad -8349324486880600507 - QUAD $0x9670b12b7f410000 // .quad -7606384970252091392 - QUAD $0xaf298d050e4395d6 // .quad -5824969590173362730 - QUAD $0x3c0cdd765f114000 // .quad 4327076842467049472 - QUAD $0xdaf3f04651d47b4c // .quad -2669525969289315508 - QUAD $0xa5880a69fb6ac800 // .quad -6518949010312869888 - QUAD $0x88d8762bf324cd0f // .quad -8585982758446904049 - QUAD $0x8eea0d047a457a00 // .quad -8148686262891087360 - QUAD $0xab0e93b6efee0053 // .quad -6120792429631242157 - QUAD $0x72a4904598d6d880 // .quad 8260886245095692416 - QUAD $0xd5d238a4abe98068 // .quad -3039304518611664792 - QUAD $0x47a6da2b7f864750 // .quad 5163053903184807760 - QUAD $0x85a36366eb71f041 // .quad -8817094351773372351 - QUAD $0x999090b65f67d924 // .quad -7381240676301154012 - QUAD $0xa70c3c40a64e6c51 // .quad -6409681921289327535 - QUAD $0xfff4b4e3f741cf6d // .quad -3178808521666707 - QUAD $0xd0cf4b50cfe20765 // .quad -3400416383184271515 - QUAD $0xbff8f10e7a8921a4 // .quad -4613672773753429596 - QUAD $0x82818f1281ed449f // .quad -9042789267131251553 - QUAD $0xaff72d52192b6a0d // .quad -5767090967191786995 - QUAD $0xa321f2d7226895c7 // .quad -6691800565486676537 - QUAD $0x9bf4f8a69f764490 // .quad -7208863708989733744 - QUAD $0xcbea6f8ceb02bb39 // .quad -3753064688430957767 - QUAD $0x02f236d04753d5b4 // .quad 212292400617608628 - QUAD $0xfee50b7025c36a08 // .quad -79644842111309304 - QUAD $0x01d762422c946590 // .quad 132682750386005392 - QUAD $0x9f4f2726179a2245 // .quad -6967307053960650171 - QUAD $0x424d3ad2b7b97ef5 // .quad 4777539456409894645 - QUAD $0xc722f0ef9d80aad6 // .quad -4097447799023424810 - QUAD $0xd2e0898765a7deb2 // .quad -3251447716342407502 - QUAD $0xf8ebad2b84e0d58b // .quad -510123730351893109 - QUAD $0x63cc55f49f88eb2f // .quad 7191217214140771119 - QUAD $0x9b934c3b330c8577 // .quad -7236356359111015049 - QUAD $0x3cbf6b71c76b25fb // .quad 4377335499248575995 - QUAD $0xc2781f49ffcfa6d5 // .quad -4433759430461380907 - QUAD $0x8bef464e3945ef7a // .quad -8363388681221443718 - QUAD $0xf316271c7fc3908a // .quad -930513269649338230 - QUAD $0x97758bf0e3cbb5ac // .quad -7532960934977096276 - QUAD $0x97edd871cfda3a56 // .quad -7499099821171918250 - QUAD $0x3d52eeed1cbea317 // .quad 4418856886560793367 - QUAD $0xbde94e8e43d0c8ec // .quad -4762188758037509908 - QUAD $0x4ca7aaa863ee4bdd // .quad 5523571108200991709 - QUAD $0xed63a231d4c4fb27 // .quad -1341049929119499481 - QUAD $0x8fe8caa93e74ef6a // .quad -8076983103442849942 - QUAD $0x945e455f24fb1cf8 // .quad -7755685233340769032 - QUAD $0xb3e2fd538e122b44 // .quad -5484542860876174524 - QUAD $0xb975d6b6ee39e436 // .quad -5082920523248573386 - QUAD $0x60dbbca87196b616 // .quad 6979379479186945558 - QUAD $0xe7d34c64a9c85d44 // .quad -1741964635633328828 - QUAD $0xbc8955e946fe31cd // .quad -4861259862362934835 - QUAD $0x90e40fbeea1d3a4a // .quad -8006256924911912374 - QUAD $0x6babab6398bdbe41 // .quad 7758483227328495169 - QUAD $0xb51d13aea4a488dd // .quad -5396135137712502563 - QUAD $0xc696963c7eed2dd1 // .quad -4136954021121544751 - QUAD $0xe264589a4dcdab14 // .quad -2133482903713240300 - QUAD $0xfc1e1de5cf543ca2 // .quad -279753253987271518 - QUAD $0x8d7eb76070a08aec // .quad -8250955842461857044 - QUAD $0x3b25a55f43294bcb // .quad 4261994450943298507 - QUAD $0xb0de65388cc8ada8 // .quad -5702008784649933400 - QUAD $0x49ef0eb713f39ebe // .quad 5327493063679123134 - QUAD $0xdd15fe86affad912 // .quad -2515824962385028846 - QUAD $0x6e3569326c784337 // .quad 7941369183226839863 - QUAD $0x8a2dbf142dfcc7ab // .quad -8489919629131724885 - QUAD $0x49c2c37f07965404 // .quad 5315025460606161924 - QUAD $0xacb92ed9397bf996 // .quad -6000713517987268202 - QUAD $0xdc33745ec97be906 // .quad -2579590211097073402 - QUAD $0xd7e77a8f87daf7fb // .quad -2889205879056697349 - QUAD $0x69a028bb3ded71a3 // .quad 7611128154919104931 - QUAD $0x86f0ac99b4e8dafd // .quad -8723282702051517699 - QUAD $0xc40832ea0d68ce0c // .quad -4321147861633282548 - QUAD $0xa8acd7c0222311bc // .quad -6292417359137009220 - QUAD $0xf50a3fa490c30190 // .quad -789748808614215280 - QUAD $0xd2d80db02aabd62b // .quad -3253835680493873621 - QUAD $0x792667c6da79e0fa // .quad 8729779031470891258 - QUAD $0x83c7088e1aab65db // .quad -8951176327949752869 - QUAD $0x577001b891185938 // .quad 6300537770911226168 - QUAD $0xa4b8cab1a1563f52 // .quad -6577284391509803182 - QUAD $0xed4c0226b55e6f86 // .quad -1347699823215743098 - QUAD $0xcde6fd5e09abcf26 // .quad -3609919470959866074 - QUAD $0x544f8158315b05b4 // .quad 6075216638131242420 - QUAD $0x80b05e5ac60b6178 // .quad -9173728696990998152 - QUAD $0x696361ae3db1c721 // .quad 7594020797664053025 - QUAD $0xa0dc75f1778e39d6 // .quad -6855474852811359786 - QUAD $0x03bc3a19cd1e38e9 // .quad 269153960225290473 - QUAD $0xc913936dd571c84c // .quad -3957657547586811828 - QUAD $0x04ab48a04065c723 // .quad 336442450281613091 - QUAD $0xfb5878494ace3a5f // .quad -335385916056126881 - QUAD $0x62eb0d64283f9c76 // .quad 7127805559067090038 - QUAD $0x9d174b2dcec0e47b // .quad -7127145225176161157 - QUAD $0x3ba5d0bd324f8394 // .quad 4298070930406474644 - QUAD $0xc45d1df942711d9a // .quad -4297245513042813542 - QUAD $0xca8f44ec7ee36479 // .quad -3850783373846682503 - QUAD $0xf5746577930d6500 // .quad -759870872876129024 - QUAD $0x7e998b13cf4e1ecb // .quad 9122475437414293195 - QUAD $0x9968bf6abbe85f20 // .quad -7392448323188662496 - QUAD $0x9e3fedd8c321a67e // .quad -7043649776941685122 - QUAD $0xbfc2ef456ae276e8 // .quad -4628874385558440216 - QUAD $0xc5cfe94ef3ea101e // .quad -4192876202749718498 - QUAD $0xefb3ab16c59b14a2 // .quad -1174406963520662366 - QUAD $0xbba1f1d158724a12 // .quad -4926390635932268014 - QUAD $0x95d04aee3b80ece5 // .quad -7651533379841495835 - QUAD $0x2a8a6e45ae8edc97 // .quad 3065383741939440791 - QUAD $0xbb445da9ca61281f // .quad -4952730706374481889 - QUAD $0xf52d09d71a3293bd // .quad -779956341003086915 - QUAD $0xea1575143cf97226 // .quad -1579227364540714458 - QUAD $0x593c2626705f9c56 // .quad 6430056314514152534 - QUAD $0x924d692ca61be758 // .quad -7904546130479028392 - QUAD $0x6f8b2fb00c77836c // .quad 8037570393142690668 - QUAD $0xb6e0c377cfa2e12e // .quad -5268996644671397586 - QUAD $0x0b6dfb9c0f956447 // .quad 823590954573587527 - QUAD $0xe498f455c38b997a // .quad -1974559787411859078 - QUAD $0x4724bd4189bd5eac // .quad 5126430365035880108 - QUAD $0x8edf98b59a373fec // .quad -8151628894773493780 - QUAD $0x58edec91ec2cb657 // .quad 6408037956294850135 - QUAD $0xb2977ee300c50fe7 // .quad -5577850100039479321 - QUAD $0x2f2967b66737e3ed // .quad 3398361426941174765 - QUAD $0xdf3d5e9bc0f653e1 // .quad -2360626606621961247 - QUAD $0xbd79e0d20082ee74 // .quad -4793553135802847628 - QUAD $0x8b865b215899f46c // .quad -8392920656779807636 - QUAD $0xecd8590680a3aa11 // .quad -1380255401326171631 - QUAD $0xae67f1e9aec07187 // .quad -5879464802547371641 - QUAD $0xe80e6f4820cc9495 // .quad -1725319251657714539 - QUAD $0xda01ee641a708de9 // .quad -2737644984756826647 - QUAD $0x3109058d147fdcdd // .quad 3533361486141316317 - QUAD $0x884134fe908658b2 // .quad -8628557143114098510 - QUAD $0xbd4b46f0599fd415 // .quad -4806670179178130411 - QUAD $0xaa51823e34a7eede // .quad -6174010410465235234 - QUAD $0x6c9e18ac7007c91a // .quad 7826720331309500698 - QUAD $0xd4e5e2cdc1d1ea96 // .quad -3105826994654156138 - QUAD $0x03e2cf6bc604ddb0 // .quad 280014188641050032 - QUAD $0x850fadc09923329e // .quad -8858670899299929442 - QUAD $0x84db8346b786151c // .quad -8873354301053463268 - QUAD $0xa6539930bf6bff45 // .quad -6461652605697523899 - QUAD $0xe612641865679a63 // .quad -1868320839462053277 - QUAD $0xcfe87f7cef46ff16 // .quad -3465379738694516970 - QUAD $0x4fcb7e8f3f60c07e // .quad 5749828502977298558 - QUAD $0x81f14fae158c5f6e // .quad -9083391364325154962 - QUAD $0xe3be5e330f38f09d // .quad -2036086408133152611 - QUAD $0xa26da3999aef7749 // .quad -6742553186979055799 - QUAD $0x5cadf5bfd3072cc5 // .quad 6678264026688335045 - QUAD $0xcb090c8001ab551c // .quad -3816505465296431844 - QUAD $0x73d9732fc7c8f7f6 // .quad 8347830033360418806 - QUAD $0xfdcb4fa002162a63 // .quad -158945813193151901 - QUAD $0x2867e7fddcdd9afa // .quad 2911550761636567802 - QUAD $0x9e9f11c4014dda7e // .quad -7016870160886801794 - QUAD $0xb281e1fd541501b8 // .quad -5583933584809066056 - QUAD $0xc646d63501a1511d // .quad -4159401682681114339 - QUAD $0x1f225a7ca91a4226 // .quad 2243455055843443238 - QUAD $0xf7d88bc24209a565 // .quad -587566084924005019 - QUAD $0x3375788de9b06958 // .quad 3708002419115845976 - QUAD $0x9ae757596946075f // .quad -7284757830718584993 - QUAD $0x0052d6b1641c83ae // .quad 23317005467419566 - QUAD $0xc1a12d2fc3978937 // .quad -4494261269970843337 - QUAD $0xc0678c5dbd23a49a // .quad -4582539761593113446 - QUAD $0xf209787bb47d6b84 // .quad -1006140569036166268 - QUAD $0xf840b7ba963646e0 // .quad -558244341782001952 - QUAD $0x9745eb4d50ce6332 // .quad -7546366883288685774 - QUAD $0xb650e5a93bc3d898 // .quad -5309491445654890344 - QUAD $0xbd176620a501fbff // .quad -4821272585683469313 - QUAD $0xa3e51f138ab4cebe // .quad -6636864307068612930 - QUAD $0xec5d3fa8ce427aff // .quad -1414904713676948737 - QUAD $0xc66f336c36b10137 // .quad -4148040191917883081 - QUAD $0x93ba47c980e98cdf // .quad -7801844473689174817 - QUAD $0xb80b0047445d4184 // .quad -5185050239897353852 - QUAD $0xb8a8d9bbe123f017 // .quad -5140619573684080617 - QUAD $0xa60dc059157491e5 // .quad -6481312799871692315 - QUAD $0xe6d3102ad96cec1d // .quad -1814088448677712867 - QUAD $0x87c89837ad68db2f // .quad -8662506518347195601 - QUAD $0x9043ea1ac7e41392 // .quad -8051334308064652398 - QUAD $0x29babe4598c311fb // .quad 3006924907348169211 - QUAD $0xb454e4a179dd1877 // .quad -5452481866653427593 - QUAD $0xf4296dd6fef3d67a // .quad -853029884242176390 - QUAD $0xe16a1dc9d8545e94 // .quad -2203916314889396588 - QUAD $0x1899e4a65f58660c // .quad 1772699331562333708 - QUAD $0x8ce2529e2734bb1d // .quad -8294976724446954723 - QUAD $0x5ec05dcff72e7f8f // .quad 6827560182880305039 - QUAD $0xb01ae745b101e9e4 // .quad -5757034887131305500 - QUAD $0x76707543f4fa1f73 // .quad 8534450228600381299 - QUAD $0xdc21a1171d42645d // .quad -2584607590486743971 - QUAD $0x6a06494a791c53a8 // .quad 7639874402088932264 - QUAD $0x899504ae72497eba // .quad -8532908771695296838 - QUAD $0x0487db9d17636892 // .quad 326470965756389522 - QUAD $0xabfa45da0edbde69 // .quad -6054449946191733143 - QUAD $0x45a9d2845d3c42b6 // .quad 5019774725622874806 - QUAD $0xd6f8d7509292d603 // .quad -2956376414312278525 - QUAD $0x0b8a2392ba45a9b2 // .quad 831516194300602802 - QUAD $0x865b86925b9bc5c2 // .quad -8765264286586255934 - QUAD $0x8e6cac7768d7141e // .quad -8183976793979022306 - QUAD $0xa7f26836f282b732 // .quad -6344894339805432014 - QUAD $0x3207d795430cd926 // .quad 3605087062808385830 - QUAD $0xd1ef0244af2364ff // .quad -3319431906329402113 - QUAD $0x7f44e6bd49e807b8 // .quad 9170708441896323000 - QUAD $0x8335616aed761f1f // .quad -8992173969096958177 - QUAD $0x5f16206c9c6209a6 // .quad 6851699533943015846 - QUAD $0xa402b9c5a8d3a6e7 // .quad -6628531442943809817 - QUAD $0x36dba887c37a8c0f // .quad 3952938399001381903 - QUAD $0xcd036837130890a1 // .quad -3673978285252374367 - QUAD $0xc2494954da2c9789 // .quad -4446942528265218167 - QUAD $0x802221226be55a64 // .quad -9213765455923815836 - QUAD $0xf2db9baa10b7bd6c // .quad -946992141904134804 - QUAD $0xa02aa96b06deb0fd // .quad -6905520801477381891 - QUAD $0x6f92829494e5acc7 // .quad 8039631859474607303 - QUAD $0xc83553c5c8965d3d // .quad -4020214983419339459 - QUAD $0xcb772339ba1f17f9 // .quad -3785518230938904583 - QUAD $0xfa42a8b73abbf48c // .quad -413582710846786420 - QUAD $0xff2a760414536efb // .quad -60105885123121413 - QUAD $0x9c69a97284b578d7 // .quad -7176018221920323369 - QUAD $0xfef5138519684aba // .quad -75132356403901766 - QUAD $0xc38413cf25e2d70d // .quad -4358336758973016307 - QUAD $0x7eb258665fc25d69 // .quad 9129456591349898601 - QUAD $0xf46518c2ef5b8cd1 // .quad -836234930288882479 - QUAD $0xef2f773ffbd97a61 // .quad -1211618658047395231 - QUAD $0x98bf2f79d5993802 // .quad -7440175859071633406 - QUAD $0xaafb550ffacfd8fa // .quad -6126209340986631942 - QUAD $0xbeeefb584aff8603 // .quad -4688533805412153853 - QUAD $0x95ba2a53f983cf38 // .quad -7657761676233289928 - QUAD $0xeeaaba2e5dbf6784 // .quad -1248981238337804412 - QUAD $0xdd945a747bf26183 // .quad -2480258038432112253 - QUAD $0x952ab45cfa97a0b2 // .quad -7698142301602209614 - QUAD $0x94f971119aeef9e4 // .quad -7712008566467528220 - QUAD $0xba756174393d88df // .quad -5010991858575374113 - QUAD $0x7a37cd5601aab85d // .quad 8806733365625141341 - QUAD $0xe912b9d1478ceb17 // .quad -1652053804791829737 - QUAD $0xac62e055c10ab33a // .quad -6025006692552756422 - QUAD $0x91abb422ccb812ee // .quad -7950062655635975442 - QUAD $0x577b986b314d6009 // .quad 6303799689591218185 - QUAD $0xb616a12b7fe617aa // .quad -5325892301117581398 - QUAD $0xed5a7e85fda0b80b // .quad -1343622424865753077 - QUAD $0xe39c49765fdf9d94 // .quad -2045679357969588844 - QUAD $0x14588f13be847307 // .quad 1466078993672598279 - QUAD $0x8e41ade9fbebc27d // .quad -8196078626372074883 - QUAD $0x596eb2d8ae258fc8 // .quad 6444284760518135752 - QUAD $0xb1d219647ae6b31c // .quad -5633412264537705700 - QUAD $0x6fca5f8ed9aef3bb // .quad 8055355950647669691 - QUAD $0xde469fbd99a05fe3 // .quad -2430079312244744221 - QUAD $0x25de7bb9480d5854 // .quad 2728754459941099604 - QUAD $0x8aec23d680043bee // .quad -8436328597794046994 - QUAD $0xaf561aa79a10ae6a // .quad -5812428961928401302 - QUAD $0xada72ccc20054ae9 // .quad -5933724728815170839 - QUAD $0x1b2ba1518094da04 // .quad 1957835834444274180 - QUAD $0xd910f7ff28069da4 // .quad -2805469892591575644 - QUAD $0x90fb44d2f05d0842 // .quad -7999724640327104446 - QUAD $0x87aa9aff79042286 // .quad -8670947710510816634 - QUAD $0x353a1607ac744a53 // .quad 3835402254873283155 - QUAD $0xa99541bf57452b28 // .quad -6226998619711132888 - QUAD $0x42889b8997915ce8 // .quad 4794252818591603944 - QUAD $0xd3fa922f2d1675f2 // .quad -3172062256211528206 - QUAD $0x69956135febada11 // .quad 7608094030047140369 - QUAD $0x847c9b5d7c2e09b7 // .quad -8900067937773286985 - QUAD $0x43fab9837e699095 // .quad 4898431519131537557 - QUAD $0xa59bc234db398c25 // .quad -6513398903789220827 - QUAD $0x94f967e45e03f4bb // .quad -7712018656367741765 - QUAD $0xcf02b2c21207ef2e // .quad -3530062611309138130 - QUAD $0x1d1be0eebac278f5 // .quad 2097517367411243253 - QUAD $0x8161afb94b44f57d // .quad -9123818159709293187 - QUAD $0x6462d92a69731732 // .quad 7233582727691441970 - QUAD $0xa1ba1ba79e1632dc // .quad -6793086681209228580 - QUAD $0x7d7b8f7503cfdcfe // .quad 9041978409614302462 - QUAD $0xca28a291859bbf93 // .quad -3879672333084147821 - QUAD $0x5cda735244c3d43e // .quad 6690786993590490174 - QUAD $0xfcb2cb35e702af78 // .quad -237904397927796872 - QUAD $0x3a0888136afa64a7 // .quad 4181741870994056359 - QUAD $0x9defbf01b061adab // .quad -7066219276345954901 - QUAD $0x088aaa1845b8fdd0 // .quad 615491320315182544 - QUAD $0xc56baec21c7a1916 // .quad -4221088077005055722 - QUAD $0x8aad549e57273d45 // .quad -8454007886460797627 - QUAD $0xf6c69a72a3989f5b // .quad -664674077828931749 - QUAD $0x36ac54e2f678864b // .quad 3939617107816777291 - QUAD $0x9a3c2087a63f6399 // .quad -7332950326284164199 - QUAD $0x84576a1bb416a7dd // .quad -8910536670511192099 - QUAD $0xc0cb28a98fcf3c7f // .quad -4554501889427817345 - QUAD $0x656d44a2a11c51d5 // .quad 7308573235570561493 - QUAD $0xf0fdf2d3f3c30b9f // .quad -1081441343357383777 - QUAD $0x9f644ae5a4b1b325 // .quad -6961356773836868827 - QUAD $0x969eb7c47859e743 // .quad -7593429867239446717 - QUAD $0x873d5d9f0dde1fee // .quad -8701695967296086034 - QUAD $0xbc4665b596706114 // .quad -4880101315621920492 - QUAD $0xa90cb506d155a7ea // .quad -6265433940692719638 - QUAD $0xeb57ff22fc0c7959 // .quad -1488440626100012711 - QUAD $0x09a7f12442d588f2 // .quad 695789805494438130 - QUAD $0x9316ff75dd87cbd8 // .quad -7847804418953589800 - QUAD $0x0c11ed6d538aeb2f // .quad 869737256868047663 - QUAD $0xb7dcbf5354e9bece // .quad -5198069505264599346 - QUAD $0x8f1668c8a86da5fa // .quad -8136200465769716230 - QUAD $0xe5d3ef282a242e81 // .quad -1885900863153361279 - QUAD $0xf96e017d694487bc // .quad -473439272678684740 - QUAD $0x8fa475791a569d10 // .quad -8096217067111932656 - QUAD $0x37c981dcc395a9ac // .quad 4019886927579031980 - QUAD $0xb38d92d760ec4455 // .quad -5508585315462527915 - QUAD $0x85bbe253f47b1417 // .quad -8810199395808373737 - QUAD $0xe070f78d3927556a // .quad -2274045625900771990 - QUAD $0x93956d7478ccec8e // .quad -7812217631593927538 - QUAD $0x8c469ab843b89562 // .quad -8338807543829064350 - QUAD $0x387ac8d1970027b2 // .quad 4069786015789754290 - QUAD $0xaf58416654a6babb // .quad -5811823411358942533 - QUAD $0x06997b05fcc0319e // .quad 475546501309804958 - QUAD $0xdb2e51bfe9d0696a // .quad -2653093245771290262 - QUAD $0x441fece3bdf81f03 // .quad 4908902581746016003 - QUAD $0x88fcf317f22241e2 // .quad -8575712306248138270 - QUAD $0xd527e81cad7626c3 // .quad -3087243809672255805 - QUAD $0xab3c2fddeeaad25a // .quad -6107954364382784934 - QUAD $0x8a71e223d8d3b074 // .quad -8470740780517707660 - QUAD $0xd60b3bd56a5586f1 // .quad -3023256937051093263 - QUAD $0xf6872d5667844e49 // .quad -682526969396179383 - QUAD $0x85c7056562757456 // .quad -8807064613298015146 - QUAD $0xb428f8ac016561db // .quad -5464844730172612133 - QUAD $0xa738c6bebb12d16c // .quad -6397144748195131028 - QUAD $0xe13336d701beba52 // .quad -2219369894288377262 - QUAD $0xd106f86e69d785c7 // .quad -3384744916816525881 - QUAD $0xecc0024661173473 // .quad -1387106183930235789 - QUAD $0x82a45b450226b39c // .quad -9032994600651410532 - QUAD $0x27f002d7f95d0190 // .quad 2877803288514593168 - QUAD $0xa34d721642b06084 // .quad -6679557232386875260 - QUAD $0x31ec038df7b441f4 // .quad 3597254110643241460 - QUAD $0xcc20ce9bd35c78a5 // .quad -3737760522056206171 - QUAD $0x7e67047175a15271 // .quad 9108253656731439729 - QUAD $0xff290242c83396ce // .quad -60514634142869810 - QUAD $0x0f0062c6e984d386 // .quad 1080972517029761926 - QUAD $0x9f79a169bd203e41 // .quad -6955350673980375487 - QUAD $0x52c07b78a3e60868 // .quad 5962901664714590312 - QUAD $0xc75809c42c684dd1 // .quad -4082502324048081455 - QUAD $0xa7709a56ccdf8a82 // .quad -6381430974388925822 - QUAD $0xf92e0c3537826145 // .quad -491441886632713915 - QUAD $0x88a66076400bb691 // .quad -8600080377420466543 - QUAD $0x9bbcc7a142b17ccb // .quad -7224680206786528053 - QUAD $0x6acff893d00ea435 // .quad 7696643601933968437 - QUAD $0xc2abf989935ddbfe // .quad -4419164240055772162 - QUAD $0x0583f6b8c4124d43 // .quad 397432465562684739 - QUAD $0xf356f7ebf83552fe // .quad -912269281642327298 - QUAD $0xc3727a337a8b704a // .quad -4363290727450709942 - QUAD $0x98165af37b2153de // .quad -7487697328667536418 - QUAD $0x744f18c0592e4c5c // .quad 8380944645968776284 - QUAD $0xbe1bf1b059e9a8d6 // .quad -4747935642407032618 - QUAD $0x1162def06f79df73 // .quad 1252808770606194547 - QUAD $0xeda2ee1c7064130c // .quad -1323233534581402868 - QUAD $0x8addcb5645ac2ba8 // .quad -8440366555225904216 - QUAD $0x9485d4d1c63e8be7 // .quad -7744549986754458649 - QUAD $0x6d953e2bd7173692 // .quad 7896285879677171346 - QUAD $0xb9a74a0637ce2ee1 // .quad -5069001465015685407 - QUAD $0xc8fa8db6ccdd0437 // .quad -3964700705685699529 - QUAD $0xe8111c87c5c1ba99 // .quad -1724565812842218855 - QUAD $0x1d9c9892400a22a2 // .quad 2133748077373825698 - QUAD $0x910ab1d4db9914a0 // .quad -7995382660667468640 - QUAD $0x2503beb6d00cab4b // .quad 2667185096717282123 - QUAD $0xb54d5e4a127f59c8 // .quad -5382542307406947896 - QUAD $0x2e44ae64840fd61d // .quad 3333981370896602653 - QUAD $0xe2a0b5dc971f303a // .quad -2116491865831296966 - QUAD $0x5ceaecfed289e5d2 // .quad 6695424375237764562 - QUAD $0x8da471a9de737e24 // .quad -8240336443785642460 - QUAD $0x7425a83e872c5f47 // .quad 8369280469047205703 - QUAD $0xb10d8e1456105dad // .quad -5688734536304665171 - QUAD $0xd12f124e28f77719 // .quad -3373457468973156583 - QUAD $0xdd50f1996b947518 // .quad -2499232151953443560 - QUAD $0x82bd6b70d99aaa6f // .quad -9025939945749304721 - QUAD $0x8a5296ffe33cc92f // .quad -8479549122611984081 - QUAD $0x636cc64d1001550b // .quad 7164319141522920715 - QUAD $0xace73cbfdc0bfb7b // .quad -5987750384837592197 - QUAD $0x3c47f7e05401aa4e // .quad 4343712908476262990 - QUAD $0xd8210befd30efa5a // .quad -2873001962619602342 - QUAD $0x65acfaec34810a71 // .quad 7326506586225052273 - QUAD $0x8714a775e3e95c78 // .quad -8713155254278333320 - QUAD $0x7f1839a741a14d0d // .quad 9158133232781315341 - QUAD $0xa8d9d1535ce3b396 // .quad -6279758049420528746 - QUAD $0x1ede48111209a050 // .quad 2224294504121868368 - QUAD $0xd31045a8341ca07c // .quad -3238011543348273028 - QUAD $0x934aed0aab460432 // .quad -7833187971778608078 - QUAD $0x83ea2b892091e44d // .quad -8941286242233752499 - QUAD $0xf81da84d5617853f // .quad -568112927868484289 - QUAD $0xa4e4b66b68b65d60 // .quad -6564921784364802720 - QUAD $0x36251260ab9d668e // .quad 3901544858591782542 - QUAD $0xce1de40642e3f4b9 // .quad -3594466212028615495 - QUAD $0xc1d72b7c6b426019 // .quad -4479063491021217767 - QUAD $0x80d2ae83e9ce78f3 // .quad -9164070410158966541 - QUAD $0xb24cf65b8612f81f // .quad -5598829363776522209 - QUAD $0xa1075a24e4421730 // .quad -6843401994271320272 - QUAD $0xdee033f26797b627 // .quad -2386850686293264857 - QUAD $0xc94930ae1d529cfc // .quad -3942566474411762436 - QUAD $0x169840ef017da3b1 // .quad 1628122660560806833 - QUAD $0xfb9b7cd9a4a7443c // .quad -316522074587315140 - QUAD $0x8e1f289560ee864e // .quad -8205795374004271538 - QUAD $0x9d412e0806e88aa5 // .quad -7115355324258153819 - QUAD $0xf1a6f2bab92a27e2 // .quad -1033872180650563614 - QUAD $0xc491798a08a2ad4e // .quad -4282508136895304370 - QUAD $0xae10af696774b1db // .quad -5904026244240592421 - QUAD $0xf5b5d7ec8acb58a2 // .quad -741449152691742558 - QUAD $0xacca6da1e0a8ef29 // .quad -5995859411864064215 - QUAD $0x9991a6f3d6bf1765 // .quad -7380934748073420955 - QUAD $0x17fd090a58d32af3 // .quad 1728547772024695539 - QUAD $0xbff610b0cc6edd3f // .quad -4614482416664388289 - QUAD $0xddfc4b4cef07f5b0 // .quad -2451001303396518480 - QUAD $0xeff394dcff8a948e // .quad -1156417002403097458 - QUAD $0x4abdaf101564f98e // .quad 5385653213018257806 - QUAD $0x95f83d0a1fb69cd9 // .quad -7640289654143017767 - QUAD $0x9d6d1ad41abe37f1 // .quad -7102991539009341455 - QUAD $0xbb764c4ca7a4440f // .quad -4938676049251384305 - QUAD $0x84c86189216dc5ed // .quad -8878739423761676819 - QUAD $0xea53df5fd18d5513 // .quad -1561659043136842477 - QUAD $0x32fd3cf5b4e49bb4 // .quad 3674159897003727796 - QUAD $0x92746b9be2f8552c // .quad -7893565929601608404 - QUAD $0x3fbc8c33221dc2a1 // .quad 4592699871254659745 - QUAD $0xb7118682dbb66a77 // .quad -5255271393574622601 - QUAD $0x0fabaf3feaa5334a // .quad 1129188820640936778 - QUAD $0xe4d5e82392a40515 // .quad -1957403223540890347 - QUAD $0x29cb4d87f2a7400e // .quad 3011586022114279438 - QUAD $0x8f05b1163ba6832d // .quad -8140906042354138323 - QUAD $0x743e20e9ef511012 // .quad 8376168546070237202 - QUAD $0xb2c71d5bca9023f8 // .quad -5564446534515285000 - QUAD $0x914da9246b255416 // .quad -7976533391121755114 - QUAD $0xdf78e4b2bd342cf6 // .quad -2343872149716718346 - QUAD $0x1ad089b6c2f7548e // .quad 1932195658189984910 - QUAD $0x8bab8eefb6409c1a // .quad -8382449121214030822 - QUAD $0xa184ac2473b529b1 // .quad -6808127464117294671 - QUAD $0xae9672aba3d0c320 // .quad -5866375383090150624 - QUAD $0xc9e5d72d90a2741e // .quad -3898473311719230434 - QUAD $0xda3c0f568cc4f3e8 // .quad -2721283210435300376 - QUAD $0x7e2fa67c7a658892 // .quad 9092669226243950738 - QUAD $0x8865899617fb1871 // .quad -8618331034163144591 - QUAD $0xddbb901b98feeab7 // .quad -2469221522477225289 - QUAD $0xaa7eebfb9df9de8d // .quad -6161227774276542835 - QUAD $0x552a74227f3ea565 // .quad 6136845133758244197 - QUAD $0xd51ea6fa85785631 // .quad -3089848699418290639 - QUAD $0xd53a88958f87275f // .quad -3082000819042179233 - QUAD $0x8533285c936b35de // .quad -8848684464777513506 - QUAD $0x8a892abaf368f137 // .quad -8464187042230111945 - QUAD $0xa67ff273b8460356 // .quad -6449169562544503978 - QUAD $0x2d2b7569b0432d85 // .quad 3254824252494523781 - QUAD $0xd01fef10a657842c // .quad -3449775934753242068 - QUAD $0x9c3b29620e29fc73 // .quad -7189106879045698445 - QUAD $0x8213f56a67f6b29b // .quad -9073638986861858149 - QUAD $0x8349f3ba91b47b8f // .quad -8986383598807123057 - QUAD $0xa298f2c501f45f42 // .quad -6730362715149934782 - QUAD $0x241c70a936219a73 // .quad 2602078556773259891 - QUAD $0xcb3f2f7642717713 // .quad -3801267375510030573 - QUAD $0xed238cd383aa0110 // .quad -1359087822460813040 - QUAD $0xfe0efb53d30dd4d7 // .quad -139898200960150313 - QUAD $0xf4363804324a40aa // .quad -849429889038008150 - QUAD $0x9ec95d1463e8a506 // .quad -7004965403241175802 - QUAD $0xb143c6053edcd0d5 // .quad -5673473379724898091 - QUAD $0xc67bb4597ce2ce48 // .quad -4144520735624081848 - QUAD $0xdd94b7868e94050a // .quad -2480155706228734710 - QUAD $0xf81aa16fdc1b81da // .quad -568964901102714406 - QUAD $0xca7cf2b4191c8326 // .quad -3855940325606653146 - QUAD $0x9b10a4e5e9913128 // .quad -7273132090830278360 - QUAD $0xfd1c2f611f63a3f0 // .quad -208239388580928528 - QUAD $0xc1d4ce1f63f57d72 // .quad -4479729095110460046 - QUAD $0xbc633b39673c8cec // .quad -4871985254153548564 - QUAD $0xf24a01a73cf2dccf // .quad -987975350460687153 - QUAD $0xd5be0503e085d813 // .quad -3044990783845967853 - QUAD $0x976e41088617ca01 // .quad -7535013621679011327 - QUAD $0x4b2d8644d8a74e18 // .quad 5417133557047315992 - QUAD $0xbd49d14aa79dbc82 // .quad -4807081008671376254 - QUAD $0xddf8e7d60ed1219e // .quad -2451955090545630818 - QUAD $0xec9c459d51852ba2 // .quad -1397165242411832414 - QUAD $0xcabb90e5c942b503 // .quad -3838314940804713213 - QUAD $0x93e1ab8252f33b45 // .quad -7790757304148477115 - QUAD $0x3d6a751f3b936243 // .quad 4425478360848884291 - QUAD $0xb8da1662e7b00a17 // .quad -5126760611758208489 - QUAD $0x0cc512670a783ad4 // .quad 920161932633717460 - QUAD $0xe7109bfba19c0c9d // .quad -1796764746270372707 - QUAD $0x27fb2b80668b24c5 // .quad 2880944217109767365 - QUAD $0x906a617d450187e2 // .quad -8040506994060064798 - QUAD $0xb1f9f660802dedf6 // .quad -5622191765467566602 - QUAD $0xb484f9dc9641e9da // .quad -5438947724147693094 - QUAD $0x5e7873f8a0396973 // .quad 6807318348447705459 - QUAD $0xe1a63853bbd26451 // .quad -2186998636757228463 - QUAD $0xdb0b487b6423e1e8 // .quad -2662955059861265944 - QUAD $0x8d07e33455637eb2 // .quad -8284403175614349646 - QUAD $0x91ce1a9a3d2cda62 // .quad -7940379843253970334 - QUAD $0xb049dc016abc5e5f // .quad -5743817951090549153 - QUAD $0x7641a140cc7810fb // .quad 8521269269642088699 - QUAD $0xdc5c5301c56b75f7 // .quad -2568086420435798537 - QUAD $0xa9e904c87fcb0a9d // .quad -6203421752542164323 - QUAD $0x89b9b3e11b6329ba // .quad -8522583040413455942 - QUAD $0x546345fa9fbdcd44 // .quad 6080780864604458308 - QUAD $0xac2820d9623bf429 // .quad -6041542782089432023 - QUAD $0xa97c177947ad4095 // .quad -6234081974526590827 - QUAD $0xd732290fbacaf133 // .quad -2940242459184402125 - QUAD $0x49ed8eabcccc485d // .quad 5327070802775656541 - QUAD $0x867f59a9d4bed6c0 // .quad -8755180564631333184 - QUAD $0x5c68f256bfff5a74 // .quad 6658838503469570676 - QUAD $0xa81f301449ee8c70 // .quad -6332289687361778576 - QUAD $0x73832eec6fff3111 // .quad 8323548129336963345 - QUAD $0xd226fc195c6a2f8c // .quad -3303676090774835316 - QUAD $0xc831fd53c5ff7eab // .quad -4021154456019173717 - QUAD $0x83585d8fd9c25db7 // .quad -8982326584375353929 - QUAD $0xba3e7ca8b77f5e55 // .quad -5026443070023967147 - QUAD $0xa42e74f3d032f525 // .quad -6616222212041804507 - QUAD $0x28ce1bd2e55f35eb // .quad 2940318199324816875 - QUAD $0xcd3a1230c43fb26f // .quad -3658591746624867729 - QUAD $0x7980d163cf5b81b3 // .quad 8755227902219092403 - QUAD $0x80444b5e7aa7cf85 // .quad -9204148869281624187 - QUAD $0xd7e105bcc332621f // .quad -2891023177508298209 - QUAD $0xa0555e361951c366 // .quad -6893500068174642330 - QUAD $0x8dd9472bf3fefaa7 // .quad -8225464990312760665 - QUAD $0xc86ab5c39fa63440 // .quad -4005189066790915008 - QUAD $0xb14f98f6f0feb951 // .quad -5670145219463562927 - QUAD $0xfa856334878fc150 // .quad -394800315061255856 - QUAD $0x6ed1bf9a569f33d3 // .quad 7985374283903742931 - QUAD $0x9c935e00d4b9d8d2 // .quad -7164279224554366766 - QUAD $0x0a862f80ec4700c8 // .quad 758345818024902856 - QUAD $0xc3b8358109e84f07 // .quad -4343663012265570553 - QUAD $0xcd27bb612758c0fa // .quad -3663753745896259334 - QUAD $0xf4a642e14c6262c8 // .quad -817892746904575288 - QUAD $0x8038d51cb897789c // .quad -9207375118826243940 - QUAD $0x98e7e9cccfbd7dbd // .quad -7428711994456441411 - QUAD $0xe0470a63e6bd56c3 // .quad -2285846861678029117 - QUAD $0xbf21e44003acdd2c // .quad -4674203974643163860 - QUAD $0x1858ccfce06cac74 // .quad 1754377441329851508 - QUAD $0xeeea5d5004981478 // .quad -1231068949876566920 - QUAD $0x0f37801e0c43ebc8 // .quad 1096485900831157192 - QUAD $0x95527a5202df0ccb // .quad -7686947121313936181 - QUAD $0xd30560258f54e6ba // .quad -3241078642388441414 - QUAD $0xbaa718e68396cffd // .quad -4996997883215032323 - QUAD $0x47c6b82ef32a2069 // .quad 5172023733869224041 - QUAD $0xe950df20247c83fd // .quad -1634561335591402499 - QUAD $0x4cdc331d57fa5441 // .quad 5538357842881958977 - QUAD $0x91d28b7416cdd27e // .quad -7939129862385708418 - QUAD $0xe0133fe4adf8e952 // .quad -2300424733252327086 - QUAD $0xb6472e511c81471d // .quad -5312226309554747619 - QUAD $0x58180fddd97723a6 // .quad 6347841120289366950 - QUAD $0xe3d8f9e563a198e5 // .quad -2028596868516046619 - QUAD $0x570f09eaa7ea7648 // .quad 6273243709394548296 - QUAD $0x8e679c2f5e44ff8f // .quad -8185402070463610993 - QUAD $0x2cd2cc6551e513da // .quad 3229868618315797466 - QUAD $0xb201833b35d63f73 // .quad -5620066569652125837 - QUAD $0xf8077f7ea65e58d1 // .quad -574350245532641071 - QUAD $0xde81e40a034bcf4f // .quad -2413397193637769393 - QUAD $0xfb04afaf27faf782 // .quad -358968903457900670 - QUAD $0x8b112e86420f6191 // .quad -8425902273664687727 - QUAD $0x79c5db9af1f9b563 // .quad 8774660907532399971 - QUAD $0xadd57a27d29339f6 // .quad -5920691823653471754 - QUAD $0x18375281ae7822bc // .quad 1744954097560724156 - QUAD $0xd94ad8b1c7380874 // .quad -2789178761139451788 - QUAD $0x8f2293910d0b15b5 // .quad -8132775725879323211 - QUAD $0x87cec76f1c830548 // .quad -8660765753353239224 - QUAD $0xb2eb3875504ddb22 // .quad -5554283638921766110 - QUAD $0xa9c2794ae3a3c69a // .quad -6214271173264161126 - QUAD $0x5fa60692a46151eb // .quad 6892203506629956075 - QUAD $0xd433179d9c8cb841 // .quad -3156152948152813503 - QUAD $0xdbc7c41ba6bcd333 // .quad -2609901835997359309 - QUAD $0x849feec281d7f328 // .quad -8890124620236590296 - QUAD $0x12b9b522906c0800 // .quad 1349308723430688768 - QUAD $0xa5c7ea73224deff3 // .quad -6500969756868349965 - QUAD $0xd768226b34870a00 // .quad -2925050114139026944 - QUAD $0xcf39e50feae16bef // .quad -3514526177658049553 - QUAD $0xe6a1158300d46640 // .quad -1828156321336891840 - QUAD $0x81842f29f2cce375 // .quad -9114107888677362827 - QUAD $0x60495ae3c1097fd0 // .quad 6938176635183661008 - QUAD $0xa1e53af46f801c53 // .quad -6780948842419315629 - QUAD $0x385bb19cb14bdfc4 // .quad 4061034775552188356 - QUAD $0xca5e89b18b602368 // .quad -3864500034596756632 - QUAD $0x46729e03dd9ed7b5 // .quad 5076293469440235445 - QUAD $0xfcf62c1dee382c42 // .quad -218939024818557886 - QUAD $0x6c07a2c26a8346d1 // .quad 7784369436827535057 - QUAD $0x9e19db92b4e31ba9 // .quad -7054365918152680535 - QUAD $0xc7098b7305241885 // .quad -4104596259247744891 - QUAD $0xc5a05277621be293 // .quad -4206271379263462765 - QUAD $0xb8cbee4fc66d1ea7 // .quad -5130745324059681113 - QUAD $0xf70867153aa2db38 // .quad -646153205651940552 - QUAD $0x737f74f1dc043328 // .quad 8322499218531169064 - QUAD $0x9a65406d44a5c903 // .quad -7321374781173544701 - QUAD $0x505f522e53053ff2 // .quad 5791438004736573426 - QUAD $0xc0fe908895cf3b44 // .quad -4540032458039542972 - QUAD $0x647726b9e7c68fef // .quad 7239297505920716783 - QUAD $0xf13e34aabb430a15 // .quad -1063354554122040811 - QUAD $0x5eca783430dc19f5 // .quad 6830403950414141941 - QUAD $0x96c6e0eab509e64d // .quad -7582125623967357363 - QUAD $0xb67d16413d132072 // .quad -5297053117264486286 - QUAD $0xbc789925624c5fe0 // .quad -4865971011531808800 - QUAD $0xe41c5bd18c57e88f // .quad -2009630378153219953 - QUAD $0xeb96bf6ebadf77d8 // .quad -1470777745987373096 - QUAD $0x8e91b962f7b6f159 // .quad -8173548013986844327 - QUAD $0x933e37a534cbaae7 // .quad -7836765118883190041 - QUAD $0x723627bbb5a4adb0 // .quad 8229809056225996208 - QUAD $0xb80dc58e81fe95a1 // .quad -5184270380176599647 - QUAD $0xcec3b1aaa30dd91c // .quad -3547796734999668452 - QUAD $0xe61136f2227e3b09 // .quad -1868651956793361655 - QUAD $0x213a4f0aa5e8a7b1 // .quad 2394313059052595121 - QUAD $0x8fcac257558ee4e6 // .quad -8085436500636932890 - QUAD $0xa988e2cd4f62d19d // .quad -6230480713039031907 - QUAD $0xb3bd72ed2af29e1f // .quad -5495109607368778209 - QUAD $0x93eb1b80a33b8605 // .quad -7788100891298789883 - QUAD $0xe0accfa875af45a7 // .quad -2257200990783584857 - QUAD $0xbc72f130660533c3 // .quad -4867563057061743677 - QUAD $0x8c6c01c9498d8b88 // .quad -8328279646880822392 - QUAD $0xeb8fad7c7f8680b4 // .quad -1472767802899791692 - QUAD $0xaf87023b9bf0ee6a // .quad -5798663540173640086 - QUAD $0xa67398db9f6820e1 // .quad -6452645772052127519 - QUAD $0xdb68c2ca82ed2a05 // .quad -2636643406789662203 - QUAD $0x88083f8943a1148c // .quad -8644589625959967604 - QUAD $0x892179be91d43a43 // .quad -8565431156884620733 - QUAD $0x6a0a4f6b948959b0 // .quad 7641007041259592112 - QUAD $0xab69d82e364948d4 // .quad -6095102927678388012 - QUAD $0x848ce34679abb01c // .quad -8895485272135061476 - QUAD $0xd6444e39c3db9b09 // .quad -3007192641170597111 - QUAD $0xf2d80e0c0c0b4e11 // .quad -947992276657025519 - QUAD $0x85eab0e41a6940e5 // .quad -8797024428372705051 - QUAD $0x6f8e118f0f0e2195 // .quad 8038381691033493909 - QUAD $0xa7655d1d2103911f // .quad -6384594517038493409 - QUAD $0x4b7195f2d2d1a9fb // .quad 5436291095364479483 - QUAD $0xd13eb46469447567 // .quad -3369057127870728857 - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -_POW_TAB: - LONG $0x00000001 // .long 1 - LONG $0x00000003 // .long 3 - LONG $0x00000006 // .long 6 - LONG $0x00000009 // .long 9 - LONG $0x0000000d // .long 13 - LONG $0x00000010 // .long 16 - LONG $0x00000013 // .long 19 - LONG $0x00000017 // .long 23 - LONG $0x0000001a // .long 26 - - // .p2align 2, 0x00 -_MASK_USE_NUMBER: - LONG $0x00000002 // .long 2 - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -_Digits: - QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' - QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' - QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' - QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' - QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' - QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' - QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' - QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' - QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' - QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' - QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' - QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' - QUAD $0x3939383937393639 // .ascii 8, '96979899' - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -_LB_1ee00aeb: // _pow10_ceil_sig.g - QUAD $0xff77b1fcbebcdc4f // .quad -38366372719436721 - QUAD $0x25e8e89c13bb0f7b // .quad 2731688931043774331 - QUAD $0x9faacf3df73609b1 // .quad -6941508010590729807 - QUAD $0x77b191618c54e9ad // .quad 8624834609543440813 - QUAD $0xc795830d75038c1d // .quad -4065198994811024355 - QUAD $0xd59df5b9ef6a2418 // .quad -3054014793352862696 - QUAD $0xf97ae3d0d2446f25 // .quad -469812725086392539 - QUAD $0x4b0573286b44ad1e // .quad 5405853545163697438 - QUAD $0x9becce62836ac577 // .quad -7211161980820077193 - QUAD $0x4ee367f9430aec33 // .quad 5684501474941004851 - QUAD $0xc2e801fb244576d5 // .quad -4402266457597708587 - QUAD $0x229c41f793cda740 // .quad 2493940825248868160 - QUAD $0xf3a20279ed56d48a // .quad -891147053569747830 - QUAD $0x6b43527578c11110 // .quad 7729112049988473104 - QUAD $0x9845418c345644d6 // .quad -7474495936122174250 - QUAD $0x830a13896b78aaaa // .quad -9004363024039368022 - QUAD $0xbe5691ef416bd60c // .quad -4731433901725329908 - QUAD $0x23cc986bc656d554 // .quad 2579604275232953684 - QUAD $0xedec366b11c6cb8f // .quad -1302606358729274481 - QUAD $0x2cbfbe86b7ec8aa9 // .quad 3224505344041192105 - QUAD $0x94b3a202eb1c3f39 // .quad -7731658001846878407 - QUAD $0x7bf7d71432f3d6aa // .quad 8932844867666826922 - QUAD $0xb9e08a83a5e34f07 // .quad -5052886483881210105 - QUAD $0xdaf5ccd93fb0cc54 // .quad -2669001970698630060 - QUAD $0xe858ad248f5c22c9 // .quad -1704422086424124727 - QUAD $0xd1b3400f8f9cff69 // .quad -3336252463373287575 - QUAD $0x91376c36d99995be // .quad -7982792831656159810 - QUAD $0x23100809b9c21fa2 // .quad 2526528228819083170 - QUAD $0xb58547448ffffb2d // .quad -5366805021142811859 - QUAD $0xabd40a0c2832a78b // .quad -6065211750830921845 - QUAD $0xe2e69915b3fff9f9 // .quad -2096820258001126919 - QUAD $0x16c90c8f323f516d // .quad 1641857348316123501 - QUAD $0x8dd01fad907ffc3b // .quad -8228041688891786181 - QUAD $0xae3da7d97f6792e4 // .quad -5891368184943504668 - QUAD $0xb1442798f49ffb4a // .quad -5673366092687344822 - QUAD $0x99cd11cfdf41779d // .quad -7364210231179380835 - QUAD $0xdd95317f31c7fa1d // .quad -2480021597431793123 - QUAD $0x40405643d711d584 // .quad 4629795266307937668 - QUAD $0x8a7d3eef7f1cfc52 // .quad -8467542526035952558 - QUAD $0x482835ea666b2573 // .quad 5199465050656154995 - QUAD $0xad1c8eab5ee43b66 // .quad -5972742139117552794 - QUAD $0xda3243650005eed0 // .quad -2724040723534582064 - QUAD $0xd863b256369d4a40 // .quad -2854241655469553088 - QUAD $0x90bed43e40076a83 // .quad -8016736922845615485 - QUAD $0x873e4f75e2224e68 // .quad -8701430062309552536 - QUAD $0x5a7744a6e804a292 // .quad 6518754469289960082 - QUAD $0xa90de3535aaae202 // .quad -6265101559459552766 - QUAD $0x711515d0a205cb37 // .quad 8148443086612450103 - QUAD $0xd3515c2831559a83 // .quad -3219690930897053053 - QUAD $0x0d5a5b44ca873e04 // .quad 962181821410786820 - QUAD $0x8412d9991ed58091 // .quad -8929835859451740015 - QUAD $0xe858790afe9486c3 // .quad -1704479370831952189 - QUAD $0xa5178fff668ae0b6 // .quad -6550608805887287114 - QUAD $0x626e974dbe39a873 // .quad 7092772823314835571 - QUAD $0xce5d73ff402d98e3 // .quad -3576574988931720989 - QUAD $0xfb0a3d212dc81290 // .quad -357406007711231344 - QUAD $0x80fa687f881c7f8e // .quad -9152888395723407474 - QUAD $0x7ce66634bc9d0b9a // .quad 8999993282035256218 - QUAD $0xa139029f6a239f72 // .quad -6829424476226871438 - QUAD $0x1c1fffc1ebc44e81 // .quad 2026619565689294465 - QUAD $0xc987434744ac874e // .quad -3925094576856201394 - QUAD $0xa327ffb266b56221 // .quad -6690097579743157727 - QUAD $0xfbe9141915d7a922 // .quad -294682202642863838 - QUAD $0x4bf1ff9f0062baa9 // .quad 5472436080603216553 - QUAD $0x9d71ac8fada6c9b5 // .quad -7101705404292871755 - QUAD $0x6f773fc3603db4aa // .quad 8031958568804398250 - QUAD $0xc4ce17b399107c22 // .quad -4265445736938701790 - QUAD $0xcb550fb4384d21d4 // .quad -3795109844276665900 - QUAD $0xf6019da07f549b2b // .quad -720121152745989333 - QUAD $0x7e2a53a146606a49 // .quad 9091170749936331337 - QUAD $0x99c102844f94e0fb // .quad -7367604748107325189 - QUAD $0x2eda7444cbfc426e // .quad 3376138709496513134 - QUAD $0xc0314325637a1939 // .quad -4597819916706768583 - QUAD $0xfa911155fefb5309 // .quad -391512631556746487 - QUAD $0xf03d93eebc589f88 // .quad -1135588877456072824 - QUAD $0x793555ab7eba27cb // .quad 8733981247408842699 - QUAD $0x96267c7535b763b5 // .quad -7627272076051127371 - QUAD $0x4bc1558b2f3458df // .quad 5458738279630526687 - QUAD $0xbbb01b9283253ca2 // .quad -4922404076636521310 - QUAD $0x9eb1aaedfb016f17 // .quad -7011635205744005353 - QUAD $0xea9c227723ee8bcb // .quad -1541319077368263733 - QUAD $0x465e15a979c1cadd // .quad 5070514048102157021 - QUAD $0x92a1958a7675175f // .quad -7880853450996246689 - QUAD $0x0bfacd89ec191eca // .quad 863228270850154186 - QUAD $0xb749faed14125d36 // .quad -5239380795317920458 - QUAD $0xcef980ec671f667c // .quad -3532650679864695172 - QUAD $0xe51c79a85916f484 // .quad -1937539975720012668 - QUAD $0x82b7e12780e7401b // .quad -9027499368258256869 - QUAD $0x8f31cc0937ae58d2 // .quad -8128491512466089774 - QUAD $0xd1b2ecb8b0908811 // .quad -3336344095947716591 - QUAD $0xb2fe3f0b8599ef07 // .quad -5548928372155224313 - QUAD $0x861fa7e6dcb4aa16 // .quad -8782116138362033642 - QUAD $0xdfbdcece67006ac9 // .quad -2324474446766642487 - QUAD $0x67a791e093e1d49b // .quad 7469098900757009563 - QUAD $0x8bd6a141006042bd // .quad -8370325556870233411 - QUAD $0xe0c8bb2c5c6d24e1 // .quad -2249342214667950879 - QUAD $0xaecc49914078536d // .quad -5851220927660403859 - QUAD $0x58fae9f773886e19 // .quad 6411694268519837209 - QUAD $0xda7f5bf590966848 // .quad -2702340141148116920 - QUAD $0xaf39a475506a899f // .quad -5820440219632367201 - QUAD $0x888f99797a5e012d // .quad -8606491615858654931 - QUAD $0x6d8406c952429604 // .quad 7891439908798240260 - QUAD $0xaab37fd7d8f58178 // .quad -6146428501395930760 - QUAD $0xc8e5087ba6d33b84 // .quad -3970758169284363388 - QUAD $0xd5605fcdcf32e1d6 // .quad -3071349608317525546 - QUAD $0xfb1e4a9a90880a65 // .quad -351761693178066331 - QUAD $0x855c3be0a17fcd26 // .quad -8837122532839535322 - QUAD $0x5cf2eea09a550680 // .quad 6697677969404790400 - QUAD $0xa6b34ad8c9dfc06f // .quad -6434717147622031249 - QUAD $0xf42faa48c0ea481f // .quad -851274575098787809 - QUAD $0xd0601d8efc57b08b // .quad -3431710416100151157 - QUAD $0xf13b94daf124da27 // .quad -1064093218873484761 - QUAD $0x823c12795db6ce57 // .quad -9062348037703676329 - QUAD $0x76c53d08d6b70859 // .quad 8558313775058847833 - QUAD $0xa2cb1717b52481ed // .quad -6716249028702207507 - QUAD $0x54768c4b0c64ca6f // .quad 6086206200396171887 - QUAD $0xcb7ddcdda26da268 // .quad -3783625267450371480 - QUAD $0xa9942f5dcf7dfd0a // .quad -6227300304786948854 - QUAD $0xfe5d54150b090b02 // .quad -117845565885576446 - QUAD $0xd3f93b35435d7c4d // .quad -3172439362556298163 - QUAD $0x9efa548d26e5a6e1 // .quad -6991182506319567135 - QUAD $0xc47bc5014a1a6db0 // .quad -4288617610811380304 - QUAD $0xc6b8e9b0709f109a // .quad -4127292114472071014 - QUAD $0x359ab6419ca1091c // .quad 3862600023340550428 - QUAD $0xf867241c8cc6d4c0 // .quad -547429124662700864 - QUAD $0xc30163d203c94b63 // .quad -4395122007679087773 - QUAD $0x9b407691d7fc44f8 // .quad -7259672230555269896 - QUAD $0x79e0de63425dcf1e // .quad 8782263791269039902 - QUAD $0xc21094364dfb5636 // .quad -4462904269766699466 - QUAD $0x985915fc12f542e5 // .quad -7468914334623251739 - QUAD $0xf294b943e17a2bc4 // .quad -966944318780986428 - QUAD $0x3e6f5b7b17b2939e // .quad 4498915137003099038 - QUAD $0x979cf3ca6cec5b5a // .quad -7521869226879198374 - QUAD $0xa705992ceecf9c43 // .quad -6411550076227838909 - QUAD $0xbd8430bd08277231 // .quad -4790650515171610063 - QUAD $0x50c6ff782a838354 // .quad 5820620459997365076 - QUAD $0xece53cec4a314ebd // .quad -1376627125537124675 - QUAD $0xa4f8bf5635246429 // .quad -6559282480285457367 - QUAD $0x940f4613ae5ed136 // .quad -7777920981101784778 - QUAD $0x871b7795e136be9a // .quad -8711237568605798758 - QUAD $0xb913179899f68584 // .quad -5110715207949843068 - QUAD $0x28e2557b59846e40 // .quad 2946011094524915264 - QUAD $0xe757dd7ec07426e5 // .quad -1776707991509915931 - QUAD $0x331aeada2fe589d0 // .quad 3682513868156144080 - QUAD $0x9096ea6f3848984f // .quad -8027971522334779313 - QUAD $0x3ff0d2c85def7622 // .quad 4607414176811284002 - QUAD $0xb4bca50b065abe63 // .quad -5423278384491086237 - QUAD $0x0fed077a756b53aa // .quad 1147581702586717098 - QUAD $0xe1ebce4dc7f16dfb // .quad -2167411962186469893 - QUAD $0xd3e8495912c62895 // .quad -3177208890193991531 - QUAD $0x8d3360f09cf6e4bd // .quad -8272161504007625539 - QUAD $0x64712dd7abbbd95d // .quad 7237616480483531101 - QUAD $0xb080392cc4349dec // .quad -5728515861582144020 - QUAD $0xbd8d794d96aacfb4 // .quad -4788037454677749836 - QUAD $0xdca04777f541c567 // .quad -2548958808550292121 - QUAD $0xecf0d7a0fc5583a1 // .quad -1373360799919799391 - QUAD $0x89e42caaf9491b60 // .quad -8510628282985014432 - QUAD $0xf41686c49db57245 // .quad -858350499949874619 - QUAD $0xac5d37d5b79b6239 // .quad -6026599335303880135 - QUAD $0x311c2875c522ced6 // .quad 3538747893490044630 - QUAD $0xd77485cb25823ac7 // .quad -2921563150702462265 - QUAD $0x7d633293366b828c // .quad 9035120885289943692 - QUAD $0x86a8d39ef77164bc // .quad -8743505996830120772 - QUAD $0xae5dff9c02033198 // .quad -5882264492762254952 - QUAD $0xa8530886b54dbdeb // .quad -6317696477610263061 - QUAD $0xd9f57f830283fdfd // .quad -2741144597525430787 - QUAD $0xd267caa862a12d66 // .quad -3285434578585440922 - QUAD $0xd072df63c324fd7c // .quad -3426430746906788484 - QUAD $0x8380dea93da4bc60 // .quad -8970925639256982432 - QUAD $0x4247cb9e59f71e6e // .quad 4776009810824339054 - QUAD $0xa46116538d0deb78 // .quad -6601971030643840136 - QUAD $0x52d9be85f074e609 // .quad 5970012263530423817 - QUAD $0xcd795be870516656 // .quad -3640777769877412266 - QUAD $0x67902e276c921f8c // .quad 7462515329413029772 - QUAD $0x806bd9714632dff6 // .quad -9193015133814464522 - QUAD $0x00ba1cd8a3db53b7 // .quad 52386062455755703 - QUAD $0xa086cfcd97bf97f3 // .quad -6879582898840692749 - QUAD $0x80e8a40eccd228a5 // .quad -9157889458785081179 - QUAD $0xc8a883c0fdaf7df0 // .quad -3987792605123478032 - QUAD $0x6122cd128006b2ce // .quad 6999382250228200142 - QUAD $0xfad2a4b13d1b5d6c // .quad -373054737976959636 - QUAD $0x796b805720085f82 // .quad 8749227812785250178 - QUAD $0x9cc3a6eec6311a63 // .quad -7150688238876681629 - QUAD $0xcbe3303674053bb1 // .quad -3755104653863994447 - QUAD $0xc3f490aa77bd60fc // .quad -4326674280168464132 - QUAD $0xbedbfc4411068a9d // .quad -4693880817329993059 - QUAD $0xf4f1b4d515acb93b // .quad -796656831783192261 - QUAD $0xee92fb5515482d45 // .quad -1255665003235103419 - QUAD $0x991711052d8bf3c5 // .quad -7415439547505577019 - QUAD $0x751bdd152d4d1c4b // .quad 8438581409832836171 - QUAD $0xbf5cd54678eef0b6 // .quad -4657613415954583370 - QUAD $0xd262d45a78a0635e // .quad -3286831292991118498 - QUAD $0xef340a98172aace4 // .quad -1210330751515841308 - QUAD $0x86fb897116c87c35 // .quad -8720225134666286027 - QUAD $0x9580869f0e7aac0e // .quad -7673985747338482674 - QUAD $0xd45d35e6ae3d4da1 // .quad -3144297699952734815 - QUAD $0xbae0a846d2195712 // .quad -4980796165745715438 - QUAD $0x8974836059cca10a // .quad -8542058143368306422 - QUAD $0xe998d258869facd7 // .quad -1614309188754756393 - QUAD $0x2bd1a438703fc94c // .quad 3157485376071780684 - QUAD $0x91ff83775423cc06 // .quad -7926472270612804602 - QUAD $0x7b6306a34627ddd0 // .quad 8890957387685944784 - QUAD $0xb67f6455292cbf08 // .quad -5296404319838617848 - QUAD $0x1a3bc84c17b1d543 // .quad 1890324697752655171 - QUAD $0xe41f3d6a7377eeca // .quad -2008819381370884406 - QUAD $0x20caba5f1d9e4a94 // .quad 2362905872190818964 - QUAD $0x8e938662882af53e // .quad -8173041140997884610 - QUAD $0x547eb47b7282ee9d // .quad 6088502188546649757 - QUAD $0xb23867fb2a35b28d // .quad -5604615407819967859 - QUAD $0xe99e619a4f23aa44 // .quad -1612744301171463612 - QUAD $0xdec681f9f4c31f31 // .quad -2394083241347571919 - QUAD $0x6405fa00e2ec94d5 // .quad 7207441660390446293 - QUAD $0x8b3c113c38f9f37e // .quad -8413831053483314306 - QUAD $0xde83bc408dd3dd05 // .quad -2412877989897052923 - QUAD $0xae0b158b4738705e // .quad -5905602798426754978 - QUAD $0x9624ab50b148d446 // .quad -7627783505798704058 - QUAD $0xd98ddaee19068c76 // .quad -2770317479606055818 - QUAD $0x3badd624dd9b0958 // .quad 4300328673033783640 - QUAD $0x87f8a8d4cfa417c9 // .quad -8648977452394866743 - QUAD $0xe54ca5d70a80e5d7 // .quad -1923980597781273129 - QUAD $0xa9f6d30a038d1dbc // .quad -6199535797066195524 - QUAD $0x5e9fcf4ccd211f4d // .quad 6818396289628184397 - QUAD $0xd47487cc8470652b // .quad -3137733727905356501 - QUAD $0x7647c32000696720 // .quad 8522995362035230496 - QUAD $0x84c8d4dfd2c63f3b // .quad -8878612607581929669 - QUAD $0x29ecd9f40041e074 // .quad 3021029092058325108 - QUAD $0xa5fb0a17c777cf09 // .quad -6486579741050024183 - QUAD $0xf468107100525891 // .quad -835399653354481519 - QUAD $0xcf79cc9db955c2cc // .quad -3496538657885142324 - QUAD $0x7182148d4066eeb5 // .quad 8179122470161673909 - QUAD $0x81ac1fe293d599bf // .quad -9102865688819295809 - QUAD $0xc6f14cd848405531 // .quad -4111420493003729615 - QUAD $0xa21727db38cb002f // .quad -6766896092596731857 - QUAD $0xb8ada00e5a506a7d // .quad -5139275616254662019 - QUAD $0xca9cf1d206fdc03b // .quad -3846934097318526917 - QUAD $0xa6d90811f0e4851d // .quad -6424094520318327523 - QUAD $0xfd442e4688bd304a // .quad -196981603220770742 - QUAD $0x908f4a166d1da664 // .quad -8030118150397909404 - QUAD $0x9e4a9cec15763e2e // .quad -7040642529654063570 - QUAD $0x9a598e4e043287ff // .quad -7324666853212387329 - QUAD $0xc5dd44271ad3cdba // .quad -4189117143640191558 - QUAD $0x40eff1e1853f29fe // .quad 4679224488766679550 - QUAD $0xf7549530e188c128 // .quad -624710411122851544 - QUAD $0xd12bee59e68ef47d // .quad -3374341425896426371 - QUAD $0x9a94dd3e8cf578b9 // .quad -7307973034592864071 - QUAD $0x82bb74f8301958cf // .quad -9026492418826348337 - QUAD $0xc13a148e3032d6e7 // .quad -4523280274813692185 - QUAD $0xe36a52363c1faf02 // .quad -2059743486678159614 - QUAD $0xf18899b1bc3f8ca1 // .quad -1042414325089727327 - QUAD $0xdc44e6c3cb279ac2 // .quad -2574679358347699518 - QUAD $0x96f5600f15a7b7e5 // .quad -7569037980822161435 - QUAD $0x29ab103a5ef8c0ba // .quad 3002511419460075706 - QUAD $0xbcb2b812db11a5de // .quad -4849611457600313890 - QUAD $0x7415d448f6b6f0e8 // .quad 8364825292752482536 - QUAD $0xebdf661791d60f56 // .quad -1450328303573004458 - QUAD $0x111b495b3464ad22 // .quad 1232659579085827362 - QUAD $0x936b9fcebb25c995 // .quad -7823984217374209643 - QUAD $0xcab10dd900beec35 // .quad -3841273781498745803 - QUAD $0xb84687c269ef3bfb // .quad -5168294253290374149 - QUAD $0x3d5d514f40eea743 // .quad 4421779809981343555 - QUAD $0xe65829b3046b0afa // .quad -1848681798185579782 - QUAD $0x0cb4a5a3112a5113 // .quad 915538744049291539 - QUAD $0x8ff71a0fe2c2e6dc // .quad -8072955151507069220 - QUAD $0x47f0e785eaba72ac // .quad 5183897733458195116 - QUAD $0xb3f4e093db73a093 // .quad -5479507920956448621 - QUAD $0x59ed216765690f57 // .quad 6479872166822743895 - QUAD $0xe0f218b8d25088b8 // .quad -2237698882768172872 - QUAD $0x306869c13ec3532d // .quad 3488154190101041965 - QUAD $0x8c974f7383725573 // .quad -8316090829371189901 - QUAD $0x1e414218c73a13fc // .quad 2180096368813151228 - QUAD $0xafbd2350644eeacf // .quad -5783427518286599473 - QUAD $0xe5d1929ef90898fb // .quad -1886565557410948869 - QUAD $0xdbac6c247d62a583 // .quad -2617598379430861437 - QUAD $0xdf45f746b74abf3a // .quad -2358206946763686086 - QUAD $0x894bc396ce5da772 // .quad -8553528014785370254 - QUAD $0x6b8bba8c328eb784 // .quad 7749492695127472004 - QUAD $0xab9eb47c81f5114f // .quad -6080224000054324913 - QUAD $0x066ea92f3f326565 // .quad 463493832054564197 - QUAD $0xd686619ba27255a2 // .quad -2988593981640518238 - QUAD $0xc80a537b0efefebe // .quad -4032318728359182658 - QUAD $0x8613fd0145877585 // .quad -8785400266166405755 - QUAD $0xbd06742ce95f5f37 // .quad -4826042214438183113 - QUAD $0xa798fc4196e952e7 // .quad -6370064314280619289 - QUAD $0x2c48113823b73705 // .quad 3190819268807046917 - QUAD $0xd17f3b51fca3a7a0 // .quad -3350894374423386208 - QUAD $0xf75a15862ca504c6 // .quad -623161932418579258 - QUAD $0x82ef85133de648c4 // .quad -9011838011655698236 - QUAD $0x9a984d73dbe722fc // .quad -7307005235402693892 - QUAD $0xa3ab66580d5fdaf5 // .quad -6653111496142234891 - QUAD $0xc13e60d0d2e0ebbb // .quad -4522070525825979461 - QUAD $0xcc963fee10b7d1b3 // .quad -3704703351750405709 - QUAD $0x318df905079926a9 // .quad 3570783879572301481 - QUAD $0xffbbcfe994e5c61f // .quad -19193171260619233 - QUAD $0xfdf17746497f7053 // .quad -148206168962011053 - QUAD $0x9fd561f1fd0f9bd3 // .quad -6929524759678968877 - QUAD $0xfeb6ea8bedefa634 // .quad -92628855601256908 - QUAD $0xc7caba6e7c5382c8 // .quad -4050219931171323192 - QUAD $0xfe64a52ee96b8fc1 // .quad -115786069501571135 - QUAD $0xf9bd690a1b68637b // .quad -451088895536766085 - QUAD $0x3dfdce7aa3c673b1 // .quad 4466953431550423985 - QUAD $0x9c1661a651213e2d // .quad -7199459587351560659 - QUAD $0x06bea10ca65c084f // .quad 486002885505321039 - QUAD $0xc31bfa0fe5698db8 // .quad -4387638465762062920 - QUAD $0x486e494fcff30a63 // .quad 5219189625309039203 - QUAD $0xf3e2f893dec3f126 // .quad -872862063775190746 - QUAD $0x5a89dba3c3efccfb // .quad 6523987031636299003 - QUAD $0x986ddb5c6b3a76b7 // .quad -7463067817500576073 - QUAD $0xf89629465a75e01d // .quad -534194123654701027 - QUAD $0xbe89523386091465 // .quad -4717148753448332187 - QUAD $0xf6bbb397f1135824 // .quad -667742654568376284 - QUAD $0xee2ba6c0678b597f // .quad -1284749923383027329 - QUAD $0x746aa07ded582e2d // .quad 8388693718644305453 - QUAD $0x94db483840b717ef // .quad -7720497729755473937 - QUAD $0xa8c2a44eb4571cdd // .quad -6286281471915778851 - QUAD $0xba121a4650e4ddeb // .quad -5038936143766954517 - QUAD $0x92f34d62616ce414 // .quad -7857851839894723564 - QUAD $0xe896a0d7e51e1566 // .quad -1686984161281305242 - QUAD $0x77b020baf9c81d18 // .quad 8624429273841147160 - QUAD $0x915e2486ef32cd60 // .quad -7971894128441897632 - QUAD $0x0ace1474dc1d122f // .quad 778582277723329071 - QUAD $0xb5b5ada8aaff80b8 // .quad -5353181642124984136 - QUAD $0x0d819992132456bb // .quad 973227847154161339 - QUAD $0xe3231912d5bf60e6 // .quad -2079791034228842266 - QUAD $0x10e1fff697ed6c6a // .quad 1216534808942701674 - QUAD $0x8df5efabc5979c8f // .quad -8217398424034108273 - QUAD $0xca8d3ffa1ef463c2 // .quad -3851351762838199358 - QUAD $0xb1736b96b6fd83b3 // .quad -5660062011615247437 - QUAD $0xbd308ff8a6b17cb3 // .quad -4814189703547749197 - QUAD $0xddd0467c64bce4a0 // .quad -2463391496091671392 - QUAD $0xac7cb3f6d05ddbdf // .quad -6017737129434686497 - QUAD $0x8aa22c0dbef60ee4 // .quad -8457148712698376476 - QUAD $0x6bcdf07a423aa96c // .quad 7768129340171790700 - QUAD $0xad4ab7112eb3929d // .quad -5959749872445582691 - QUAD $0x86c16c98d2c953c7 // .quad -8736582398494813241 - QUAD $0xd89d64d57a607744 // .quad -2838001322129590460 - QUAD $0xe871c7bf077ba8b8 // .quad -1697355961263740744 - QUAD $0x87625f056c7c4a8b // .quad -8691279853972075893 - QUAD $0x11471cd764ad4973 // .quad 1244995533423855987 - QUAD $0xa93af6c6c79b5d2d // .quad -6252413799037706963 - QUAD $0xd598e40d3dd89bd0 // .quad -3055441601647567920 - QUAD $0xd389b47879823479 // .quad -3203831230369745799 - QUAD $0x4aff1d108d4ec2c4 // .quad 5404070034795315908 - QUAD $0x843610cb4bf160cb // .quad -8919923546622172981 - QUAD $0xcedf722a585139bb // .quad -3539985255894009413 - QUAD $0xa54394fe1eedb8fe // .quad -6538218414850328322 - QUAD $0xc2974eb4ee658829 // .quad -4424981569867511767 - QUAD $0xce947a3da6a9273e // .quad -3561087000135522498 - QUAD $0x733d226229feea33 // .quad 8303831092947774003 - QUAD $0x811ccc668829b887 // .quad -9143208402725783417 - QUAD $0x0806357d5a3f5260 // .quad 578208414664970848 - QUAD $0xa163ff802a3426a8 // .quad -6817324484979841368 - QUAD $0xca07c2dcb0cf26f8 // .quad -3888925500096174344 - QUAD $0xc9bcff6034c13052 // .quad -3909969587797413806 - QUAD $0xfc89b393dd02f0b6 // .quad -249470856692830026 - QUAD $0xfc2c3f3841f17c67 // .quad -275775966319379353 - QUAD $0xbbac2078d443ace3 // .quad -4923524589293425437 - QUAD $0x9d9ba7832936edc0 // .quad -7089889006590693952 - QUAD $0xd54b944b84aa4c0e // .quad -3077202868308390898 - QUAD $0xc5029163f384a931 // .quad -4250675239810979535 - QUAD $0x0a9e795e65d4df12 // .quad 765182433041899282 - QUAD $0xf64335bcf065d37d // .quad -701658031336336515 - QUAD $0x4d4617b5ff4a16d6 // .quad 5568164059729762006 - QUAD $0x99ea0196163fa42e // .quad -7356065297226292178 - QUAD $0x504bced1bf8e4e46 // .quad 5785945546544795206 - QUAD $0xc06481fb9bcf8d39 // .quad -4583395603105477319 - QUAD $0xe45ec2862f71e1d7 // .quad -1990940103673781801 - QUAD $0xf07da27a82c37088 // .quad -1117558485454458744 - QUAD $0x5d767327bb4e5a4d // .quad 6734696907262548557 - QUAD $0x964e858c91ba2655 // .quad -7616003081050118571 - QUAD $0x3a6a07f8d510f870 // .quad 4209185567039092848 - QUAD $0xbbe226efb628afea // .quad -4908317832885260310 - QUAD $0x890489f70a55368c // .quad -8573576096483297652 - QUAD $0xeadab0aba3b2dbe5 // .quad -1523711272679187483 - QUAD $0x2b45ac74ccea842f // .quad 3118087934678041647 - QUAD $0x92c8ae6b464fc96f // .quad -7869848573065574033 - QUAD $0x3b0b8bc90012929e // .quad 4254647968387469982 - QUAD $0xb77ada0617e3bbcb // .quad -5225624697904579637 - QUAD $0x09ce6ebb40173745 // .quad 706623942056949573 - QUAD $0xe55990879ddcaabd // .quad -1920344853953336643 - QUAD $0xcc420a6a101d0516 // .quad -3728406090856200938 - QUAD $0x8f57fa54c2a9eab6 // .quad -8117744561361917258 - QUAD $0x9fa946824a12232e // .quad -6941939825212513490 - QUAD $0xb32df8e9f3546564 // .quad -5535494683275008668 - QUAD $0x47939822dc96abfa // .quad 5157633273766521850 - QUAD $0xdff9772470297ebd // .quad -2307682335666372931 - QUAD $0x59787e2b93bc56f8 // .quad 6447041592208152312 - QUAD $0x8bfbea76c619ef36 // .quad -8359830487432564938 - QUAD $0x57eb4edb3c55b65b // .quad 6335244004343789147 - QUAD $0xaefae51477a06b03 // .quad -5838102090863318269 - QUAD $0xede622920b6b23f2 // .quad -1304317031425039374 - QUAD $0xdab99e59958885c4 // .quad -2685941595151759932 - QUAD $0xe95fab368e45ecee // .quad -1630396289281299218 - QUAD $0x88b402f7fd75539b // .quad -8596242524610931813 - QUAD $0x11dbcb0218ebb415 // .quad 1286845328412881941 - QUAD $0xaae103b5fcd2a881 // .quad -6133617137336276863 - QUAD $0xd652bdc29f26a11a // .quad -3003129357911285478 - QUAD $0xd59944a37c0752a2 // .quad -3055335403242958174 - QUAD $0x4be76d3346f04960 // .quad 5469460339465668960 - QUAD $0x857fcae62d8493a5 // .quad -8827113654667930715 - QUAD $0x6f70a4400c562ddc // .quad 8030098730593431004 - QUAD $0xa6dfbd9fb8e5b88e // .quad -6422206049907525490 - QUAD $0xcb4ccd500f6bb953 // .quad -3797434642040374957 - QUAD $0xd097ad07a71f26b2 // .quad -3416071543957018958 - QUAD $0x7e2000a41346a7a8 // .quad 9088264752731695016 - QUAD $0x825ecc24c873782f // .quad -9052573742614218705 - QUAD $0x8ed400668c0c28c9 // .quad -8154892584824854327 - QUAD $0xa2f67f2dfa90563b // .quad -6704031159840385477 - QUAD $0x728900802f0f32fb // .quad 8253128342678483707 - QUAD $0xcbb41ef979346bca // .quad -3768352931373093942 - QUAD $0x4f2b40a03ad2ffba // .quad 5704724409920716730 - QUAD $0xfea126b7d78186bc // .quad -98755145788979524 - QUAD $0xe2f610c84987bfa9 // .quad -2092466524453879895 - QUAD $0x9f24b832e6b0f436 // .quad -6979250993759194058 - QUAD $0x0dd9ca7d2df4d7ca // .quad 998051431430019018 - QUAD $0xc6ede63fa05d3143 // .quad -4112377723771604669 - QUAD $0x91503d1c79720dbc // .quad -7975807747567252036 - QUAD $0xf8a95fcf88747d94 // .quad -528786136287117932 - QUAD $0x75a44c6397ce912b // .quad 8476984389250486571 - QUAD $0x9b69dbe1b548ce7c // .quad -7248020362820530564 - QUAD $0xc986afbe3ee11abb // .quad -3925256793573221701 - QUAD $0xc24452da229b021b // .quad -4448339435098275301 - QUAD $0xfbe85badce996169 // .quad -294884973539139223 - QUAD $0xf2d56790ab41c2a2 // .quad -948738275445456222 - QUAD $0xfae27299423fb9c4 // .quad -368606216923924028 - QUAD $0x97c560ba6b0919a5 // .quad -7510490449794491995 - QUAD $0xdccd879fc967d41b // .quad -2536221894791146469 - QUAD $0xbdb6b8e905cb600f // .quad -4776427043815727089 - QUAD $0x5400e987bbc1c921 // .quad 6053094668365842721 - QUAD $0xed246723473e3813 // .quad -1358847786342270957 - QUAD $0x290123e9aab23b69 // .quad 2954682317029915497 - QUAD $0x9436c0760c86e30b // .quad -7766808894105001205 - QUAD $0xf9a0b6720aaf6522 // .quad -459166561069996766 - QUAD $0xb94470938fa89bce // .quad -5096825099203863602 - QUAD $0xf808e40e8d5b3e6a // .quad -573958201337495958 - QUAD $0xe7958cb87392c2c2 // .quad -1759345355577441598 - QUAD $0xb60b1d1230b20e05 // .quad -5329133770099257851 - QUAD $0x90bd77f3483bb9b9 // .quad -8017119874876982855 - QUAD $0xb1c6f22b5e6f48c3 // .quad -5636551615525730109 - QUAD $0xb4ecd5f01a4aa828 // .quad -5409713825168840664 - QUAD $0x1e38aeb6360b1af4 // .quad 2177682517447613172 - QUAD $0xe2280b6c20dd5232 // .quad -2150456263033662926 - QUAD $0x25c6da63c38de1b1 // .quad 2722103146809516465 - QUAD $0x8d590723948a535f // .quad -8261564192037121185 - QUAD $0x579c487e5a38ad0f // .quad 6313000485183335695 - QUAD $0xb0af48ec79ace837 // .quad -5715269221619013577 - QUAD $0x2d835a9df0c6d852 // .quad 3279564588051781714 - QUAD $0xdcdb1b2798182244 // .quad -2532400508596379068 - QUAD $0xf8e431456cf88e66 // .quad -512230283362660762 - QUAD $0x8a08f0f8bf0f156b // .quad -8500279345513818773 - QUAD $0x1b8e9ecb641b5900 // .quad 1985699082112030976 - QUAD $0xac8b2d36eed2dac5 // .quad -6013663163464885563 - QUAD $0xe272467e3d222f40 // .quad -2129562165787349184 - QUAD $0xd7adf884aa879177 // .quad -2905392935903719049 - QUAD $0x5b0ed81dcc6abb10 // .quad 6561419329620589328 - QUAD $0x86ccbb52ea94baea // .quad -8733399612580906262 - QUAD $0x98e947129fc2b4ea // .quad -7428327965055601430 - QUAD $0xa87fea27a539e9a5 // .quad -6305063497298744923 - QUAD $0x3f2398d747b36225 // .quad 4549648098962661925 - QUAD $0xd29fe4b18e88640e // .quad -3269643353196043250 - QUAD $0x8eec7f0d19a03aae // .quad -8147997931578836306 - QUAD $0x83a3eeeef9153e89 // .quad -8961056123388608887 - QUAD $0x1953cf68300424ad // .quad 1825030320404309165 - QUAD $0xa48ceaaab75a8e2b // .quad -6589634135808373205 - QUAD $0x5fa8c3423c052dd8 // .quad 6892973918932774360 - QUAD $0xcdb02555653131b6 // .quad -3625356651333078602 - QUAD $0x3792f412cb06794e // .quad 4004531380238580046 - QUAD $0x808e17555f3ebf11 // .quad -9183376934724255983 - QUAD $0xe2bbd88bbee40bd1 // .quad -2108853905778275375 - QUAD $0xa0b19d2ab70e6ed6 // .quad -6867535149977932074 - QUAD $0x5b6aceaeae9d0ec5 // .quad 6587304654631931589 - QUAD $0xc8de047564d20a8b // .quad -3972732919045027189 - QUAD $0xf245825a5a445276 // .quad -989241218564861322 - QUAD $0xfb158592be068d2e // .quad -354230130378896082 - QUAD $0xeed6e2f0f0d56713 // .quad -1236551523206076653 - QUAD $0x9ced737bb6c4183d // .quad -7138922859127891907 - QUAD $0x55464dd69685606c // .quad 6144684325637283948 - QUAD $0xc428d05aa4751e4c // .quad -4311967555482476980 - QUAD $0xaa97e14c3c26b887 // .quad -6154202648235558777 - QUAD $0xf53304714d9265df // .quad -778273425925708321 - QUAD $0xd53dd99f4b3066a9 // .quad -3081067291867060567 - QUAD $0x993fe2c6d07b7fab // .quad -7403949918844649557 - QUAD $0xe546a8038efe402a // .quad -1925667057416912854 - QUAD $0xbf8fdb78849a5f96 // .quad -4643251380128424042 - QUAD $0xde98520472bdd034 // .quad -2407083821771141068 - QUAD $0xef73d256a5c0f77c // .quad -1192378206733142148 - QUAD $0x963e66858f6d4441 // .quad -7620540795641314239 - QUAD $0x95a8637627989aad // .quad -7662765406849295699 - QUAD $0xdde7001379a44aa9 // .quad -2456994988062127447 - QUAD $0xbb127c53b17ec159 // .quad -4966770740134231719 - QUAD $0x5560c018580d5d53 // .quad 6152128301777116499 - QUAD $0xe9d71b689dde71af // .quad -1596777406740401745 - QUAD $0xaab8f01e6e10b4a7 // .quad -6144897678060768089 - QUAD $0x9226712162ab070d // .quad -7915514906853832947 - QUAD $0xcab3961304ca70e9 // .quad -3840561048787980055 - QUAD $0xb6b00d69bb55c8d1 // .quad -5282707615139903279 - QUAD $0x3d607b97c5fd0d23 // .quad 4422670725869800739 - QUAD $0xe45c10c42a2b3b05 // .quad -1991698500497491195 - QUAD $0x8cb89a7db77c506b // .quad -8306719647944912789 - QUAD $0x8eb98a7a9a5b04e3 // .quad -8162340590452013853 - QUAD $0x77f3608e92adb243 // .quad 8643358275316593219 - QUAD $0xb267ed1940f1c61c // .quad -5591239719637629412 - QUAD $0x55f038b237591ed4 // .quad 6192511825718353620 - QUAD $0xdf01e85f912e37a3 // .quad -2377363631119648861 - QUAD $0x6b6c46dec52f6689 // .quad 7740639782147942025 - QUAD $0x8b61313bbabce2c6 // .quad -8403381297090862394 - QUAD $0x2323ac4b3b3da016 // .quad 2532056854628769814 - QUAD $0xae397d8aa96c1b77 // .quad -5892540602936190089 - QUAD $0xabec975e0a0d081b // .quad -6058300968568813541 - QUAD $0xd9c7dced53c72255 // .quad -2753989735242849707 - QUAD $0x96e7bd358c904a22 // .quad -7572876210711016926 - QUAD $0x881cea14545c7575 // .quad -8638772612167862923 - QUAD $0x7e50d64177da2e55 // .quad 9102010423587778133 - QUAD $0xaa242499697392d2 // .quad -6186779746782440750 - QUAD $0xdde50bd1d5d0b9ea // .quad -2457545025797441046 - QUAD $0xd4ad2dbfc3d07787 // .quad -3121788665050663033 - QUAD $0x955e4ec64b44e865 // .quad -7683617300674189211 - QUAD $0x84ec3c97da624ab4 // .quad -8868646943297746252 - QUAD $0xbd5af13bef0b113f // .quad -4802260812921368257 - QUAD $0xa6274bbdd0fadd61 // .quad -6474122660694794911 - QUAD $0xecb1ad8aeacdd58f // .quad -1391139997724322417 - QUAD $0xcfb11ead453994ba // .quad -3480967307441105734 - QUAD $0x67de18eda5814af3 // .quad 7484447039699372787 - QUAD $0x81ceb32c4b43fcf4 // .quad -9093133594791772940 - QUAD $0x80eacf948770ced8 // .quad -9157278655470055720 - QUAD $0xa2425ff75e14fc31 // .quad -6754730975062328271 - QUAD $0xa1258379a94d028e // .quad -6834912300910181746 - QUAD $0xcad2f7f5359a3b3e // .quad -3831727700400522434 - QUAD $0x096ee45813a04331 // .quad 679731660717048625 - QUAD $0xfd87b5f28300ca0d // .quad -177973607073265139 - QUAD $0x8bca9d6e188853fd // .quad -8373707460958465027 - QUAD $0x9e74d1b791e07e48 // .quad -7028762532061872568 - QUAD $0x775ea264cf55347e // .quad 8601490892183123070 - QUAD $0xc612062576589dda // .quad -4174267146649952806 - QUAD $0x95364afe032a819e // .quad -7694880458480647778 - QUAD $0xf79687aed3eec551 // .quad -606147914885053103 - QUAD $0x3a83ddbd83f52205 // .quad 4216457482181353989 - QUAD $0x9abe14cd44753b52 // .quad -7296371474444240046 - QUAD $0xc4926a9672793543 // .quad -4282243101277735613 - QUAD $0xc16d9a0095928a27 // .quad -4508778324627912153 - QUAD $0x75b7053c0f178294 // .quad 8482254178684994196 - QUAD $0xf1c90080baf72cb1 // .quad -1024286887357502287 - QUAD $0x5324c68b12dd6339 // .quad 5991131704928854841 - QUAD $0x971da05074da7bee // .quad -7557708332239520786 - QUAD $0xd3f6fc16ebca5e04 // .quad -3173071712060547580 - QUAD $0xbce5086492111aea // .quad -4835449396872013078 - QUAD $0x88f4bb1ca6bcf585 // .quad -8578025658503072379 - QUAD $0xec1e4a7db69561a5 // .quad -1432625727662628443 - QUAD $0x2b31e9e3d06c32e6 // .quad 3112525982153323238 - QUAD $0x9392ee8e921d5d07 // .quad -7812920107430224633 - QUAD $0x3aff322e62439fd0 // .quad 4251171748059520976 - QUAD $0xb877aa3236a4b449 // .quad -5154464115860392887 - QUAD $0x09befeb9fad487c3 // .quad 702278666647013315 - QUAD $0xe69594bec44de15b // .quad -1831394126398103205 - QUAD $0x4c2ebe687989a9b4 // .quad 5489534351736154548 - QUAD $0x901d7cf73ab0acd9 // .quad -8062150356639896359 - QUAD $0x0f9d37014bf60a11 // .quad 1125115960621402641 - QUAD $0xb424dc35095cd80f // .quad -5466001927372482545 - QUAD $0x538484c19ef38c95 // .quad 6018080969204141205 - QUAD $0xe12e13424bb40e13 // .quad -2220816390788215277 - QUAD $0x2865a5f206b06fba // .quad 2910915193077788602 - QUAD $0x8cbccc096f5088cb // .quad -8305539271883716405 - QUAD $0xf93f87b7442e45d4 // .quad -486521013540076076 - QUAD $0xafebff0bcb24aafe // .quad -5770238071427257602 - QUAD $0xf78f69a51539d749 // .quad -608151266925095095 - QUAD $0xdbe6fecebdedd5be // .quad -2601111570856684098 - QUAD $0xb573440e5a884d1c // .quad -5371875102083756772 - QUAD $0x89705f4136b4a597 // .quad -8543223759426509417 - QUAD $0x31680a88f8953031 // .quad 3560107088838733873 - QUAD $0xabcc77118461cefc // .quad -6067343680855748868 - QUAD $0xfdc20d2b36ba7c3e // .quad -161552157378970562 - QUAD $0xd6bf94d5e57a42bc // .quad -2972493582642298180 - QUAD $0x3d32907604691b4d // .quad 4409745821703674701 - QUAD $0x8637bd05af6c69b5 // .quad -8775337516792518219 - QUAD $0xa63f9a49c2c1b110 // .quad -6467280898289979120 - QUAD $0xa7c5ac471b478423 // .quad -6357485877563259869 - QUAD $0x0fcf80dc33721d54 // .quad 1139270913992301908 - QUAD $0xd1b71758e219652b // .quad -3335171328526686933 - QUAD $0xd3c36113404ea4a9 // .quad -3187597375937010519 - QUAD $0x83126e978d4fdf3b // .quad -9002011107970261189 - QUAD $0x645a1cac083126ea // .quad 7231123676894144234 - QUAD $0xa3d70a3d70a3d70a // .quad -6640827866535438582 - QUAD $0x3d70a3d70a3d70a4 // .quad 4427218577690292388 - QUAD $0xcccccccccccccccc // .quad -3689348814741910324 - QUAD $0xcccccccccccccccd // .quad -3689348814741910323 - QUAD $0x8000000000000000 // .quad -9223372036854775808 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa000000000000000 // .quad -6917529027641081856 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xc800000000000000 // .quad -4035225266123964416 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xfa00000000000000 // .quad -432345564227567616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9c40000000000000 // .quad -7187745005283311616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xc350000000000000 // .quad -4372995238176751616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xf424000000000000 // .quad -854558029293551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9896800000000000 // .quad -7451627795949551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xbebc200000000000 // .quad -4702848726509551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xee6b280000000000 // .quad -1266874889709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9502f90000000000 // .quad -7709325833709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xba43b74000000000 // .quad -5024971273709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xe8d4a51000000000 // .quad -1669528073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9184e72a00000000 // .quad -7960984073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xb5e620f480000000 // .quad -5339544073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xe35fa931a0000000 // .quad -2062744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8e1bc9bf04000000 // .quad -8206744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xb1a2bc2ec5000000 // .quad -5646744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xde0b6b3a76400000 // .quad -2446744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8ac7230489e80000 // .quad -8446744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xad78ebc5ac620000 // .quad -5946744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xd8d726b7177a8000 // .quad -2821744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x878678326eac9000 // .quad -8681119073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa968163f0a57b400 // .quad -6239712823709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xd3c21bcecceda100 // .quad -3187955011209551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x84595161401484a0 // .quad -8910000909647051616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa56fa5b99019a5c8 // .quad -6525815118631426616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xcecb8f27f4200f3a // .quad -3545582879861895366 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x813f3978f8940984 // .quad -9133518327554766460 - QUAD $0x4000000000000000 // .quad 4611686018427387904 - QUAD $0xa18f07d736b90be5 // .quad -6805211891016070171 - QUAD $0x5000000000000000 // .quad 5764607523034234880 - QUAD $0xc9f2c9cd04674ede // .quad -3894828845342699810 - QUAD $0xa400000000000000 // .quad -6629298651489370112 - QUAD $0xfc6f7c4045812296 // .quad -256850038250986858 - QUAD $0x4d00000000000000 // .quad 5548434740920451072 - QUAD $0x9dc5ada82b70b59d // .quad -7078060301547948643 - QUAD $0xf020000000000000 // .quad -1143914305352105984 - QUAD $0xc5371912364ce305 // .quad -4235889358507547899 - QUAD $0x6c28000000000000 // .quad 7793479155164643328 - QUAD $0xf684df56c3e01bc6 // .quad -683175679707046970 - QUAD $0xc732000000000000 // .quad -4093209111326359552 - QUAD $0x9a130b963a6c115c // .quad -7344513827457986212 - QUAD $0x3c7f400000000000 // .quad 4359273333062107136 - QUAD $0xc097ce7bc90715b3 // .quad -4568956265895094861 - QUAD $0x4b9f100000000000 // .quad 5449091666327633920 - QUAD $0xf0bdc21abb48db20 // .quad -1099509313941480672 - QUAD $0x1e86d40000000000 // .quad 2199678564482154496 - QUAD $0x96769950b50d88f4 // .quad -7604722348854507276 - QUAD $0x1314448000000000 // .quad 1374799102801346560 - QUAD $0xbc143fa4e250eb31 // .quad -4894216917640746191 - QUAD $0x17d955a000000000 // .quad 1718498878501683200 - QUAD $0xeb194f8e1ae525fd // .quad -1506085128623544835 - QUAD $0x5dcfab0800000000 // .quad 6759809616554491904 - QUAD $0x92efd1b8d0cf37be // .quad -7858832233030797378 - QUAD $0x5aa1cae500000000 // .quad 6530724019560251392 - QUAD $0xb7abc627050305ad // .quad -5211854272861108819 - QUAD $0xf14a3d9e40000000 // .quad -1059967012404461568 - QUAD $0xe596b7b0c643c719 // .quad -1903131822648998119 - QUAD $0x6d9ccd05d0000000 // .quad 7898413271349198848 - QUAD $0x8f7e32ce7bea5c6f // .quad -8106986416796705681 - QUAD $0xe4820023a2000000 // .quad -1981020733047832576 - QUAD $0xb35dbf821ae4f38b // .quad -5522047002568494197 - QUAD $0xdda2802c8a800000 // .quad -2476275916309790720 - QUAD $0xe0352f62a19e306e // .quad -2290872734783229842 - QUAD $0xd50b2037ad200000 // .quad -3095344895387238400 - QUAD $0x8c213d9da502de45 // .quad -8349324486880600507 - QUAD $0x4526f422cc340000 // .quad 4982938468024057856 - QUAD $0xaf298d050e4395d6 // .quad -5824969590173362730 - QUAD $0x9670b12b7f410000 // .quad -7606384970252091392 - QUAD $0xdaf3f04651d47b4c // .quad -2669525969289315508 - QUAD $0x3c0cdd765f114000 // .quad 4327076842467049472 - QUAD $0x88d8762bf324cd0f // .quad -8585982758446904049 - QUAD $0xa5880a69fb6ac800 // .quad -6518949010312869888 - QUAD $0xab0e93b6efee0053 // .quad -6120792429631242157 - QUAD $0x8eea0d047a457a00 // .quad -8148686262891087360 - QUAD $0xd5d238a4abe98068 // .quad -3039304518611664792 - QUAD $0x72a4904598d6d880 // .quad 8260886245095692416 - QUAD $0x85a36366eb71f041 // .quad -8817094351773372351 - QUAD $0x47a6da2b7f864750 // .quad 5163053903184807760 - QUAD $0xa70c3c40a64e6c51 // .quad -6409681921289327535 - QUAD $0x999090b65f67d924 // .quad -7381240676301154012 - QUAD $0xd0cf4b50cfe20765 // .quad -3400416383184271515 - QUAD $0xfff4b4e3f741cf6d // .quad -3178808521666707 - QUAD $0x82818f1281ed449f // .quad -9042789267131251553 - QUAD $0xbff8f10e7a8921a5 // .quad -4613672773753429595 - QUAD $0xa321f2d7226895c7 // .quad -6691800565486676537 - QUAD $0xaff72d52192b6a0e // .quad -5767090967191786994 - QUAD $0xcbea6f8ceb02bb39 // .quad -3753064688430957767 - QUAD $0x9bf4f8a69f764491 // .quad -7208863708989733743 - QUAD $0xfee50b7025c36a08 // .quad -79644842111309304 - QUAD $0x02f236d04753d5b5 // .quad 212292400617608629 - QUAD $0x9f4f2726179a2245 // .quad -6967307053960650171 - QUAD $0x01d762422c946591 // .quad 132682750386005393 - QUAD $0xc722f0ef9d80aad6 // .quad -4097447799023424810 - QUAD $0x424d3ad2b7b97ef6 // .quad 4777539456409894646 - QUAD $0xf8ebad2b84e0d58b // .quad -510123730351893109 - QUAD $0xd2e0898765a7deb3 // .quad -3251447716342407501 - QUAD $0x9b934c3b330c8577 // .quad -7236356359111015049 - QUAD $0x63cc55f49f88eb30 // .quad 7191217214140771120 - QUAD $0xc2781f49ffcfa6d5 // .quad -4433759430461380907 - QUAD $0x3cbf6b71c76b25fc // .quad 4377335499248575996 - QUAD $0xf316271c7fc3908a // .quad -930513269649338230 - QUAD $0x8bef464e3945ef7b // .quad -8363388681221443717 - QUAD $0x97edd871cfda3a56 // .quad -7499099821171918250 - QUAD $0x97758bf0e3cbb5ad // .quad -7532960934977096275 - QUAD $0xbde94e8e43d0c8ec // .quad -4762188758037509908 - QUAD $0x3d52eeed1cbea318 // .quad 4418856886560793368 - QUAD $0xed63a231d4c4fb27 // .quad -1341049929119499481 - QUAD $0x4ca7aaa863ee4bde // .quad 5523571108200991710 - QUAD $0x945e455f24fb1cf8 // .quad -7755685233340769032 - QUAD $0x8fe8caa93e74ef6b // .quad -8076983103442849941 - QUAD $0xb975d6b6ee39e436 // .quad -5082920523248573386 - QUAD $0xb3e2fd538e122b45 // .quad -5484542860876174523 - QUAD $0xe7d34c64a9c85d44 // .quad -1741964635633328828 - QUAD $0x60dbbca87196b617 // .quad 6979379479186945559 - QUAD $0x90e40fbeea1d3a4a // .quad -8006256924911912374 - QUAD $0xbc8955e946fe31ce // .quad -4861259862362934834 - QUAD $0xb51d13aea4a488dd // .quad -5396135137712502563 - QUAD $0x6babab6398bdbe42 // .quad 7758483227328495170 - QUAD $0xe264589a4dcdab14 // .quad -2133482903713240300 - QUAD $0xc696963c7eed2dd2 // .quad -4136954021121544750 - QUAD $0x8d7eb76070a08aec // .quad -8250955842461857044 - QUAD $0xfc1e1de5cf543ca3 // .quad -279753253987271517 - QUAD $0xb0de65388cc8ada8 // .quad -5702008784649933400 - QUAD $0x3b25a55f43294bcc // .quad 4261994450943298508 - QUAD $0xdd15fe86affad912 // .quad -2515824962385028846 - QUAD $0x49ef0eb713f39ebf // .quad 5327493063679123135 - QUAD $0x8a2dbf142dfcc7ab // .quad -8489919629131724885 - QUAD $0x6e3569326c784338 // .quad 7941369183226839864 - QUAD $0xacb92ed9397bf996 // .quad -6000713517987268202 - QUAD $0x49c2c37f07965405 // .quad 5315025460606161925 - QUAD $0xd7e77a8f87daf7fb // .quad -2889205879056697349 - QUAD $0xdc33745ec97be907 // .quad -2579590211097073401 - QUAD $0x86f0ac99b4e8dafd // .quad -8723282702051517699 - QUAD $0x69a028bb3ded71a4 // .quad 7611128154919104932 - QUAD $0xa8acd7c0222311bc // .quad -6292417359137009220 - QUAD $0xc40832ea0d68ce0d // .quad -4321147861633282547 - QUAD $0xd2d80db02aabd62b // .quad -3253835680493873621 - QUAD $0xf50a3fa490c30191 // .quad -789748808614215279 - QUAD $0x83c7088e1aab65db // .quad -8951176327949752869 - QUAD $0x792667c6da79e0fb // .quad 8729779031470891259 - QUAD $0xa4b8cab1a1563f52 // .quad -6577284391509803182 - QUAD $0x577001b891185939 // .quad 6300537770911226169 - QUAD $0xcde6fd5e09abcf26 // .quad -3609919470959866074 - QUAD $0xed4c0226b55e6f87 // .quad -1347699823215743097 - QUAD $0x80b05e5ac60b6178 // .quad -9173728696990998152 - QUAD $0x544f8158315b05b5 // .quad 6075216638131242421 - QUAD $0xa0dc75f1778e39d6 // .quad -6855474852811359786 - QUAD $0x696361ae3db1c722 // .quad 7594020797664053026 - QUAD $0xc913936dd571c84c // .quad -3957657547586811828 - QUAD $0x03bc3a19cd1e38ea // .quad 269153960225290474 - QUAD $0xfb5878494ace3a5f // .quad -335385916056126881 - QUAD $0x04ab48a04065c724 // .quad 336442450281613092 - QUAD $0x9d174b2dcec0e47b // .quad -7127145225176161157 - QUAD $0x62eb0d64283f9c77 // .quad 7127805559067090039 - QUAD $0xc45d1df942711d9a // .quad -4297245513042813542 - QUAD $0x3ba5d0bd324f8395 // .quad 4298070930406474645 - QUAD $0xf5746577930d6500 // .quad -759870872876129024 - QUAD $0xca8f44ec7ee3647a // .quad -3850783373846682502 - QUAD $0x9968bf6abbe85f20 // .quad -7392448323188662496 - QUAD $0x7e998b13cf4e1ecc // .quad 9122475437414293196 - QUAD $0xbfc2ef456ae276e8 // .quad -4628874385558440216 - QUAD $0x9e3fedd8c321a67f // .quad -7043649776941685121 - QUAD $0xefb3ab16c59b14a2 // .quad -1174406963520662366 - QUAD $0xc5cfe94ef3ea101f // .quad -4192876202749718497 - QUAD $0x95d04aee3b80ece5 // .quad -7651533379841495835 - QUAD $0xbba1f1d158724a13 // .quad -4926390635932268013 - QUAD $0xbb445da9ca61281f // .quad -4952730706374481889 - QUAD $0x2a8a6e45ae8edc98 // .quad 3065383741939440792 - QUAD $0xea1575143cf97226 // .quad -1579227364540714458 - QUAD $0xf52d09d71a3293be // .quad -779956341003086914 - QUAD $0x924d692ca61be758 // .quad -7904546130479028392 - QUAD $0x593c2626705f9c57 // .quad 6430056314514152535 - QUAD $0xb6e0c377cfa2e12e // .quad -5268996644671397586 - QUAD $0x6f8b2fb00c77836d // .quad 8037570393142690669 - QUAD $0xe498f455c38b997a // .quad -1974559787411859078 - QUAD $0x0b6dfb9c0f956448 // .quad 823590954573587528 - QUAD $0x8edf98b59a373fec // .quad -8151628894773493780 - QUAD $0x4724bd4189bd5ead // .quad 5126430365035880109 - QUAD $0xb2977ee300c50fe7 // .quad -5577850100039479321 - QUAD $0x58edec91ec2cb658 // .quad 6408037956294850136 - QUAD $0xdf3d5e9bc0f653e1 // .quad -2360626606621961247 - QUAD $0x2f2967b66737e3ee // .quad 3398361426941174766 - QUAD $0x8b865b215899f46c // .quad -8392920656779807636 - QUAD $0xbd79e0d20082ee75 // .quad -4793553135802847627 - QUAD $0xae67f1e9aec07187 // .quad -5879464802547371641 - QUAD $0xecd8590680a3aa12 // .quad -1380255401326171630 - QUAD $0xda01ee641a708de9 // .quad -2737644984756826647 - QUAD $0xe80e6f4820cc9496 // .quad -1725319251657714538 - QUAD $0x884134fe908658b2 // .quad -8628557143114098510 - QUAD $0x3109058d147fdcde // .quad 3533361486141316318 - QUAD $0xaa51823e34a7eede // .quad -6174010410465235234 - QUAD $0xbd4b46f0599fd416 // .quad -4806670179178130410 - QUAD $0xd4e5e2cdc1d1ea96 // .quad -3105826994654156138 - QUAD $0x6c9e18ac7007c91b // .quad 7826720331309500699 - QUAD $0x850fadc09923329e // .quad -8858670899299929442 - QUAD $0x03e2cf6bc604ddb1 // .quad 280014188641050033 - QUAD $0xa6539930bf6bff45 // .quad -6461652605697523899 - QUAD $0x84db8346b786151d // .quad -8873354301053463267 - QUAD $0xcfe87f7cef46ff16 // .quad -3465379738694516970 - QUAD $0xe612641865679a64 // .quad -1868320839462053276 - QUAD $0x81f14fae158c5f6e // .quad -9083391364325154962 - QUAD $0x4fcb7e8f3f60c07f // .quad 5749828502977298559 - QUAD $0xa26da3999aef7749 // .quad -6742553186979055799 - QUAD $0xe3be5e330f38f09e // .quad -2036086408133152610 - QUAD $0xcb090c8001ab551c // .quad -3816505465296431844 - QUAD $0x5cadf5bfd3072cc6 // .quad 6678264026688335046 - QUAD $0xfdcb4fa002162a63 // .quad -158945813193151901 - QUAD $0x73d9732fc7c8f7f7 // .quad 8347830033360418807 - QUAD $0x9e9f11c4014dda7e // .quad -7016870160886801794 - QUAD $0x2867e7fddcdd9afb // .quad 2911550761636567803 - QUAD $0xc646d63501a1511d // .quad -4159401682681114339 - QUAD $0xb281e1fd541501b9 // .quad -5583933584809066055 - QUAD $0xf7d88bc24209a565 // .quad -587566084924005019 - QUAD $0x1f225a7ca91a4227 // .quad 2243455055843443239 - QUAD $0x9ae757596946075f // .quad -7284757830718584993 - QUAD $0x3375788de9b06959 // .quad 3708002419115845977 - QUAD $0xc1a12d2fc3978937 // .quad -4494261269970843337 - QUAD $0x0052d6b1641c83af // .quad 23317005467419567 - QUAD $0xf209787bb47d6b84 // .quad -1006140569036166268 - QUAD $0xc0678c5dbd23a49b // .quad -4582539761593113445 - QUAD $0x9745eb4d50ce6332 // .quad -7546366883288685774 - QUAD $0xf840b7ba963646e1 // .quad -558244341782001951 - QUAD $0xbd176620a501fbff // .quad -4821272585683469313 - QUAD $0xb650e5a93bc3d899 // .quad -5309491445654890343 - QUAD $0xec5d3fa8ce427aff // .quad -1414904713676948737 - QUAD $0xa3e51f138ab4cebf // .quad -6636864307068612929 - QUAD $0x93ba47c980e98cdf // .quad -7801844473689174817 - QUAD $0xc66f336c36b10138 // .quad -4148040191917883080 - QUAD $0xb8a8d9bbe123f017 // .quad -5140619573684080617 - QUAD $0xb80b0047445d4185 // .quad -5185050239897353851 - QUAD $0xe6d3102ad96cec1d // .quad -1814088448677712867 - QUAD $0xa60dc059157491e6 // .quad -6481312799871692314 - QUAD $0x9043ea1ac7e41392 // .quad -8051334308064652398 - QUAD $0x87c89837ad68db30 // .quad -8662506518347195600 - QUAD $0xb454e4a179dd1877 // .quad -5452481866653427593 - QUAD $0x29babe4598c311fc // .quad 3006924907348169212 - QUAD $0xe16a1dc9d8545e94 // .quad -2203916314889396588 - QUAD $0xf4296dd6fef3d67b // .quad -853029884242176389 - QUAD $0x8ce2529e2734bb1d // .quad -8294976724446954723 - QUAD $0x1899e4a65f58660d // .quad 1772699331562333709 - QUAD $0xb01ae745b101e9e4 // .quad -5757034887131305500 - QUAD $0x5ec05dcff72e7f90 // .quad 6827560182880305040 - QUAD $0xdc21a1171d42645d // .quad -2584607590486743971 - QUAD $0x76707543f4fa1f74 // .quad 8534450228600381300 - QUAD $0x899504ae72497eba // .quad -8532908771695296838 - QUAD $0x6a06494a791c53a9 // .quad 7639874402088932265 - QUAD $0xabfa45da0edbde69 // .quad -6054449946191733143 - QUAD $0x0487db9d17636893 // .quad 326470965756389523 - QUAD $0xd6f8d7509292d603 // .quad -2956376414312278525 - QUAD $0x45a9d2845d3c42b7 // .quad 5019774725622874807 - QUAD $0x865b86925b9bc5c2 // .quad -8765264286586255934 - QUAD $0x0b8a2392ba45a9b3 // .quad 831516194300602803 - QUAD $0xa7f26836f282b732 // .quad -6344894339805432014 - QUAD $0x8e6cac7768d7141f // .quad -8183976793979022305 - QUAD $0xd1ef0244af2364ff // .quad -3319431906329402113 - QUAD $0x3207d795430cd927 // .quad 3605087062808385831 - QUAD $0x8335616aed761f1f // .quad -8992173969096958177 - QUAD $0x7f44e6bd49e807b9 // .quad 9170708441896323001 - QUAD $0xa402b9c5a8d3a6e7 // .quad -6628531442943809817 - QUAD $0x5f16206c9c6209a7 // .quad 6851699533943015847 - QUAD $0xcd036837130890a1 // .quad -3673978285252374367 - QUAD $0x36dba887c37a8c10 // .quad 3952938399001381904 - QUAD $0x802221226be55a64 // .quad -9213765455923815836 - QUAD $0xc2494954da2c978a // .quad -4446942528265218166 - QUAD $0xa02aa96b06deb0fd // .quad -6905520801477381891 - QUAD $0xf2db9baa10b7bd6d // .quad -946992141904134803 - QUAD $0xc83553c5c8965d3d // .quad -4020214983419339459 - QUAD $0x6f92829494e5acc8 // .quad 8039631859474607304 - QUAD $0xfa42a8b73abbf48c // .quad -413582710846786420 - QUAD $0xcb772339ba1f17fa // .quad -3785518230938904582 - QUAD $0x9c69a97284b578d7 // .quad -7176018221920323369 - QUAD $0xff2a760414536efc // .quad -60105885123121412 - QUAD $0xc38413cf25e2d70d // .quad -4358336758973016307 - QUAD $0xfef5138519684abb // .quad -75132356403901765 - QUAD $0xf46518c2ef5b8cd1 // .quad -836234930288882479 - QUAD $0x7eb258665fc25d6a // .quad 9129456591349898602 - QUAD $0x98bf2f79d5993802 // .quad -7440175859071633406 - QUAD $0xef2f773ffbd97a62 // .quad -1211618658047395230 - QUAD $0xbeeefb584aff8603 // .quad -4688533805412153853 - QUAD $0xaafb550ffacfd8fb // .quad -6126209340986631941 - QUAD $0xeeaaba2e5dbf6784 // .quad -1248981238337804412 - QUAD $0x95ba2a53f983cf39 // .quad -7657761676233289927 - QUAD $0x952ab45cfa97a0b2 // .quad -7698142301602209614 - QUAD $0xdd945a747bf26184 // .quad -2480258038432112252 - QUAD $0xba756174393d88df // .quad -5010991858575374113 - QUAD $0x94f971119aeef9e5 // .quad -7712008566467528219 - QUAD $0xe912b9d1478ceb17 // .quad -1652053804791829737 - QUAD $0x7a37cd5601aab85e // .quad 8806733365625141342 - QUAD $0x91abb422ccb812ee // .quad -7950062655635975442 - QUAD $0xac62e055c10ab33b // .quad -6025006692552756421 - QUAD $0xb616a12b7fe617aa // .quad -5325892301117581398 - QUAD $0x577b986b314d600a // .quad 6303799689591218186 - QUAD $0xe39c49765fdf9d94 // .quad -2045679357969588844 - QUAD $0xed5a7e85fda0b80c // .quad -1343622424865753076 - QUAD $0x8e41ade9fbebc27d // .quad -8196078626372074883 - QUAD $0x14588f13be847308 // .quad 1466078993672598280 - QUAD $0xb1d219647ae6b31c // .quad -5633412264537705700 - QUAD $0x596eb2d8ae258fc9 // .quad 6444284760518135753 - QUAD $0xde469fbd99a05fe3 // .quad -2430079312244744221 - QUAD $0x6fca5f8ed9aef3bc // .quad 8055355950647669692 - QUAD $0x8aec23d680043bee // .quad -8436328597794046994 - QUAD $0x25de7bb9480d5855 // .quad 2728754459941099605 - QUAD $0xada72ccc20054ae9 // .quad -5933724728815170839 - QUAD $0xaf561aa79a10ae6b // .quad -5812428961928401301 - QUAD $0xd910f7ff28069da4 // .quad -2805469892591575644 - QUAD $0x1b2ba1518094da05 // .quad 1957835834444274181 - QUAD $0x87aa9aff79042286 // .quad -8670947710510816634 - QUAD $0x90fb44d2f05d0843 // .quad -7999724640327104445 - QUAD $0xa99541bf57452b28 // .quad -6226998619711132888 - QUAD $0x353a1607ac744a54 // .quad 3835402254873283156 - QUAD $0xd3fa922f2d1675f2 // .quad -3172062256211528206 - QUAD $0x42889b8997915ce9 // .quad 4794252818591603945 - QUAD $0x847c9b5d7c2e09b7 // .quad -8900067937773286985 - QUAD $0x69956135febada12 // .quad 7608094030047140370 - QUAD $0xa59bc234db398c25 // .quad -6513398903789220827 - QUAD $0x43fab9837e699096 // .quad 4898431519131537558 - QUAD $0xcf02b2c21207ef2e // .quad -3530062611309138130 - QUAD $0x94f967e45e03f4bc // .quad -7712018656367741764 - QUAD $0x8161afb94b44f57d // .quad -9123818159709293187 - QUAD $0x1d1be0eebac278f6 // .quad 2097517367411243254 - QUAD $0xa1ba1ba79e1632dc // .quad -6793086681209228580 - QUAD $0x6462d92a69731733 // .quad 7233582727691441971 - QUAD $0xca28a291859bbf93 // .quad -3879672333084147821 - QUAD $0x7d7b8f7503cfdcff // .quad 9041978409614302463 - QUAD $0xfcb2cb35e702af78 // .quad -237904397927796872 - QUAD $0x5cda735244c3d43f // .quad 6690786993590490175 - QUAD $0x9defbf01b061adab // .quad -7066219276345954901 - QUAD $0x3a0888136afa64a8 // .quad 4181741870994056360 - QUAD $0xc56baec21c7a1916 // .quad -4221088077005055722 - QUAD $0x088aaa1845b8fdd1 // .quad 615491320315182545 - QUAD $0xf6c69a72a3989f5b // .quad -664674077828931749 - QUAD $0x8aad549e57273d46 // .quad -8454007886460797626 - QUAD $0x9a3c2087a63f6399 // .quad -7332950326284164199 - QUAD $0x36ac54e2f678864c // .quad 3939617107816777292 - QUAD $0xc0cb28a98fcf3c7f // .quad -4554501889427817345 - QUAD $0x84576a1bb416a7de // .quad -8910536670511192098 - QUAD $0xf0fdf2d3f3c30b9f // .quad -1081441343357383777 - QUAD $0x656d44a2a11c51d6 // .quad 7308573235570561494 - QUAD $0x969eb7c47859e743 // .quad -7593429867239446717 - QUAD $0x9f644ae5a4b1b326 // .quad -6961356773836868826 - QUAD $0xbc4665b596706114 // .quad -4880101315621920492 - QUAD $0x873d5d9f0dde1fef // .quad -8701695967296086033 - QUAD $0xeb57ff22fc0c7959 // .quad -1488440626100012711 - QUAD $0xa90cb506d155a7eb // .quad -6265433940692719637 - QUAD $0x9316ff75dd87cbd8 // .quad -7847804418953589800 - QUAD $0x09a7f12442d588f3 // .quad 695789805494438131 - QUAD $0xb7dcbf5354e9bece // .quad -5198069505264599346 - QUAD $0x0c11ed6d538aeb30 // .quad 869737256868047664 - QUAD $0xe5d3ef282a242e81 // .quad -1885900863153361279 - QUAD $0x8f1668c8a86da5fb // .quad -8136200465769716229 - QUAD $0x8fa475791a569d10 // .quad -8096217067111932656 - QUAD $0xf96e017d694487bd // .quad -473439272678684739 - QUAD $0xb38d92d760ec4455 // .quad -5508585315462527915 - QUAD $0x37c981dcc395a9ad // .quad 4019886927579031981 - QUAD $0xe070f78d3927556a // .quad -2274045625900771990 - QUAD $0x85bbe253f47b1418 // .quad -8810199395808373736 - QUAD $0x8c469ab843b89562 // .quad -8338807543829064350 - QUAD $0x93956d7478ccec8f // .quad -7812217631593927537 - QUAD $0xaf58416654a6babb // .quad -5811823411358942533 - QUAD $0x387ac8d1970027b3 // .quad 4069786015789754291 - QUAD $0xdb2e51bfe9d0696a // .quad -2653093245771290262 - QUAD $0x06997b05fcc0319f // .quad 475546501309804959 - QUAD $0x88fcf317f22241e2 // .quad -8575712306248138270 - QUAD $0x441fece3bdf81f04 // .quad 4908902581746016004 - QUAD $0xab3c2fddeeaad25a // .quad -6107954364382784934 - QUAD $0xd527e81cad7626c4 // .quad -3087243809672255804 - QUAD $0xd60b3bd56a5586f1 // .quad -3023256937051093263 - QUAD $0x8a71e223d8d3b075 // .quad -8470740780517707659 - QUAD $0x85c7056562757456 // .quad -8807064613298015146 - QUAD $0xf6872d5667844e4a // .quad -682526969396179382 - QUAD $0xa738c6bebb12d16c // .quad -6397144748195131028 - QUAD $0xb428f8ac016561dc // .quad -5464844730172612132 - QUAD $0xd106f86e69d785c7 // .quad -3384744916816525881 - QUAD $0xe13336d701beba53 // .quad -2219369894288377261 - QUAD $0x82a45b450226b39c // .quad -9032994600651410532 - QUAD $0xecc0024661173474 // .quad -1387106183930235788 - QUAD $0xa34d721642b06084 // .quad -6679557232386875260 - QUAD $0x27f002d7f95d0191 // .quad 2877803288514593169 - QUAD $0xcc20ce9bd35c78a5 // .quad -3737760522056206171 - QUAD $0x31ec038df7b441f5 // .quad 3597254110643241461 - QUAD $0xff290242c83396ce // .quad -60514634142869810 - QUAD $0x7e67047175a15272 // .quad 9108253656731439730 - QUAD $0x9f79a169bd203e41 // .quad -6955350673980375487 - QUAD $0x0f0062c6e984d387 // .quad 1080972517029761927 - QUAD $0xc75809c42c684dd1 // .quad -4082502324048081455 - QUAD $0x52c07b78a3e60869 // .quad 5962901664714590313 - QUAD $0xf92e0c3537826145 // .quad -491441886632713915 - QUAD $0xa7709a56ccdf8a83 // .quad -6381430974388925821 - QUAD $0x9bbcc7a142b17ccb // .quad -7224680206786528053 - QUAD $0x88a66076400bb692 // .quad -8600080377420466542 - QUAD $0xc2abf989935ddbfe // .quad -4419164240055772162 - QUAD $0x6acff893d00ea436 // .quad 7696643601933968438 - QUAD $0xf356f7ebf83552fe // .quad -912269281642327298 - QUAD $0x0583f6b8c4124d44 // .quad 397432465562684740 - QUAD $0x98165af37b2153de // .quad -7487697328667536418 - QUAD $0xc3727a337a8b704b // .quad -4363290727450709941 - QUAD $0xbe1bf1b059e9a8d6 // .quad -4747935642407032618 - QUAD $0x744f18c0592e4c5d // .quad 8380944645968776285 - QUAD $0xeda2ee1c7064130c // .quad -1323233534581402868 - QUAD $0x1162def06f79df74 // .quad 1252808770606194548 - QUAD $0x9485d4d1c63e8be7 // .quad -7744549986754458649 - QUAD $0x8addcb5645ac2ba9 // .quad -8440366555225904215 - QUAD $0xb9a74a0637ce2ee1 // .quad -5069001465015685407 - QUAD $0x6d953e2bd7173693 // .quad 7896285879677171347 - QUAD $0xe8111c87c5c1ba99 // .quad -1724565812842218855 - QUAD $0xc8fa8db6ccdd0438 // .quad -3964700705685699528 - QUAD $0x910ab1d4db9914a0 // .quad -7995382660667468640 - QUAD $0x1d9c9892400a22a3 // .quad 2133748077373825699 - QUAD $0xb54d5e4a127f59c8 // .quad -5382542307406947896 - QUAD $0x2503beb6d00cab4c // .quad 2667185096717282124 - QUAD $0xe2a0b5dc971f303a // .quad -2116491865831296966 - QUAD $0x2e44ae64840fd61e // .quad 3333981370896602654 - QUAD $0x8da471a9de737e24 // .quad -8240336443785642460 - QUAD $0x5ceaecfed289e5d3 // .quad 6695424375237764563 - QUAD $0xb10d8e1456105dad // .quad -5688734536304665171 - QUAD $0x7425a83e872c5f48 // .quad 8369280469047205704 - QUAD $0xdd50f1996b947518 // .quad -2499232151953443560 - QUAD $0xd12f124e28f7771a // .quad -3373457468973156582 - QUAD $0x8a5296ffe33cc92f // .quad -8479549122611984081 - QUAD $0x82bd6b70d99aaa70 // .quad -9025939945749304720 - QUAD $0xace73cbfdc0bfb7b // .quad -5987750384837592197 - QUAD $0x636cc64d1001550c // .quad 7164319141522920716 - QUAD $0xd8210befd30efa5a // .quad -2873001962619602342 - QUAD $0x3c47f7e05401aa4f // .quad 4343712908476262991 - QUAD $0x8714a775e3e95c78 // .quad -8713155254278333320 - QUAD $0x65acfaec34810a72 // .quad 7326506586225052274 - QUAD $0xa8d9d1535ce3b396 // .quad -6279758049420528746 - QUAD $0x7f1839a741a14d0e // .quad 9158133232781315342 - QUAD $0xd31045a8341ca07c // .quad -3238011543348273028 - QUAD $0x1ede48111209a051 // .quad 2224294504121868369 - QUAD $0x83ea2b892091e44d // .quad -8941286242233752499 - QUAD $0x934aed0aab460433 // .quad -7833187971778608077 - QUAD $0xa4e4b66b68b65d60 // .quad -6564921784364802720 - QUAD $0xf81da84d56178540 // .quad -568112927868484288 - QUAD $0xce1de40642e3f4b9 // .quad -3594466212028615495 - QUAD $0x36251260ab9d668f // .quad 3901544858591782543 - QUAD $0x80d2ae83e9ce78f3 // .quad -9164070410158966541 - QUAD $0xc1d72b7c6b42601a // .quad -4479063491021217766 - QUAD $0xa1075a24e4421730 // .quad -6843401994271320272 - QUAD $0xb24cf65b8612f820 // .quad -5598829363776522208 - QUAD $0xc94930ae1d529cfc // .quad -3942566474411762436 - QUAD $0xdee033f26797b628 // .quad -2386850686293264856 - QUAD $0xfb9b7cd9a4a7443c // .quad -316522074587315140 - QUAD $0x169840ef017da3b2 // .quad 1628122660560806834 - QUAD $0x9d412e0806e88aa5 // .quad -7115355324258153819 - QUAD $0x8e1f289560ee864f // .quad -8205795374004271537 - QUAD $0xc491798a08a2ad4e // .quad -4282508136895304370 - QUAD $0xf1a6f2bab92a27e3 // .quad -1033872180650563613 - QUAD $0xf5b5d7ec8acb58a2 // .quad -741449152691742558 - QUAD $0xae10af696774b1dc // .quad -5904026244240592420 - QUAD $0x9991a6f3d6bf1765 // .quad -7380934748073420955 - QUAD $0xacca6da1e0a8ef2a // .quad -5995859411864064214 - QUAD $0xbff610b0cc6edd3f // .quad -4614482416664388289 - QUAD $0x17fd090a58d32af4 // .quad 1728547772024695540 - QUAD $0xeff394dcff8a948e // .quad -1156417002403097458 - QUAD $0xddfc4b4cef07f5b1 // .quad -2451001303396518479 - QUAD $0x95f83d0a1fb69cd9 // .quad -7640289654143017767 - QUAD $0x4abdaf101564f98f // .quad 5385653213018257807 - QUAD $0xbb764c4ca7a4440f // .quad -4938676049251384305 - QUAD $0x9d6d1ad41abe37f2 // .quad -7102991539009341454 - QUAD $0xea53df5fd18d5513 // .quad -1561659043136842477 - QUAD $0x84c86189216dc5ee // .quad -8878739423761676818 - QUAD $0x92746b9be2f8552c // .quad -7893565929601608404 - QUAD $0x32fd3cf5b4e49bb5 // .quad 3674159897003727797 - QUAD $0xb7118682dbb66a77 // .quad -5255271393574622601 - QUAD $0x3fbc8c33221dc2a2 // .quad 4592699871254659746 - QUAD $0xe4d5e82392a40515 // .quad -1957403223540890347 - QUAD $0x0fabaf3feaa5334b // .quad 1129188820640936779 - QUAD $0x8f05b1163ba6832d // .quad -8140906042354138323 - QUAD $0x29cb4d87f2a7400f // .quad 3011586022114279439 - QUAD $0xb2c71d5bca9023f8 // .quad -5564446534515285000 - QUAD $0x743e20e9ef511013 // .quad 8376168546070237203 - QUAD $0xdf78e4b2bd342cf6 // .quad -2343872149716718346 - QUAD $0x914da9246b255417 // .quad -7976533391121755113 - QUAD $0x8bab8eefb6409c1a // .quad -8382449121214030822 - QUAD $0x1ad089b6c2f7548f // .quad 1932195658189984911 - QUAD $0xae9672aba3d0c320 // .quad -5866375383090150624 - QUAD $0xa184ac2473b529b2 // .quad -6808127464117294670 - QUAD $0xda3c0f568cc4f3e8 // .quad -2721283210435300376 - QUAD $0xc9e5d72d90a2741f // .quad -3898473311719230433 - QUAD $0x8865899617fb1871 // .quad -8618331034163144591 - QUAD $0x7e2fa67c7a658893 // .quad 9092669226243950739 - QUAD $0xaa7eebfb9df9de8d // .quad -6161227774276542835 - QUAD $0xddbb901b98feeab8 // .quad -2469221522477225288 - QUAD $0xd51ea6fa85785631 // .quad -3089848699418290639 - QUAD $0x552a74227f3ea566 // .quad 6136845133758244198 - QUAD $0x8533285c936b35de // .quad -8848684464777513506 - QUAD $0xd53a88958f872760 // .quad -3082000819042179232 - QUAD $0xa67ff273b8460356 // .quad -6449169562544503978 - QUAD $0x8a892abaf368f138 // .quad -8464187042230111944 - QUAD $0xd01fef10a657842c // .quad -3449775934753242068 - QUAD $0x2d2b7569b0432d86 // .quad 3254824252494523782 - QUAD $0x8213f56a67f6b29b // .quad -9073638986861858149 - QUAD $0x9c3b29620e29fc74 // .quad -7189106879045698444 - QUAD $0xa298f2c501f45f42 // .quad -6730362715149934782 - QUAD $0x8349f3ba91b47b90 // .quad -8986383598807123056 - QUAD $0xcb3f2f7642717713 // .quad -3801267375510030573 - QUAD $0x241c70a936219a74 // .quad 2602078556773259892 - QUAD $0xfe0efb53d30dd4d7 // .quad -139898200960150313 - QUAD $0xed238cd383aa0111 // .quad -1359087822460813039 - QUAD $0x9ec95d1463e8a506 // .quad -7004965403241175802 - QUAD $0xf4363804324a40ab // .quad -849429889038008149 - QUAD $0xc67bb4597ce2ce48 // .quad -4144520735624081848 - QUAD $0xb143c6053edcd0d6 // .quad -5673473379724898090 - QUAD $0xf81aa16fdc1b81da // .quad -568964901102714406 - QUAD $0xdd94b7868e94050b // .quad -2480155706228734709 - QUAD $0x9b10a4e5e9913128 // .quad -7273132090830278360 - QUAD $0xca7cf2b4191c8327 // .quad -3855940325606653145 - QUAD $0xc1d4ce1f63f57d72 // .quad -4479729095110460046 - QUAD $0xfd1c2f611f63a3f1 // .quad -208239388580928527 - QUAD $0xf24a01a73cf2dccf // .quad -987975350460687153 - QUAD $0xbc633b39673c8ced // .quad -4871985254153548563 - QUAD $0x976e41088617ca01 // .quad -7535013621679011327 - QUAD $0xd5be0503e085d814 // .quad -3044990783845967852 - QUAD $0xbd49d14aa79dbc82 // .quad -4807081008671376254 - QUAD $0x4b2d8644d8a74e19 // .quad 5417133557047315993 - QUAD $0xec9c459d51852ba2 // .quad -1397165242411832414 - QUAD $0xddf8e7d60ed1219f // .quad -2451955090545630817 - QUAD $0x93e1ab8252f33b45 // .quad -7790757304148477115 - QUAD $0xcabb90e5c942b504 // .quad -3838314940804713212 - QUAD $0xb8da1662e7b00a17 // .quad -5126760611758208489 - QUAD $0x3d6a751f3b936244 // .quad 4425478360848884292 - QUAD $0xe7109bfba19c0c9d // .quad -1796764746270372707 - QUAD $0x0cc512670a783ad5 // .quad 920161932633717461 - QUAD $0x906a617d450187e2 // .quad -8040506994060064798 - QUAD $0x27fb2b80668b24c6 // .quad 2880944217109767366 - QUAD $0xb484f9dc9641e9da // .quad -5438947724147693094 - QUAD $0xb1f9f660802dedf7 // .quad -5622191765467566601 - QUAD $0xe1a63853bbd26451 // .quad -2186998636757228463 - QUAD $0x5e7873f8a0396974 // .quad 6807318348447705460 - QUAD $0x8d07e33455637eb2 // .quad -8284403175614349646 - QUAD $0xdb0b487b6423e1e9 // .quad -2662955059861265943 - QUAD $0xb049dc016abc5e5f // .quad -5743817951090549153 - QUAD $0x91ce1a9a3d2cda63 // .quad -7940379843253970333 - QUAD $0xdc5c5301c56b75f7 // .quad -2568086420435798537 - QUAD $0x7641a140cc7810fc // .quad 8521269269642088700 - QUAD $0x89b9b3e11b6329ba // .quad -8522583040413455942 - QUAD $0xa9e904c87fcb0a9e // .quad -6203421752542164322 - QUAD $0xac2820d9623bf429 // .quad -6041542782089432023 - QUAD $0x546345fa9fbdcd45 // .quad 6080780864604458309 - QUAD $0xd732290fbacaf133 // .quad -2940242459184402125 - QUAD $0xa97c177947ad4096 // .quad -6234081974526590826 - QUAD $0x867f59a9d4bed6c0 // .quad -8755180564631333184 - QUAD $0x49ed8eabcccc485e // .quad 5327070802775656542 - QUAD $0xa81f301449ee8c70 // .quad -6332289687361778576 - QUAD $0x5c68f256bfff5a75 // .quad 6658838503469570677 - QUAD $0xd226fc195c6a2f8c // .quad -3303676090774835316 - QUAD $0x73832eec6fff3112 // .quad 8323548129336963346 - QUAD $0x83585d8fd9c25db7 // .quad -8982326584375353929 - QUAD $0xc831fd53c5ff7eac // .quad -4021154456019173716 - QUAD $0xa42e74f3d032f525 // .quad -6616222212041804507 - QUAD $0xba3e7ca8b77f5e56 // .quad -5026443070023967146 - QUAD $0xcd3a1230c43fb26f // .quad -3658591746624867729 - QUAD $0x28ce1bd2e55f35ec // .quad 2940318199324816876 - QUAD $0x80444b5e7aa7cf85 // .quad -9204148869281624187 - QUAD $0x7980d163cf5b81b4 // .quad 8755227902219092404 - QUAD $0xa0555e361951c366 // .quad -6893500068174642330 - QUAD $0xd7e105bcc3326220 // .quad -2891023177508298208 - QUAD $0xc86ab5c39fa63440 // .quad -4005189066790915008 - QUAD $0x8dd9472bf3fefaa8 // .quad -8225464990312760664 - QUAD $0xfa856334878fc150 // .quad -394800315061255856 - QUAD $0xb14f98f6f0feb952 // .quad -5670145219463562926 - QUAD $0x9c935e00d4b9d8d2 // .quad -7164279224554366766 - QUAD $0x6ed1bf9a569f33d4 // .quad 7985374283903742932 - QUAD $0xc3b8358109e84f07 // .quad -4343663012265570553 - QUAD $0x0a862f80ec4700c9 // .quad 758345818024902857 - QUAD $0xf4a642e14c6262c8 // .quad -817892746904575288 - QUAD $0xcd27bb612758c0fb // .quad -3663753745896259333 - QUAD $0x98e7e9cccfbd7dbd // .quad -7428711994456441411 - QUAD $0x8038d51cb897789d // .quad -9207375118826243939 - QUAD $0xbf21e44003acdd2c // .quad -4674203974643163860 - QUAD $0xe0470a63e6bd56c4 // .quad -2285846861678029116 - QUAD $0xeeea5d5004981478 // .quad -1231068949876566920 - QUAD $0x1858ccfce06cac75 // .quad 1754377441329851509 - QUAD $0x95527a5202df0ccb // .quad -7686947121313936181 - QUAD $0x0f37801e0c43ebc9 // .quad 1096485900831157193 - QUAD $0xbaa718e68396cffd // .quad -4996997883215032323 - QUAD $0xd30560258f54e6bb // .quad -3241078642388441413 - QUAD $0xe950df20247c83fd // .quad -1634561335591402499 - QUAD $0x47c6b82ef32a206a // .quad 5172023733869224042 - QUAD $0x91d28b7416cdd27e // .quad -7939129862385708418 - QUAD $0x4cdc331d57fa5442 // .quad 5538357842881958978 - QUAD $0xb6472e511c81471d // .quad -5312226309554747619 - QUAD $0xe0133fe4adf8e953 // .quad -2300424733252327085 - QUAD $0xe3d8f9e563a198e5 // .quad -2028596868516046619 - QUAD $0x58180fddd97723a7 // .quad 6347841120289366951 - QUAD $0x8e679c2f5e44ff8f // .quad -8185402070463610993 - QUAD $0x570f09eaa7ea7649 // .quad 6273243709394548297 - QUAD $0xb201833b35d63f73 // .quad -5620066569652125837 - QUAD $0x2cd2cc6551e513db // .quad 3229868618315797467 - QUAD $0xde81e40a034bcf4f // .quad -2413397193637769393 - QUAD $0xf8077f7ea65e58d2 // .quad -574350245532641070 - QUAD $0x8b112e86420f6191 // .quad -8425902273664687727 - QUAD $0xfb04afaf27faf783 // .quad -358968903457900669 - QUAD $0xadd57a27d29339f6 // .quad -5920691823653471754 - QUAD $0x79c5db9af1f9b564 // .quad 8774660907532399972 - QUAD $0xd94ad8b1c7380874 // .quad -2789178761139451788 - QUAD $0x18375281ae7822bd // .quad 1744954097560724157 - QUAD $0x87cec76f1c830548 // .quad -8660765753353239224 - QUAD $0x8f2293910d0b15b6 // .quad -8132775725879323210 - QUAD $0xa9c2794ae3a3c69a // .quad -6214271173264161126 - QUAD $0xb2eb3875504ddb23 // .quad -5554283638921766109 - QUAD $0xd433179d9c8cb841 // .quad -3156152948152813503 - QUAD $0x5fa60692a46151ec // .quad 6892203506629956076 - QUAD $0x849feec281d7f328 // .quad -8890124620236590296 - QUAD $0xdbc7c41ba6bcd334 // .quad -2609901835997359308 - QUAD $0xa5c7ea73224deff3 // .quad -6500969756868349965 - QUAD $0x12b9b522906c0801 // .quad 1349308723430688769 - QUAD $0xcf39e50feae16bef // .quad -3514526177658049553 - QUAD $0xd768226b34870a01 // .quad -2925050114139026943 - QUAD $0x81842f29f2cce375 // .quad -9114107888677362827 - QUAD $0xe6a1158300d46641 // .quad -1828156321336891839 - QUAD $0xa1e53af46f801c53 // .quad -6780948842419315629 - QUAD $0x60495ae3c1097fd1 // .quad 6938176635183661009 - QUAD $0xca5e89b18b602368 // .quad -3864500034596756632 - QUAD $0x385bb19cb14bdfc5 // .quad 4061034775552188357 - QUAD $0xfcf62c1dee382c42 // .quad -218939024818557886 - QUAD $0x46729e03dd9ed7b6 // .quad 5076293469440235446 - QUAD $0x9e19db92b4e31ba9 // .quad -7054365918152680535 - QUAD $0x6c07a2c26a8346d2 // .quad 7784369436827535058 - - // .p2align 4, 0x00 -_VecShiftShuffles: - QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' - QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' - QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' - QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' - QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' - QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' - QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' - QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' - QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' - - // .p2align 4, 0x00 -__SingleQuoteTab: - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -__DoubleQuoteTab: - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' - QUAD $0x0000000000000003 // .quad 3 - QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' - QUAD $0x0000000000000003 // .quad 3 - QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' - QUAD $0x0000000000000003 // .quad 3 - QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000004 // .quad 4 - QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000004 // .quad 4 - QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -__EscTab: - QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' - - // .p2align 4, 0x00 -__UnquoteTab: - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' - QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' - LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -__HtmlQuoteTab: - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -_LSHIFT_TAB: - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000001 // .long 1 - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000001 // .long 1 - QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000001 // .long 1 - QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000002 // .long 2 - QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000002 // .long 2 - QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000002 // .long 2 - QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000003 // .long 3 - QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000003 // .long 3 - QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000003 // .long 3 - QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000004 // .long 4 - QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000004 // .long 4 - QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000004 // .long 4 - QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000004 // .long 4 - QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000005 // .long 5 - QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000005 // .long 5 - QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000005 // .long 5 - QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000006 // .long 6 - QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000006 // .long 6 - QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000006 // .long 6 - QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000007 // .long 7 - QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000007 // .long 7 - QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000007 // .long 7 - QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000007 // .long 7 - QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000008 // .long 8 - QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000008 // .long 8 - QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' - QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000008 // .long 8 - QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' - QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000009 // .long 9 - QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' - QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000009 // .long 9 - QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' - QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000009 // .long 9 - QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' - QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000a // .long 10 - QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' - QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000a // .long 10 - QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' - QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000a // .long 10 - QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' - QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000a // .long 10 - QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' - QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000b // .long 11 - QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' - QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000b // .long 11 - QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' - QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000b // .long 11 - QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' - QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000c // .long 12 - QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' - QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000c // .long 12 - QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' - QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000c // .long 12 - QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' - QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000d // .long 13 - QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' - QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000d // .long 13 - QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' - QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000d // .long 13 - QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' - QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000d // .long 13 - QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' - QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000e // .long 14 - QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' - QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000e // .long 14 - QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' - QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000e // .long 14 - QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' - QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000f // .long 15 - QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' - QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000f // .long 15 - QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' - QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' - QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000f // .long 15 - QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' - QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' - QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000010 // .long 16 - QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' - QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' - QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000010 // .long 16 - QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' - QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' - QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000010 // .long 16 - QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' - QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' - QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000010 // .long 16 - QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' - QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' - QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000011 // .long 17 - QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' - QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' - QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000011 // .long 17 - QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' - QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' - QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000011 // .long 17 - QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' - QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' - QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000012 // .long 18 - QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' - QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' - QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000012 // .long 18 - QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' - QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' - QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000012 // .long 18 - QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' - QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' - QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000013 // .long 19 - QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' - QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' - QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -_P10_TAB: - QUAD $0x3ff0000000000000 // .quad 0x3ff0000000000000 - QUAD $0x4024000000000000 // .quad 0x4024000000000000 - QUAD $0x4059000000000000 // .quad 0x4059000000000000 - QUAD $0x408f400000000000 // .quad 0x408f400000000000 - QUAD $0x40c3880000000000 // .quad 0x40c3880000000000 - QUAD $0x40f86a0000000000 // .quad 0x40f86a0000000000 - QUAD $0x412e848000000000 // .quad 0x412e848000000000 - QUAD $0x416312d000000000 // .quad 0x416312d000000000 - QUAD $0x4197d78400000000 // .quad 0x4197d78400000000 - QUAD $0x41cdcd6500000000 // .quad 0x41cdcd6500000000 - QUAD $0x4202a05f20000000 // .quad 0x4202a05f20000000 - QUAD $0x42374876e8000000 // .quad 0x42374876e8000000 - QUAD $0x426d1a94a2000000 // .quad 0x426d1a94a2000000 - QUAD $0x42a2309ce5400000 // .quad 0x42a2309ce5400000 - QUAD $0x42d6bcc41e900000 // .quad 0x42d6bcc41e900000 - QUAD $0x430c6bf526340000 // .quad 0x430c6bf526340000 - QUAD $0x4341c37937e08000 // .quad 0x4341c37937e08000 - QUAD $0x4376345785d8a000 // .quad 0x4376345785d8a000 - QUAD $0x43abc16d674ec800 // .quad 0x43abc16d674ec800 - QUAD $0x43e158e460913d00 // .quad 0x43e158e460913d00 - QUAD $0x4415af1d78b58c40 // .quad 0x4415af1d78b58c40 - QUAD $0x444b1ae4d6e2ef50 // .quad 0x444b1ae4d6e2ef50 - QUAD $0x4480f0cf064dd592 // .quad 0x4480f0cf064dd592 - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -_LB_5bf8fe43: // _pow10_ceil_sig_f32.g - QUAD $0x81ceb32c4b43fcf5 // .quad -9093133594791772939 - QUAD $0xa2425ff75e14fc32 // .quad -6754730975062328270 - QUAD $0xcad2f7f5359a3b3f // .quad -3831727700400522433 - QUAD $0xfd87b5f28300ca0e // .quad -177973607073265138 - QUAD $0x9e74d1b791e07e49 // .quad -7028762532061872567 - QUAD $0xc612062576589ddb // .quad -4174267146649952805 - QUAD $0xf79687aed3eec552 // .quad -606147914885053102 - QUAD $0x9abe14cd44753b53 // .quad -7296371474444240045 - QUAD $0xc16d9a0095928a28 // .quad -4508778324627912152 - QUAD $0xf1c90080baf72cb2 // .quad -1024286887357502286 - QUAD $0x971da05074da7bef // .quad -7557708332239520785 - QUAD $0xbce5086492111aeb // .quad -4835449396872013077 - QUAD $0xec1e4a7db69561a6 // .quad -1432625727662628442 - QUAD $0x9392ee8e921d5d08 // .quad -7812920107430224632 - QUAD $0xb877aa3236a4b44a // .quad -5154464115860392886 - QUAD $0xe69594bec44de15c // .quad -1831394126398103204 - QUAD $0x901d7cf73ab0acda // .quad -8062150356639896358 - QUAD $0xb424dc35095cd810 // .quad -5466001927372482544 - QUAD $0xe12e13424bb40e14 // .quad -2220816390788215276 - QUAD $0x8cbccc096f5088cc // .quad -8305539271883716404 - QUAD $0xafebff0bcb24aaff // .quad -5770238071427257601 - QUAD $0xdbe6fecebdedd5bf // .quad -2601111570856684097 - QUAD $0x89705f4136b4a598 // .quad -8543223759426509416 - QUAD $0xabcc77118461cefd // .quad -6067343680855748867 - QUAD $0xd6bf94d5e57a42bd // .quad -2972493582642298179 - QUAD $0x8637bd05af6c69b6 // .quad -8775337516792518218 - QUAD $0xa7c5ac471b478424 // .quad -6357485877563259868 - QUAD $0xd1b71758e219652c // .quad -3335171328526686932 - QUAD $0x83126e978d4fdf3c // .quad -9002011107970261188 - QUAD $0xa3d70a3d70a3d70b // .quad -6640827866535438581 - QUAD $0xcccccccccccccccd // .quad -3689348814741910323 - QUAD $0x8000000000000000 // .quad -9223372036854775808 - QUAD $0xa000000000000000 // .quad -6917529027641081856 - QUAD $0xc800000000000000 // .quad -4035225266123964416 - QUAD $0xfa00000000000000 // .quad -432345564227567616 - QUAD $0x9c40000000000000 // .quad -7187745005283311616 - QUAD $0xc350000000000000 // .quad -4372995238176751616 - QUAD $0xf424000000000000 // .quad -854558029293551616 - QUAD $0x9896800000000000 // .quad -7451627795949551616 - QUAD $0xbebc200000000000 // .quad -4702848726509551616 - QUAD $0xee6b280000000000 // .quad -1266874889709551616 - QUAD $0x9502f90000000000 // .quad -7709325833709551616 - QUAD $0xba43b74000000000 // .quad -5024971273709551616 - QUAD $0xe8d4a51000000000 // .quad -1669528073709551616 - QUAD $0x9184e72a00000000 // .quad -7960984073709551616 - QUAD $0xb5e620f480000000 // .quad -5339544073709551616 - QUAD $0xe35fa931a0000000 // .quad -2062744073709551616 - QUAD $0x8e1bc9bf04000000 // .quad -8206744073709551616 - QUAD $0xb1a2bc2ec5000000 // .quad -5646744073709551616 - QUAD $0xde0b6b3a76400000 // .quad -2446744073709551616 - QUAD $0x8ac7230489e80000 // .quad -8446744073709551616 - QUAD $0xad78ebc5ac620000 // .quad -5946744073709551616 - QUAD $0xd8d726b7177a8000 // .quad -2821744073709551616 - QUAD $0x878678326eac9000 // .quad -8681119073709551616 - QUAD $0xa968163f0a57b400 // .quad -6239712823709551616 - QUAD $0xd3c21bcecceda100 // .quad -3187955011209551616 - QUAD $0x84595161401484a0 // .quad -8910000909647051616 - QUAD $0xa56fa5b99019a5c8 // .quad -6525815118631426616 - QUAD $0xcecb8f27f4200f3a // .quad -3545582879861895366 - QUAD $0x813f3978f8940985 // .quad -9133518327554766459 - QUAD $0xa18f07d736b90be6 // .quad -6805211891016070170 - QUAD $0xc9f2c9cd04674edf // .quad -3894828845342699809 - QUAD $0xfc6f7c4045812297 // .quad -256850038250986857 - QUAD $0x9dc5ada82b70b59e // .quad -7078060301547948642 - QUAD $0xc5371912364ce306 // .quad -4235889358507547898 - QUAD $0xf684df56c3e01bc7 // .quad -683175679707046969 - QUAD $0x9a130b963a6c115d // .quad -7344513827457986211 - QUAD $0xc097ce7bc90715b4 // .quad -4568956265895094860 - QUAD $0xf0bdc21abb48db21 // .quad -1099509313941480671 - QUAD $0x96769950b50d88f5 // .quad -7604722348854507275 - QUAD $0xbc143fa4e250eb32 // .quad -4894216917640746190 - QUAD $0xeb194f8e1ae525fe // .quad -1506085128623544834 - QUAD $0x92efd1b8d0cf37bf // .quad -7858832233030797377 - QUAD $0xb7abc627050305ae // .quad -5211854272861108818 - QUAD $0xe596b7b0c643c71a // .quad -1903131822648998118 - QUAD $0x8f7e32ce7bea5c70 // .quad -8106986416796705680 - QUAD $0xb35dbf821ae4f38c // .quad -5522047002568494196 - -TEXT ·__f32toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -48(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_f32toa: - MOVQ out+0(FP), DI - MOVSD val+8(FP), X0 - CALL ·__native_entry__+31264(SB) // _f32toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__f64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -80(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_f64toa: - MOVQ out+0(FP), DI - MOVSD val+8(FP), X0 - CALL ·__native_entry__+192(SB) // _f64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__get_by_path(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -304(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_get_by_path: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ path+16(FP), DX - MOVQ m+24(FP), CX - CALL ·__native_entry__+25856(SB) // _get_by_path - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__html_escape(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -64(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_html_escape: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ dn+24(FP), CX - CALL ·__native_entry__+9040(SB) // _html_escape - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__i64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_i64toa: - MOVQ out+0(FP), DI - MOVQ val+8(FP), SI - CALL ·__native_entry__+3488(SB) // _i64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__lspace(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -8(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_lspace: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ off+16(FP), DX - CALL ·__native_entry__+16(SB) // _lspace - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__quote(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -56(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_quote: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ dn+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+4880(SB) // _quote - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_array(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_array: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+17952(SB) // _skip_array - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_number(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -72(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_number: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - CALL ·__native_entry__+21952(SB) // _skip_number - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_object(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_object: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+20368(SB) // _skip_object - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_one(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_one: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+22112(SB) // _skip_one - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_one_fast(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -200(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_one_fast: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - CALL ·__native_entry__+22352(SB) // _skip_one_fast - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__u64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -8(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_u64toa: - MOVQ out+0(FP), DI - MOVQ val+8(FP), SI - CALL ·__native_entry__+3600(SB) // _u64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__unquote(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -88(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_unquote: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ ep+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+6672(SB) // _unquote - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_one(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_one: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - CALL ·__native_entry__+22176(SB) // _validate_one - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_utf8(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -48(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_utf8: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - CALL ·__native_entry__+30000(SB) // _validate_utf8 - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_utf8_fast(SB), NOSPLIT | NOFRAME, $0 - 16 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -24(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_utf8_fast: - MOVQ s+0(FP), DI - CALL ·__native_entry__+30672(SB) // _validate_utf8_fast - MOVQ AX, ret+8(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__value(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -328(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_value: - MOVQ s+0(FP), DI - MOVQ n+8(FP), SI - MOVQ p+16(FP), DX - MOVQ v+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+12224(SB) // _value - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vnumber(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -240(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vnumber: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+15616(SB), AX // _vnumber - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vsigned(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vsigned: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+17232(SB), AX // _vsigned - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vstring(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -136(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vstring: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - MOVQ flags+24(FP), CX - LEAQ ·__native_entry__+14064(SB), AX // _vstring - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vunsigned(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vunsigned: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+17600(SB), AX // _vunsigned - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_export_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/native_export_amd64.go deleted file mode 100644 index 1ca7f575..00000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_export_amd64.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by Makefile, DO NOT EDIT. - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package avx - -var ( - S_f64toa = _subr__f64toa - S_f32toa = _subr__f32toa - S_i64toa = _subr__i64toa - S_u64toa = _subr__u64toa - S_lspace = _subr__lspace -) - -var ( - S_quote = _subr__quote - S_unquote = _subr__unquote -) - -var ( - S_value = _subr__value - S_vstring = _subr__vstring - S_vnumber = _subr__vnumber - S_vsigned = _subr__vsigned - S_vunsigned = _subr__vunsigned -) - -var ( - S_skip_one = _subr__skip_one - S_skip_one_fast = _subr__skip_one_fast - S_skip_array = _subr__skip_array - S_skip_object = _subr__skip_object - S_skip_number = _subr__skip_number - S_get_by_path = _subr__get_by_path -) diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go index f20095d3..ebbc57a0 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go @@ -3,107 +3,601 @@ package avx -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr +import ( + `github.com/bytedance/sonic/loader` +) -var ( - _subr__f32toa = __native_entry__() + 31264 - _subr__f64toa = __native_entry__() + 192 - _subr__get_by_path = __native_entry__() + 25856 - _subr__html_escape = __native_entry__() + 9040 - _subr__i64toa = __native_entry__() + 3488 - _subr__lspace = __native_entry__() + 16 - _subr__quote = __native_entry__() + 4880 - _subr__skip_array = __native_entry__() + 17952 - _subr__skip_number = __native_entry__() + 21952 - _subr__skip_object = __native_entry__() + 20368 - _subr__skip_one = __native_entry__() + 22112 - _subr__skip_one_fast = __native_entry__() + 22352 - _subr__u64toa = __native_entry__() + 3600 - _subr__unquote = __native_entry__() + 6672 - _subr__validate_one = __native_entry__() + 22176 - _subr__validate_utf8 = __native_entry__() + 30000 - _subr__validate_utf8_fast = __native_entry__() + 30672 - _subr__value = __native_entry__() + 12224 - _subr__vnumber = __native_entry__() + 15616 - _subr__vsigned = __native_entry__() + 17232 - _subr__vstring = __native_entry__() + 14064 - _subr__vunsigned = __native_entry__() + 17600 +const ( + _entry__f32toa = 31136 + _entry__f64toa = 192 + _entry__format_significand = 35248 + _entry__format_integer = 3040 + _entry__fsm_exec = 17920 + _entry__advance_string = 14320 + _entry__advance_string_default = 36640 + _entry__do_skip_number = 20528 + _entry__get_by_path = 25680 + _entry__skip_one_fast = 22160 + _entry__html_escape = 8912 + _entry__i64toa = 3472 + _entry__u64toa = 3584 + _entry__lspace = 16 + _entry__quote = 4864 + _entry__skip_array = 17872 + _entry__skip_number = 21792 + _entry__skip_object = 20160 + _entry__skip_one = 21936 + _entry__unquote = 6576 + _entry__validate_one = 21984 + _entry__validate_utf8 = 29888 + _entry__validate_utf8_fast = 30560 + _entry__value = 12320 + _entry__vnumber = 15648 + _entry__atof_eisel_lemire64 = 10160 + _entry__atof_native = 11712 + _entry__decimal_to_f64 = 10528 + _entry__right_shift = 36208 + _entry__left_shift = 35712 + _entry__vsigned = 17200 + _entry__vstring = 14144 + _entry__vunsigned = 17520 ) const ( _stack__f32toa = 48 _stack__f64toa = 80 - _stack__get_by_path = 304 - _stack__html_escape = 64 + _stack__format_significand = 24 + _stack__format_integer = 16 + _stack__fsm_exec = 168 + _stack__advance_string = 64 + _stack__advance_string_default = 64 + _stack__do_skip_number = 48 + _stack__get_by_path = 280 + _stack__skip_one_fast = 176 + _stack__html_escape = 72 _stack__i64toa = 16 + _stack__u64toa = 8 _stack__lspace = 8 _stack__quote = 56 - _stack__skip_array = 128 - _stack__skip_number = 72 - _stack__skip_object = 128 - _stack__skip_one = 128 - _stack__skip_one_fast = 200 - _stack__u64toa = 8 + _stack__skip_array = 176 + _stack__skip_number = 88 + _stack__skip_object = 176 + _stack__skip_one = 176 _stack__unquote = 88 - _stack__validate_one = 128 + _stack__validate_one = 176 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 24 _stack__value = 328 _stack__vnumber = 240 + _stack__atof_eisel_lemire64 = 32 + _stack__atof_native = 136 + _stack__decimal_to_f64 = 80 + _stack__right_shift = 8 + _stack__left_shift = 24 _stack__vsigned = 16 - _stack__vstring = 136 - _stack__vunsigned = 16 + _stack__vstring = 120 + _stack__vunsigned = 8 ) -var ( - _ = _subr__f32toa - _ = _subr__f64toa - _ = _subr__get_by_path - _ = _subr__html_escape - _ = _subr__i64toa - _ = _subr__lspace - _ = _subr__quote - _ = _subr__skip_array - _ = _subr__skip_number - _ = _subr__skip_object - _ = _subr__skip_one - _ = _subr__skip_one_fast - _ = _subr__u64toa - _ = _subr__unquote - _ = _subr__validate_one - _ = _subr__validate_utf8 - _ = _subr__validate_utf8_fast - _ = _subr__value - _ = _subr__vnumber - _ = _subr__vsigned - _ = _subr__vstring - _ = _subr__vunsigned +const ( + _size__f32toa = 3392 + _size__f64toa = 2848 + _size__format_significand = 464 + _size__format_integer = 432 + _size__fsm_exec = 1692 + _size__advance_string = 1280 + _size__advance_string_default = 944 + _size__do_skip_number = 924 + _size__get_by_path = 4208 + _size__skip_one_fast = 3016 + _size__html_escape = 1248 + _size__i64toa = 48 + _size__u64toa = 1232 + _size__lspace = 144 + _size__quote = 1696 + _size__skip_array = 48 + _size__skip_number = 144 + _size__skip_object = 48 + _size__skip_one = 48 + _size__unquote = 2272 + _size__validate_one = 48 + _size__validate_utf8 = 672 + _size__validate_utf8_fast = 544 + _size__value = 1316 + _size__vnumber = 1552 + _size__atof_eisel_lemire64 = 368 + _size__atof_native = 608 + _size__decimal_to_f64 = 1184 + _size__right_shift = 400 + _size__left_shift = 496 + _size__vsigned = 320 + _size__vstring = 128 + _size__vunsigned = 336 ) -const ( - _ = _stack__f32toa - _ = _stack__f64toa - _ = _stack__get_by_path - _ = _stack__html_escape - _ = _stack__i64toa - _ = _stack__lspace - _ = _stack__quote - _ = _stack__skip_array - _ = _stack__skip_number - _ = _stack__skip_object - _ = _stack__skip_one - _ = _stack__skip_one_fast - _ = _stack__u64toa - _ = _stack__unquote - _ = _stack__validate_one - _ = _stack__validate_utf8 - _ = _stack__validate_utf8_fast - _ = _stack__value - _ = _stack__vnumber - _ = _stack__vsigned - _ = _stack__vstring - _ = _stack__vunsigned +var ( + _pcsp__f32toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {3350, 48}, + {3351, 40}, + {3353, 32}, + {3355, 24}, + {3357, 16}, + {3359, 8}, + {3363, 0}, + {3385, 48}, + } + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2788, 56}, + {2792, 48}, + {2793, 40}, + {2795, 32}, + {2797, 24}, + {2799, 16}, + {2801, 8}, + {2805, 0}, + {2843, 56}, + } + _pcsp__format_significand = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {452, 24}, + {453, 16}, + {455, 8}, + {457, 0}, + } + _pcsp__format_integer = [][2]uint32{ + {1, 0}, + {4, 8}, + {412, 16}, + {413, 8}, + {414, 0}, + {423, 16}, + {424, 8}, + {426, 0}, + } + _pcsp__fsm_exec = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1342, 104}, + {1346, 48}, + {1347, 40}, + {1349, 32}, + {1351, 24}, + {1353, 16}, + {1355, 8}, + {1356, 0}, + {1692, 104}, + } + _pcsp__advance_string = [][2]uint32{ + {14, 0}, + {18, 8}, + {20, 16}, + {22, 24}, + {24, 32}, + {26, 40}, + {27, 48}, + {557, 56}, + {561, 48}, + {562, 40}, + {564, 32}, + {566, 24}, + {568, 16}, + {570, 8}, + {571, 0}, + {1268, 56}, + } + _pcsp__advance_string_default = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {552, 64}, + {556, 48}, + {557, 40}, + {559, 32}, + {561, 24}, + {563, 16}, + {565, 8}, + {566, 0}, + {931, 64}, + } + _pcsp__do_skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {849, 48}, + {850, 40}, + {852, 32}, + {854, 24}, + {856, 16}, + {858, 8}, + {859, 0}, + {924, 48}, + } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {4012, 104}, + {4016, 48}, + {4017, 40}, + {4019, 32}, + {4021, 24}, + {4023, 16}, + {4025, 8}, + {4026, 0}, + {4194, 104}, + } + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {658, 176}, + {659, 168}, + {661, 160}, + {663, 152}, + {665, 144}, + {667, 136}, + {671, 128}, + {3016, 176}, + } + _pcsp__html_escape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1224, 72}, + {1228, 48}, + {1229, 40}, + {1231, 32}, + {1233, 24}, + {1235, 16}, + {1237, 8}, + {1239, 0}, + } + _pcsp__i64toa = [][2]uint32{ + {14, 0}, + {34, 8}, + {36, 0}, + } + _pcsp__u64toa = [][2]uint32{ + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {756, 8}, + {757, 0}, + {1221, 8}, + {1223, 0}, + } + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {89, 8}, + {90, 0}, + {103, 8}, + {104, 0}, + {111, 8}, + {113, 0}, + } + _pcsp__quote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1649, 56}, + {1653, 48}, + {1654, 40}, + {1656, 32}, + {1658, 24}, + {1660, 16}, + {1662, 8}, + {1663, 0}, + {1690, 56}, + } + _pcsp__skip_array = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {100, 40}, + {101, 32}, + {103, 24}, + {105, 16}, + {107, 8}, + {108, 0}, + {139, 40}, + } + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {30, 8}, + {36, 0}, + } + _pcsp__unquote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1684, 88}, + {1688, 48}, + {1689, 40}, + {1691, 32}, + {1693, 24}, + {1695, 16}, + {1697, 8}, + {1698, 0}, + {2270, 88}, + } + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {35, 8}, + {41, 0}, + } + _pcsp__validate_utf8 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {623, 48}, + {627, 40}, + {628, 32}, + {630, 24}, + {632, 16}, + {634, 8}, + {635, 0}, + {666, 48}, + } + _pcsp__validate_utf8_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {5, 16}, + {247, 24}, + {251, 16}, + {252, 8}, + {253, 0}, + {527, 24}, + {531, 16}, + {532, 8}, + {534, 0}, + } + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {495, 88}, + {499, 48}, + {500, 40}, + {502, 32}, + {504, 24}, + {506, 16}, + {508, 8}, + {509, 0}, + {1316, 88}, + } + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {803, 104}, + {807, 48}, + {808, 40}, + {810, 32}, + {812, 24}, + {814, 16}, + {816, 8}, + {817, 0}, + {1547, 104}, + } + _pcsp__atof_eisel_lemire64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {292, 32}, + {293, 24}, + {295, 16}, + {297, 8}, + {298, 0}, + {362, 32}, + } + _pcsp__atof_native = [][2]uint32{ + {1, 0}, + {4, 8}, + {587, 56}, + {591, 8}, + {593, 0}, + } + _pcsp__decimal_to_f64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1144, 56}, + {1148, 48}, + {1149, 40}, + {1151, 32}, + {1153, 24}, + {1155, 16}, + {1157, 8}, + {1158, 0}, + {1169, 56}, + } + _pcsp__right_shift = [][2]uint32{ + {1, 0}, + {318, 8}, + {319, 0}, + {387, 8}, + {388, 0}, + {396, 8}, + {398, 0}, + } + _pcsp__left_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {363, 24}, + {364, 16}, + {366, 8}, + {367, 0}, + {470, 24}, + {471, 16}, + {473, 8}, + {474, 0}, + {486, 24}, + } + _pcsp__vsigned = [][2]uint32{ + {1, 0}, + {4, 8}, + {112, 16}, + {113, 8}, + {114, 0}, + {125, 16}, + {126, 8}, + {127, 0}, + {260, 16}, + {261, 8}, + {262, 0}, + {266, 16}, + {267, 8}, + {268, 0}, + {306, 16}, + {307, 8}, + {308, 0}, + {316, 16}, + {317, 8}, + {319, 0}, + } + _pcsp__vstring = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {105, 56}, + {109, 40}, + {110, 32}, + {112, 24}, + {114, 16}, + {116, 8}, + {118, 0}, + } + _pcsp__vunsigned = [][2]uint32{ + {1, 0}, + {71, 8}, + {72, 0}, + {83, 8}, + {84, 0}, + {107, 8}, + {108, 0}, + {273, 8}, + {274, 0}, + {312, 8}, + {313, 0}, + {320, 8}, + {322, 0}, + } ) + +var Funcs = []loader.CFunc{ + {"__native_entry__", 0, 67, 0, nil}, + {"_f32toa", _entry__f32toa, _size__f32toa, _stack__f32toa, _pcsp__f32toa}, + {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, + {"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand}, + {"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer}, + {"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec}, + {"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string}, + {"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default}, + {"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, + {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, + {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, + {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, + {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, + {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, + {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, + {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, + {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, + {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, + {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, + {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, + {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, + {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, + {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, + {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, + {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, + {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, + {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, + {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, + {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, + {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, + {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, + {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go new file mode 100644 index 00000000..45ad52ef --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go @@ -0,0 +1,14075 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var Text__native_entry__ = []byte{ + 0x48, 0x8d, 0x05, 0xf9, 0xff, 0xff, 0xff, // leaq $-7(%rip), %rax + 0x48, 0x89, 0x44, 0x24, 0x08, //0x00000007 movq %rax, $8(%rsp) + 0xc3, //0x0000000c retq + 0x90, 0x90, 0x90, //0x0000000d .p2align 4, 0x90 + //0x00000010 _lspace + 0x55, //0x00000010 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp + 0x48, 0x39, 0xd6, //0x00000014 cmpq %rdx, %rsi + 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000017 je LBB0_1 + 0x4c, 0x8d, 0x04, 0x37, //0x0000001d leaq (%rdi,%rsi), %r8 + 0x48, 0x8d, 0x44, 0x3a, 0x01, //0x00000021 leaq $1(%rdx,%rdi), %rax + 0x48, 0x29, 0xf2, //0x00000026 subq %rsi, %rdx + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000029 movabsq $4294977024, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000033 .p2align 4, 0x90 + //0x00000040 LBB0_3 + 0x0f, 0xbe, 0x48, 0xff, //0x00000040 movsbl $-1(%rax), %ecx + 0x83, 0xf9, 0x20, //0x00000044 cmpl $32, %ecx + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00000047 ja LBB0_5 + 0x48, 0x0f, 0xa3, 0xce, //0x0000004d btq %rcx, %rsi + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000051 jae LBB0_5 + 0x48, 0xff, 0xc0, //0x00000057 incq %rax + 0x48, 0xff, 0xc2, //0x0000005a incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000005d jne LBB0_3 + 0x49, 0x29, 0xf8, //0x00000063 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000066 movq %r8, %rax + 0x5d, //0x00000069 popq %rbp + 0xc3, //0x0000006a retq + //0x0000006b LBB0_1 + 0x48, 0x01, 0xfa, //0x0000006b addq %rdi, %rdx + 0x49, 0x89, 0xd0, //0x0000006e movq %rdx, %r8 + 0x49, 0x29, 0xf8, //0x00000071 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000074 movq %r8, %rax + 0x5d, //0x00000077 popq %rbp + 0xc3, //0x00000078 retq + //0x00000079 LBB0_5 + 0x48, 0xf7, 0xd7, //0x00000079 notq %rdi + 0x48, 0x01, 0xf8, //0x0000007c addq %rdi, %rax + 0x5d, //0x0000007f popq %rbp + 0xc3, //0x00000080 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000081 .p2align 5, 0x00 + //0x000000a0 LCPI1_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000000a0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000000b0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x000000c0 .p2align 4, 0x90 + //0x000000c0 _f64toa + 0x55, //0x000000c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000c1 movq %rsp, %rbp + 0x41, 0x57, //0x000000c4 pushq %r15 + 0x41, 0x56, //0x000000c6 pushq %r14 + 0x41, 0x55, //0x000000c8 pushq %r13 + 0x41, 0x54, //0x000000ca pushq %r12 + 0x53, //0x000000cc pushq %rbx + 0x50, //0x000000cd pushq %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x000000ce vmovq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x000000d3 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000000d6 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x000000da andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x000000df cmpl $2047, %eax + 0x0f, 0x84, 0xcc, 0x0a, 0x00, 0x00, //0x000000e4 je LBB1_114 + 0x49, 0x89, 0xfe, //0x000000ea movq %rdi, %r14 + 0xc6, 0x07, 0x2d, //0x000000ed movb $45, (%rdi) + 0x49, 0x89, 0xd4, //0x000000f0 movq %rdx, %r12 + 0x49, 0xc1, 0xec, 0x3f, //0x000000f3 shrq $63, %r12 + 0x4e, 0x8d, 0x3c, 0x27, //0x000000f7 leaq (%rdi,%r12), %r15 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000fb leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x00000103 testq %rcx, %rcx + 0x0f, 0x84, 0x75, 0x02, 0x00, 0x00, //0x00000106 je LBB1_19 + 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000010c movabsq $4503599627370495, %rdi + 0x48, 0x21, 0xfa, //0x00000116 andq %rdi, %rdx + 0x85, 0xc0, //0x00000119 testl %eax, %eax + 0x0f, 0x84, 0x9c, 0x0a, 0x00, 0x00, //0x0000011b je LBB1_115 + 0x48, 0xff, 0xc7, //0x00000121 incq %rdi + 0x48, 0x09, 0xd7, //0x00000124 orq %rdx, %rdi + 0x8d, 0x98, 0xcd, 0xfb, 0xff, 0xff, //0x00000127 leal $-1075(%rax), %ebx + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000012d leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x00000133 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000136 ja LBB1_5 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000013c movl $1075, %ecx + 0x29, 0xc1, //0x00000141 subl %eax, %ecx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000143 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x0000014a shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x0000014d notq %rsi + 0x48, 0x85, 0xf7, //0x00000150 testq %rsi, %rdi + 0x0f, 0x84, 0x10, 0x04, 0x00, 0x00, //0x00000153 je LBB1_43 + //0x00000159 LBB1_5 + 0x48, 0x85, 0xd2, //0x00000159 testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x0000015c sete %cl + 0x83, 0xf8, 0x01, //0x0000015f cmpl $1, %eax + 0x0f, 0x97, 0xc0, //0x00000162 seta %al + 0x20, 0xc8, //0x00000165 andb %cl, %al + 0x0f, 0xb6, 0xc0, //0x00000167 movzbl %al, %eax + 0x48, 0x8d, 0x74, 0xb8, 0xfe, //0x0000016a leaq $-2(%rax,%rdi,4), %rsi + 0x44, 0x69, 0xcb, 0x13, 0x44, 0x13, 0x00, //0x0000016f imull $1262611, %ebx, %r9d + 0x31, 0xc9, //0x00000176 xorl %ecx, %ecx + 0x84, 0xc0, //0x00000178 testb %al, %al + 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x0000017a movl $524031, %eax + 0x0f, 0x44, 0xc1, //0x0000017f cmovel %ecx, %eax + 0x41, 0x29, 0xc1, //0x00000182 subl %eax, %r9d + 0x41, 0xc1, 0xf9, 0x16, //0x00000185 sarl $22, %r9d + 0x41, 0x69, 0xc9, 0xb1, 0x6c, 0xe5, 0xff, //0x00000189 imull $-1741647, %r9d, %ecx + 0xc1, 0xe9, 0x13, //0x00000190 shrl $19, %ecx + 0x01, 0xd9, //0x00000193 addl %ebx, %ecx + 0xb8, 0x24, 0x01, 0x00, 0x00, //0x00000195 movl $292, %eax + 0x44, 0x29, 0xc8, //0x0000019a subl %r9d, %eax + 0x48, 0x98, //0x0000019d cltq + 0x48, 0xc1, 0xe0, 0x04, //0x0000019f shlq $4, %rax + 0x48, 0x8d, 0x15, 0xb6, 0xbd, 0x00, 0x00, //0x000001a3 leaq $48566(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ + 0x4c, 0x8b, 0x1c, 0x10, //0x000001aa movq (%rax,%rdx), %r11 + 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x000001ae movq $8(%rax,%rdx), %r13 + 0xfe, 0xc1, //0x000001b3 incb %cl + 0x48, 0xd3, 0xe6, //0x000001b5 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000001b8 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x000001bb mulq %r13 + 0x48, 0x89, 0xd3, //0x000001be movq %rdx, %rbx + 0x48, 0x89, 0xf0, //0x000001c1 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000001c4 mulq %r11 + 0x48, 0x8d, 0x34, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x000001c7 leaq (,%rdi,4), %rsi + 0x48, 0x01, 0xd8, //0x000001cf addq %rbx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x000001d2 adcq $0, %rdx + 0x31, 0xdb, //0x000001d6 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x01, //0x000001d8 cmpq $1, %rax + 0x0f, 0x97, 0xc3, //0x000001dc seta %bl + 0x48, 0x09, 0xd3, //0x000001df orq %rdx, %rbx + 0x48, 0xd3, 0xe6, //0x000001e2 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000001e5 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x000001e8 mulq %r13 + 0x49, 0x89, 0xd2, //0x000001eb movq %rdx, %r10 + 0x48, 0x89, 0xf0, //0x000001ee movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000001f1 mulq %r11 + 0x49, 0x89, 0xd0, //0x000001f4 movq %rdx, %r8 + 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001f7 leaq $2(,%rdi,4), %rsi + 0x4c, 0x01, 0xd0, //0x000001ff addq %r10, %rax + 0x49, 0x83, 0xd0, 0x00, //0x00000202 adcq $0, %r8 + 0x45, 0x31, 0xd2, //0x00000206 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x01, //0x00000209 cmpq $1, %rax + 0x41, 0x0f, 0x97, 0xc2, //0x0000020d seta %r10b + 0x4d, 0x09, 0xc2, //0x00000211 orq %r8, %r10 + 0x48, 0xd3, 0xe6, //0x00000214 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000217 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000021a mulq %r13 + 0x48, 0x89, 0xd1, //0x0000021d movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x00000220 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00000223 mulq %r11 + 0x48, 0x01, 0xc8, //0x00000226 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000229 adcq $0, %rdx + 0x31, 0xc9, //0x0000022d xorl %ecx, %ecx + 0x48, 0x83, 0xf8, 0x01, //0x0000022f cmpq $1, %rax + 0x0f, 0x97, 0xc1, //0x00000233 seta %cl + 0x48, 0x09, 0xd1, //0x00000236 orq %rdx, %rcx + 0x83, 0xe7, 0x01, //0x00000239 andl $1, %edi + 0x48, 0x01, 0xfb, //0x0000023c addq %rdi, %rbx + 0x48, 0x29, 0xf9, //0x0000023f subq %rdi, %rcx + 0x49, 0x83, 0xfa, 0x28, //0x00000242 cmpq $40, %r10 + 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x00000246 jb LBB1_17 + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000024c movabsq $-3689348814741910323, %rdx + 0x4c, 0x89, 0xc0, //0x00000256 movq %r8, %rax + 0x48, 0xf7, 0xe2, //0x00000259 mulq %rdx + 0x48, 0x89, 0xd7, //0x0000025c movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x0000025f shrq $5, %rdi + 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x00000263 leaq (,%rdi,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x0000026b leaq (%rax,%rax,4), %rdx + 0x48, 0x39, 0xd3, //0x0000026f cmpq %rdx, %rbx + 0x40, 0x0f, 0x96, 0xc6, //0x00000272 setbe %sil + 0x48, 0x8d, 0x44, 0x80, 0x28, //0x00000276 leaq $40(%rax,%rax,4), %rax + 0x48, 0x39, 0xc8, //0x0000027b cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000027e setbe %dl + 0x40, 0x38, 0xd6, //0x00000281 cmpb %dl, %sil + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000284 je LBB1_17 + 0x31, 0xd2, //0x0000028a xorl %edx, %edx + 0x48, 0x39, 0xc8, //0x0000028c cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000028f setbe %dl + 0x48, 0x01, 0xd7, //0x00000292 addq %rdx, %rdi + 0x41, 0xff, 0xc1, //0x00000295 incl %r9d + 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000298 movabsq $8589934464, %rbx + 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x000002a2 leaq $1410065535(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000002a9 cmpq %rax, %rdi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x000002ac ja LBB1_23 + //0x000002b2 LBB1_8 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000002b2 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x000002b7 cmpq $10, %rdi + 0x0f, 0x82, 0x9c, 0x01, 0x00, 0x00, //0x000002bb jb LBB1_30 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000002c1 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000002c6 cmpq $100, %rdi + 0x0f, 0x82, 0x8d, 0x01, 0x00, 0x00, //0x000002ca jb LBB1_30 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000002d0 movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000002d5 cmpq $1000, %rdi + 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x000002dc jb LBB1_30 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000002e2 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000002e7 cmpq $10000, %rdi + 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x000002ee jb LBB1_30 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000002f4 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000002f9 cmpq $100000, %rdi + 0x0f, 0x82, 0x57, 0x01, 0x00, 0x00, //0x00000300 jb LBB1_30 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000306 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x0000030b cmpq $1000000, %rdi + 0x0f, 0x82, 0x45, 0x01, 0x00, 0x00, //0x00000312 jb LBB1_30 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000318 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000031d cmpq $10000000, %rdi + 0x0f, 0x82, 0x33, 0x01, 0x00, 0x00, //0x00000324 jb LBB1_30 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x0000032a movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000032f cmpq $100000000, %rdi + 0x0f, 0x82, 0x21, 0x01, 0x00, 0x00, //0x00000336 jb LBB1_30 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x0000033c cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000343 movl $10, %edx + 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00000348 jmp LBB1_29 + //0x0000034d LBB1_17 + 0x4d, 0x89, 0xc3, //0x0000034d movq %r8, %r11 + 0x49, 0xc1, 0xeb, 0x02, //0x00000350 shrq $2, %r11 + 0x4c, 0x89, 0xc2, //0x00000354 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x00000357 andq $-4, %rdx + 0x48, 0x39, 0xd3, //0x0000035b cmpq %rdx, %rbx + 0x0f, 0x96, 0xc3, //0x0000035e setbe %bl + 0x48, 0x8d, 0x72, 0x04, //0x00000361 leaq $4(%rdx), %rsi + 0x48, 0x39, 0xce, //0x00000365 cmpq %rcx, %rsi + 0x0f, 0x96, 0xc0, //0x00000368 setbe %al + 0x38, 0xc3, //0x0000036b cmpb %al, %bl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000036d je LBB1_20 + 0x31, 0xff, //0x00000373 xorl %edi, %edi + 0x48, 0x39, 0xce, //0x00000375 cmpq %rcx, %rsi + 0x40, 0x0f, 0x96, 0xc7, //0x00000378 setbe %dil + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x0000037c jmp LBB1_22 + //0x00000381 LBB1_19 + 0x41, 0xc6, 0x07, 0x30, //0x00000381 movb $48, (%r15) + 0x45, 0x29, 0xf7, //0x00000385 subl %r14d, %r15d + 0x41, 0xff, 0xc7, //0x00000388 incl %r15d + 0x44, 0x89, 0xfb, //0x0000038b movl %r15d, %ebx + 0xe9, 0x0f, 0x08, 0x00, 0x00, //0x0000038e jmp LBB1_113 + //0x00000393 LBB1_20 + 0x48, 0x83, 0xca, 0x02, //0x00000393 orq $2, %rdx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000397 movl $1, %edi + 0x49, 0x39, 0xd2, //0x0000039c cmpq %rdx, %r10 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000039f ja LBB1_22 + 0x0f, 0x94, 0xc0, //0x000003a5 sete %al + 0x41, 0xc0, 0xe8, 0x02, //0x000003a8 shrb $2, %r8b + 0x41, 0x20, 0xc0, //0x000003ac andb %al, %r8b + 0x41, 0x0f, 0xb6, 0xf8, //0x000003af movzbl %r8b, %edi + //0x000003b3 LBB1_22 + 0x4c, 0x01, 0xdf, //0x000003b3 addq %r11, %rdi + 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000003b6 movabsq $8589934464, %rbx + 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x000003c0 leaq $1410065535(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000003c7 cmpq %rax, %rdi + 0x0f, 0x86, 0xe2, 0xfe, 0xff, 0xff, //0x000003ca jbe LBB1_8 + //0x000003d0 LBB1_23 + 0x48, 0x89, 0xf8, //0x000003d0 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x000003d3 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000003d7 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000003dc cmpq $48828125, %rax + 0x0f, 0x82, 0x75, 0x00, 0x00, 0x00, //0x000003e2 jb LBB1_30 + 0x48, 0x89, 0xf8, //0x000003e8 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x000003eb shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000003ef movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000003f4 cmpq $244140625, %rax + 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x000003fa jb LBB1_30 + 0x48, 0x89, 0xf8, //0x00000400 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000403 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000407 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000040c cmpq $1220703125, %rax + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000412 jb LBB1_30 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000418 movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000041d movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000427 cmpq %rax, %rdi + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x0000042a jb LBB1_30 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000430 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000435 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000043f cmpq %rax, %rdi + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00000442 jb LBB1_30 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000448 movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000452 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000455 movl $17, %edx + //0x0000045a LBB1_29 + 0x83, 0xda, 0x00, //0x0000045a sbbl $0, %edx + //0x0000045d LBB1_30 + 0x46, 0x8d, 0x2c, 0x0a, //0x0000045d leal (%rdx,%r9), %r13d + 0x42, 0x8d, 0x44, 0x0a, 0x05, //0x00000461 leal $5(%rdx,%r9), %eax + 0x83, 0xf8, 0x1b, //0x00000466 cmpl $27, %eax + 0x0f, 0x82, 0x95, 0x00, 0x00, 0x00, //0x00000469 jb LBB1_38 + 0x4d, 0x8d, 0x67, 0x01, //0x0000046f leaq $1(%r15), %r12 + 0x4c, 0x89, 0xe6, //0x00000473 movq %r12, %rsi + 0xe8, 0x35, 0x85, 0x00, 0x00, //0x00000476 callq _format_significand + 0x48, 0x89, 0xc3, //0x0000047b movq %rax, %rbx + 0x90, 0x90, //0x0000047e .p2align 4, 0x90 + //0x00000480 LBB1_32 + 0x80, 0x7b, 0xff, 0x30, //0x00000480 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000484 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000488 je LBB1_32 + 0x41, 0x8a, 0x47, 0x01, //0x0000048e movb $1(%r15), %al + 0x41, 0x88, 0x07, //0x00000492 movb %al, (%r15) + 0x48, 0x8d, 0x43, 0x01, //0x00000495 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00000499 movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x0000049c subq %r12, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000049f cmpq $2, %rcx + 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x000004a3 jl LBB1_35 + 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x000004a9 movb $46, (%r12) + 0x48, 0x89, 0xc3, //0x000004ae movq %rax, %rbx + //0x000004b1 LBB1_35 + 0xc6, 0x03, 0x65, //0x000004b1 movb $101, (%rbx) + 0x45, 0x85, 0xed, //0x000004b4 testl %r13d, %r13d + 0x0f, 0x8e, 0x5a, 0x01, 0x00, 0x00, //0x000004b7 jle LBB1_51 + 0x41, 0xff, 0xcd, //0x000004bd decl %r13d + 0xc6, 0x43, 0x01, 0x2b, //0x000004c0 movb $43, $1(%rbx) + 0x44, 0x89, 0xe8, //0x000004c4 movl %r13d, %eax + 0x83, 0xf8, 0x64, //0x000004c7 cmpl $100, %eax + 0x0f, 0x8c, 0x5c, 0x01, 0x00, 0x00, //0x000004ca jl LBB1_52 + //0x000004d0 LBB1_37 + 0x89, 0xc1, //0x000004d0 movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000004d2 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000004d7 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x000004db shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x000004df leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x000004e2 leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x000004e5 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xa2, 0xb9, 0x00, 0x00, //0x000004e7 leaq $47522(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x000004ee movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x000004f2 movw %cx, $2(%rbx) + 0x0c, 0x30, //0x000004f6 orb $48, %al + 0x88, 0x43, 0x04, //0x000004f8 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x000004fb addq $5, %rbx + 0xe9, 0x9b, 0x06, 0x00, 0x00, //0x000004ff jmp LBB1_112 + //0x00000504 LBB1_38 + 0x45, 0x85, 0xc9, //0x00000504 testl %r9d, %r9d + 0x0f, 0x88, 0x42, 0x01, 0x00, 0x00, //0x00000507 js LBB1_54 + 0x4d, 0x63, 0xed, //0x0000050d movslq %r13d, %r13 + 0x4b, 0x8d, 0x1c, 0x2f, //0x00000510 leaq (%r15,%r13), %rbx + 0x4c, 0x89, 0xfe, //0x00000514 movq %r15, %rsi + 0xe8, 0xc4, 0x06, 0x00, 0x00, //0x00000517 callq _format_integer + 0x48, 0x39, 0xd8, //0x0000051c cmpq %rbx, %rax + 0x0f, 0x83, 0x7a, 0x06, 0x00, 0x00, //0x0000051f jae LBB1_112 + 0x4d, 0x01, 0xec, //0x00000525 addq %r13, %r12 + 0x49, 0x29, 0xc4, //0x00000528 subq %rax, %r12 + 0x4d, 0x01, 0xf4, //0x0000052b addq %r14, %r12 + 0x49, 0x81, 0xfc, 0x80, 0x00, 0x00, 0x00, //0x0000052e cmpq $128, %r12 + 0x0f, 0x82, 0x15, 0x03, 0x00, 0x00, //0x00000535 jb LBB1_76 + 0x4c, 0x89, 0xe1, //0x0000053b movq %r12, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x0000053e andq $-128, %rcx + 0x48, 0x8d, 0x79, 0x80, //0x00000542 leaq $-128(%rcx), %rdi + 0x48, 0x89, 0xfe, //0x00000546 movq %rdi, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x00000549 shrq $7, %rsi + 0x48, 0xff, 0xc6, //0x0000054d incq %rsi + 0x89, 0xf2, //0x00000550 movl %esi, %edx + 0x83, 0xe2, 0x03, //0x00000552 andl $3, %edx + 0x48, 0x81, 0xff, 0x80, 0x01, 0x00, 0x00, //0x00000555 cmpq $384, %rdi + 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x0000055c jae LBB1_69 + 0x31, 0xff, //0x00000562 xorl %edi, %edi + 0xe9, 0x9b, 0x02, 0x00, 0x00, //0x00000564 jmp LBB1_71 + //0x00000569 LBB1_43 + 0x48, 0xd3, 0xef, //0x00000569 shrq %cl, %rdi + 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000056c movabsq $8589934464, %rax + 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x00000576 addq $1410065535, %rax + 0x48, 0x39, 0xc7, //0x0000057c cmpq %rax, %rdi + 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x0000057f jbe LBB1_60 + 0x48, 0x89, 0xf8, //0x00000585 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000588 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000058c movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000591 cmpq $48828125, %rax + 0x0f, 0x82, 0xad, 0x01, 0x00, 0x00, //0x00000597 jb LBB1_68 + 0x48, 0x89, 0xf8, //0x0000059d movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x000005a0 shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000005a4 movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000005a9 cmpq $244140625, %rax + 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x000005af jb LBB1_68 + 0x48, 0x89, 0xf8, //0x000005b5 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x000005b8 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000005bc movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000005c1 cmpq $1220703125, %rax + 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x000005c7 jb LBB1_68 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000005cd movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000005d2 movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005dc cmpq %rax, %rdi + 0x0f, 0x82, 0x65, 0x01, 0x00, 0x00, //0x000005df jb LBB1_68 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005e5 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005ea movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005f4 cmpq %rax, %rdi + 0x0f, 0x82, 0x4d, 0x01, 0x00, 0x00, //0x000005f7 jb LBB1_68 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005fd movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000607 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x0000060a movl $17, %edx + //0x0000060f LBB1_50 + 0x83, 0xda, 0x00, //0x0000060f sbbl $0, %edx + 0xe9, 0x33, 0x01, 0x00, 0x00, //0x00000612 jmp LBB1_68 + //0x00000617 LBB1_51 + 0xc6, 0x43, 0x01, 0x2d, //0x00000617 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000061b movl $1, %eax + 0x44, 0x29, 0xe8, //0x00000620 subl %r13d, %eax + 0x83, 0xf8, 0x64, //0x00000623 cmpl $100, %eax + 0x0f, 0x8d, 0xa4, 0xfe, 0xff, 0xff, //0x00000626 jge LBB1_37 + //0x0000062c LBB1_52 + 0x83, 0xf8, 0x0a, //0x0000062c cmpl $10, %eax + 0x0f, 0x8c, 0x7d, 0x00, 0x00, 0x00, //0x0000062f jl LBB1_59 + 0x48, 0x98, //0x00000635 cltq + 0x48, 0x8d, 0x0d, 0x52, 0xb8, 0x00, 0x00, //0x00000637 leaq $47186(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x0000063e movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00000642 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00000646 addq $4, %rbx + 0xe9, 0x50, 0x05, 0x00, 0x00, //0x0000064a jmp LBB1_112 + //0x0000064f LBB1_54 + 0x45, 0x85, 0xed, //0x0000064f testl %r13d, %r13d + 0x0f, 0x8f, 0x19, 0x03, 0x00, 0x00, //0x00000652 jg LBB1_85 + 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000658 movw $11824, (%r15) + 0x49, 0x83, 0xc7, 0x02, //0x0000065e addq $2, %r15 + 0x45, 0x85, 0xed, //0x00000662 testl %r13d, %r13d + 0x0f, 0x89, 0x06, 0x03, 0x00, 0x00, //0x00000665 jns LBB1_85 + 0x31, 0xc0, //0x0000066b xorl %eax, %eax + 0x41, 0x83, 0xfd, 0x80, //0x0000066d cmpl $-128, %r13d + 0x0f, 0x87, 0xe1, 0x02, 0x00, 0x00, //0x00000671 ja LBB1_83 + 0x45, 0x89, 0xe8, //0x00000677 movl %r13d, %r8d + 0x41, 0xf7, 0xd0, //0x0000067a notl %r8d + 0x49, 0xff, 0xc0, //0x0000067d incq %r8 + 0x4c, 0x89, 0xc0, //0x00000680 movq %r8, %rax + 0x49, 0x89, 0xda, //0x00000683 movq %rbx, %r10 + 0x48, 0x21, 0xd8, //0x00000686 andq %rbx, %rax + 0x48, 0x8d, 0x48, 0x80, //0x00000689 leaq $-128(%rax), %rcx + 0x48, 0x89, 0xcb, //0x0000068d movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00000690 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x00000694 incq %rbx + 0x41, 0x89, 0xd9, //0x00000697 movl %ebx, %r9d + 0x41, 0x83, 0xe1, 0x03, //0x0000069a andl $3, %r9d + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000069e cmpq $384, %rcx + 0x0f, 0x83, 0xb9, 0x01, 0x00, 0x00, //0x000006a5 jae LBB1_77 + 0x31, 0xdb, //0x000006ab xorl %ebx, %ebx + 0xe9, 0x5b, 0x02, 0x00, 0x00, //0x000006ad jmp LBB1_79 + //0x000006b2 LBB1_59 + 0x04, 0x30, //0x000006b2 addb $48, %al + 0x88, 0x43, 0x02, //0x000006b4 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x000006b7 addq $3, %rbx + 0xe9, 0xdf, 0x04, 0x00, 0x00, //0x000006bb jmp LBB1_112 + //0x000006c0 LBB1_60 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000006c0 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x000006c5 cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000006c9 jb LBB1_68 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000006cf movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000006d4 cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000006d8 jb LBB1_68 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000006de movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006e3 cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006ea jb LBB1_68 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006f0 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006f5 cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006fc jb LBB1_68 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000702 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000707 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x0000070e jb LBB1_68 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000714 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x00000719 cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00000720 jb LBB1_68 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000726 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000072b cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00000732 jb LBB1_68 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000738 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000073d cmpq $100000000, %rdi + 0x0f, 0x83, 0x80, 0x04, 0x00, 0x00, //0x00000744 jae LBB1_116 + //0x0000074a LBB1_68 + 0x4c, 0x89, 0xfe, //0x0000074a movq %r15, %rsi + 0xe8, 0x8e, 0x04, 0x00, 0x00, //0x0000074d callq _format_integer + 0x48, 0x89, 0xc3, //0x00000752 movq %rax, %rbx + 0xe9, 0x45, 0x04, 0x00, 0x00, //0x00000755 jmp LBB1_112 + //0x0000075a LBB1_69 + 0x48, 0x29, 0xd6, //0x0000075a subq %rdx, %rsi + 0x31, 0xff, //0x0000075d xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x39, 0xf9, 0xff, 0xff, //0x0000075f vmovdqa $-1735(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000767 .p2align 4, 0x90 + //0x00000770 LBB1_70 + 0xc5, 0xfe, 0x7f, 0x04, 0x38, //0x00000770 vmovdqu %ymm0, (%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x20, //0x00000775 vmovdqu %ymm0, $32(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x40, //0x0000077b vmovdqu %ymm0, $64(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x60, //0x00000781 vmovdqu %ymm0, $96(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x00, 0x00, 0x00, //0x00000787 vmovdqu %ymm0, $128(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x00, 0x00, 0x00, //0x00000790 vmovdqu %ymm0, $160(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x00, 0x00, 0x00, //0x00000799 vmovdqu %ymm0, $192(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x00, 0x00, 0x00, //0x000007a2 vmovdqu %ymm0, $224(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x00, 0x01, 0x00, 0x00, //0x000007ab vmovdqu %ymm0, $256(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x20, 0x01, 0x00, 0x00, //0x000007b4 vmovdqu %ymm0, $288(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x40, 0x01, 0x00, 0x00, //0x000007bd vmovdqu %ymm0, $320(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x60, 0x01, 0x00, 0x00, //0x000007c6 vmovdqu %ymm0, $352(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x01, 0x00, 0x00, //0x000007cf vmovdqu %ymm0, $384(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x01, 0x00, 0x00, //0x000007d8 vmovdqu %ymm0, $416(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x01, 0x00, 0x00, //0x000007e1 vmovdqu %ymm0, $448(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x01, 0x00, 0x00, //0x000007ea vmovdqu %ymm0, $480(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x000007f3 addq $512, %rdi + 0x48, 0x83, 0xc6, 0xfc, //0x000007fa addq $-4, %rsi + 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x000007fe jne LBB1_70 + //0x00000804 LBB1_71 + 0x48, 0x85, 0xd2, //0x00000804 testq %rdx, %rdx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000807 je LBB1_74 + 0x48, 0x8d, 0x74, 0x07, 0x60, //0x0000080d leaq $96(%rdi,%rax), %rsi + 0x48, 0xf7, 0xda, //0x00000812 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x83, 0xf8, 0xff, 0xff, //0x00000815 vmovdqa $-1917(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, //0x0000081d .p2align 4, 0x90 + //0x00000820 LBB1_73 + 0xc5, 0xfe, 0x7f, 0x46, 0xa0, //0x00000820 vmovdqu %ymm0, $-96(%rsi) + 0xc5, 0xfe, 0x7f, 0x46, 0xc0, //0x00000825 vmovdqu %ymm0, $-64(%rsi) + 0xc5, 0xfe, 0x7f, 0x46, 0xe0, //0x0000082a vmovdqu %ymm0, $-32(%rsi) + 0xc5, 0xfe, 0x7f, 0x06, //0x0000082f vmovdqu %ymm0, (%rsi) + 0x48, 0x83, 0xee, 0x80, //0x00000833 subq $-128, %rsi + 0x48, 0xff, 0xc2, //0x00000837 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000083a jne LBB1_73 + //0x00000840 LBB1_74 + 0x4c, 0x39, 0xe1, //0x00000840 cmpq %r12, %rcx + 0x0f, 0x84, 0x56, 0x03, 0x00, 0x00, //0x00000843 je LBB1_112 + 0x48, 0x01, 0xc8, //0x00000849 addq %rcx, %rax + 0x90, 0x90, 0x90, 0x90, //0x0000084c .p2align 4, 0x90 + //0x00000850 LBB1_76 + 0xc6, 0x00, 0x30, //0x00000850 movb $48, (%rax) + 0x48, 0xff, 0xc0, //0x00000853 incq %rax + 0x48, 0x39, 0xc3, //0x00000856 cmpq %rax, %rbx + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000859 jne LBB1_76 + 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x0000085f jmp LBB1_112 + //0x00000864 LBB1_77 + 0x4b, 0x8d, 0x8c, 0x34, 0xe2, 0x01, 0x00, 0x00, //0x00000864 leaq $482(%r12,%r14), %rcx + 0x4c, 0x89, 0xce, //0x0000086c movq %r9, %rsi + 0x48, 0x29, 0xde, //0x0000086f subq %rbx, %rsi + 0x31, 0xdb, //0x00000872 xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x05, 0x24, 0xf8, 0xff, 0xff, //0x00000874 vmovdqa $-2012(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x0000087c LBB1_78 + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xfe, 0xff, 0xff, //0x0000087c vmovdqu %ymm0, $-480(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xfe, 0xff, 0xff, //0x00000885 vmovdqu %ymm0, $-448(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xfe, 0xff, 0xff, //0x0000088e vmovdqu %ymm0, $-416(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x80, 0xfe, 0xff, 0xff, //0x00000897 vmovdqu %ymm0, $-384(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xa0, 0xfe, 0xff, 0xff, //0x000008a0 vmovdqu %ymm0, $-352(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xc0, 0xfe, 0xff, 0xff, //0x000008a9 vmovdqu %ymm0, $-320(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xe0, 0xfe, 0xff, 0xff, //0x000008b2 vmovdqu %ymm0, $-288(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x00, 0xff, 0xff, 0xff, //0x000008bb vmovdqu %ymm0, $-256(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xff, 0xff, 0xff, //0x000008c4 vmovdqu %ymm0, $-224(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xff, 0xff, 0xff, //0x000008cd vmovdqu %ymm0, $-192(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xff, 0xff, 0xff, //0x000008d6 vmovdqu %ymm0, $-160(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0x80, //0x000008df vmovdqu %ymm0, $-128(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x000008e5 vmovdqu %ymm0, $-96(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x000008eb vmovdqu %ymm0, $-64(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x000008f1 vmovdqu %ymm0, $-32(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x000008f7 vmovdqu %ymm0, (%rcx,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x000008fc addq $512, %rbx + 0x48, 0x83, 0xc6, 0x04, //0x00000903 addq $4, %rsi + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000907 jne LBB1_78 + //0x0000090d LBB1_79 + 0x4d, 0x85, 0xc9, //0x0000090d testq %r9, %r9 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000910 je LBB1_82 + 0x4c, 0x01, 0xe3, //0x00000916 addq %r12, %rbx + 0x49, 0x8d, 0x4c, 0x1e, 0x62, //0x00000919 leaq $98(%r14,%rbx), %rcx + 0x49, 0xf7, 0xd9, //0x0000091e negq %r9 + 0xc5, 0xfd, 0x6f, 0x05, 0x77, 0xf7, 0xff, 0xff, //0x00000921 vmovdqa $-2185(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000929 LBB1_81 + 0xc5, 0xfe, 0x7f, 0x41, 0xa0, //0x00000929 vmovdqu %ymm0, $-96(%rcx) + 0xc5, 0xfe, 0x7f, 0x41, 0xc0, //0x0000092e vmovdqu %ymm0, $-64(%rcx) + 0xc5, 0xfe, 0x7f, 0x41, 0xe0, //0x00000933 vmovdqu %ymm0, $-32(%rcx) + 0xc5, 0xfe, 0x7f, 0x01, //0x00000938 vmovdqu %ymm0, (%rcx) + 0x48, 0x83, 0xe9, 0x80, //0x0000093c subq $-128, %rcx + 0x49, 0xff, 0xc1, //0x00000940 incq %r9 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000943 jne LBB1_81 + //0x00000949 LBB1_82 + 0x49, 0x01, 0xc7, //0x00000949 addq %rax, %r15 + 0x49, 0x39, 0xc0, //0x0000094c cmpq %rax, %r8 + 0x4c, 0x89, 0xd3, //0x0000094f movq %r10, %rbx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000952 je LBB1_85 + //0x00000958 LBB1_83 + 0x44, 0x89, 0xe9, //0x00000958 movl %r13d, %ecx + 0xf7, 0xd9, //0x0000095b negl %ecx + 0x90, 0x90, 0x90, //0x0000095d .p2align 4, 0x90 + //0x00000960 LBB1_84 + 0x41, 0xc6, 0x07, 0x30, //0x00000960 movb $48, (%r15) + 0x49, 0xff, 0xc7, //0x00000964 incq %r15 + 0xff, 0xc0, //0x00000967 incl %eax + 0x39, 0xc8, //0x00000969 cmpl %ecx, %eax + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000096b jl LBB1_84 + //0x00000971 LBB1_85 + 0x4c, 0x89, 0xfe, //0x00000971 movq %r15, %rsi + 0xc5, 0xf8, 0x77, //0x00000974 vzeroupper + 0xe8, 0x34, 0x80, 0x00, 0x00, //0x00000977 callq _format_significand + 0x90, 0x90, 0x90, 0x90, //0x0000097c .p2align 4, 0x90 + //0x00000980 LBB1_86 + 0x80, 0x78, 0xff, 0x30, //0x00000980 cmpb $48, $-1(%rax) + 0x48, 0x8d, 0x40, 0xff, //0x00000984 leaq $-1(%rax), %rax + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000988 je LBB1_86 + 0x48, 0x8d, 0x48, 0x01, //0x0000098e leaq $1(%rax), %rcx + 0x45, 0x85, 0xed, //0x00000992 testl %r13d, %r13d + 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, //0x00000995 jle LBB1_91 + 0x89, 0xca, //0x0000099b movl %ecx, %edx + 0x44, 0x29, 0xfa, //0x0000099d subl %r15d, %edx + 0x41, 0x39, 0xd5, //0x000009a0 cmpl %edx, %r13d + 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x000009a3 jge LBB1_92 + 0x43, 0x8d, 0x54, 0x3d, 0x00, //0x000009a9 leal (%r13,%r15), %edx + 0x29, 0xd1, //0x000009ae subl %edx, %ecx + 0x48, 0x8d, 0x71, 0xff, //0x000009b0 leaq $-1(%rcx), %rsi + 0x89, 0xca, //0x000009b4 movl %ecx, %edx + 0x83, 0xe2, 0x03, //0x000009b6 andl $3, %edx + 0x48, 0x83, 0xfe, 0x03, //0x000009b9 cmpq $3, %rsi + 0x0f, 0x83, 0x63, 0x00, 0x00, 0x00, //0x000009bd jae LBB1_96 + 0x31, 0xc9, //0x000009c3 xorl %ecx, %ecx + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x000009c5 jmp LBB1_99 + //0x000009ca LBB1_92 + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x000009ca jle LBB1_91 + 0x48, 0x89, 0xde, //0x000009d0 movq %rbx, %rsi + 0x45, 0x01, 0xfd, //0x000009d3 addl %r15d, %r13d + 0x41, 0x89, 0xc8, //0x000009d6 movl %ecx, %r8d + 0x41, 0xf7, 0xd0, //0x000009d9 notl %r8d + 0x45, 0x01, 0xe8, //0x000009dc addl %r13d, %r8d + 0x31, 0xd2, //0x000009df xorl %edx, %edx + 0x48, 0x89, 0xcb, //0x000009e1 movq %rcx, %rbx + 0x41, 0x83, 0xf8, 0x7e, //0x000009e4 cmpl $126, %r8d + 0x0f, 0x86, 0x8f, 0x01, 0x00, 0x00, //0x000009e8 jbe LBB1_110 + 0x49, 0xff, 0xc0, //0x000009ee incq %r8 + 0x48, 0x89, 0xf3, //0x000009f1 movq %rsi, %rbx + 0x4c, 0x21, 0xc3, //0x000009f4 andq %r8, %rbx + 0x48, 0x8d, 0x73, 0x80, //0x000009f7 leaq $-128(%rbx), %rsi + 0x48, 0x89, 0xf7, //0x000009fb movq %rsi, %rdi + 0x48, 0xc1, 0xef, 0x07, //0x000009fe shrq $7, %rdi + 0x48, 0xff, 0xc7, //0x00000a02 incq %rdi + 0x89, 0xfa, //0x00000a05 movl %edi, %edx + 0x83, 0xe2, 0x03, //0x00000a07 andl $3, %edx + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000a0a cmpq $384, %rsi + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00000a11 jae LBB1_104 + 0x31, 0xff, //0x00000a17 xorl %edi, %edi + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000a19 jmp LBB1_106 + //0x00000a1e LBB1_91 + 0x48, 0x89, 0xcb, //0x00000a1e movq %rcx, %rbx + 0xe9, 0x79, 0x01, 0x00, 0x00, //0x00000a21 jmp LBB1_112 + //0x00000a26 LBB1_96 + 0x48, 0x89, 0xd6, //0x00000a26 movq %rdx, %rsi + 0x48, 0x29, 0xce, //0x00000a29 subq %rcx, %rsi + 0x31, 0xc9, //0x00000a2c xorl %ecx, %ecx + 0x90, 0x90, //0x00000a2e .p2align 4, 0x90 + //0x00000a30 LBB1_97 + 0x8b, 0x7c, 0x08, 0xfd, //0x00000a30 movl $-3(%rax,%rcx), %edi + 0x89, 0x7c, 0x08, 0xfe, //0x00000a34 movl %edi, $-2(%rax,%rcx) + 0x48, 0x83, 0xc1, 0xfc, //0x00000a38 addq $-4, %rcx + 0x48, 0x39, 0xce, //0x00000a3c cmpq %rcx, %rsi + 0x0f, 0x85, 0xeb, 0xff, 0xff, 0xff, //0x00000a3f jne LBB1_97 + 0x48, 0xf7, 0xd9, //0x00000a45 negq %rcx + //0x00000a48 LBB1_99 + 0x48, 0x85, 0xd2, //0x00000a48 testq %rdx, %rdx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000a4b je LBB1_102 + 0x48, 0xf7, 0xd9, //0x00000a51 negq %rcx + 0x48, 0xf7, 0xda, //0x00000a54 negq %rdx + 0x31, 0xf6, //0x00000a57 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a59 .p2align 4, 0x90 + //0x00000a60 LBB1_101 + 0x48, 0x8d, 0x3c, 0x31, //0x00000a60 leaq (%rcx,%rsi), %rdi + 0x0f, 0xb6, 0x1c, 0x38, //0x00000a64 movzbl (%rax,%rdi), %ebx + 0x88, 0x5c, 0x38, 0x01, //0x00000a68 movb %bl, $1(%rax,%rdi) + 0x48, 0xff, 0xce, //0x00000a6c decq %rsi + 0x48, 0x39, 0xf2, //0x00000a6f cmpq %rsi, %rdx + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000a72 jne LBB1_101 + //0x00000a78 LBB1_102 + 0x49, 0x63, 0xcd, //0x00000a78 movslq %r13d, %rcx + 0x41, 0xc6, 0x04, 0x0f, 0x2e, //0x00000a7b movb $46, (%r15,%rcx) + 0x48, 0x83, 0xc0, 0x02, //0x00000a80 addq $2, %rax + 0x48, 0x89, 0xc3, //0x00000a84 movq %rax, %rbx + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000a87 jmp LBB1_112 + //0x00000a8c LBB1_104 + 0x48, 0x89, 0xd6, //0x00000a8c movq %rdx, %rsi + 0x48, 0x29, 0xfe, //0x00000a8f subq %rdi, %rsi + 0x31, 0xff, //0x00000a92 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x04, 0xf6, 0xff, 0xff, //0x00000a94 vmovdqa $-2556(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000a9c LBB1_105 + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x01, //0x00000a9c vmovdqu %ymm0, $1(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x21, //0x00000aa2 vmovdqu %ymm0, $33(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x41, //0x00000aa8 vmovdqu %ymm0, $65(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x61, //0x00000aae vmovdqu %ymm0, $97(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x00, 0x00, 0x00, //0x00000ab4 vmovdqu %ymm0, $129(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x00, 0x00, 0x00, //0x00000abd vmovdqu %ymm0, $161(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x00, 0x00, 0x00, //0x00000ac6 vmovdqu %ymm0, $193(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x00, 0x00, 0x00, //0x00000acf vmovdqu %ymm0, $225(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x01, 0x01, 0x00, 0x00, //0x00000ad8 vmovdqu %ymm0, $257(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x21, 0x01, 0x00, 0x00, //0x00000ae1 vmovdqu %ymm0, $289(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x41, 0x01, 0x00, 0x00, //0x00000aea vmovdqu %ymm0, $321(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x61, 0x01, 0x00, 0x00, //0x00000af3 vmovdqu %ymm0, $353(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x01, 0x00, 0x00, //0x00000afc vmovdqu %ymm0, $385(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x01, 0x00, 0x00, //0x00000b05 vmovdqu %ymm0, $417(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x01, 0x00, 0x00, //0x00000b0e vmovdqu %ymm0, $449(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x01, 0x00, 0x00, //0x00000b17 vmovdqu %ymm0, $481(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000b20 addq $512, %rdi + 0x48, 0x83, 0xc6, 0x04, //0x00000b27 addq $4, %rsi + 0x0f, 0x85, 0x6b, 0xff, 0xff, 0xff, //0x00000b2b jne LBB1_105 + //0x00000b31 LBB1_106 + 0x48, 0x89, 0xde, //0x00000b31 movq %rbx, %rsi + 0x48, 0x8d, 0x5c, 0x18, 0x01, //0x00000b34 leaq $1(%rax,%rbx), %rbx + 0x48, 0x85, 0xd2, //0x00000b39 testq %rdx, %rdx + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00000b3c je LBB1_109 + 0x48, 0x8d, 0x44, 0x38, 0x61, //0x00000b42 leaq $97(%rax,%rdi), %rax + 0x48, 0xf7, 0xda, //0x00000b47 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x4e, 0xf5, 0xff, 0xff, //0x00000b4a vmovdqa $-2738(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000b52 LBB1_108 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000b52 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000b57 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00000b5c vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x00000b61 vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00000b65 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00000b69 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000b6c jne LBB1_108 + //0x00000b72 LBB1_109 + 0x89, 0xf2, //0x00000b72 movl %esi, %edx + 0x49, 0x39, 0xf0, //0x00000b74 cmpq %rsi, %r8 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000b77 je LBB1_112 + //0x00000b7d LBB1_110 + 0x41, 0x29, 0xd5, //0x00000b7d subl %edx, %r13d + 0x41, 0x29, 0xcd, //0x00000b80 subl %ecx, %r13d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b83 .p2align 4, 0x90 + //0x00000b90 LBB1_111 + 0xc6, 0x03, 0x30, //0x00000b90 movb $48, (%rbx) + 0x48, 0xff, 0xc3, //0x00000b93 incq %rbx + 0x41, 0xff, 0xcd, //0x00000b96 decl %r13d + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000b99 jne LBB1_111 + //0x00000b9f LBB1_112 + 0x44, 0x29, 0xf3, //0x00000b9f subl %r14d, %ebx + //0x00000ba2 LBB1_113 + 0x89, 0xd8, //0x00000ba2 movl %ebx, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00000ba4 addq $8, %rsp + 0x5b, //0x00000ba8 popq %rbx + 0x41, 0x5c, //0x00000ba9 popq %r12 + 0x41, 0x5d, //0x00000bab popq %r13 + 0x41, 0x5e, //0x00000bad popq %r14 + 0x41, 0x5f, //0x00000baf popq %r15 + 0x5d, //0x00000bb1 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000bb2 vzeroupper + 0xc3, //0x00000bb5 retq + //0x00000bb6 LBB1_114 + 0x31, 0xdb, //0x00000bb6 xorl %ebx, %ebx + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00000bb8 jmp LBB1_113 + //0x00000bbd LBB1_115 + 0xbb, 0xce, 0xfb, 0xff, 0xff, //0x00000bbd movl $-1074, %ebx + 0x48, 0x89, 0xd7, //0x00000bc2 movq %rdx, %rdi + 0xe9, 0x8f, 0xf5, 0xff, 0xff, //0x00000bc5 jmp LBB1_5 + //0x00000bca LBB1_116 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000bca cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000bd1 movl $10, %edx + 0xe9, 0x34, 0xfa, 0xff, 0xff, //0x00000bd6 jmp LBB1_50 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000bdb .p2align 4, 0x90 + //0x00000be0 _format_integer + 0x55, //0x00000be0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000be1 movq %rsp, %rbp + 0x53, //0x00000be4 pushq %rbx + 0x41, 0x89, 0xd0, //0x00000be5 movl %edx, %r8d + 0x49, 0x01, 0xf0, //0x00000be8 addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00000beb movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000bee shrq $32, %rax + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000bf2 je LBB2_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000bf8 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00000c02 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00000c05 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000c08 shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000c0c imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00000c12 addl %edi, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000c14 movl $3518437209, %r9d + 0x48, 0x89, 0xc8, //0x00000c1a movq %rcx, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x00000c1d imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000c21 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000c25 imull $10000, %eax, %edi + 0x29, 0xf9, //0x00000c2b subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00000c2d movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00000c30 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00000c34 shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000c38 imull $10000, %edi, %edi + 0x29, 0xf8, //0x00000c3e subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00000c40 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00000c43 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000c46 imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00000c4d shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00000c51 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00000c55 subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00000c57 movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00000c5b movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00000c5e shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000c61 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00000c67 shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00000c6a imull $100, %edi, %ecx + 0x29, 0xc8, //0x00000c6d subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00000c6f movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x16, 0xb2, 0x00, 0x00, //0x00000c73 leaq $45590(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000c7a movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000c7f movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000c84 movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000c89 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000c8e movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000c93 movw %ax, $-6(%r8) + 0x4d, 0x8d, 0x58, 0xf8, //0x00000c98 leaq $-8(%r8), %r11 + 0x0f, 0xb7, 0x0c, 0x79, //0x00000c9c movzwl (%rcx,%rdi,2), %ecx + 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000ca0 movw %cx, $-8(%r8) + 0x48, 0x89, 0xd7, //0x00000ca5 movq %rdx, %rdi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000ca8 cmpl $10000, %edi + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000cae jae LBB2_5 + //0x00000cb4 LBB2_4 + 0x89, 0xfa, //0x00000cb4 movl %edi, %edx + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000cb6 jmp LBB2_7 + //0x00000cbb LBB2_1 + 0x4d, 0x89, 0xc3, //0x00000cbb movq %r8, %r11 + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000cbe cmpl $10000, %edi + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000cc4 jb LBB2_4 + //0x00000cca LBB2_5 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000cca movl $3518437209, %r9d + 0x4c, 0x8d, 0x15, 0xb9, 0xb1, 0x00, 0x00, //0x00000cd0 leaq $45497(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000cd7 .p2align 4, 0x90 + //0x00000ce0 LBB2_6 + 0x89, 0xfa, //0x00000ce0 movl %edi, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000ce2 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000ce6 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000cea imull $-10000, %edx, %ecx + 0x01, 0xf9, //0x00000cf0 addl %edi, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000cf2 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000cf9 shrq $37, %rax + 0x6b, 0xd8, 0x64, //0x00000cfd imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000d00 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000d02 movzwl (%r10,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d07 movw %cx, $-2(%r11) + 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000d0c movzwl (%r10,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000d11 movw %ax, $-4(%r11) + 0x49, 0x83, 0xc3, 0xfc, //0x00000d16 addq $-4, %r11 + 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000d1a cmpl $99999999, %edi + 0x89, 0xd7, //0x00000d20 movl %edx, %edi + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000d22 ja LBB2_6 + //0x00000d28 LBB2_7 + 0x83, 0xfa, 0x64, //0x00000d28 cmpl $100, %edx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000d2b jb LBB2_9 + 0x0f, 0xb7, 0xc2, //0x00000d31 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000d34 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000d37 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000d3d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000d40 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000d43 subl %ecx, %edx + 0x0f, 0xb7, 0xca, //0x00000d45 movzwl %dx, %ecx + 0x48, 0x8d, 0x15, 0x41, 0xb1, 0x00, 0x00, //0x00000d48 leaq $45377(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000d4f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d53 movw %cx, $-2(%r11) + 0x49, 0x83, 0xc3, 0xfe, //0x00000d58 addq $-2, %r11 + 0x89, 0xc2, //0x00000d5c movl %eax, %edx + //0x00000d5e LBB2_9 + 0x83, 0xfa, 0x0a, //0x00000d5e cmpl $10, %edx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000d61 jb LBB2_11 + 0x89, 0xd0, //0x00000d67 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x20, 0xb1, 0x00, 0x00, //0x00000d69 leaq $45344(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000d70 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000d74 movw %ax, $-2(%r11) + 0x4c, 0x89, 0xc0, //0x00000d79 movq %r8, %rax + 0x5b, //0x00000d7c popq %rbx + 0x5d, //0x00000d7d popq %rbp + 0xc3, //0x00000d7e retq + //0x00000d7f LBB2_11 + 0x80, 0xc2, 0x30, //0x00000d7f addb $48, %dl + 0x88, 0x16, //0x00000d82 movb %dl, (%rsi) + 0x4c, 0x89, 0xc0, //0x00000d84 movq %r8, %rax + 0x5b, //0x00000d87 popq %rbx + 0x5d, //0x00000d88 popq %rbp + 0xc3, //0x00000d89 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d8a .p2align 4, 0x90 + //0x00000d90 _i64toa + 0x48, 0x85, 0xf6, //0x00000d90 testq %rsi, %rsi + 0x0f, 0x88, 0x05, 0x00, 0x00, 0x00, //0x00000d93 js LBB3_1 + 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00000d99 jmp _u64toa + //0x00000d9e LBB3_1 + 0x55, //0x00000d9e pushq %rbp + 0x48, 0x89, 0xe5, //0x00000d9f movq %rsp, %rbp + 0xc6, 0x07, 0x2d, //0x00000da2 movb $45, (%rdi) + 0x48, 0xff, 0xc7, //0x00000da5 incq %rdi + 0x48, 0xf7, 0xde, //0x00000da8 negq %rsi + 0xe8, 0x50, 0x00, 0x00, 0x00, //0x00000dab callq _u64toa + 0xff, 0xc0, //0x00000db0 incl %eax + 0x5d, //0x00000db2 popq %rbp + 0xc3, //0x00000db3 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000db4 .p2align 4, 0x00 + //0x00000dc0 LCPI4_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000dc0 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000dc8 .quad 3518437209 + //0x00000dd0 LCPI4_3 + 0x0a, 0x00, //0x00000dd0 .word 10 + 0x0a, 0x00, //0x00000dd2 .word 10 + 0x0a, 0x00, //0x00000dd4 .word 10 + 0x0a, 0x00, //0x00000dd6 .word 10 + 0x0a, 0x00, //0x00000dd8 .word 10 + 0x0a, 0x00, //0x00000dda .word 10 + 0x0a, 0x00, //0x00000ddc .word 10 + 0x0a, 0x00, //0x00000dde .word 10 + //0x00000de0 LCPI4_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000de0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000df0 .p2align 3, 0x00 + //0x00000df0 LCPI4_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000df0 .quad -9223315738079846203 + //0x00000df8 LCPI4_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000df8 .quad -9223336852348469120 + //0x00000e00 .p2align 4, 0x90 + //0x00000e00 _u64toa + 0x55, //0x00000e00 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000e01 movq %rsp, %rbp + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000e04 cmpq $9999, %rsi + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000e0b ja LBB4_8 + 0x0f, 0xb7, 0xc6, //0x00000e11 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000e14 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000e17 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000e1d shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000e20 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000e24 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000e27 movl %esi, %ecx + 0x29, 0xc1, //0x00000e29 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000e2b movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x00000e2e addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000e31 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000e37 jb LBB4_3 + 0x48, 0x8d, 0x0d, 0x4c, 0xb0, 0x00, 0x00, //0x00000e3d leaq $45132(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000e44 movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000e47 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000e49 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000e4e jmp LBB4_4 + //0x00000e53 LBB4_3 + 0x31, 0xc9, //0x00000e53 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x00000e55 cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000e58 jb LBB4_5 + //0x00000e5e LBB4_4 + 0x0f, 0xb7, 0xd2, //0x00000e5e movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000e61 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x24, 0xb0, 0x00, 0x00, //0x00000e65 leaq $45092(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00000e6c movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x00000e6f movl %ecx, %esi + 0xff, 0xc1, //0x00000e71 incl %ecx + 0x88, 0x14, 0x37, //0x00000e73 movb %dl, (%rdi,%rsi) + //0x00000e76 LBB4_6 + 0x48, 0x8d, 0x15, 0x13, 0xb0, 0x00, 0x00, //0x00000e76 leaq $45075(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x00000e7d movb (%rax,%rdx), %dl + 0x89, 0xce, //0x00000e80 movl %ecx, %esi + 0xff, 0xc1, //0x00000e82 incl %ecx + 0x88, 0x14, 0x37, //0x00000e84 movb %dl, (%rdi,%rsi) + //0x00000e87 LBB4_7 + 0x0f, 0xb7, 0xc0, //0x00000e87 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000e8a orq $1, %rax + 0x48, 0x8d, 0x15, 0xfb, 0xaf, 0x00, 0x00, //0x00000e8e leaq $45051(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x00000e95 movb (%rax,%rdx), %al + 0x89, 0xca, //0x00000e98 movl %ecx, %edx + 0xff, 0xc1, //0x00000e9a incl %ecx + 0x88, 0x04, 0x17, //0x00000e9c movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x00000e9f movl %ecx, %eax + 0x5d, //0x00000ea1 popq %rbp + 0xc3, //0x00000ea2 retq + //0x00000ea3 LBB4_5 + 0x31, 0xc9, //0x00000ea3 xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x00000ea5 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000ea8 jae LBB4_6 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000eae jmp LBB4_7 + //0x00000eb3 LBB4_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000eb3 cmpq $99999999, %rsi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x00000eba ja LBB4_16 + 0x89, 0xf0, //0x00000ec0 movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000ec2 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000ec7 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000ecb shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000ecf imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000ed6 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000ed8 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x00000edb imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000ee2 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000ee6 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000eea movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000eed shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ef0 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ef6 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000ef9 imull $100, %eax, %eax + 0x29, 0xc2, //0x00000efc subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x00000efe movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000f02 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000f05 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000f08 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f0b imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f11 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000f14 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000f18 imull $100, %eax, %eax + 0x29, 0xc1, //0x00000f1b subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x00000f1d movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000f21 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000f24 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000f2a jb LBB4_11 + 0x48, 0x8d, 0x05, 0x59, 0xaf, 0x00, 0x00, //0x00000f30 leaq $44889(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000f37 movb (%r10,%rax), %al + 0x88, 0x07, //0x00000f3b movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000f3d movl $1, %ecx + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000f42 jmp LBB4_12 + //0x00000f47 LBB4_11 + 0x31, 0xc9, //0x00000f47 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000f49 cmpl $1000000, %esi + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x00000f4f jb LBB4_13 + //0x00000f55 LBB4_12 + 0x44, 0x89, 0xd0, //0x00000f55 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f58 orq $1, %rax + 0x48, 0x8d, 0x35, 0x2d, 0xaf, 0x00, 0x00, //0x00000f5c leaq $44845(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000f63 movb (%rax,%rsi), %al + 0x89, 0xce, //0x00000f66 movl %ecx, %esi + 0xff, 0xc1, //0x00000f68 incl %ecx + 0x88, 0x04, 0x37, //0x00000f6a movb %al, (%rdi,%rsi) + //0x00000f6d LBB4_14 + 0x48, 0x8d, 0x05, 0x1c, 0xaf, 0x00, 0x00, //0x00000f6d leaq $44828(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x00000f74 movb (%r9,%rax), %al + 0x89, 0xce, //0x00000f78 movl %ecx, %esi + 0xff, 0xc1, //0x00000f7a incl %ecx + 0x88, 0x04, 0x37, //0x00000f7c movb %al, (%rdi,%rsi) + //0x00000f7f LBB4_15 + 0x41, 0x0f, 0xb7, 0xc1, //0x00000f7f movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f83 orq $1, %rax + 0x48, 0x8d, 0x35, 0x02, 0xaf, 0x00, 0x00, //0x00000f87 leaq $44802(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000f8e movb (%rax,%rsi), %al + 0x89, 0xca, //0x00000f91 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x00000f93 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x00000f96 movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x00000f9a movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x00000f9e movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000fa2 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000fa6 movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x00000fa9 movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x00000fad movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x00000fb1 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x00000fb5 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000fb9 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000fbd movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x00000fc0 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x00000fc3 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x00000fc7 movl %ecx, %eax + 0x5d, //0x00000fc9 popq %rbp + 0xc3, //0x00000fca retq + //0x00000fcb LBB4_13 + 0x31, 0xc9, //0x00000fcb xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00000fcd cmpl $100000, %esi + 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000fd3 jae LBB4_14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000fd9 jmp LBB4_15 + //0x00000fde LBB4_16 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000fde movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00000fe8 cmpq %rax, %rsi + 0x0f, 0x87, 0x05, 0x01, 0x00, 0x00, //0x00000feb ja LBB4_18 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000ff1 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x00000ffb movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00000ffe mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00001001 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001005 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000100b subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000100d vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xa7, 0xfd, 0xff, 0xff, //0x00001011 vmovdqa $-601(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00001019 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000101d vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001022 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00001027 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x0000102c vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00001030 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00001034 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00001038 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000103d vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00001042 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0xa1, 0xfd, 0xff, 0xff, //0x00001047 vmovddup $-607(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x0000104f vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0x9d, 0xfd, 0xff, 0xff, //0x00001053 vmovddup $-611(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x0000105b vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x69, 0xfd, 0xff, 0xff, //0x0000105f vmovdqa $-663(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x00001067 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x0000106b vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x00001070 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x00001074 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x00001078 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x0000107c vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x00001081 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00001085 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00001089 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x0000108d vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001092 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001097 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x0000109c vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000010a0 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000010a4 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000010a8 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000010ad vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000010b1 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x23, 0xfd, 0xff, 0xff, //0x000010b5 vpaddb $-733(%rip), %xmm0, %xmm1 /* LCPI4_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x000010bd vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x000010c1 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000010c5 vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x000010c9 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x000010ce xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x000010d3 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x000010d6 movl $16, %ecx + 0x29, 0xc1, //0x000010db subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x000010dd shlq $4, %rax + 0x48, 0x8d, 0x15, 0x08, 0xd5, 0x00, 0x00, //0x000010e1 leaq $54536(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x000010e8 vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x000010ee vmovdqu %xmm0, (%rdi) + 0x89, 0xc8, //0x000010f2 movl %ecx, %eax + 0x5d, //0x000010f4 popq %rbp + 0xc3, //0x000010f5 retq + //0x000010f6 LBB4_18 + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000010f6 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x00001100 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00001103 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x00001106 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000110a movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x00001114 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x00001118 subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x0000111b cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000111e ja LBB4_20 + 0x80, 0xc2, 0x30, //0x00001124 addb $48, %dl + 0x88, 0x17, //0x00001127 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00001129 movl $1, %ecx + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x0000112e jmp LBB4_25 + //0x00001133 LBB4_20 + 0x83, 0xfa, 0x63, //0x00001133 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00001136 ja LBB4_22 + 0x89, 0xd0, //0x0000113c movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x4b, 0xad, 0x00, 0x00, //0x0000113e leaq $44363(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00001145 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00001148 movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x0000114c movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x0000114e movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00001151 movl $2, %ecx + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x00001156 jmp LBB4_25 + //0x0000115b LBB4_22 + 0x89, 0xd0, //0x0000115b movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x0000115d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001160 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00001166 shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x00001169 cmpl $999, %edx + 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x0000116f ja LBB4_24 + 0x83, 0xc0, 0x30, //0x00001175 addl $48, %eax + 0x88, 0x07, //0x00001178 movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x0000117a movzwl %dx, %eax + 0x89, 0xc1, //0x0000117d movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x0000117f shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00001182 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x00001188 shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x0000118b imull $100, %ecx, %ecx + 0x29, 0xc8, //0x0000118e subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x00001190 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0xf6, 0xac, 0x00, 0x00, //0x00001193 leaq $44278(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000119a movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000119d movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x000011a1 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x000011a4 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000011a7 movl $3, %ecx + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000011ac jmp LBB4_25 + //0x000011b1 LBB4_24 + 0x6b, 0xc8, 0x64, //0x000011b1 imull $100, %eax, %ecx + 0x29, 0xca, //0x000011b4 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x000011b6 movzwl %ax, %eax + 0x4c, 0x8d, 0x05, 0xd0, 0xac, 0x00, 0x00, //0x000011b9 leaq $44240(%rip), %r8 /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x0c, 0x40, //0x000011c0 movb (%r8,%rax,2), %cl + 0x41, 0x8a, 0x44, 0x40, 0x01, //0x000011c4 movb $1(%r8,%rax,2), %al + 0x88, 0x0f, //0x000011c9 movb %cl, (%rdi) + 0x88, 0x47, 0x01, //0x000011cb movb %al, $1(%rdi) + 0x0f, 0xb7, 0xc2, //0x000011ce movzwl %dx, %eax + 0x41, 0x8a, 0x0c, 0x40, //0x000011d1 movb (%r8,%rax,2), %cl + 0x48, 0x01, 0xc0, //0x000011d5 addq %rax, %rax + 0x88, 0x4f, 0x02, //0x000011d8 movb %cl, $2(%rdi) + 0x83, 0xc8, 0x01, //0x000011db orl $1, %eax + 0x0f, 0xb7, 0xc0, //0x000011de movzwl %ax, %eax + 0x42, 0x8a, 0x04, 0x00, //0x000011e1 movb (%rax,%r8), %al + 0x88, 0x47, 0x03, //0x000011e5 movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000011e8 movl $4, %ecx + //0x000011ed LBB4_25 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000011ed movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x000011f7 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000011fa mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000011fd shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x00001201 vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xb3, 0xfb, 0xff, 0xff, //0x00001205 vmovdqa $-1101(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x0000120d vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00001211 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001216 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000121b vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x00001220 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00001224 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00001228 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000122c vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00001231 vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00001236 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0xad, 0xfb, 0xff, 0xff, //0x0000123b vmovddup $-1107(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x00001243 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0xa9, 0xfb, 0xff, 0xff, //0x00001247 vmovddup $-1111(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x0000124f vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x75, 0xfb, 0xff, 0xff, //0x00001253 vmovdqa $-1163(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x0000125b vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x0000125f vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x00001264 vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001268 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000126e subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x00001270 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x00001274 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x00001278 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x0000127d vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00001281 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00001285 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00001289 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x0000128e vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001293 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x00001298 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x0000129c vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000012a0 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000012a4 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000012a9 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000012ad vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x27, 0xfb, 0xff, 0xff, //0x000012b1 vpaddb $-1241(%rip), %xmm0, %xmm0 /* LCPI4_4+0(%rip) */ + 0x89, 0xc8, //0x000012b9 movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x000012bb vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x000012c0 orl $16, %ecx + 0x89, 0xc8, //0x000012c3 movl %ecx, %eax + 0x5d, //0x000012c5 popq %rbp + 0xc3, //0x000012c6 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012c7 .p2align 4, 0x00 + //0x000012d0 LCPI5_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000012d0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000012e0 LCPI5_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000012e0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000012f0 LCPI5_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000012f0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00001300 .p2align 4, 0x90 + //0x00001300 _quote + 0x55, //0x00001300 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001301 movq %rsp, %rbp + 0x41, 0x57, //0x00001304 pushq %r15 + 0x41, 0x56, //0x00001306 pushq %r14 + 0x41, 0x55, //0x00001308 pushq %r13 + 0x41, 0x54, //0x0000130a pushq %r12 + 0x53, //0x0000130c pushq %rbx + 0x50, //0x0000130d pushq %rax + 0x49, 0x89, 0xcb, //0x0000130e movq %rcx, %r11 + 0x49, 0x89, 0xd4, //0x00001311 movq %rdx, %r12 + 0x48, 0x89, 0xf0, //0x00001314 movq %rsi, %rax + 0x4c, 0x8b, 0x31, //0x00001317 movq (%rcx), %r14 + 0x41, 0xf6, 0xc0, 0x01, //0x0000131a testb $1, %r8b + 0x48, 0x8d, 0x0d, 0x5b, 0xd3, 0x00, 0x00, //0x0000131e leaq $54107(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0x54, 0xe3, 0x00, 0x00, //0x00001325 leaq $58196(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc1, //0x0000132c cmoveq %rcx, %r8 + 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001330 leaq (,%rsi,8), %rcx + 0x49, 0x39, 0xce, //0x00001338 cmpq %rcx, %r14 + 0x0f, 0x8d, 0xe1, 0x03, 0x00, 0x00, //0x0000133b jge LBB5_51 + 0x4d, 0x89, 0xe7, //0x00001341 movq %r12, %r15 + 0x49, 0x89, 0xfa, //0x00001344 movq %rdi, %r10 + 0x48, 0x85, 0xc0, //0x00001347 testq %rax, %rax + 0x0f, 0x84, 0xc4, 0x03, 0x00, 0x00, //0x0000134a je LBB5_74 + 0xc5, 0xf9, 0x6f, 0x05, 0x78, 0xff, 0xff, 0xff, //0x00001350 vmovdqa $-136(%rip), %xmm0 /* LCPI5_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x80, 0xff, 0xff, 0xff, //0x00001358 vmovdqa $-128(%rip), %xmm1 /* LCPI5_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x88, 0xff, 0xff, 0xff, //0x00001360 vmovdqa $-120(%rip), %xmm2 /* LCPI5_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00001368 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x49, 0x89, 0xfa, //0x0000136c movq %rdi, %r10 + 0x4d, 0x89, 0xe7, //0x0000136f movq %r12, %r15 + 0x4c, 0x89, 0x65, 0xd0, //0x00001372 movq %r12, $-48(%rbp) + //0x00001376 LBB5_3 + 0x4c, 0x89, 0xda, //0x00001376 movq %r11, %rdx + 0x48, 0x83, 0xf8, 0x0f, //0x00001379 cmpq $15, %rax + 0x41, 0x0f, 0x9f, 0xc3, //0x0000137d setg %r11b + 0x4d, 0x89, 0xf1, //0x00001381 movq %r14, %r9 + 0x4d, 0x89, 0xfd, //0x00001384 movq %r15, %r13 + 0x48, 0x89, 0xc6, //0x00001387 movq %rax, %rsi + 0x4d, 0x89, 0xd4, //0x0000138a movq %r10, %r12 + 0x49, 0x83, 0xfe, 0x10, //0x0000138d cmpq $16, %r14 + 0x0f, 0x8c, 0x89, 0x00, 0x00, 0x00, //0x00001391 jl LBB5_9 + 0x48, 0x83, 0xf8, 0x10, //0x00001397 cmpq $16, %rax + 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x0000139b jl LBB5_9 + 0x4d, 0x89, 0xd4, //0x000013a1 movq %r10, %r12 + 0x48, 0x89, 0xc6, //0x000013a4 movq %rax, %rsi + 0x4d, 0x89, 0xfd, //0x000013a7 movq %r15, %r13 + 0x4c, 0x89, 0xf3, //0x000013aa movq %r14, %rbx + 0x90, 0x90, 0x90, //0x000013ad .p2align 4, 0x90 + //0x000013b0 LBB5_6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x24, 0x24, //0x000013b0 vmovdqu (%r12), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x000013b6 vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x000013ba vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x000013be vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x000013c2 vpor %xmm6, %xmm7, %xmm6 + 0xc4, 0xc1, 0x7a, 0x7f, 0x65, 0x00, //0x000013c6 vmovdqu %xmm4, (%r13) + 0xc5, 0xd9, 0x64, 0xe3, //0x000013cc vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe5, //0x000013d0 vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xc9, 0xeb, 0xe4, //0x000013d4 vpor %xmm4, %xmm6, %xmm4 + 0xc5, 0xf9, 0xd7, 0xcc, //0x000013d8 vpmovmskb %xmm4, %ecx + 0x66, 0x85, 0xc9, //0x000013dc testw %cx, %cx + 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x000013df jne LBB5_19 + 0x49, 0x83, 0xc4, 0x10, //0x000013e5 addq $16, %r12 + 0x49, 0x83, 0xc5, 0x10, //0x000013e9 addq $16, %r13 + 0x4c, 0x8d, 0x4b, 0xf0, //0x000013ed leaq $-16(%rbx), %r9 + 0x48, 0x83, 0xfe, 0x1f, //0x000013f1 cmpq $31, %rsi + 0x41, 0x0f, 0x9f, 0xc3, //0x000013f5 setg %r11b + 0x48, 0x83, 0xfe, 0x20, //0x000013f9 cmpq $32, %rsi + 0x48, 0x8d, 0x76, 0xf0, //0x000013fd leaq $-16(%rsi), %rsi + 0x0f, 0x8c, 0x19, 0x00, 0x00, 0x00, //0x00001401 jl LBB5_9 + 0x48, 0x83, 0xfb, 0x1f, //0x00001407 cmpq $31, %rbx + 0x4c, 0x89, 0xcb, //0x0000140b movq %r9, %rbx + 0x0f, 0x8f, 0x9c, 0xff, 0xff, 0xff, //0x0000140e jg LBB5_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001414 .p2align 4, 0x90 + //0x00001420 LBB5_9 + 0x45, 0x84, 0xdb, //0x00001420 testb %r11b, %r11b + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00001423 je LBB5_13 + 0xc4, 0xc1, 0x7a, 0x6f, 0x24, 0x24, //0x00001429 vmovdqu (%r12), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x0000142f vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x00001433 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x00001437 vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x0000143b vpor %xmm6, %xmm7, %xmm6 + 0xc5, 0xd9, 0x64, 0xfb, //0x0000143f vpcmpgtb %xmm3, %xmm4, %xmm7 + 0xc5, 0xc1, 0xdb, 0xed, //0x00001443 vpand %xmm5, %xmm7, %xmm5 + 0xc5, 0xc9, 0xeb, 0xed, //0x00001447 vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x0000144b vpmovmskb %xmm5, %ecx + 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000144f orl $65536, %ecx + 0x44, 0x0f, 0xbc, 0xd9, //0x00001455 bsfl %ecx, %r11d + 0xc4, 0xe1, 0xf9, 0x7e, 0xe1, //0x00001459 vmovq %xmm4, %rcx + 0x4d, 0x39, 0xd9, //0x0000145e cmpq %r11, %r9 + 0x0f, 0x8d, 0xb0, 0x00, 0x00, 0x00, //0x00001461 jge LBB5_20 + 0x49, 0x83, 0xf9, 0x08, //0x00001467 cmpq $8, %r9 + 0x0f, 0x82, 0xdb, 0x00, 0x00, 0x00, //0x0000146b jb LBB5_23 + 0x49, 0x89, 0x4d, 0x00, //0x00001471 movq %rcx, (%r13) + 0x4d, 0x8d, 0x5c, 0x24, 0x08, //0x00001475 leaq $8(%r12), %r11 + 0x49, 0x83, 0xc5, 0x08, //0x0000147a addq $8, %r13 + 0x49, 0x8d, 0x71, 0xf8, //0x0000147e leaq $-8(%r9), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001482 cmpq $4, %rsi + 0x0f, 0x8d, 0xd0, 0x00, 0x00, 0x00, //0x00001486 jge LBB5_24 + 0xe9, 0xde, 0x00, 0x00, 0x00, //0x0000148c jmp LBB5_25 + //0x00001491 LBB5_13 + 0x4d, 0x85, 0xc9, //0x00001491 testq %r9, %r9 + 0x49, 0x89, 0xd3, //0x00001494 movq %rdx, %r11 + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00001497 jle LBB5_18 + 0x48, 0x85, 0xf6, //0x0000149d testq %rsi, %rsi + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x000014a0 jle LBB5_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000014a6 .p2align 4, 0x90 + //0x000014b0 LBB5_15 + 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x000014b0 movzbl (%r12), %ebx + 0x48, 0x89, 0xd9, //0x000014b5 movq %rbx, %rcx + 0x48, 0xc1, 0xe1, 0x04, //0x000014b8 shlq $4, %rcx + 0x48, 0x8d, 0x15, 0xbd, 0xd1, 0x00, 0x00, //0x000014bc leaq $53693(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ + 0x48, 0x83, 0x3c, 0x11, 0x00, //0x000014c3 cmpq $0, (%rcx,%rdx) + 0x0f, 0x85, 0x73, 0x00, 0x00, 0x00, //0x000014c8 jne LBB5_22 + 0x49, 0xff, 0xc4, //0x000014ce incq %r12 + 0x41, 0x88, 0x5d, 0x00, //0x000014d1 movb %bl, (%r13) + 0x48, 0x83, 0xfe, 0x02, //0x000014d5 cmpq $2, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x000014d9 leaq $-1(%rsi), %rsi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x000014dd jl LBB5_18 + 0x49, 0xff, 0xc5, //0x000014e3 incq %r13 + 0x49, 0x83, 0xf9, 0x01, //0x000014e6 cmpq $1, %r9 + 0x4d, 0x8d, 0x49, 0xff, //0x000014ea leaq $-1(%r9), %r9 + 0x0f, 0x8f, 0xbc, 0xff, 0xff, 0xff, //0x000014ee jg LBB5_15 + //0x000014f4 LBB5_18 + 0x4d, 0x29, 0xd4, //0x000014f4 subq %r10, %r12 + 0x48, 0xf7, 0xde, //0x000014f7 negq %rsi + 0x4d, 0x19, 0xc9, //0x000014fa sbbq %r9, %r9 + 0x4d, 0x31, 0xe1, //0x000014fd xorq %r12, %r9 + 0xe9, 0x1e, 0x01, 0x00, 0x00, //0x00001500 jmp LBB5_36 + //0x00001505 LBB5_19 + 0x0f, 0xb7, 0xc9, //0x00001505 movzwl %cx, %ecx + 0x4d, 0x29, 0xd4, //0x00001508 subq %r10, %r12 + 0x44, 0x0f, 0xbc, 0xc9, //0x0000150b bsfl %ecx, %r9d + 0x4d, 0x01, 0xe1, //0x0000150f addq %r12, %r9 + 0xe9, 0x09, 0x01, 0x00, 0x00, //0x00001512 jmp LBB5_35 + //0x00001517 LBB5_20 + 0x41, 0x83, 0xfb, 0x08, //0x00001517 cmpl $8, %r11d + 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x0000151b jb LBB5_29 + 0x49, 0x89, 0x4d, 0x00, //0x00001521 movq %rcx, (%r13) + 0x49, 0x8d, 0x5c, 0x24, 0x08, //0x00001525 leaq $8(%r12), %rbx + 0x49, 0x83, 0xc5, 0x08, //0x0000152a addq $8, %r13 + 0x49, 0x8d, 0x73, 0xf8, //0x0000152e leaq $-8(%r11), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001532 cmpq $4, %rsi + 0x0f, 0x8d, 0x8e, 0x00, 0x00, 0x00, //0x00001536 jge LBB5_30 + 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x0000153c jmp LBB5_31 + //0x00001541 LBB5_22 + 0x4d, 0x29, 0xd4, //0x00001541 subq %r10, %r12 + 0x4d, 0x89, 0xe1, //0x00001544 movq %r12, %r9 + 0xe9, 0xd7, 0x00, 0x00, 0x00, //0x00001547 jmp LBB5_36 + //0x0000154c LBB5_23 + 0x4d, 0x89, 0xe3, //0x0000154c movq %r12, %r11 + 0x4c, 0x89, 0xce, //0x0000154f movq %r9, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001552 cmpq $4, %rsi + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001556 jl LBB5_25 + //0x0000155c LBB5_24 + 0x41, 0x8b, 0x0b, //0x0000155c movl (%r11), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x0000155f movl %ecx, (%r13) + 0x49, 0x83, 0xc3, 0x04, //0x00001563 addq $4, %r11 + 0x49, 0x83, 0xc5, 0x04, //0x00001567 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x0000156b addq $-4, %rsi + //0x0000156f LBB5_25 + 0x48, 0x83, 0xfe, 0x02, //0x0000156f cmpq $2, %rsi + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00001573 jb LBB5_26 + 0x41, 0x0f, 0xb7, 0x0b, //0x00001579 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x0000157d movw %cx, (%r13) + 0x49, 0x83, 0xc3, 0x02, //0x00001582 addq $2, %r11 + 0x49, 0x83, 0xc5, 0x02, //0x00001586 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x0000158a addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x0000158e testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001591 jne LBB5_27 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001597 jmp LBB5_28 + //0x0000159c LBB5_26 + 0x48, 0x85, 0xf6, //0x0000159c testq %rsi, %rsi + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x0000159f je LBB5_28 + //0x000015a5 LBB5_27 + 0x41, 0x8a, 0x0b, //0x000015a5 movb (%r11), %cl + 0x41, 0x88, 0x4d, 0x00, //0x000015a8 movb %cl, (%r13) + //0x000015ac LBB5_28 + 0x4d, 0x29, 0xd1, //0x000015ac subq %r10, %r9 + 0x4d, 0x01, 0xe1, //0x000015af addq %r12, %r9 + 0x49, 0xf7, 0xd1, //0x000015b2 notq %r9 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x000015b5 jmp LBB5_35 + //0x000015ba LBB5_29 + 0x4c, 0x89, 0xe3, //0x000015ba movq %r12, %rbx + 0x4c, 0x89, 0xde, //0x000015bd movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x000015c0 cmpq $4, %rsi + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000015c4 jl LBB5_31 + //0x000015ca LBB5_30 + 0x8b, 0x0b, //0x000015ca movl (%rbx), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x000015cc movl %ecx, (%r13) + 0x48, 0x83, 0xc3, 0x04, //0x000015d0 addq $4, %rbx + 0x49, 0x83, 0xc5, 0x04, //0x000015d4 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x000015d8 addq $-4, %rsi + //0x000015dc LBB5_31 + 0x48, 0x83, 0xfe, 0x02, //0x000015dc cmpq $2, %rsi + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000015e0 jb LBB5_32 + 0x0f, 0xb7, 0x0b, //0x000015e6 movzwl (%rbx), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x000015e9 movw %cx, (%r13) + 0x48, 0x83, 0xc3, 0x02, //0x000015ee addq $2, %rbx + 0x49, 0x83, 0xc5, 0x02, //0x000015f2 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x000015f6 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x000015fa testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000015fd jne LBB5_33 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001603 jmp LBB5_34 + //0x00001608 LBB5_32 + 0x48, 0x85, 0xf6, //0x00001608 testq %rsi, %rsi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000160b je LBB5_34 + //0x00001611 LBB5_33 + 0x8a, 0x0b, //0x00001611 movb (%rbx), %cl + 0x41, 0x88, 0x4d, 0x00, //0x00001613 movb %cl, (%r13) + //0x00001617 LBB5_34 + 0x4d, 0x29, 0xd4, //0x00001617 subq %r10, %r12 + 0x4d, 0x01, 0xdc, //0x0000161a addq %r11, %r12 + 0x4d, 0x89, 0xe1, //0x0000161d movq %r12, %r9 + //0x00001620 LBB5_35 + 0x49, 0x89, 0xd3, //0x00001620 movq %rdx, %r11 + //0x00001623 LBB5_36 + 0x4d, 0x85, 0xc9, //0x00001623 testq %r9, %r9 + 0x4c, 0x8b, 0x65, 0xd0, //0x00001626 movq $-48(%rbp), %r12 + 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000162a movabsq $12884901889, %r13 + 0x0f, 0x88, 0x46, 0x03, 0x00, 0x00, //0x00001634 js LBB5_78 + 0x4d, 0x01, 0xca, //0x0000163a addq %r9, %r10 + 0x4d, 0x01, 0xcf, //0x0000163d addq %r9, %r15 + 0x4c, 0x39, 0xc8, //0x00001640 cmpq %r9, %rax + 0x0f, 0x84, 0xcb, 0x00, 0x00, 0x00, //0x00001643 je LBB5_74 + 0x4d, 0x29, 0xce, //0x00001649 subq %r9, %r14 + 0x49, 0x29, 0xc1, //0x0000164c subq %rax, %r9 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x0000164f jmp LBB5_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001654 .p2align 4, 0x90 + //0x00001660 LBB5_39 + 0x49, 0xff, 0xc2, //0x00001660 incq %r10 + 0x49, 0x01, 0xc7, //0x00001663 addq %rax, %r15 + 0x49, 0xff, 0xc1, //0x00001666 incq %r9 + 0x0f, 0x84, 0xa5, 0x00, 0x00, 0x00, //0x00001669 je LBB5_74 + //0x0000166f LBB5_40 + 0x41, 0x0f, 0xb6, 0x0a, //0x0000166f movzbl (%r10), %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00001673 shlq $4, %rcx + 0x49, 0x8b, 0x1c, 0x08, //0x00001677 movq (%r8,%rcx), %rbx + 0x85, 0xdb, //0x0000167b testl %ebx, %ebx + 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000167d je LBB5_48 + 0x48, 0x63, 0xc3, //0x00001683 movslq %ebx, %rax + 0x49, 0x29, 0xc6, //0x00001686 subq %rax, %r14 + 0x0f, 0x8c, 0xd3, 0x02, 0x00, 0x00, //0x00001689 jl LBB5_75 + 0x48, 0xc1, 0xe3, 0x20, //0x0000168f shlq $32, %rbx + 0x49, 0x8d, 0x74, 0x08, 0x08, //0x00001693 leaq $8(%r8,%rcx), %rsi + 0x4c, 0x39, 0xeb, //0x00001698 cmpq %r13, %rbx + 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x0000169b jl LBB5_44 + 0x8b, 0x36, //0x000016a1 movl (%rsi), %esi + 0x41, 0x89, 0x37, //0x000016a3 movl %esi, (%r15) + 0x49, 0x8d, 0x74, 0x08, 0x0c, //0x000016a6 leaq $12(%r8,%rcx), %rsi + 0x49, 0x8d, 0x5f, 0x04, //0x000016ab leaq $4(%r15), %rbx + 0x48, 0x8d, 0x48, 0xfc, //0x000016af leaq $-4(%rax), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x000016b3 cmpq $2, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000016b7 jae LBB5_45 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000016bd jmp LBB5_46 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000016c2 .p2align 4, 0x90 + //0x000016d0 LBB5_44 + 0x4c, 0x89, 0xfb, //0x000016d0 movq %r15, %rbx + 0x48, 0x89, 0xc1, //0x000016d3 movq %rax, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x000016d6 cmpq $2, %rcx + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000016da jb LBB5_46 + //0x000016e0 LBB5_45 + 0x0f, 0xb7, 0x16, //0x000016e0 movzwl (%rsi), %edx + 0x66, 0x89, 0x13, //0x000016e3 movw %dx, (%rbx) + 0x48, 0x83, 0xc6, 0x02, //0x000016e6 addq $2, %rsi + 0x48, 0x83, 0xc3, 0x02, //0x000016ea addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x000016ee addq $-2, %rcx + //0x000016f2 LBB5_46 + 0x48, 0x85, 0xc9, //0x000016f2 testq %rcx, %rcx + 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x000016f5 je LBB5_39 + 0x0f, 0xb6, 0x0e, //0x000016fb movzbl (%rsi), %ecx + 0x88, 0x0b, //0x000016fe movb %cl, (%rbx) + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00001700 jmp LBB5_39 + //0x00001705 LBB5_48 + 0x4c, 0x89, 0xc8, //0x00001705 movq %r9, %rax + 0x48, 0xf7, 0xd8, //0x00001708 negq %rax + 0x4d, 0x85, 0xc9, //0x0000170b testq %r9, %r9 + 0x0f, 0x85, 0x62, 0xfc, 0xff, 0xff, //0x0000170e jne LBB5_3 + //0x00001714 LBB5_74 + 0x4d, 0x29, 0xe7, //0x00001714 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00001717 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000171a subq %rdi, %r10 + 0xe9, 0x4c, 0x02, 0x00, 0x00, //0x0000171d jmp LBB5_76 + //0x00001722 LBB5_51 + 0x4c, 0x8d, 0x0d, 0x57, 0xef, 0x00, 0x00, //0x00001722 leaq $61271(%rip), %r9 /* __EscTab+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x05, 0x9f, 0xfb, 0xff, 0xff, //0x00001729 vmovdqa $-1121(%rip), %xmm0 /* LCPI5_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xa7, 0xfb, 0xff, 0xff, //0x00001731 vmovdqa $-1113(%rip), %xmm1 /* LCPI5_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x00001739 vmovdqa $-1105(%rip), %xmm2 /* LCPI5_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00001741 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x4c, 0x89, 0xe3, //0x00001745 movq %r12, %rbx + 0x49, 0x89, 0xc2, //0x00001748 movq %rax, %r10 + //0x0000174b LBB5_52 + 0x49, 0x83, 0xfa, 0x10, //0x0000174b cmpq $16, %r10 + 0x0f, 0x8c, 0x5e, 0x00, 0x00, 0x00, //0x0000174f jl LBB5_57 + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001755 movl $16, %ecx + 0x31, 0xf6, //0x0000175a xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, //0x0000175c .p2align 4, 0x90 + //0x00001760 LBB5_54 + 0xc5, 0xfa, 0x6f, 0x24, 0x37, //0x00001760 vmovdqu (%rdi,%rsi), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x00001765 vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x00001769 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x0000176d vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x00001771 vpor %xmm6, %xmm7, %xmm6 + 0xc5, 0xfa, 0x7f, 0x24, 0x33, //0x00001775 vmovdqu %xmm4, (%rbx,%rsi) + 0xc5, 0xd9, 0x64, 0xe3, //0x0000177a vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe5, //0x0000177e vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xc9, 0xeb, 0xe4, //0x00001782 vpor %xmm4, %xmm6, %xmm4 + 0xc5, 0xf9, 0xd7, 0xd4, //0x00001786 vpmovmskb %xmm4, %edx + 0x66, 0x85, 0xd2, //0x0000178a testw %dx, %dx + 0x0f, 0x85, 0x36, 0x01, 0x00, 0x00, //0x0000178d jne LBB5_67 + 0x48, 0x83, 0xc6, 0x10, //0x00001793 addq $16, %rsi + 0x49, 0x8d, 0x54, 0x0a, 0xf0, //0x00001797 leaq $-16(%r10,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xf0, //0x0000179c addq $-16, %rcx + 0x48, 0x83, 0xfa, 0x1f, //0x000017a0 cmpq $31, %rdx + 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x000017a4 jg LBB5_54 + 0x48, 0x01, 0xf7, //0x000017aa addq %rsi, %rdi + 0x49, 0x29, 0xf2, //0x000017ad subq %rsi, %r10 + 0x48, 0x01, 0xf3, //0x000017b0 addq %rsi, %rbx + //0x000017b3 LBB5_57 + 0x49, 0x83, 0xfa, 0x08, //0x000017b3 cmpq $8, %r10 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x000017b7 jl LBB5_61 + 0x0f, 0xb6, 0x0f, //0x000017bd movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017c0 movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x000017c5 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x000017c9 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x000017ce addl %edx, %edx + 0x09, 0xca, //0x000017d0 orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x000017d2 movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x000017d6 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x000017db shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x000017de movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017e2 movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x000017e7 shll $3, %ecx + 0x09, 0xf1, //0x000017ea orl %esi, %ecx + 0x09, 0xd1, //0x000017ec orl %edx, %ecx + 0x48, 0x8b, 0x17, //0x000017ee movq (%rdi), %rdx + 0x48, 0x89, 0x13, //0x000017f1 movq %rdx, (%rbx) + 0x84, 0xc9, //0x000017f4 testb %cl, %cl + 0x0f, 0x85, 0x31, 0x01, 0x00, 0x00, //0x000017f6 jne LBB5_71 + 0x0f, 0xb6, 0x4f, 0x04, //0x000017fc movzbl $4(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001800 movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x05, //0x00001805 movzbl $5(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001809 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000180e addl %edx, %edx + 0x09, 0xca, //0x00001810 orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x06, //0x00001812 movzbl $6(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001816 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x0000181b shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x07, //0x0000181e movzbl $7(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001822 movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00001827 shll $3, %ecx + 0x09, 0xf1, //0x0000182a orl %esi, %ecx + 0x09, 0xd1, //0x0000182c orl %edx, %ecx + 0x84, 0xc9, //0x0000182e testb %cl, %cl + 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00001830 jne LBB5_72 + 0x48, 0x83, 0xc3, 0x08, //0x00001836 addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x0000183a addq $8, %rdi + 0x49, 0x83, 0xc2, 0xf8, //0x0000183e addq $-8, %r10 + //0x00001842 LBB5_61 + 0x49, 0x83, 0xfa, 0x04, //0x00001842 cmpq $4, %r10 + 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00001846 jl LBB5_64 + 0x0f, 0xb6, 0x0f, //0x0000184c movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000184f movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00001854 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001858 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000185d addl %edx, %edx + 0x09, 0xca, //0x0000185f orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x00001861 movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001865 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x0000186a shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x0000186d movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001871 movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00001876 shll $3, %ecx + 0x09, 0xf1, //0x00001879 orl %esi, %ecx + 0x09, 0xd1, //0x0000187b orl %edx, %ecx + 0x8b, 0x17, //0x0000187d movl (%rdi), %edx + 0x89, 0x13, //0x0000187f movl %edx, (%rbx) + 0x84, 0xc9, //0x00001881 testb %cl, %cl + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00001883 jne LBB5_71 + 0x48, 0x83, 0xc3, 0x04, //0x00001889 addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x0000188d addq $4, %rdi + 0x49, 0x83, 0xc2, 0xfc, //0x00001891 addq $-4, %r10 + //0x00001895 LBB5_64 + 0x4d, 0x85, 0xd2, //0x00001895 testq %r10, %r10 + 0x0f, 0x8e, 0xb9, 0x00, 0x00, 0x00, //0x00001898 jle LBB5_73 + 0x90, 0x90, //0x0000189e .p2align 4, 0x90 + //0x000018a0 LBB5_65 + 0x0f, 0xb6, 0x0f, //0x000018a0 movzbl (%rdi), %ecx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x000018a3 cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000018a8 jne LBB5_68 + 0x48, 0xff, 0xc7, //0x000018ae incq %rdi + 0x88, 0x0b, //0x000018b1 movb %cl, (%rbx) + 0x48, 0xff, 0xc3, //0x000018b3 incq %rbx + 0x49, 0x83, 0xfa, 0x01, //0x000018b6 cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x000018ba leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x000018be jg LBB5_65 + 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x000018c4 jmp LBB5_73 + //0x000018c9 LBB5_67 + 0x0f, 0xb7, 0xca, //0x000018c9 movzwl %dx, %ecx + 0x0f, 0xbc, 0xc9, //0x000018cc bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x000018cf addq %rcx, %rdi + 0x48, 0x01, 0xf7, //0x000018d2 addq %rsi, %rdi + 0x49, 0x29, 0xca, //0x000018d5 subq %rcx, %r10 + 0x49, 0x29, 0xf2, //0x000018d8 subq %rsi, %r10 + 0x48, 0x01, 0xcb, //0x000018db addq %rcx, %rbx + 0x48, 0x01, 0xf3, //0x000018de addq %rsi, %rbx + //0x000018e1 LBB5_68 + 0x8a, 0x0f, //0x000018e1 movb (%rdi), %cl + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018e3 .p2align 4, 0x90 + //0x000018f0 LBB5_69 + 0x48, 0x89, 0xda, //0x000018f0 movq %rbx, %rdx + 0x0f, 0xb6, 0xc9, //0x000018f3 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x000018f6 shlq $4, %rcx + 0x49, 0x63, 0x1c, 0x08, //0x000018fa movslq (%r8,%rcx), %rbx + 0x49, 0x8b, 0x4c, 0x08, 0x08, //0x000018fe movq $8(%r8,%rcx), %rcx + 0x48, 0x89, 0x0a, //0x00001903 movq %rcx, (%rdx) + 0x48, 0x01, 0xd3, //0x00001906 addq %rdx, %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00001909 cmpq $2, %r10 + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x0000190d jl LBB5_73 + 0x49, 0xff, 0xca, //0x00001913 decq %r10 + 0x0f, 0xb6, 0x4f, 0x01, //0x00001916 movzbl $1(%rdi), %ecx + 0x48, 0xff, 0xc7, //0x0000191a incq %rdi + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x0000191d cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00001922 jne LBB5_69 + 0xe9, 0x1e, 0xfe, 0xff, 0xff, //0x00001928 jmp LBB5_52 + //0x0000192d LBB5_71 + 0x0f, 0xbc, 0xc9, //0x0000192d bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x00001930 addq %rcx, %rdi + 0x49, 0x29, 0xca, //0x00001933 subq %rcx, %r10 + 0x48, 0x01, 0xcb, //0x00001936 addq %rcx, %rbx + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00001939 jmp LBB5_68 + //0x0000193e LBB5_72 + 0x0f, 0xbc, 0xc9, //0x0000193e bsfl %ecx, %ecx + 0x48, 0x8d, 0x51, 0x04, //0x00001941 leaq $4(%rcx), %rdx + 0x48, 0x8d, 0x7c, 0x0f, 0x04, //0x00001945 leaq $4(%rdi,%rcx), %rdi + 0x49, 0x29, 0xd2, //0x0000194a subq %rdx, %r10 + 0x48, 0x8d, 0x5c, 0x0b, 0x04, //0x0000194d leaq $4(%rbx,%rcx), %rbx + 0xe9, 0x8a, 0xff, 0xff, 0xff, //0x00001952 jmp LBB5_68 + //0x00001957 LBB5_73 + 0x4c, 0x29, 0xe3, //0x00001957 subq %r12, %rbx + 0x49, 0x89, 0x1b, //0x0000195a movq %rbx, (%r11) + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000195d jmp LBB5_77 + //0x00001962 LBB5_75 + 0x4d, 0x29, 0xe7, //0x00001962 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00001965 movq %r15, (%r11) + 0x49, 0xf7, 0xd2, //0x00001968 notq %r10 + 0x49, 0x01, 0xfa, //0x0000196b addq %rdi, %r10 + //0x0000196e LBB5_76 + 0x4c, 0x89, 0xd0, //0x0000196e movq %r10, %rax + //0x00001971 LBB5_77 + 0x48, 0x83, 0xc4, 0x08, //0x00001971 addq $8, %rsp + 0x5b, //0x00001975 popq %rbx + 0x41, 0x5c, //0x00001976 popq %r12 + 0x41, 0x5d, //0x00001978 popq %r13 + 0x41, 0x5e, //0x0000197a popq %r14 + 0x41, 0x5f, //0x0000197c popq %r15 + 0x5d, //0x0000197e popq %rbp + 0xc3, //0x0000197f retq + //0x00001980 LBB5_78 + 0x4d, 0x29, 0xe7, //0x00001980 subq %r12, %r15 + 0x49, 0xf7, 0xd1, //0x00001983 notq %r9 + 0x4d, 0x01, 0xcf, //0x00001986 addq %r9, %r15 + 0x4d, 0x89, 0x3b, //0x00001989 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000198c subq %rdi, %r10 + 0x4d, 0x01, 0xca, //0x0000198f addq %r9, %r10 + 0x49, 0xf7, 0xd2, //0x00001992 notq %r10 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00001995 jmp LBB5_76 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000199a .p2align 4, 0x00 + //0x000019a0 LCPI6_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000019a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000019b0 .p2align 4, 0x90 + //0x000019b0 _unquote + 0x55, //0x000019b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000019b1 movq %rsp, %rbp + 0x41, 0x57, //0x000019b4 pushq %r15 + 0x41, 0x56, //0x000019b6 pushq %r14 + 0x41, 0x55, //0x000019b8 pushq %r13 + 0x41, 0x54, //0x000019ba pushq %r12 + 0x53, //0x000019bc pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x000019bd subq $40, %rsp + 0x48, 0x85, 0xf6, //0x000019c1 testq %rsi, %rsi + 0x0f, 0x84, 0x6e, 0x06, 0x00, 0x00, //0x000019c4 je LBB6_82 + 0x49, 0x89, 0xf3, //0x000019ca movq %rsi, %r11 + 0x48, 0x89, 0x4d, 0xc8, //0x000019cd movq %rcx, $-56(%rbp) + 0x4c, 0x89, 0xc0, //0x000019d1 movq %r8, %rax + 0x4c, 0x89, 0x45, 0xb8, //0x000019d4 movq %r8, $-72(%rbp) + 0x45, 0x89, 0xc2, //0x000019d8 movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x000019db andl $1, %r10d + 0x4c, 0x8d, 0x05, 0x9a, 0xed, 0x00, 0x00, //0x000019df leaq $60826(%rip), %r8 /* __UnquoteTab+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x05, 0xb2, 0xff, 0xff, 0xff, //0x000019e6 vmovdqa $-78(%rip), %xmm0 /* LCPI6_0+0(%rip) */ + 0x49, 0x89, 0xf9, //0x000019ee movq %rdi, %r9 + 0x49, 0x89, 0xf5, //0x000019f1 movq %rsi, %r13 + 0x48, 0x89, 0xd0, //0x000019f4 movq %rdx, %rax + //0x000019f7 LBB6_2 + 0x41, 0x80, 0x39, 0x5c, //0x000019f7 cmpb $92, (%r9) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000019fb jne LBB6_4 + 0x31, 0xf6, //0x00001a01 xorl %esi, %esi + 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00001a03 jmp LBB6_13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a08 .p2align 4, 0x90 + //0x00001a10 LBB6_4 + 0x4d, 0x89, 0xef, //0x00001a10 movq %r13, %r15 + 0x48, 0x89, 0xc6, //0x00001a13 movq %rax, %rsi + 0x4d, 0x89, 0xce, //0x00001a16 movq %r9, %r14 + 0x49, 0x83, 0xfd, 0x10, //0x00001a19 cmpq $16, %r13 + 0x0f, 0x8c, 0x3d, 0x00, 0x00, 0x00, //0x00001a1d jl LBB6_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a23 .p2align 4, 0x90 + //0x00001a30 LBB6_5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x0e, //0x00001a30 vmovdqu (%r14), %xmm1 + 0xc5, 0xfa, 0x7f, 0x0e, //0x00001a35 vmovdqu %xmm1, (%rsi) + 0xc5, 0xf1, 0x74, 0xc8, //0x00001a39 vpcmpeqb %xmm0, %xmm1, %xmm1 + 0xc5, 0xf9, 0xd7, 0xd9, //0x00001a3d vpmovmskb %xmm1, %ebx + 0x66, 0x85, 0xdb, //0x00001a41 testw %bx, %bx + 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x00001a44 jne LBB6_12 + 0x49, 0x83, 0xc6, 0x10, //0x00001a4a addq $16, %r14 + 0x48, 0x83, 0xc6, 0x10, //0x00001a4e addq $16, %rsi + 0x49, 0x83, 0xff, 0x1f, //0x00001a52 cmpq $31, %r15 + 0x4d, 0x8d, 0x7f, 0xf0, //0x00001a56 leaq $-16(%r15), %r15 + 0x0f, 0x8f, 0xd0, 0xff, 0xff, 0xff, //0x00001a5a jg LBB6_5 + //0x00001a60 LBB6_7 + 0x4d, 0x85, 0xff, //0x00001a60 testq %r15, %r15 + 0x0f, 0x84, 0xd5, 0x05, 0x00, 0x00, //0x00001a63 je LBB6_83 + 0x31, 0xdb, //0x00001a69 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a6b .p2align 4, 0x90 + //0x00001a70 LBB6_9 + 0x41, 0x0f, 0xb6, 0x0c, 0x1e, //0x00001a70 movzbl (%r14,%rbx), %ecx + 0x80, 0xf9, 0x5c, //0x00001a75 cmpb $92, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001a78 je LBB6_11 + 0x88, 0x0c, 0x1e, //0x00001a7e movb %cl, (%rsi,%rbx) + 0x48, 0xff, 0xc3, //0x00001a81 incq %rbx + 0x49, 0x39, 0xdf, //0x00001a84 cmpq %rbx, %r15 + 0x0f, 0x85, 0xe3, 0xff, 0xff, 0xff, //0x00001a87 jne LBB6_9 + 0xe9, 0xac, 0x05, 0x00, 0x00, //0x00001a8d jmp LBB6_83 + //0x00001a92 LBB6_11 + 0x49, 0x01, 0xde, //0x00001a92 addq %rbx, %r14 + 0x4d, 0x29, 0xce, //0x00001a95 subq %r9, %r14 + 0x4c, 0x89, 0xf6, //0x00001a98 movq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00001a9b cmpq $-1, %rsi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00001a9f jne LBB6_13 + 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00001aa5 jmp LBB6_83 + //0x00001aaa LBB6_12 + 0x0f, 0xb7, 0xcb, //0x00001aaa movzwl %bx, %ecx + 0x4d, 0x29, 0xce, //0x00001aad subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xf1, //0x00001ab0 bsfq %rcx, %rsi + 0x4c, 0x01, 0xf6, //0x00001ab4 addq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00001ab7 cmpq $-1, %rsi + 0x0f, 0x84, 0x7d, 0x05, 0x00, 0x00, //0x00001abb je LBB6_83 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ac1 .p2align 4, 0x90 + //0x00001ad0 LBB6_13 + 0x48, 0x8d, 0x4e, 0x02, //0x00001ad0 leaq $2(%rsi), %rcx + 0x49, 0x29, 0xcd, //0x00001ad4 subq %rcx, %r13 + 0x0f, 0x88, 0x2a, 0x06, 0x00, 0x00, //0x00001ad7 js LBB6_94 + 0x4d, 0x8d, 0x4c, 0x31, 0x02, //0x00001add leaq $2(%r9,%rsi), %r9 + 0x4d, 0x85, 0xd2, //0x00001ae2 testq %r10, %r10 + 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00001ae5 jne LBB6_58 + //0x00001aeb LBB6_15 + 0x48, 0x01, 0xf0, //0x00001aeb addq %rsi, %rax + 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x00001aee movzbl $-1(%r9), %ecx + 0x42, 0x8a, 0x0c, 0x01, //0x00001af3 movb (%rcx,%r8), %cl + 0x80, 0xf9, 0xff, //0x00001af7 cmpb $-1, %cl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00001afa je LBB6_18 + 0x84, 0xc9, //0x00001b00 testb %cl, %cl + 0x0f, 0x84, 0x12, 0x06, 0x00, 0x00, //0x00001b02 je LBB6_95 + 0x88, 0x08, //0x00001b08 movb %cl, (%rax) + 0x48, 0xff, 0xc0, //0x00001b0a incq %rax + 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x00001b0d jmp LBB6_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b12 .p2align 4, 0x90 + //0x00001b20 LBB6_18 + 0x49, 0x83, 0xfd, 0x03, //0x00001b20 cmpq $3, %r13 + 0x0f, 0x8e, 0xdd, 0x05, 0x00, 0x00, //0x00001b24 jle LBB6_94 + 0x41, 0x8b, 0x31, //0x00001b2a movl (%r9), %esi + 0x89, 0xf1, //0x00001b2d movl %esi, %ecx + 0xf7, 0xd1, //0x00001b2f notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001b31 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001b37 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001b3d testl %ebx, %ecx + 0x0f, 0x85, 0x0e, 0x05, 0x00, 0x00, //0x00001b3f jne LBB6_85 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001b45 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001b4b orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001b4d testl $-2139062144, %ebx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001b53 jne LBB6_85 + 0x89, 0xf3, //0x00001b59 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001b5b andl $2139062143, %ebx + 0x41, 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001b61 movl $-1061109568, %r14d + 0x41, 0x29, 0xde, //0x00001b67 subl %ebx, %r14d + 0x44, 0x8d, 0xbb, 0x46, 0x46, 0x46, 0x46, //0x00001b6a leal $1179010630(%rbx), %r15d + 0x41, 0x21, 0xce, //0x00001b71 andl %ecx, %r14d + 0x45, 0x85, 0xfe, //0x00001b74 testl %r15d, %r14d + 0x0f, 0x85, 0xd6, 0x04, 0x00, 0x00, //0x00001b77 jne LBB6_85 + 0x41, 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001b7d movl $-522133280, %r14d + 0x41, 0x29, 0xde, //0x00001b83 subl %ebx, %r14d + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001b86 addl $960051513, %ebx + 0x44, 0x21, 0xf1, //0x00001b8c andl %r14d, %ecx + 0x85, 0xd9, //0x00001b8f testl %ebx, %ecx + 0x0f, 0x85, 0xbc, 0x04, 0x00, 0x00, //0x00001b91 jne LBB6_85 + 0x0f, 0xce, //0x00001b97 bswapl %esi + 0x89, 0xf1, //0x00001b99 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001b9b shrl $4, %ecx + 0xf7, 0xd1, //0x00001b9e notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001ba0 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001ba6 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001ba9 andl $252645135, %esi + 0x01, 0xce, //0x00001baf addl %ecx, %esi + 0x89, 0xf1, //0x00001bb1 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001bb3 shrl $4, %ecx + 0x09, 0xf1, //0x00001bb6 orl %esi, %ecx + 0x44, 0x0f, 0xb6, 0xf9, //0x00001bb8 movzbl %cl, %r15d + 0xc1, 0xe9, 0x08, //0x00001bbc shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001bbf andl $65280, %ecx + 0x41, 0x09, 0xcf, //0x00001bc5 orl %ecx, %r15d + 0x4d, 0x8d, 0x75, 0xfc, //0x00001bc8 leaq $-4(%r13), %r14 + 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00001bcc cmpl $128, %r15d + 0x0f, 0x82, 0x46, 0x03, 0x00, 0x00, //0x00001bd3 jb LBB6_66 + 0x45, 0x31, 0xe4, //0x00001bd9 xorl %r12d, %r12d + 0x4d, 0x85, 0xd2, //0x00001bdc testq %r10, %r10 + 0x0f, 0x84, 0x5b, 0x01, 0x00, 0x00, //0x00001bdf je LBB6_40 + //0x00001be5 LBB6_25 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001be5 cmpl $2048, %r15d + 0x0f, 0x82, 0x3c, 0x03, 0x00, 0x00, //0x00001bec jb LBB6_68 + 0x44, 0x89, 0xf9, //0x00001bf2 movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001bf5 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001bfb cmpl $55296, %ecx + 0x0f, 0x85, 0x89, 0x02, 0x00, 0x00, //0x00001c01 jne LBB6_54 + 0x4d, 0x85, 0xf6, //0x00001c07 testq %r14, %r14 + 0x0f, 0x8e, 0x6b, 0x03, 0x00, 0x00, //0x00001c0a jle LBB6_72 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001c10 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00001c16 jne LBB6_73 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001c1c cmpl $56319, %r15d + 0x0f, 0x87, 0x34, 0x03, 0x00, 0x00, //0x00001c23 ja LBB6_70 + 0x49, 0x83, 0xfe, 0x07, //0x00001c29 cmpq $7, %r14 + 0x0f, 0x8c, 0x2a, 0x03, 0x00, 0x00, //0x00001c2d jl LBB6_70 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x00001c33 cmpb $92, $5(%r9,%r12) + 0x0f, 0x85, 0x1e, 0x03, 0x00, 0x00, //0x00001c39 jne LBB6_70 + 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x00001c3f cmpb $117, $6(%r9,%r12) + 0x0f, 0x85, 0x12, 0x03, 0x00, 0x00, //0x00001c45 jne LBB6_70 + 0x43, 0x8b, 0x74, 0x21, 0x07, //0x00001c4b movl $7(%r9,%r12), %esi + 0x89, 0xf1, //0x00001c50 movl %esi, %ecx + 0xf7, 0xd1, //0x00001c52 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001c54 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001c5a andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001c60 testl %ebx, %ecx + 0x0f, 0x85, 0xe8, 0x04, 0x00, 0x00, //0x00001c62 jne LBB6_99 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001c68 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001c6e orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001c70 testl $-2139062144, %ebx + 0x0f, 0x85, 0xd4, 0x04, 0x00, 0x00, //0x00001c76 jne LBB6_99 + 0x89, 0xf3, //0x00001c7c movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001c7e andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c84 movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001c8b subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00001c8e movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001c92 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x00001c98 movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00001c9b andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00001c9e movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00001ca1 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00001ca4 movq $-80(%rbp), %rsi + 0x0f, 0x85, 0xa2, 0x04, 0x00, 0x00, //0x00001ca8 jne LBB6_99 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001cae movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001cb5 subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001cb8 addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00001cbe andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00001cc1 testl %ebx, %ecx + 0x0f, 0x85, 0x87, 0x04, 0x00, 0x00, //0x00001cc3 jne LBB6_99 + 0x0f, 0xce, //0x00001cc9 bswapl %esi + 0x89, 0xf1, //0x00001ccb movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001ccd shrl $4, %ecx + 0xf7, 0xd1, //0x00001cd0 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001cd2 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001cd8 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001cdb andl $252645135, %esi + 0x01, 0xce, //0x00001ce1 addl %ecx, %esi + 0x89, 0xf1, //0x00001ce3 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001ce5 shrl $4, %ecx + 0x09, 0xf1, //0x00001ce8 orl %esi, %ecx + 0x89, 0xce, //0x00001cea movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00001cec shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001cef andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00001cf5 movzbl %cl, %ebx + 0x09, 0xf3, //0x00001cf8 orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001cfa andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001d00 cmpl $14417920, %ecx + 0x0f, 0x84, 0xac, 0x02, 0x00, 0x00, //0x00001d06 je LBB6_77 + 0xf6, 0x45, 0xb8, 0x02, //0x00001d0c testb $2, $-72(%rbp) + 0x0f, 0x84, 0x41, 0x05, 0x00, 0x00, //0x00001d10 je LBB6_114 + 0x49, 0x83, 0xc6, 0xf9, //0x00001d16 addq $-7, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001d1a movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001d1f movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001d23 addq $3, %rax + 0x49, 0x83, 0xc4, 0x07, //0x00001d27 addq $7, %r12 + 0x41, 0x89, 0xdf, //0x00001d2b movl %ebx, %r15d + 0x83, 0xfb, 0x7f, //0x00001d2e cmpl $127, %ebx + 0x0f, 0x87, 0xae, 0xfe, 0xff, 0xff, //0x00001d31 ja LBB6_25 + 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00001d37 jmp LBB6_53 + 0x90, 0x90, 0x90, 0x90, //0x00001d3c .p2align 4, 0x90 + //0x00001d40 LBB6_40 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001d40 cmpl $2048, %r15d + 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x00001d47 jb LBB6_68 + 0x44, 0x89, 0xf9, //0x00001d4d movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001d50 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001d56 cmpl $55296, %ecx + 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001d5c jne LBB6_54 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001d62 cmpl $56319, %r15d + 0x0f, 0x87, 0xe4, 0x01, 0x00, 0x00, //0x00001d69 ja LBB6_69 + 0x49, 0x83, 0xfe, 0x06, //0x00001d6f cmpq $6, %r14 + 0x0f, 0x8c, 0xda, 0x01, 0x00, 0x00, //0x00001d73 jl LBB6_69 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001d79 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0xce, 0x01, 0x00, 0x00, //0x00001d7f jne LBB6_69 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x00001d85 cmpb $117, $5(%r9,%r12) + 0x0f, 0x85, 0xc2, 0x01, 0x00, 0x00, //0x00001d8b jne LBB6_69 + 0x43, 0x8b, 0x74, 0x21, 0x06, //0x00001d91 movl $6(%r9,%r12), %esi + 0x89, 0xf1, //0x00001d96 movl %esi, %ecx + 0xf7, 0xd1, //0x00001d98 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001d9a leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001da0 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001da6 testl %ebx, %ecx + 0x0f, 0x85, 0x98, 0x03, 0x00, 0x00, //0x00001da8 jne LBB6_98 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001dae leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001db4 orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001db6 testl $-2139062144, %ebx + 0x0f, 0x85, 0x84, 0x03, 0x00, 0x00, //0x00001dbc jne LBB6_98 + 0x89, 0xf3, //0x00001dc2 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dc4 andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dca movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001dd1 subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00001dd4 movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001dd8 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x00001dde movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00001de1 andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00001de4 movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00001de7 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00001dea movq $-80(%rbp), %rsi + 0x0f, 0x85, 0x52, 0x03, 0x00, 0x00, //0x00001dee jne LBB6_98 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001df4 movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001dfb subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001dfe addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00001e04 andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00001e07 testl %ebx, %ecx + 0x0f, 0x85, 0x37, 0x03, 0x00, 0x00, //0x00001e09 jne LBB6_98 + 0x0f, 0xce, //0x00001e0f bswapl %esi + 0x89, 0xf1, //0x00001e11 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001e13 shrl $4, %ecx + 0xf7, 0xd1, //0x00001e16 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e18 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001e1e leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e21 andl $252645135, %esi + 0x01, 0xce, //0x00001e27 addl %ecx, %esi + 0x89, 0xf1, //0x00001e29 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001e2b shrl $4, %ecx + 0x09, 0xf1, //0x00001e2e orl %esi, %ecx + 0x89, 0xce, //0x00001e30 movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00001e32 shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001e35 andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00001e3b movzbl %cl, %ebx + 0x09, 0xf3, //0x00001e3e orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001e40 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001e46 cmpl $14417920, %ecx + 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x00001e4c je LBB6_76 + 0xf6, 0x45, 0xb8, 0x02, //0x00001e52 testb $2, $-72(%rbp) + 0x0f, 0x84, 0xf1, 0x03, 0x00, 0x00, //0x00001e56 je LBB6_113 + 0x49, 0x83, 0xc6, 0xfa, //0x00001e5c addq $-6, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001e60 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001e65 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001e69 addq $3, %rax + 0x49, 0x83, 0xc4, 0x06, //0x00001e6d addq $6, %r12 + 0x41, 0x89, 0xdf, //0x00001e71 movl %ebx, %r15d + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e74 cmpl $128, %ebx + 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x00001e7a jae LBB6_40 + //0x00001e80 LBB6_53 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e80 leaq $4(%r9,%r12), %r9 + 0x41, 0x89, 0xdf, //0x00001e85 movl %ebx, %r15d + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x00001e88 jmp LBB6_67 + 0x90, 0x90, 0x90, //0x00001e8d .p2align 4, 0x90 + //0x00001e90 LBB6_54 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e90 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001e95 movl %r15d, %ecx + 0xc1, 0xe9, 0x0c, //0x00001e98 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x00001e9b orb $-32, %cl + 0x88, 0x08, //0x00001e9e movb %cl, (%rax) + 0x44, 0x89, 0xf9, //0x00001ea0 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001ea3 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00001ea6 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00001ea9 orb $-128, %cl + 0x88, 0x48, 0x01, //0x00001eac movb %cl, $1(%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001eaf andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001eb3 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x02, //0x00001eb7 movb %r15b, $2(%rax) + //0x00001ebb LBB6_55 + 0x48, 0x83, 0xc0, 0x03, //0x00001ebb addq $3, %rax + //0x00001ebf LBB6_56 + 0x4d, 0x89, 0xf5, //0x00001ebf movq %r14, %r13 + //0x00001ec2 LBB6_57 + 0x4d, 0x85, 0xed, //0x00001ec2 testq %r13, %r13 + 0x0f, 0x85, 0x2c, 0xfb, 0xff, 0xff, //0x00001ec5 jne LBB6_2 + 0xe9, 0x63, 0x02, 0x00, 0x00, //0x00001ecb jmp LBB6_96 + //0x00001ed0 LBB6_58 + 0x45, 0x85, 0xed, //0x00001ed0 testl %r13d, %r13d + 0x0f, 0x84, 0x2e, 0x02, 0x00, 0x00, //0x00001ed3 je LBB6_94 + 0x41, 0x80, 0x79, 0xff, 0x5c, //0x00001ed9 cmpb $92, $-1(%r9) + 0x0f, 0x85, 0x57, 0x02, 0x00, 0x00, //0x00001ede jne LBB6_97 + 0x41, 0x80, 0x39, 0x5c, //0x00001ee4 cmpb $92, (%r9) + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00001ee8 jne LBB6_65 + 0x41, 0x83, 0xfd, 0x01, //0x00001eee cmpl $1, %r13d + 0x0f, 0x8e, 0x0f, 0x02, 0x00, 0x00, //0x00001ef2 jle LBB6_94 + 0x41, 0x8a, 0x49, 0x01, //0x00001ef8 movb $1(%r9), %cl + 0x80, 0xf9, 0x22, //0x00001efc cmpb $34, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00001eff je LBB6_64 + 0x80, 0xf9, 0x5c, //0x00001f05 cmpb $92, %cl + 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00001f08 jne LBB6_109 + //0x00001f0e LBB6_64 + 0x49, 0xff, 0xc1, //0x00001f0e incq %r9 + 0x49, 0xff, 0xcd, //0x00001f11 decq %r13 + //0x00001f14 LBB6_65 + 0x49, 0xff, 0xc1, //0x00001f14 incq %r9 + 0x49, 0xff, 0xcd, //0x00001f17 decq %r13 + 0xe9, 0xcc, 0xfb, 0xff, 0xff, //0x00001f1a jmp LBB6_15 + //0x00001f1f LBB6_66 + 0x49, 0x83, 0xc1, 0x04, //0x00001f1f addq $4, %r9 + //0x00001f23 LBB6_67 + 0x44, 0x88, 0x38, //0x00001f23 movb %r15b, (%rax) + 0x48, 0xff, 0xc0, //0x00001f26 incq %rax + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00001f29 jmp LBB6_56 + //0x00001f2e LBB6_68 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f2e leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001f33 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001f36 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00001f39 orb $-64, %cl + 0x88, 0x08, //0x00001f3c movb %cl, (%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001f3e andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001f42 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x01, //0x00001f46 movb %r15b, $1(%rax) + 0x48, 0x83, 0xc0, 0x02, //0x00001f4a addq $2, %rax + 0xe9, 0x6c, 0xff, 0xff, 0xff, //0x00001f4e jmp LBB6_56 + //0x00001f53 LBB6_69 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f53 leaq $4(%r9,%r12), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001f58 jmp LBB6_71 + //0x00001f5d LBB6_70 + 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x00001f5d leaq $5(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001f62 subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xfb, //0x00001f65 addq $-5, %r13 + 0x4d, 0x89, 0xee, //0x00001f69 movq %r13, %r14 + //0x00001f6c LBB6_71 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f6c testb $2, $-72(%rbp) + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00001f70 jne LBB6_75 + 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x00001f76 jmp LBB6_116 + //0x00001f7b LBB6_72 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f7b testb $2, $-72(%rbp) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00001f7f jne LBB6_74 + 0xe9, 0x7d, 0x01, 0x00, 0x00, //0x00001f85 jmp LBB6_94 + //0x00001f8a LBB6_73 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f8a testb $2, $-72(%rbp) + 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x00001f8e je LBB6_117 + //0x00001f94 LBB6_74 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f94 leaq $4(%r9,%r12), %r9 + //0x00001f99 LBB6_75 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001f99 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001f9e movb $-67, $2(%rax) + 0xe9, 0x14, 0xff, 0xff, 0xff, //0x00001fa2 jmp LBB6_55 + //0x00001fa7 LBB6_76 + 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00001fa7 leaq $10(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001fac subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf6, //0x00001faf addq $-10, %r13 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00001fb3 jmp LBB6_78 + //0x00001fb8 LBB6_77 + 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x00001fb8 leaq $11(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001fbd subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf5, //0x00001fc0 addq $-11, %r13 + //0x00001fc4 LBB6_78 + 0x41, 0xc1, 0xe7, 0x0a, //0x00001fc4 shll $10, %r15d + 0x41, 0x8d, 0x8c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x00001fc8 leal $-56613888(%r15,%rbx), %ecx + 0x81, 0xf9, 0x00, 0x00, 0x11, 0x00, //0x00001fd0 cmpl $1114112, %ecx + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00001fd6 jb LBB6_81 + 0xf6, 0x45, 0xb8, 0x02, //0x00001fdc testb $2, $-72(%rbp) + 0x0f, 0x84, 0x4d, 0x02, 0x00, 0x00, //0x00001fe0 je LBB6_111 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001fe6 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001feb movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001fef addq $3, %rax + 0xe9, 0xca, 0xfe, 0xff, 0xff, //0x00001ff3 jmp LBB6_57 + //0x00001ff8 LBB6_81 + 0x89, 0xce, //0x00001ff8 movl %ecx, %esi + 0xc1, 0xee, 0x12, //0x00001ffa shrl $18, %esi + 0x40, 0x80, 0xce, 0xf0, //0x00001ffd orb $-16, %sil + 0x40, 0x88, 0x30, //0x00002001 movb %sil, (%rax) + 0x89, 0xce, //0x00002004 movl %ecx, %esi + 0xc1, 0xee, 0x0c, //0x00002006 shrl $12, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x00002009 andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000200d orb $-128, %sil + 0x40, 0x88, 0x70, 0x01, //0x00002011 movb %sil, $1(%rax) + 0x89, 0xce, //0x00002015 movl %ecx, %esi + 0xc1, 0xee, 0x06, //0x00002017 shrl $6, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x0000201a andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000201e orb $-128, %sil + 0x40, 0x88, 0x70, 0x02, //0x00002022 movb %sil, $2(%rax) + 0x80, 0xe1, 0x3f, //0x00002026 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00002029 orb $-128, %cl + 0x88, 0x48, 0x03, //0x0000202c movb %cl, $3(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x0000202f addq $4, %rax + 0xe9, 0x8a, 0xfe, 0xff, 0xff, //0x00002033 jmp LBB6_57 + //0x00002038 LBB6_82 + 0x45, 0x31, 0xed, //0x00002038 xorl %r13d, %r13d + 0x48, 0x89, 0xd0, //0x0000203b movq %rdx, %rax + //0x0000203e LBB6_83 + 0x4c, 0x01, 0xe8, //0x0000203e addq %r13, %rax + 0x48, 0x29, 0xd0, //0x00002041 subq %rdx, %rax + //0x00002044 LBB6_84 + 0x48, 0x83, 0xc4, 0x28, //0x00002044 addq $40, %rsp + 0x5b, //0x00002048 popq %rbx + 0x41, 0x5c, //0x00002049 popq %r12 + 0x41, 0x5d, //0x0000204b popq %r13 + 0x41, 0x5e, //0x0000204d popq %r14 + 0x41, 0x5f, //0x0000204f popq %r15 + 0x5d, //0x00002051 popq %rbp + 0xc3, //0x00002052 retq + //0x00002053 LBB6_85 + 0x4c, 0x89, 0xca, //0x00002053 movq %r9, %rdx + 0x48, 0x29, 0xfa, //0x00002056 subq %rdi, %rdx + 0x48, 0x8b, 0x7d, 0xc8, //0x00002059 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x17, //0x0000205d movq %rdx, (%rdi) + 0x41, 0x8a, 0x09, //0x00002060 movb (%r9), %cl + 0x8d, 0x71, 0xd0, //0x00002063 leal $-48(%rcx), %esi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002066 movq $-2, %rax + 0x40, 0x80, 0xfe, 0x0a, //0x0000206d cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002071 jb LBB6_87 + 0x80, 0xe1, 0xdf, //0x00002077 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000207a addb $-65, %cl + 0x80, 0xf9, 0x05, //0x0000207d cmpb $5, %cl + 0x0f, 0x87, 0xbe, 0xff, 0xff, 0xff, //0x00002080 ja LBB6_84 + //0x00002086 LBB6_87 + 0x48, 0x8d, 0x4a, 0x01, //0x00002086 leaq $1(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x0000208a movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x01, //0x0000208d movb $1(%r9), %cl + 0x8d, 0x71, 0xd0, //0x00002091 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x00002094 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002098 jb LBB6_89 + 0x80, 0xe1, 0xdf, //0x0000209e andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020a1 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020a4 cmpb $5, %cl + 0x0f, 0x87, 0x97, 0xff, 0xff, 0xff, //0x000020a7 ja LBB6_84 + //0x000020ad LBB6_89 + 0x48, 0x8d, 0x4a, 0x02, //0x000020ad leaq $2(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000020b1 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x02, //0x000020b4 movb $2(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000020b8 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000020bb cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020bf jb LBB6_91 + 0x80, 0xe1, 0xdf, //0x000020c5 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020c8 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020cb cmpb $5, %cl + 0x0f, 0x87, 0x70, 0xff, 0xff, 0xff, //0x000020ce ja LBB6_84 + //0x000020d4 LBB6_91 + 0x48, 0x8d, 0x4a, 0x03, //0x000020d4 leaq $3(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000020d8 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x03, //0x000020db movb $3(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000020df leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000020e2 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020e6 jb LBB6_93 + 0x80, 0xe1, 0xdf, //0x000020ec andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020ef addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020f2 cmpb $5, %cl + 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x000020f5 ja LBB6_84 + //0x000020fb LBB6_93 + 0x48, 0x83, 0xc2, 0x04, //0x000020fb addq $4, %rdx + 0x48, 0x89, 0x17, //0x000020ff movq %rdx, (%rdi) + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002102 jmp LBB6_84 + //0x00002107 LBB6_94 + 0x48, 0x8b, 0x45, 0xc8, //0x00002107 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x18, //0x0000210b movq %r11, (%rax) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000210e movq $-1, %rax + 0xe9, 0x2a, 0xff, 0xff, 0xff, //0x00002115 jmp LBB6_84 + //0x0000211a LBB6_95 + 0x48, 0xf7, 0xd7, //0x0000211a notq %rdi + 0x49, 0x01, 0xf9, //0x0000211d addq %rdi, %r9 + 0x48, 0x8b, 0x45, 0xc8, //0x00002120 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002124 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00002127 movq $-3, %rax + 0xe9, 0x11, 0xff, 0xff, 0xff, //0x0000212e jmp LBB6_84 + //0x00002133 LBB6_96 + 0x45, 0x31, 0xed, //0x00002133 xorl %r13d, %r13d + 0xe9, 0x03, 0xff, 0xff, 0xff, //0x00002136 jmp LBB6_83 + //0x0000213b LBB6_97 + 0x48, 0xf7, 0xd7, //0x0000213b notq %rdi + 0x49, 0x01, 0xf9, //0x0000213e addq %rdi, %r9 + 0xe9, 0xda, 0x00, 0x00, 0x00, //0x00002141 jmp LBB6_110 + //0x00002146 LBB6_98 + 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x00002146 leaq $4(%r9,%r12), %rsi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x0000214b jmp LBB6_100 + //0x00002150 LBB6_99 + 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00002150 leaq $5(%r9,%r12), %rsi + //0x00002155 LBB6_100 + 0x48, 0x89, 0xf2, //0x00002155 movq %rsi, %rdx + 0x48, 0x29, 0xfa, //0x00002158 subq %rdi, %rdx + 0x48, 0x83, 0xc2, 0x02, //0x0000215b addq $2, %rdx + 0x48, 0x8b, 0x45, 0xc8, //0x0000215f movq $-56(%rbp), %rax + 0x48, 0x89, 0x10, //0x00002163 movq %rdx, (%rax) + 0x8a, 0x4e, 0x02, //0x00002166 movb $2(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x00002169 leal $-48(%rcx), %edi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000216c movq $-2, %rax + 0x40, 0x80, 0xff, 0x0a, //0x00002173 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002177 jb LBB6_102 + 0x80, 0xe1, 0xdf, //0x0000217d andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00002180 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00002183 cmpb $5, %cl + 0x0f, 0x87, 0xb8, 0xfe, 0xff, 0xff, //0x00002186 ja LBB6_84 + //0x0000218c LBB6_102 + 0x48, 0x8d, 0x4a, 0x01, //0x0000218c leaq $1(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x00002190 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x00002194 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x03, //0x00002197 movb $3(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x0000219a leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x0000219d cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021a1 jb LBB6_104 + 0x80, 0xe1, 0xdf, //0x000021a7 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021aa addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000021ad cmpb $5, %cl + 0x0f, 0x87, 0x8e, 0xfe, 0xff, 0xff, //0x000021b0 ja LBB6_84 + //0x000021b6 LBB6_104 + 0x48, 0x8d, 0x4a, 0x02, //0x000021b6 leaq $2(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000021ba movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000021be movq %rcx, (%rdi) + 0x8a, 0x4e, 0x04, //0x000021c1 movb $4(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x000021c4 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000021c7 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021cb jb LBB6_106 + 0x80, 0xe1, 0xdf, //0x000021d1 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021d4 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000021d7 cmpb $5, %cl + 0x0f, 0x87, 0x64, 0xfe, 0xff, 0xff, //0x000021da ja LBB6_84 + //0x000021e0 LBB6_106 + 0x48, 0x8d, 0x4a, 0x03, //0x000021e0 leaq $3(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000021e4 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000021e8 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x05, //0x000021eb movb $5(%rsi), %cl + 0x8d, 0x71, 0xd0, //0x000021ee leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000021f1 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021f5 jb LBB6_108 + 0x80, 0xe1, 0xdf, //0x000021fb andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021fe addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00002201 cmpb $5, %cl + 0x0f, 0x87, 0x3a, 0xfe, 0xff, 0xff, //0x00002204 ja LBB6_84 + //0x0000220a LBB6_108 + 0x48, 0x83, 0xc2, 0x04, //0x0000220a addq $4, %rdx + 0x48, 0x8b, 0x4d, 0xc8, //0x0000220e movq $-56(%rbp), %rcx + 0x48, 0x89, 0x11, //0x00002212 movq %rdx, (%rcx) + 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00002215 jmp LBB6_84 + //0x0000221a LBB6_109 + 0x49, 0x29, 0xf9, //0x0000221a subq %rdi, %r9 + 0x49, 0xff, 0xc1, //0x0000221d incq %r9 + //0x00002220 LBB6_110 + 0x48, 0x8b, 0x45, 0xc8, //0x00002220 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002224 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002227 movq $-2, %rax + 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x0000222e jmp LBB6_84 + //0x00002233 LBB6_111 + 0x49, 0x29, 0xf9, //0x00002233 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0xfc, //0x00002236 addq $-4, %r9 + //0x0000223a LBB6_112 + 0x48, 0x8b, 0x45, 0xc8, //0x0000223a movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x0000223e movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00002241 movq $-4, %rax + 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x00002248 jmp LBB6_84 + //0x0000224d LBB6_113 + 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000224d leaq $10(%r9,%r12), %rax + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002252 jmp LBB6_115 + //0x00002257 LBB6_114 + 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00002257 leaq $11(%r9,%r12), %rax + //0x0000225c LBB6_115 + 0x48, 0x29, 0xf8, //0x0000225c subq %rdi, %rax + 0x48, 0x83, 0xc0, 0xfc, //0x0000225f addq $-4, %rax + 0x48, 0x8b, 0x4d, 0xc8, //0x00002263 movq $-56(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00002267 movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000226a movq $-4, %rax + 0xe9, 0xce, 0xfd, 0xff, 0xff, //0x00002271 jmp LBB6_84 + //0x00002276 LBB6_116 + 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x00002276 leaq $4(%r10,%rdi), %rax + 0x49, 0x29, 0xc1, //0x0000227b subq %rax, %r9 + 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x0000227e jmp LBB6_112 + //0x00002283 LBB6_117 + 0x4d, 0x01, 0xe1, //0x00002283 addq %r12, %r9 + 0x49, 0x29, 0xf9, //0x00002286 subq %rdi, %r9 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002289 jmp LBB6_112 + 0x00, 0x00, //0x0000228e .p2align 4, 0x00 + //0x00002290 LCPI7_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002290 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x000022a0 LCPI7_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000022a0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x000022b0 LCPI7_2 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000022b0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x000022c0 LCPI7_3 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000022c0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x000022d0 .p2align 4, 0x90 + //0x000022d0 _html_escape + 0x55, //0x000022d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000022d1 movq %rsp, %rbp + 0x41, 0x57, //0x000022d4 pushq %r15 + 0x41, 0x56, //0x000022d6 pushq %r14 + 0x41, 0x55, //0x000022d8 pushq %r13 + 0x41, 0x54, //0x000022da pushq %r12 + 0x53, //0x000022dc pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x000022dd subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x000022e1 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd2, //0x000022e5 movq %rdx, %r10 + 0x48, 0x89, 0x55, 0xc8, //0x000022e8 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x000022ec movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x000022f0 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x000022f3 testq %rsi, %rsi + 0x0f, 0x8e, 0x73, 0x04, 0x00, 0x00, //0x000022f6 jle LBB7_59 + 0x48, 0x8b, 0x45, 0xc0, //0x000022fc movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x00002300 movq (%rax), %r9 + 0xc5, 0xf9, 0x6f, 0x05, 0x85, 0xff, 0xff, 0xff, //0x00002303 vmovdqa $-123(%rip), %xmm0 /* LCPI7_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x8d, 0xff, 0xff, 0xff, //0x0000230b vmovdqa $-115(%rip), %xmm1 /* LCPI7_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x95, 0xff, 0xff, 0xff, //0x00002313 vmovdqa $-107(%rip), %xmm2 /* LCPI7_2+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x1d, 0x9d, 0xff, 0xff, 0xff, //0x0000231b vmovdqa $-99(%rip), %xmm3 /* LCPI7_3+0(%rip) */ + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00002323 movabsq $5764607797912141824, %r14 + 0x4c, 0x8d, 0x1d, 0x4c, 0xe5, 0x00, 0x00, //0x0000232d leaq $58700(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x4c, 0x8b, 0x7d, 0xd0, //0x00002334 movq $-48(%rbp), %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00002338 movq $-56(%rbp), %r10 + 0x90, 0x90, 0x90, 0x90, //0x0000233c .p2align 4, 0x90 + //0x00002340 LBB7_2 + 0x4d, 0x85, 0xc9, //0x00002340 testq %r9, %r9 + 0x0f, 0x8e, 0x45, 0x04, 0x00, 0x00, //0x00002343 jle LBB7_61 + 0x48, 0x83, 0xfe, 0x0f, //0x00002349 cmpq $15, %rsi + 0x0f, 0x9f, 0xc3, //0x0000234d setg %bl + 0x4d, 0x89, 0xcc, //0x00002350 movq %r9, %r12 + 0x4d, 0x89, 0xd0, //0x00002353 movq %r10, %r8 + 0x48, 0x89, 0xf0, //0x00002356 movq %rsi, %rax + 0x4d, 0x89, 0xfd, //0x00002359 movq %r15, %r13 + 0x49, 0x83, 0xf9, 0x10, //0x0000235c cmpq $16, %r9 + 0x0f, 0x8c, 0x7a, 0x00, 0x00, 0x00, //0x00002360 jl LBB7_9 + 0x48, 0x83, 0xfe, 0x10, //0x00002366 cmpq $16, %rsi + 0x0f, 0x8c, 0x70, 0x00, 0x00, 0x00, //0x0000236a jl LBB7_9 + 0x4d, 0x89, 0xfd, //0x00002370 movq %r15, %r13 + 0x48, 0x89, 0xf0, //0x00002373 movq %rsi, %rax + 0x4d, 0x89, 0xd0, //0x00002376 movq %r10, %r8 + 0x4c, 0x89, 0xc9, //0x00002379 movq %r9, %rcx + 0x90, 0x90, 0x90, 0x90, //0x0000237c .p2align 4, 0x90 + //0x00002380 LBB7_6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x00002380 vmovdqu (%r13), %xmm4 + 0xc5, 0xd9, 0x74, 0xe8, //0x00002386 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x0000238a vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x0000238e vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xd9, 0xeb, 0xf2, //0x00002392 vpor %xmm2, %xmm4, %xmm6 + 0xc5, 0xc9, 0x74, 0xf3, //0x00002396 vpcmpeqb %xmm3, %xmm6, %xmm6 + 0xc5, 0xd1, 0xeb, 0xee, //0x0000239a vpor %xmm6, %xmm5, %xmm5 + 0xc4, 0xc1, 0x7a, 0x7f, 0x20, //0x0000239e vmovdqu %xmm4, (%r8) + 0xc5, 0xf9, 0xd7, 0xd5, //0x000023a3 vpmovmskb %xmm5, %edx + 0x66, 0x85, 0xd2, //0x000023a7 testw %dx, %dx + 0x0f, 0x85, 0x30, 0x01, 0x00, 0x00, //0x000023aa jne LBB7_21 + 0x49, 0x83, 0xc5, 0x10, //0x000023b0 addq $16, %r13 + 0x49, 0x83, 0xc0, 0x10, //0x000023b4 addq $16, %r8 + 0x4c, 0x8d, 0x61, 0xf0, //0x000023b8 leaq $-16(%rcx), %r12 + 0x48, 0x83, 0xf8, 0x1f, //0x000023bc cmpq $31, %rax + 0x0f, 0x9f, 0xc3, //0x000023c0 setg %bl + 0x48, 0x83, 0xf8, 0x20, //0x000023c3 cmpq $32, %rax + 0x48, 0x8d, 0x40, 0xf0, //0x000023c7 leaq $-16(%rax), %rax + 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x000023cb jl LBB7_9 + 0x48, 0x83, 0xf9, 0x1f, //0x000023d1 cmpq $31, %rcx + 0x4c, 0x89, 0xe1, //0x000023d5 movq %r12, %rcx + 0x0f, 0x8f, 0xa2, 0xff, 0xff, 0xff, //0x000023d8 jg LBB7_6 + 0x90, 0x90, //0x000023de .p2align 4, 0x90 + //0x000023e0 LBB7_9 + 0x84, 0xdb, //0x000023e0 testb %bl, %bl + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x000023e2 je LBB7_13 + 0x4c, 0x89, 0xf2, //0x000023e8 movq %r14, %rdx + 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x000023eb vmovdqu (%r13), %xmm4 + 0xc5, 0xd9, 0x74, 0xe8, //0x000023f1 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x000023f5 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x000023f9 vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xd9, 0xeb, 0xf2, //0x000023fd vpor %xmm2, %xmm4, %xmm6 + 0xc5, 0xc9, 0x74, 0xf3, //0x00002401 vpcmpeqb %xmm3, %xmm6, %xmm6 + 0xc5, 0xd1, 0xeb, 0xee, //0x00002405 vpor %xmm6, %xmm5, %xmm5 + 0xc5, 0xf9, 0xd7, 0xc5, //0x00002409 vpmovmskb %xmm5, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x0000240d orl $65536, %eax + 0x44, 0x0f, 0xbc, 0xf0, //0x00002412 bsfl %eax, %r14d + 0xc4, 0xe1, 0xf9, 0x7e, 0xe0, //0x00002416 vmovq %xmm4, %rax + 0x4d, 0x39, 0xf4, //0x0000241b cmpq %r14, %r12 + 0x0f, 0x8d, 0xd7, 0x00, 0x00, 0x00, //0x0000241e jge LBB7_22 + 0x49, 0x83, 0xfc, 0x08, //0x00002424 cmpq $8, %r12 + 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00002428 jb LBB7_25 + 0x49, 0x89, 0x00, //0x0000242e movq %rax, (%r8) + 0x4d, 0x8d, 0x75, 0x08, //0x00002431 leaq $8(%r13), %r14 + 0x49, 0x83, 0xc0, 0x08, //0x00002435 addq $8, %r8 + 0x49, 0x8d, 0x44, 0x24, 0xf8, //0x00002439 leaq $-8(%r12), %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000243e cmpq $4, %rax + 0x0f, 0x8d, 0xff, 0x00, 0x00, 0x00, //0x00002442 jge LBB7_26 + 0xe9, 0x0c, 0x01, 0x00, 0x00, //0x00002448 jmp LBB7_27 + 0x90, 0x90, 0x90, //0x0000244d .p2align 4, 0x90 + //0x00002450 LBB7_13 + 0x4d, 0x85, 0xe4, //0x00002450 testq %r12, %r12 + 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x00002453 jle LBB7_20 + 0x48, 0x85, 0xc0, //0x00002459 testq %rax, %rax + 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x0000245c jle LBB7_20 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002462 .p2align 4, 0x90 + //0x00002470 LBB7_15 + 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x00002470 movzbl (%r13), %ecx + 0x48, 0x83, 0xf9, 0x3e, //0x00002475 cmpq $62, %rcx + 0x0f, 0x87, 0x0a, 0x00, 0x00, 0x00, //0x00002479 ja LBB7_17 + 0x49, 0x0f, 0xa3, 0xce, //0x0000247f btq %rcx, %r14 + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00002483 jb LBB7_24 + //0x00002489 LBB7_17 + 0x80, 0xf9, 0xe2, //0x00002489 cmpb $-30, %cl + 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x0000248c je LBB7_24 + 0x49, 0xff, 0xc5, //0x00002492 incq %r13 + 0x41, 0x88, 0x08, //0x00002495 movb %cl, (%r8) + 0x48, 0x83, 0xf8, 0x02, //0x00002498 cmpq $2, %rax + 0x48, 0x8d, 0x40, 0xff, //0x0000249c leaq $-1(%rax), %rax + 0x0f, 0x8c, 0x1a, 0x00, 0x00, 0x00, //0x000024a0 jl LBB7_20 + 0x49, 0xff, 0xc0, //0x000024a6 incq %r8 + 0x49, 0x83, 0xfc, 0x01, //0x000024a9 cmpq $1, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x000024ad leaq $-1(%r12), %r12 + 0x0f, 0x8f, 0xb8, 0xff, 0xff, 0xff, //0x000024b2 jg LBB7_15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024b8 .p2align 4, 0x90 + //0x000024c0 LBB7_20 + 0x4d, 0x29, 0xfd, //0x000024c0 subq %r15, %r13 + 0x48, 0xf7, 0xd8, //0x000024c3 negq %rax + 0x4d, 0x19, 0xe4, //0x000024c6 sbbq %r12, %r12 + 0x4d, 0x31, 0xec, //0x000024c9 xorq %r13, %r12 + 0x4d, 0x85, 0xe4, //0x000024cc testq %r12, %r12 + 0x0f, 0x89, 0x5b, 0x01, 0x00, 0x00, //0x000024cf jns LBB7_37 + 0xe9, 0x72, 0x02, 0x00, 0x00, //0x000024d5 jmp LBB7_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024da .p2align 4, 0x90 + //0x000024e0 LBB7_21 + 0x0f, 0xb7, 0xc2, //0x000024e0 movzwl %dx, %eax + 0x4d, 0x29, 0xfd, //0x000024e3 subq %r15, %r13 + 0x44, 0x0f, 0xbc, 0xe0, //0x000024e6 bsfl %eax, %r12d + 0x4d, 0x01, 0xec, //0x000024ea addq %r13, %r12 + 0x4d, 0x85, 0xe4, //0x000024ed testq %r12, %r12 + 0x0f, 0x89, 0x3a, 0x01, 0x00, 0x00, //0x000024f0 jns LBB7_37 + 0xe9, 0x51, 0x02, 0x00, 0x00, //0x000024f6 jmp LBB7_57 + //0x000024fb LBB7_22 + 0x41, 0x83, 0xfe, 0x08, //0x000024fb cmpl $8, %r14d + 0x0f, 0x82, 0xa9, 0x00, 0x00, 0x00, //0x000024ff jb LBB7_31 + 0x49, 0x89, 0x00, //0x00002505 movq %rax, (%r8) + 0x4d, 0x8d, 0x65, 0x08, //0x00002508 leaq $8(%r13), %r12 + 0x49, 0x83, 0xc0, 0x08, //0x0000250c addq $8, %r8 + 0x49, 0x8d, 0x46, 0xf8, //0x00002510 leaq $-8(%r14), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002514 cmpq $4, %rax + 0x0f, 0x8d, 0xa0, 0x00, 0x00, 0x00, //0x00002518 jge LBB7_32 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000251e jmp LBB7_33 + //0x00002523 LBB7_24 + 0x4d, 0x29, 0xfd, //0x00002523 subq %r15, %r13 + 0x4d, 0x89, 0xec, //0x00002526 movq %r13, %r12 + 0x4d, 0x85, 0xe4, //0x00002529 testq %r12, %r12 + 0x0f, 0x89, 0xfe, 0x00, 0x00, 0x00, //0x0000252c jns LBB7_37 + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x00002532 jmp LBB7_57 + //0x00002537 LBB7_25 + 0x4d, 0x89, 0xee, //0x00002537 movq %r13, %r14 + 0x4c, 0x89, 0xe0, //0x0000253a movq %r12, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000253d cmpq $4, %rax + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x00002541 jl LBB7_27 + //0x00002547 LBB7_26 + 0x41, 0x8b, 0x0e, //0x00002547 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x0000254a movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x0000254d addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x00002551 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x00002555 addq $-4, %rax + //0x00002559 LBB7_27 + 0x48, 0x83, 0xf8, 0x02, //0x00002559 cmpq $2, %rax + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x0000255d jb LBB7_28 + 0x41, 0x0f, 0xb7, 0x0e, //0x00002563 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002567 movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x0000256b addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x0000256f addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x00002573 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00002577 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000257a jne LBB7_29 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00002580 jmp LBB7_30 + //0x00002585 LBB7_28 + 0x48, 0x85, 0xc0, //0x00002585 testq %rax, %rax + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002588 je LBB7_30 + //0x0000258e LBB7_29 + 0x41, 0x8a, 0x06, //0x0000258e movb (%r14), %al + 0x41, 0x88, 0x00, //0x00002591 movb %al, (%r8) + //0x00002594 LBB7_30 + 0x4d, 0x29, 0xfc, //0x00002594 subq %r15, %r12 + 0x4d, 0x01, 0xec, //0x00002597 addq %r13, %r12 + 0x49, 0xf7, 0xd4, //0x0000259a notq %r12 + 0x49, 0x89, 0xd6, //0x0000259d movq %rdx, %r14 + 0x4d, 0x85, 0xe4, //0x000025a0 testq %r12, %r12 + 0x0f, 0x89, 0x87, 0x00, 0x00, 0x00, //0x000025a3 jns LBB7_37 + 0xe9, 0x9e, 0x01, 0x00, 0x00, //0x000025a9 jmp LBB7_57 + //0x000025ae LBB7_31 + 0x4d, 0x89, 0xec, //0x000025ae movq %r13, %r12 + 0x4c, 0x89, 0xf0, //0x000025b1 movq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000025b4 cmpq $4, %rax + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x000025b8 jl LBB7_33 + //0x000025be LBB7_32 + 0x41, 0x8b, 0x0c, 0x24, //0x000025be movl (%r12), %ecx + 0x41, 0x89, 0x08, //0x000025c2 movl %ecx, (%r8) + 0x49, 0x83, 0xc4, 0x04, //0x000025c5 addq $4, %r12 + 0x49, 0x83, 0xc0, 0x04, //0x000025c9 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x000025cd addq $-4, %rax + //0x000025d1 LBB7_33 + 0x48, 0x83, 0xf8, 0x02, //0x000025d1 cmpq $2, %rax + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000025d5 jb LBB7_34 + 0x41, 0x0f, 0xb7, 0x0c, 0x24, //0x000025db movzwl (%r12), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000025e0 movw %cx, (%r8) + 0x49, 0x83, 0xc4, 0x02, //0x000025e4 addq $2, %r12 + 0x49, 0x83, 0xc0, 0x02, //0x000025e8 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x000025ec addq $-2, %rax + 0x48, 0x85, 0xc0, //0x000025f0 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000025f3 jne LBB7_35 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000025f9 jmp LBB7_36 + //0x000025fe LBB7_34 + 0x48, 0x85, 0xc0, //0x000025fe testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002601 je LBB7_36 + //0x00002607 LBB7_35 + 0x41, 0x8a, 0x04, 0x24, //0x00002607 movb (%r12), %al + 0x41, 0x88, 0x00, //0x0000260b movb %al, (%r8) + //0x0000260e LBB7_36 + 0x4d, 0x29, 0xfd, //0x0000260e subq %r15, %r13 + 0x4d, 0x01, 0xf5, //0x00002611 addq %r14, %r13 + 0x4d, 0x89, 0xec, //0x00002614 movq %r13, %r12 + 0x49, 0x89, 0xd6, //0x00002617 movq %rdx, %r14 + 0x4d, 0x85, 0xe4, //0x0000261a testq %r12, %r12 + 0x0f, 0x88, 0x29, 0x01, 0x00, 0x00, //0x0000261d js LBB7_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002623 .p2align 4, 0x90 + //0x00002630 LBB7_37 + 0x4d, 0x01, 0xe7, //0x00002630 addq %r12, %r15 + 0x4d, 0x01, 0xe2, //0x00002633 addq %r12, %r10 + 0x4c, 0x29, 0xe6, //0x00002636 subq %r12, %rsi + 0x0f, 0x8e, 0x2d, 0x01, 0x00, 0x00, //0x00002639 jle LBB7_58 + 0x4d, 0x29, 0xe1, //0x0000263f subq %r12, %r9 + 0x41, 0x8a, 0x0f, //0x00002642 movb (%r15), %cl + 0x80, 0xf9, 0xe2, //0x00002645 cmpb $-30, %cl + 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x00002648 je LBB7_51 + 0x4c, 0x89, 0xf8, //0x0000264e movq %r15, %rax + //0x00002651 LBB7_40 + 0x0f, 0xb6, 0xd1, //0x00002651 movzbl %cl, %edx + 0x48, 0xc1, 0xe2, 0x04, //0x00002654 shlq $4, %rdx + 0x4a, 0x8b, 0x3c, 0x1a, //0x00002658 movq (%rdx,%r11), %rdi + 0x48, 0x63, 0xdf, //0x0000265c movslq %edi, %rbx + 0x49, 0x29, 0xd9, //0x0000265f subq %rbx, %r9 + 0x0f, 0x8c, 0x1b, 0x01, 0x00, 0x00, //0x00002662 jl LBB7_60 + 0x48, 0xc1, 0xe7, 0x20, //0x00002668 shlq $32, %rdi + 0x4e, 0x8d, 0x7c, 0x1a, 0x08, //0x0000266c leaq $8(%rdx,%r11), %r15 + 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002671 movabsq $12884901889, %rcx + 0x48, 0x39, 0xcf, //0x0000267b cmpq %rcx, %rdi + 0x0f, 0x8c, 0x2c, 0x00, 0x00, 0x00, //0x0000267e jl LBB7_43 + 0x41, 0x8b, 0x0f, //0x00002684 movl (%r15), %ecx + 0x41, 0x89, 0x0a, //0x00002687 movl %ecx, (%r10) + 0x4e, 0x8d, 0x7c, 0x1a, 0x0c, //0x0000268a leaq $12(%rdx,%r11), %r15 + 0x4d, 0x8d, 0x42, 0x04, //0x0000268f leaq $4(%r10), %r8 + 0x48, 0x8d, 0x7b, 0xfc, //0x00002693 leaq $-4(%rbx), %rdi + 0x48, 0x83, 0xff, 0x02, //0x00002697 cmpq $2, %rdi + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x0000269b jae LBB7_44 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x000026a1 jmp LBB7_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026a6 .p2align 4, 0x90 + //0x000026b0 LBB7_43 + 0x4d, 0x89, 0xd0, //0x000026b0 movq %r10, %r8 + 0x48, 0x89, 0xdf, //0x000026b3 movq %rbx, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000026b6 cmpq $2, %rdi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000026ba jb LBB7_45 + //0x000026c0 LBB7_44 + 0x41, 0x0f, 0xb7, 0x17, //0x000026c0 movzwl (%r15), %edx + 0x66, 0x41, 0x89, 0x10, //0x000026c4 movw %dx, (%r8) + 0x49, 0x83, 0xc7, 0x02, //0x000026c8 addq $2, %r15 + 0x49, 0x83, 0xc0, 0x02, //0x000026cc addq $2, %r8 + 0x48, 0x83, 0xc7, 0xfe, //0x000026d0 addq $-2, %rdi + //0x000026d4 LBB7_45 + 0x48, 0x85, 0xff, //0x000026d4 testq %rdi, %rdi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000026d7 je LBB7_47 + 0x41, 0x8a, 0x0f, //0x000026dd movb (%r15), %cl + 0x41, 0x88, 0x08, //0x000026e0 movb %cl, (%r8) + //0x000026e3 LBB7_47 + 0x49, 0x01, 0xda, //0x000026e3 addq %rbx, %r10 + //0x000026e6 LBB7_48 + 0x48, 0xff, 0xc0, //0x000026e6 incq %rax + 0x49, 0x89, 0xc7, //0x000026e9 movq %rax, %r15 + 0x48, 0x83, 0xfe, 0x01, //0x000026ec cmpq $1, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x000026f0 leaq $-1(%rsi), %rsi + 0x0f, 0x8f, 0x46, 0xfc, 0xff, 0xff, //0x000026f4 jg LBB7_2 + 0xe9, 0x70, 0x00, 0x00, 0x00, //0x000026fa jmp LBB7_59 + //0x000026ff LBB7_51 + 0x48, 0x83, 0xfe, 0x03, //0x000026ff cmpq $3, %rsi + 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002703 jl LBB7_55 + 0x41, 0x80, 0x7f, 0x01, 0x80, //0x00002709 cmpb $-128, $1(%r15) + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x0000270e jne LBB7_55 + 0x41, 0x8a, 0x4f, 0x02, //0x00002714 movb $2(%r15), %cl + 0x89, 0xc8, //0x00002718 movl %ecx, %eax + 0x24, 0xfe, //0x0000271a andb $-2, %al + 0x3c, 0xa8, //0x0000271c cmpb $-88, %al + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x0000271e jne LBB7_55 + 0x49, 0x8d, 0x47, 0x02, //0x00002724 leaq $2(%r15), %rax + 0x48, 0x83, 0xc6, 0xfe, //0x00002728 addq $-2, %rsi + 0xe9, 0x20, 0xff, 0xff, 0xff, //0x0000272c jmp LBB7_40 + //0x00002731 LBB7_55 + 0x4d, 0x85, 0xc9, //0x00002731 testq %r9, %r9 + 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x00002734 jle LBB7_61 + 0x41, 0xc6, 0x02, 0xe2, //0x0000273a movb $-30, (%r10) + 0x49, 0xff, 0xc2, //0x0000273e incq %r10 + 0x49, 0xff, 0xc9, //0x00002741 decq %r9 + 0x4c, 0x89, 0xf8, //0x00002744 movq %r15, %rax + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00002747 jmp LBB7_48 + //0x0000274c LBB7_57 + 0x4c, 0x2b, 0x55, 0xc8, //0x0000274c subq $-56(%rbp), %r10 + 0x49, 0xf7, 0xd4, //0x00002750 notq %r12 + 0x4d, 0x01, 0xe2, //0x00002753 addq %r12, %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x00002756 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x0000275a movq %r10, (%rax) + 0x4c, 0x2b, 0x7d, 0xd0, //0x0000275d subq $-48(%rbp), %r15 + 0x4d, 0x01, 0xe7, //0x00002761 addq %r12, %r15 + 0x49, 0xf7, 0xd7, //0x00002764 notq %r15 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00002767 jmp LBB7_62 + //0x0000276c LBB7_58 + 0x4c, 0x89, 0xf8, //0x0000276c movq %r15, %rax + //0x0000276f LBB7_59 + 0x4c, 0x2b, 0x55, 0xc8, //0x0000276f subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x4d, 0xc0, //0x00002773 movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x11, //0x00002777 movq %r10, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x0000277a subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000277e jmp LBB7_63 + //0x00002783 LBB7_60 + 0x4c, 0x2b, 0x55, 0xc8, //0x00002783 subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x00002787 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x0000278b movq %r10, (%rax) + //0x0000278e LBB7_61 + 0x49, 0xf7, 0xd7, //0x0000278e notq %r15 + 0x4c, 0x03, 0x7d, 0xd0, //0x00002791 addq $-48(%rbp), %r15 + //0x00002795 LBB7_62 + 0x4c, 0x89, 0xf8, //0x00002795 movq %r15, %rax + //0x00002798 LBB7_63 + 0x48, 0x83, 0xc4, 0x18, //0x00002798 addq $24, %rsp + 0x5b, //0x0000279c popq %rbx + 0x41, 0x5c, //0x0000279d popq %r12 + 0x41, 0x5d, //0x0000279f popq %r13 + 0x41, 0x5e, //0x000027a1 popq %r14 + 0x41, 0x5f, //0x000027a3 popq %r15 + 0x5d, //0x000027a5 popq %rbp + 0xc3, //0x000027a6 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027a7 .p2align 4, 0x90 + //0x000027b0 _atof_eisel_lemire64 + 0x55, //0x000027b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000027b1 movq %rsp, %rbp + 0x41, 0x57, //0x000027b4 pushq %r15 + 0x41, 0x56, //0x000027b6 pushq %r14 + 0x53, //0x000027b8 pushq %rbx + 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000027b9 leal $348(%rsi), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000027bf cmpl $695, %eax + 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x000027c4 ja LBB8_1 + 0x49, 0x89, 0xc8, //0x000027ca movq %rcx, %r8 + 0x41, 0x89, 0xd1, //0x000027cd movl %edx, %r9d + 0x48, 0x85, 0xff, //0x000027d0 testq %rdi, %rdi + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000027d3 je LBB8_4 + 0x4c, 0x0f, 0xbd, 0xd7, //0x000027d9 bsrq %rdi, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x000027dd xorq $63, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000027e1 jmp LBB8_5 + //0x000027e6 LBB8_4 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x000027e6 movl $64, %r10d + //0x000027ec LBB8_5 + 0x44, 0x89, 0xd1, //0x000027ec movl %r10d, %ecx + 0x48, 0xd3, 0xe7, //0x000027ef shlq %cl, %rdi + 0x89, 0xc1, //0x000027f2 movl %eax, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x000027f4 shlq $4, %rcx + 0x4c, 0x8d, 0x3d, 0xd1, 0x6a, 0x00, 0x00, //0x000027f8 leaq $27345(%rip), %r15 /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0xf8, //0x000027ff movq %rdi, %rax + 0x4a, 0xf7, 0x64, 0x39, 0x08, //0x00002802 mulq $8(%rcx,%r15) + 0x49, 0x89, 0xc3, //0x00002807 movq %rax, %r11 + 0x49, 0x89, 0xd6, //0x0000280a movq %rdx, %r14 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000280d andl $511, %edx + 0x48, 0x89, 0xfb, //0x00002813 movq %rdi, %rbx + 0x48, 0xf7, 0xd3, //0x00002816 notq %rbx + 0x48, 0x39, 0xd8, //0x00002819 cmpq %rbx, %rax + 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x0000281c jbe LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002822 cmpl $511, %edx + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00002828 jne LBB8_11 + 0x48, 0x89, 0xf8, //0x0000282e movq %rdi, %rax + 0x4a, 0xf7, 0x24, 0x39, //0x00002831 mulq (%rcx,%r15) + 0x49, 0x01, 0xd3, //0x00002835 addq %rdx, %r11 + 0x49, 0x83, 0xd6, 0x00, //0x00002838 adcq $0, %r14 + 0x44, 0x89, 0xf2, //0x0000283c movl %r14d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000283f andl $511, %edx + 0x48, 0x39, 0xd8, //0x00002845 cmpq %rbx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00002848 jbe LBB8_11 + 0x49, 0x83, 0xfb, 0xff, //0x0000284e cmpq $-1, %r11 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00002852 jne LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002858 cmpl $511, %edx + 0x0f, 0x84, 0x6e, 0x00, 0x00, 0x00, //0x0000285e je LBB8_1 + //0x00002864 LBB8_11 + 0x4c, 0x89, 0xf7, //0x00002864 movq %r14, %rdi + 0x48, 0xc1, 0xef, 0x3f, //0x00002867 shrq $63, %rdi + 0x8d, 0x4f, 0x09, //0x0000286b leal $9(%rdi), %ecx + 0x49, 0xd3, 0xee, //0x0000286e shrq %cl, %r14 + 0x4c, 0x09, 0xda, //0x00002871 orq %r11, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002874 jne LBB8_14 + 0x44, 0x89, 0xf0, //0x0000287a movl %r14d, %eax + 0x83, 0xe0, 0x03, //0x0000287d andl $3, %eax + 0x83, 0xf8, 0x01, //0x00002880 cmpl $1, %eax + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00002883 je LBB8_1 + //0x00002889 LBB8_14 + 0x69, 0xc6, 0x6a, 0x52, 0x03, 0x00, //0x00002889 imull $217706, %esi, %eax + 0xc1, 0xf8, 0x10, //0x0000288f sarl $16, %eax + 0x05, 0x3f, 0x04, 0x00, 0x00, //0x00002892 addl $1087, %eax + 0x48, 0x98, //0x00002897 cltq + 0x4c, 0x29, 0xd0, //0x00002899 subq %r10, %rax + 0x48, 0x83, 0xf7, 0x01, //0x0000289c xorq $1, %rdi + 0x48, 0x29, 0xf8, //0x000028a0 subq %rdi, %rax + 0x44, 0x89, 0xf2, //0x000028a3 movl %r14d, %edx + 0x83, 0xe2, 0x01, //0x000028a6 andl $1, %edx + 0x4c, 0x01, 0xf2, //0x000028a9 addq %r14, %rdx + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000028ac movabsq $126100789566373888, %rcx + 0x48, 0x21, 0xd1, //0x000028b6 andq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x000028b9 cmpq $1, %rcx + 0x48, 0x83, 0xd8, 0xff, //0x000028bd sbbq $-1, %rax + 0x48, 0x8d, 0x70, 0xff, //0x000028c1 leaq $-1(%rax), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x000028c5 cmpq $2045, %rsi + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x000028cc jbe LBB8_16 + //0x000028d2 LBB8_1 + 0x31, 0xc0, //0x000028d2 xorl %eax, %eax + //0x000028d4 LBB8_17 + 0x5b, //0x000028d4 popq %rbx + 0x41, 0x5e, //0x000028d5 popq %r14 + 0x41, 0x5f, //0x000028d7 popq %r15 + 0x5d, //0x000028d9 popq %rbp + 0xc3, //0x000028da retq + //0x000028db LBB8_16 + 0x48, 0x83, 0xf9, 0x01, //0x000028db cmpq $1, %rcx + 0xb1, 0x02, //0x000028df movb $2, %cl + 0x80, 0xd9, 0x00, //0x000028e1 sbbb $0, %cl + 0x48, 0xd3, 0xea, //0x000028e4 shrq %cl, %rdx + 0x48, 0xc1, 0xe0, 0x34, //0x000028e7 shlq $52, %rax + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000028eb movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xd1, //0x000028f5 andq %rdx, %rcx + 0x48, 0x09, 0xc1, //0x000028f8 orq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000028fb movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc8, //0x00002905 orq %rcx, %rax + 0x41, 0x83, 0xf9, 0xff, //0x00002908 cmpl $-1, %r9d + 0x48, 0x0f, 0x45, 0xc1, //0x0000290c cmovneq %rcx, %rax + 0x49, 0x89, 0x00, //0x00002910 movq %rax, (%r8) + 0xb0, 0x01, //0x00002913 movb $1, %al + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x00002915 jmp LBB8_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000291a .p2align 4, 0x90 + //0x00002920 _decimal_to_f64 + 0x55, //0x00002920 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002921 movq %rsp, %rbp + 0x41, 0x57, //0x00002924 pushq %r15 + 0x41, 0x56, //0x00002926 pushq %r14 + 0x41, 0x55, //0x00002928 pushq %r13 + 0x41, 0x54, //0x0000292a pushq %r12 + 0x53, //0x0000292c pushq %rbx + 0x50, //0x0000292d pushq %rax + 0x48, 0x89, 0xf3, //0x0000292e movq %rsi, %rbx + 0x49, 0x89, 0xfc, //0x00002931 movq %rdi, %r12 + 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002934 movabsq $4503599627370496, %r13 + 0x83, 0x7f, 0x10, 0x00, //0x0000293e cmpl $0, $16(%rdi) + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00002942 je LBB9_4 + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002948 movabsq $9218868437227405312, %r14 + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002952 movl $20(%r12), %eax + 0x45, 0x31, 0xff, //0x00002957 xorl %r15d, %r15d + 0x3d, 0x36, 0x01, 0x00, 0x00, //0x0000295a cmpl $310, %eax + 0x0f, 0x8f, 0x0e, 0x04, 0x00, 0x00, //0x0000295f jg LBB9_78 + 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002965 cmpl $-330, %eax + 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x0000296a jge LBB9_5 + 0x45, 0x31, 0xf6, //0x00002970 xorl %r14d, %r14d + 0xe9, 0xfb, 0x03, 0x00, 0x00, //0x00002973 jmp LBB9_78 + //0x00002978 LBB9_4 + 0x45, 0x31, 0xf6, //0x00002978 xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x0000297b xorl %r15d, %r15d + 0xe9, 0xf0, 0x03, 0x00, 0x00, //0x0000297e jmp LBB9_78 + //0x00002983 LBB9_5 + 0x85, 0xc0, //0x00002983 testl %eax, %eax + 0x48, 0x89, 0x5d, 0xd0, //0x00002985 movq %rbx, $-48(%rbp) + 0x0f, 0x8e, 0xf1, 0x00, 0x00, 0x00, //0x00002989 jle LBB9_22 + 0x45, 0x31, 0xff, //0x0000298f xorl %r15d, %r15d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002992 jmp LBB9_9 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002997 .p2align 4, 0x90 + //0x000029a0 LBB9_7 + 0xf7, 0xdb, //0x000029a0 negl %ebx + 0x4c, 0x89, 0xe7, //0x000029a2 movq %r12, %rdi + 0x89, 0xde, //0x000029a5 movl %ebx, %esi + 0xe8, 0xc4, 0x63, 0x00, 0x00, //0x000029a7 callq _right_shift + //0x000029ac LBB9_8 + 0x45, 0x01, 0xf7, //0x000029ac addl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x000029af movl $20(%r12), %eax + 0x85, 0xc0, //0x000029b4 testl %eax, %eax + 0x0f, 0x8e, 0xc4, 0x00, 0x00, 0x00, //0x000029b6 jle LBB9_22 + //0x000029bc LBB9_9 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x000029bc movl $27, %r14d + 0x83, 0xf8, 0x08, //0x000029c2 cmpl $8, %eax + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x000029c5 jg LBB9_11 + 0x89, 0xc0, //0x000029cb movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x8c, 0x94, 0x00, 0x00, //0x000029cd leaq $38028(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x44, 0x8b, 0x34, 0x81, //0x000029d4 movl (%rcx,%rax,4), %r14d + //0x000029d8 LBB9_11 + 0x45, 0x85, 0xf6, //0x000029d8 testl %r14d, %r14d + 0x0f, 0x84, 0xcb, 0xff, 0xff, 0xff, //0x000029db je LBB9_8 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000029e1 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x000029e7 je LBB9_8 + 0x44, 0x89, 0xf3, //0x000029ed movl %r14d, %ebx + 0xf7, 0xdb, //0x000029f0 negl %ebx + 0x45, 0x85, 0xf6, //0x000029f2 testl %r14d, %r14d + 0x0f, 0x88, 0x35, 0x00, 0x00, 0x00, //0x000029f5 js LBB9_16 + 0x41, 0x83, 0xfe, 0x3d, //0x000029fb cmpl $61, %r14d + 0x0f, 0x8c, 0x9b, 0xff, 0xff, 0xff, //0x000029ff jl LBB9_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a05 .p2align 4, 0x90 + //0x00002a10 LBB9_15 + 0x4c, 0x89, 0xe7, //0x00002a10 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a13 movl $60, %esi + 0xe8, 0x53, 0x63, 0x00, 0x00, //0x00002a18 callq _right_shift + 0x8d, 0x43, 0x3c, //0x00002a1d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00002a20 cmpl $-120, %ebx + 0x89, 0xc3, //0x00002a23 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002a25 jl LBB9_15 + 0xe9, 0x70, 0xff, 0xff, 0xff, //0x00002a2b jmp LBB9_7 + //0x00002a30 LBB9_16 + 0x41, 0x83, 0xfe, 0xc3, //0x00002a30 cmpl $-61, %r14d + 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00002a34 jg LBB9_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a3a .p2align 4, 0x90 + //0x00002a40 LBB9_17 + 0x4c, 0x89, 0xe7, //0x00002a40 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a43 movl $60, %esi + 0xe8, 0x33, 0x61, 0x00, 0x00, //0x00002a48 callq _left_shift + 0x8d, 0x73, 0xc4, //0x00002a4d leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00002a50 cmpl $120, %ebx + 0x89, 0xf3, //0x00002a53 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002a55 jg LBB9_17 + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002a5b jmp LBB9_19 + //0x00002a60 LBB9_18 + 0x89, 0xde, //0x00002a60 movl %ebx, %esi + //0x00002a62 LBB9_19 + 0x4c, 0x89, 0xe7, //0x00002a62 movq %r12, %rdi + 0xe8, 0x16, 0x61, 0x00, 0x00, //0x00002a65 callq _left_shift + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002a6a jmp LBB9_8 + 0x90, //0x00002a6f .p2align 4, 0x90 + //0x00002a70 LBB9_20 + 0x4c, 0x89, 0xe7, //0x00002a70 movq %r12, %rdi + 0xe8, 0x08, 0x61, 0x00, 0x00, //0x00002a73 callq _left_shift + //0x00002a78 LBB9_21 + 0x45, 0x29, 0xf7, //0x00002a78 subl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002a7b movl $20(%r12), %eax + //0x00002a80 LBB9_22 + 0x85, 0xc0, //0x00002a80 testl %eax, %eax + 0x0f, 0x88, 0x18, 0x00, 0x00, 0x00, //0x00002a82 js LBB9_25 + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00002a88 jne LBB9_36 + 0x49, 0x8b, 0x0c, 0x24, //0x00002a8e movq (%r12), %rcx + 0x80, 0x39, 0x35, //0x00002a92 cmpb $53, (%rcx) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00002a95 jl LBB9_26 + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00002a9b jmp LBB9_36 + //0x00002aa0 .p2align 4, 0x90 + //0x00002aa0 LBB9_25 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x00002aa0 movl $27, %r14d + 0x83, 0xf8, 0xf8, //0x00002aa6 cmpl $-8, %eax + 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x00002aa9 jl LBB9_27 + //0x00002aaf LBB9_26 + 0xf7, 0xd8, //0x00002aaf negl %eax + 0x48, 0x98, //0x00002ab1 cltq + 0x48, 0x8d, 0x0d, 0xa6, 0x93, 0x00, 0x00, //0x00002ab3 leaq $37798(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x44, 0x8b, 0x34, 0x81, //0x00002aba movl (%rcx,%rax,4), %r14d + //0x00002abe LBB9_27 + 0x45, 0x85, 0xf6, //0x00002abe testl %r14d, %r14d + 0x0f, 0x84, 0xb1, 0xff, 0xff, 0xff, //0x00002ac1 je LBB9_21 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002ac7 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xa5, 0xff, 0xff, 0xff, //0x00002acd je LBB9_21 + 0x45, 0x85, 0xf6, //0x00002ad3 testl %r14d, %r14d + 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00002ad6 jle LBB9_33 + 0x44, 0x89, 0xf6, //0x00002adc movl %r14d, %esi + 0x41, 0x83, 0xfe, 0x3d, //0x00002adf cmpl $61, %r14d + 0x0f, 0x8c, 0x87, 0xff, 0xff, 0xff, //0x00002ae3 jl LBB9_20 + 0x44, 0x89, 0xf3, //0x00002ae9 movl %r14d, %ebx + 0x90, 0x90, 0x90, 0x90, //0x00002aec .p2align 4, 0x90 + //0x00002af0 LBB9_32 + 0x4c, 0x89, 0xe7, //0x00002af0 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002af3 movl $60, %esi + 0xe8, 0x83, 0x60, 0x00, 0x00, //0x00002af8 callq _left_shift + 0x8d, 0x73, 0xc4, //0x00002afd leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00002b00 cmpl $120, %ebx + 0x89, 0xf3, //0x00002b03 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002b05 jg LBB9_32 + 0xe9, 0x60, 0xff, 0xff, 0xff, //0x00002b0b jmp LBB9_20 + //0x00002b10 LBB9_33 + 0x44, 0x89, 0xf3, //0x00002b10 movl %r14d, %ebx + 0x41, 0x83, 0xfe, 0xc3, //0x00002b13 cmpl $-61, %r14d + 0x0f, 0x8f, 0x1e, 0x00, 0x00, 0x00, //0x00002b17 jg LBB9_35 + 0x90, 0x90, 0x90, //0x00002b1d .p2align 4, 0x90 + //0x00002b20 LBB9_34 + 0x4c, 0x89, 0xe7, //0x00002b20 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b23 movl $60, %esi + 0xe8, 0x43, 0x62, 0x00, 0x00, //0x00002b28 callq _right_shift + 0x8d, 0x43, 0x3c, //0x00002b2d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00002b30 cmpl $-120, %ebx + 0x89, 0xc3, //0x00002b33 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002b35 jl LBB9_34 + //0x00002b3b LBB9_35 + 0xf7, 0xdb, //0x00002b3b negl %ebx + 0x4c, 0x89, 0xe7, //0x00002b3d movq %r12, %rdi + 0x89, 0xde, //0x00002b40 movl %ebx, %esi + 0xe8, 0x29, 0x62, 0x00, 0x00, //0x00002b42 callq _right_shift + 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00002b47 jmp LBB9_21 + //0x00002b4c LBB9_36 + 0x41, 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x00002b4c cmpl $-1022, %r15d + 0x0f, 0x8f, 0x4b, 0x00, 0x00, 0x00, //0x00002b53 jg LBB9_42 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002b59 cmpl $0, $16(%r12) + 0x48, 0x8b, 0x5d, 0xd0, //0x00002b5f movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002b63 je LBB9_44 + 0x41, 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x00002b69 cmpl $-1082, %r15d + 0x0f, 0x8f, 0x55, 0x00, 0x00, 0x00, //0x00002b70 jg LBB9_45 + 0x41, 0x81, 0xc7, 0xc1, 0x03, 0x00, 0x00, //0x00002b76 addl $961, %r15d + 0x90, 0x90, 0x90, //0x00002b7d .p2align 4, 0x90 + //0x00002b80 LBB9_40 + 0x4c, 0x89, 0xe7, //0x00002b80 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b83 movl $60, %esi + 0xe8, 0xe3, 0x61, 0x00, 0x00, //0x00002b88 callq _right_shift + 0x41, 0x83, 0xc7, 0x3c, //0x00002b8d addl $60, %r15d + 0x41, 0x83, 0xff, 0x88, //0x00002b91 cmpl $-120, %r15d + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002b95 jl LBB9_40 + 0x41, 0x83, 0xc7, 0x3c, //0x00002b9b addl $60, %r15d + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00002b9f jmp LBB9_46 + //0x00002ba4 LBB9_42 + 0x41, 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00002ba4 cmpl $1024, %r15d + 0x48, 0x8b, 0x5d, 0xd0, //0x00002bab movq $-48(%rbp), %rbx + 0x0f, 0x8f, 0x87, 0x01, 0x00, 0x00, //0x00002baf jg LBB9_75 + 0x41, 0xff, 0xcf, //0x00002bb5 decl %r15d + 0x45, 0x89, 0xfe, //0x00002bb8 movl %r15d, %r14d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002bbb jmp LBB9_47 + //0x00002bc0 LBB9_44 + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002bc0 movl $-1022, %r14d + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00002bc6 jmp LBB9_49 + //0x00002bcb LBB9_45 + 0x41, 0x81, 0xc7, 0xfd, 0x03, 0x00, 0x00, //0x00002bcb addl $1021, %r15d + //0x00002bd2 LBB9_46 + 0x41, 0xf7, 0xdf, //0x00002bd2 negl %r15d + 0x4c, 0x89, 0xe7, //0x00002bd5 movq %r12, %rdi + 0x44, 0x89, 0xfe, //0x00002bd8 movl %r15d, %esi + 0xe8, 0x90, 0x61, 0x00, 0x00, //0x00002bdb callq _right_shift + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002be0 movl $-1022, %r14d + //0x00002be6 LBB9_47 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002be6 cmpl $0, $16(%r12) + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002bec je LBB9_49 + 0x4c, 0x89, 0xe7, //0x00002bf2 movq %r12, %rdi + 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002bf5 movl $53, %esi + 0xe8, 0x81, 0x5f, 0x00, 0x00, //0x00002bfa callq _left_shift + //0x00002bff LBB9_49 + 0x4d, 0x63, 0x44, 0x24, 0x14, //0x00002bff movslq $20(%r12), %r8 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002c04 movq $-1, %r15 + 0x49, 0x83, 0xf8, 0x14, //0x00002c0b cmpq $20, %r8 + 0x0f, 0x8f, 0x3f, 0x01, 0x00, 0x00, //0x00002c0f jg LBB9_77 + 0x44, 0x89, 0xc1, //0x00002c15 movl %r8d, %ecx + 0x85, 0xc9, //0x00002c18 testl %ecx, %ecx + 0x0f, 0x8e, 0x3c, 0x00, 0x00, 0x00, //0x00002c1a jle LBB9_54 + 0x49, 0x63, 0x74, 0x24, 0x10, //0x00002c20 movslq $16(%r12), %rsi + 0x31, 0xd2, //0x00002c25 xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00002c27 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c2a .p2align 4, 0x90 + //0x00002c30 LBB9_52 + 0x48, 0x39, 0xf2, //0x00002c30 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00002c33 jge LBB9_55 + 0x4b, 0x8d, 0x04, 0xbf, //0x00002c39 leaq (%r15,%r15,4), %rax + 0x49, 0x8b, 0x3c, 0x24, //0x00002c3d movq (%r12), %rdi + 0x48, 0x0f, 0xbe, 0x3c, 0x17, //0x00002c41 movsbq (%rdi,%rdx), %rdi + 0x4c, 0x8d, 0x7c, 0x47, 0xd0, //0x00002c46 leaq $-48(%rdi,%rax,2), %r15 + 0x48, 0xff, 0xc2, //0x00002c4b incq %rdx + 0x48, 0x39, 0xd1, //0x00002c4e cmpq %rdx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00002c51 jne LBB9_52 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002c57 jmp LBB9_55 + //0x00002c5c LBB9_54 + 0x31, 0xd2, //0x00002c5c xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00002c5e xorl %r15d, %r15d + //0x00002c61 LBB9_55 + 0x41, 0x39, 0xd0, //0x00002c61 cmpl %edx, %r8d + 0x0f, 0x8e, 0x56, 0x00, 0x00, 0x00, //0x00002c64 jle LBB9_63 + 0x89, 0xcf, //0x00002c6a movl %ecx, %edi + 0x29, 0xd7, //0x00002c6c subl %edx, %edi + 0x89, 0xd6, //0x00002c6e movl %edx, %esi + 0xf7, 0xd6, //0x00002c70 notl %esi + 0x44, 0x01, 0xc6, //0x00002c72 addl %r8d, %esi + 0x83, 0xe7, 0x07, //0x00002c75 andl $7, %edi + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00002c78 je LBB9_60 + 0xf7, 0xdf, //0x00002c7e negl %edi + 0x31, 0xc0, //0x00002c80 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c82 .p2align 4, 0x90 + //0x00002c90 LBB9_58 + 0x4d, 0x01, 0xff, //0x00002c90 addq %r15, %r15 + 0x4f, 0x8d, 0x3c, 0xbf, //0x00002c93 leaq (%r15,%r15,4), %r15 + 0xff, 0xc8, //0x00002c97 decl %eax + 0x39, 0xc7, //0x00002c99 cmpl %eax, %edi + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00002c9b jne LBB9_58 + 0x29, 0xc2, //0x00002ca1 subl %eax, %edx + //0x00002ca3 LBB9_60 + 0x83, 0xfe, 0x07, //0x00002ca3 cmpl $7, %esi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002ca6 jb LBB9_63 + 0x89, 0xc8, //0x00002cac movl %ecx, %eax + 0x29, 0xd0, //0x00002cae subl %edx, %eax + //0x00002cb0 .p2align 4, 0x90 + //0x00002cb0 LBB9_62 + 0x4d, 0x69, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00002cb0 imulq $100000000, %r15, %r15 + 0x83, 0xc0, 0xf8, //0x00002cb7 addl $-8, %eax + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002cba jne LBB9_62 + //0x00002cc0 LBB9_63 + 0x85, 0xc9, //0x00002cc0 testl %ecx, %ecx + 0x0f, 0x88, 0x4c, 0x00, 0x00, 0x00, //0x00002cc2 js LBB9_71 + 0x41, 0x8b, 0x54, 0x24, 0x10, //0x00002cc8 movl $16(%r12), %edx + 0x44, 0x39, 0xc2, //0x00002ccd cmpl %r8d, %edx + 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002cd0 jle LBB9_71 + 0x49, 0x8b, 0x34, 0x24, //0x00002cd6 movq (%r12), %rsi + 0x8a, 0x04, 0x0e, //0x00002cda movb (%rsi,%rcx), %al + 0x8d, 0x79, 0x01, //0x00002cdd leal $1(%rcx), %edi + 0x39, 0xd7, //0x00002ce0 cmpl %edx, %edi + 0x0f, 0x85, 0xbf, 0x00, 0x00, 0x00, //0x00002ce2 jne LBB9_72 + 0x3c, 0x35, //0x00002ce8 cmpb $53, %al + 0x0f, 0x85, 0xb7, 0x00, 0x00, 0x00, //0x00002cea jne LBB9_72 + 0x41, 0x83, 0x7c, 0x24, 0x1c, 0x00, //0x00002cf0 cmpl $0, $28(%r12) + 0x0f, 0x95, 0xc2, //0x00002cf6 setne %dl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00002cf9 jne LBB9_73 + 0x85, 0xc9, //0x00002cff testl %ecx, %ecx + 0x0f, 0x8e, 0x0f, 0x00, 0x00, 0x00, //0x00002d01 jle LBB9_73 + 0x41, 0x8a, 0x54, 0x30, 0xff, //0x00002d07 movb $-1(%r8,%rsi), %dl + 0x80, 0xe2, 0x01, //0x00002d0c andb $1, %dl + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002d0f jmp LBB9_73 + //0x00002d14 LBB9_71 + 0x31, 0xd2, //0x00002d14 xorl %edx, %edx + //0x00002d16 LBB9_73 + 0x0f, 0xb6, 0xc2, //0x00002d16 movzbl %dl, %eax + 0x49, 0x01, 0xc7, //0x00002d19 addq %rax, %r15 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00002d1c movabsq $9007199254740992, %rax + 0x49, 0x39, 0xc7, //0x00002d26 cmpq %rax, %r15 + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00002d29 jne LBB9_77 + 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x00002d2f cmpl $1022, %r14d + 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00002d36 jle LBB9_76 + //0x00002d3c LBB9_75 + 0x45, 0x31, 0xff, //0x00002d3c xorl %r15d, %r15d + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002d3f movabsq $9218868437227405312, %r14 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002d49 jmp LBB9_78 + //0x00002d4e LBB9_76 + 0x41, 0xff, 0xc6, //0x00002d4e incl %r14d + 0x4d, 0x89, 0xef, //0x00002d51 movq %r13, %r15 + //0x00002d54 LBB9_77 + 0x4c, 0x89, 0xf8, //0x00002d54 movq %r15, %rax + 0x4c, 0x21, 0xe8, //0x00002d57 andq %r13, %rax + 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00002d5a addl $1023, %r14d + 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00002d61 andl $2047, %r14d + 0x49, 0xc1, 0xe6, 0x34, //0x00002d68 shlq $52, %r14 + 0x48, 0x85, 0xc0, //0x00002d6c testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf0, //0x00002d6f cmoveq %rax, %r14 + //0x00002d73 LBB9_78 + 0x49, 0xff, 0xcd, //0x00002d73 decq %r13 + 0x4d, 0x21, 0xfd, //0x00002d76 andq %r15, %r13 + 0x4d, 0x09, 0xf5, //0x00002d79 orq %r14, %r13 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002d7c movabsq $-9223372036854775808, %rax + 0x4c, 0x09, 0xe8, //0x00002d86 orq %r13, %rax + 0x41, 0x83, 0x7c, 0x24, 0x18, 0x00, //0x00002d89 cmpl $0, $24(%r12) + 0x49, 0x0f, 0x44, 0xc5, //0x00002d8f cmoveq %r13, %rax + 0x48, 0x89, 0x03, //0x00002d93 movq %rax, (%rbx) + 0x31, 0xc0, //0x00002d96 xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00002d98 addq $8, %rsp + 0x5b, //0x00002d9c popq %rbx + 0x41, 0x5c, //0x00002d9d popq %r12 + 0x41, 0x5d, //0x00002d9f popq %r13 + 0x41, 0x5e, //0x00002da1 popq %r14 + 0x41, 0x5f, //0x00002da3 popq %r15 + 0x5d, //0x00002da5 popq %rbp + 0xc3, //0x00002da6 retq + //0x00002da7 LBB9_72 + 0x3c, 0x34, //0x00002da7 cmpb $52, %al + 0x0f, 0x9f, 0xc2, //0x00002da9 setg %dl + 0xe9, 0x65, 0xff, 0xff, 0xff, //0x00002dac jmp LBB9_73 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002db1 .p2align 4, 0x90 + //0x00002dc0 _atof_native + 0x55, //0x00002dc0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002dc1 movq %rsp, %rbp + 0x48, 0x83, 0xec, 0x30, //0x00002dc4 subq $48, %rsp + 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x00002dc8 movq $0, $-40(%rbp) + 0x48, 0x89, 0x55, 0xe0, //0x00002dd0 movq %rdx, $-32(%rbp) + 0x48, 0x89, 0x4d, 0xe8, //0x00002dd4 movq %rcx, $-24(%rbp) + 0x48, 0x85, 0xc9, //0x00002dd8 testq %rcx, %rcx + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00002ddb je LBB10_5 + 0xc6, 0x02, 0x00, //0x00002de1 movb $0, (%rdx) + 0x48, 0x83, 0xf9, 0x01, //0x00002de4 cmpq $1, %rcx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00002de8 je LBB10_5 + 0xc6, 0x42, 0x01, 0x00, //0x00002dee movb $0, $1(%rdx) + 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00002df2 cmpq $3, $-24(%rbp) + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00002df7 jb LBB10_5 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00002dfd movl $2, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e02 .p2align 4, 0x90 + //0x00002e10 LBB10_4 + 0x48, 0x8b, 0x4d, 0xe0, //0x00002e10 movq $-32(%rbp), %rcx + 0xc6, 0x04, 0x01, 0x00, //0x00002e14 movb $0, (%rcx,%rax) + 0x48, 0xff, 0xc0, //0x00002e18 incq %rax + 0x48, 0x39, 0x45, 0xe8, //0x00002e1b cmpq %rax, $-24(%rbp) + 0x0f, 0x87, 0xeb, 0xff, 0xff, 0xff, //0x00002e1f ja LBB10_4 + //0x00002e25 LBB10_5 + 0xc5, 0xf8, 0x57, 0xc0, //0x00002e25 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x00002e29 vmovups %xmm0, $-16(%rbp) + 0x80, 0x3f, 0x2d, //0x00002e2e cmpb $45, (%rdi) + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00002e31 jne LBB10_6 + 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00002e37 movl $1, $-8(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002e3e movl $1, %eax + 0x48, 0x39, 0xf0, //0x00002e43 cmpq %rsi, %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002e46 jl LBB10_9 + //0x00002e4c LBB10_41 + 0xc7, 0x45, 0xf4, 0x00, 0x00, 0x00, 0x00, //0x00002e4c movl $0, $-12(%rbp) + 0xe9, 0xa1, 0x01, 0x00, 0x00, //0x00002e53 jmp LBB10_40 + //0x00002e58 LBB10_6 + 0x31, 0xc0, //0x00002e58 xorl %eax, %eax + 0x48, 0x39, 0xf0, //0x00002e5a cmpq %rsi, %rax + 0x0f, 0x8d, 0xe9, 0xff, 0xff, 0xff, //0x00002e5d jge LBB10_41 + //0x00002e63 LBB10_9 + 0x41, 0xb3, 0x01, //0x00002e63 movb $1, %r11b + 0x45, 0x31, 0xc9, //0x00002e66 xorl %r9d, %r9d + 0x45, 0x31, 0xd2, //0x00002e69 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00002e6c xorl %r8d, %r8d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002e6f jmp LBB10_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e74 .p2align 4, 0x90 + //0x00002e80 LBB10_13 + 0xff, 0x4d, 0xf4, //0x00002e80 decl $-12(%rbp) + 0x45, 0x31, 0xd2, //0x00002e83 xorl %r10d, %r10d + //0x00002e86 LBB10_22 + 0x48, 0xff, 0xc0, //0x00002e86 incq %rax + 0x48, 0x39, 0xf0, //0x00002e89 cmpq %rsi, %rax + 0x41, 0x0f, 0x9c, 0xc3, //0x00002e8c setl %r11b + 0x48, 0x39, 0xc6, //0x00002e90 cmpq %rax, %rsi + 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x00002e93 je LBB10_23 + //0x00002e99 LBB10_10 + 0x0f, 0xb6, 0x0c, 0x07, //0x00002e99 movzbl (%rdi,%rax), %ecx + 0x8d, 0x51, 0xd0, //0x00002e9d leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00002ea0 cmpb $9, %dl + 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00002ea3 ja LBB10_19 + 0x45, 0x85, 0xd2, //0x00002ea9 testl %r10d, %r10d + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002eac jne LBB10_14 + 0x80, 0xf9, 0x30, //0x00002eb2 cmpb $48, %cl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00002eb5 je LBB10_13 + //0x00002ebb LBB10_14 + 0x4d, 0x63, 0xd1, //0x00002ebb movslq %r9d, %r10 + 0x4c, 0x39, 0x55, 0xe8, //0x00002ebe cmpq %r10, $-24(%rbp) + 0x0f, 0x86, 0x40, 0x00, 0x00, 0x00, //0x00002ec2 jbe LBB10_16 + 0x48, 0x8b, 0x55, 0xe0, //0x00002ec8 movq $-32(%rbp), %rdx + 0x42, 0x88, 0x0c, 0x12, //0x00002ecc movb %cl, (%rdx,%r10) + 0x44, 0x8b, 0x4d, 0xf0, //0x00002ed0 movl $-16(%rbp), %r9d + 0x41, 0xff, 0xc1, //0x00002ed4 incl %r9d + 0x44, 0x89, 0x4d, 0xf0, //0x00002ed7 movl %r9d, $-16(%rbp) + 0x45, 0x89, 0xca, //0x00002edb movl %r9d, %r10d + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00002ede jmp LBB10_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ee3 .p2align 4, 0x90 + //0x00002ef0 LBB10_19 + 0x80, 0xf9, 0x2e, //0x00002ef0 cmpb $46, %cl + 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, //0x00002ef3 jne LBB10_20 + 0x44, 0x89, 0x55, 0xf4, //0x00002ef9 movl %r10d, $-12(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002efd movl $1, %r8d + 0xe9, 0x7e, 0xff, 0xff, 0xff, //0x00002f03 jmp LBB10_22 + //0x00002f08 LBB10_16 + 0x80, 0xf9, 0x30, //0x00002f08 cmpb $48, %cl + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00002f0b jne LBB10_18 + 0x45, 0x89, 0xca, //0x00002f11 movl %r9d, %r10d + 0xe9, 0x6d, 0xff, 0xff, 0xff, //0x00002f14 jmp LBB10_22 + //0x00002f19 LBB10_18 + 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00002f19 movl $1, $-4(%rbp) + 0x45, 0x89, 0xca, //0x00002f20 movl %r9d, %r10d + 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00002f23 jmp LBB10_22 + //0x00002f28 LBB10_23 + 0x89, 0xf1, //0x00002f28 movl %esi, %ecx + 0x48, 0x89, 0xf0, //0x00002f2a movq %rsi, %rax + 0x45, 0x85, 0xc0, //0x00002f2d testl %r8d, %r8d + 0x0f, 0x85, 0x04, 0x00, 0x00, 0x00, //0x00002f30 jne LBB10_26 + //0x00002f36 LBB10_25 + 0x44, 0x89, 0x4d, 0xf4, //0x00002f36 movl %r9d, $-12(%rbp) + //0x00002f3a LBB10_26 + 0x41, 0xf6, 0xc3, 0x01, //0x00002f3a testb $1, %r11b + 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00002f3e je LBB10_40 + 0x8a, 0x0c, 0x0f, //0x00002f44 movb (%rdi,%rcx), %cl + 0x80, 0xc9, 0x20, //0x00002f47 orb $32, %cl + 0x80, 0xf9, 0x65, //0x00002f4a cmpb $101, %cl + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00002f4d jne LBB10_40 + 0x89, 0xc2, //0x00002f53 movl %eax, %edx + 0x8a, 0x4c, 0x17, 0x01, //0x00002f55 movb $1(%rdi,%rdx), %cl + 0x80, 0xf9, 0x2d, //0x00002f59 cmpb $45, %cl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00002f5c je LBB10_32 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002f62 movl $1, %r8d + 0x80, 0xf9, 0x2b, //0x00002f68 cmpb $43, %cl + 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00002f6b jne LBB10_30 + 0x83, 0xc0, 0x02, //0x00002f71 addl $2, %eax + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00002f74 jmp LBB10_33 + //0x00002f79 LBB10_20 + 0x48, 0x89, 0xc1, //0x00002f79 movq %rax, %rcx + 0x45, 0x85, 0xc0, //0x00002f7c testl %r8d, %r8d + 0x0f, 0x85, 0xb5, 0xff, 0xff, 0xff, //0x00002f7f jne LBB10_26 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002f85 jmp LBB10_25 + //0x00002f8a LBB10_32 + 0x83, 0xc0, 0x02, //0x00002f8a addl $2, %eax + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00002f8d movl $-1, %r8d + //0x00002f93 LBB10_33 + 0x89, 0xc2, //0x00002f93 movl %eax, %edx + 0x48, 0x63, 0xd2, //0x00002f95 movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00002f98 xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00002f9b cmpq %rsi, %rdx + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002f9e jl LBB10_35 + 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00002fa4 jmp LBB10_39 + //0x00002fa9 LBB10_30 + 0x48, 0xff, 0xc2, //0x00002fa9 incq %rdx + 0x48, 0x63, 0xd2, //0x00002fac movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00002faf xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00002fb2 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x36, 0x00, 0x00, 0x00, //0x00002fb5 jge LBB10_39 + //0x00002fbb LBB10_35 + 0x45, 0x31, 0xc9, //0x00002fbb xorl %r9d, %r9d + 0x90, 0x90, //0x00002fbe .p2align 4, 0x90 + //0x00002fc0 LBB10_36 + 0x41, 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00002fc0 cmpl $9999, %r9d + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00002fc7 jg LBB10_39 + 0x0f, 0xb6, 0x0c, 0x17, //0x00002fcd movzbl (%rdi,%rdx), %ecx + 0x8d, 0x41, 0xd0, //0x00002fd1 leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00002fd4 cmpb $9, %al + 0x0f, 0x87, 0x15, 0x00, 0x00, 0x00, //0x00002fd6 ja LBB10_39 + 0x43, 0x8d, 0x04, 0x89, //0x00002fdc leal (%r9,%r9,4), %eax + 0x44, 0x8d, 0x4c, 0x41, 0xd0, //0x00002fe0 leal $-48(%rcx,%rax,2), %r9d + 0x48, 0xff, 0xc2, //0x00002fe5 incq %rdx + 0x48, 0x39, 0xd6, //0x00002fe8 cmpq %rdx, %rsi + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00002feb jne LBB10_36 + //0x00002ff1 LBB10_39 + 0x45, 0x0f, 0xaf, 0xc8, //0x00002ff1 imull %r8d, %r9d + 0x44, 0x01, 0x4d, 0xf4, //0x00002ff5 addl %r9d, $-12(%rbp) + //0x00002ff9 LBB10_40 + 0x48, 0x8d, 0x7d, 0xe0, //0x00002ff9 leaq $-32(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd8, //0x00002ffd leaq $-40(%rbp), %rsi + 0xe8, 0x1a, 0xf9, 0xff, 0xff, //0x00003001 callq _decimal_to_f64 + 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x00003006 vmovsd $-40(%rbp), %xmm0 + 0x48, 0x83, 0xc4, 0x30, //0x0000300b addq $48, %rsp + 0x5d, //0x0000300f popq %rbp + 0xc3, //0x00003010 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003011 .p2align 4, 0x90 + //0x00003020 _value + 0x55, //0x00003020 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003021 movq %rsp, %rbp + 0x41, 0x57, //0x00003024 pushq %r15 + 0x41, 0x56, //0x00003026 pushq %r14 + 0x41, 0x55, //0x00003028 pushq %r13 + 0x41, 0x54, //0x0000302a pushq %r12 + 0x53, //0x0000302c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000302d subq $40, %rsp + 0x49, 0x89, 0xc9, //0x00003031 movq %rcx, %r9 + 0x49, 0x89, 0xd4, //0x00003034 movq %rdx, %r12 + 0x49, 0x89, 0xf7, //0x00003037 movq %rsi, %r15 + 0x49, 0x89, 0xfd, //0x0000303a movq %rdi, %r13 + 0x48, 0x89, 0x55, 0xd0, //0x0000303d movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x7d, 0xb0, //0x00003041 movq %rdi, $-80(%rbp) + 0x48, 0x89, 0x75, 0xb8, //0x00003045 movq %rsi, $-72(%rbp) + 0x48, 0x89, 0xd0, //0x00003049 movq %rdx, %rax + 0x48, 0x29, 0xf0, //0x0000304c subq %rsi, %rax + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000304f jae LBB11_5 + 0x43, 0x8a, 0x4c, 0x25, 0x00, //0x00003055 movb (%r13,%r12), %cl + 0x80, 0xf9, 0x0d, //0x0000305a cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000305d je LBB11_5 + 0x80, 0xf9, 0x20, //0x00003063 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00003066 je LBB11_5 + 0x8d, 0x51, 0xf7, //0x0000306c leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x0000306f cmpb $1, %dl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003072 jbe LBB11_5 + 0x4c, 0x89, 0xe3, //0x00003078 movq %r12, %rbx + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x0000307b jmp LBB11_28 + //0x00003080 LBB11_5 + 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x00003080 leaq $1(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x00003085 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00003088 jae LBB11_9 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x0000308e movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x00003093 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00003096 je LBB11_9 + 0x80, 0xf9, 0x20, //0x0000309c cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000309f je LBB11_9 + 0x8d, 0x51, 0xf7, //0x000030a5 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x000030a8 cmpb $1, %dl + 0x0f, 0x87, 0x01, 0x01, 0x00, 0x00, //0x000030ab ja LBB11_28 + //0x000030b1 LBB11_9 + 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x000030b1 leaq $2(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x000030b6 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030b9 jae LBB11_13 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030bf movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x000030c4 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030c7 je LBB11_13 + 0x80, 0xf9, 0x20, //0x000030cd cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000030d0 je LBB11_13 + 0x8d, 0x51, 0xf7, //0x000030d6 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x000030d9 cmpb $1, %dl + 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x000030dc ja LBB11_28 + //0x000030e2 LBB11_13 + 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x000030e2 leaq $3(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x000030e7 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030ea jae LBB11_17 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030f0 movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x000030f5 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030f8 je LBB11_17 + 0x80, 0xf9, 0x20, //0x000030fe cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00003101 je LBB11_17 + 0x8d, 0x51, 0xf7, //0x00003107 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x0000310a cmpb $1, %dl + 0x0f, 0x87, 0x9f, 0x00, 0x00, 0x00, //0x0000310d ja LBB11_28 + //0x00003113 LBB11_17 + 0x49, 0x8d, 0x4c, 0x24, 0x04, //0x00003113 leaq $4(%r12), %rcx + 0x4c, 0x39, 0xf9, //0x00003118 cmpq %r15, %rcx + 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x0000311b jae LBB11_23 + 0x49, 0x39, 0xcf, //0x00003121 cmpq %rcx, %r15 + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00003124 je LBB11_24 + 0x4b, 0x8d, 0x4c, 0x3d, 0x00, //0x0000312a leaq (%r13,%r15), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x0000312f addq $4, %rax + 0x4b, 0x8d, 0x5c, 0x2c, 0x05, //0x00003133 leaq $5(%r12,%r13), %rbx + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00003138 movabsq $4294977024, %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003142 .p2align 4, 0x90 + //0x00003150 LBB11_20 + 0x0f, 0xbe, 0x73, 0xff, //0x00003150 movsbl $-1(%rbx), %esi + 0x83, 0xfe, 0x20, //0x00003154 cmpl $32, %esi + 0x0f, 0x87, 0x3e, 0x00, 0x00, 0x00, //0x00003157 ja LBB11_26 + 0x48, 0x0f, 0xa3, 0xf2, //0x0000315d btq %rsi, %rdx + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00003161 jae LBB11_26 + 0x48, 0xff, 0xc3, //0x00003167 incq %rbx + 0x48, 0xff, 0xc0, //0x0000316a incq %rax + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000316d jne LBB11_20 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00003173 jmp LBB11_25 + //0x00003178 LBB11_23 + 0x48, 0x89, 0x4d, 0xd0, //0x00003178 movq %rcx, $-48(%rbp) + 0x49, 0x89, 0xcc, //0x0000317c movq %rcx, %r12 + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x0000317f jmp LBB11_32 + //0x00003184 LBB11_24 + 0x4c, 0x01, 0xe9, //0x00003184 addq %r13, %rcx + //0x00003187 LBB11_25 + 0x4c, 0x29, 0xe9, //0x00003187 subq %r13, %rcx + 0x48, 0x89, 0xcb, //0x0000318a movq %rcx, %rbx + 0x4c, 0x39, 0xfb, //0x0000318d cmpq %r15, %rbx + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00003190 jb LBB11_27 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x00003196 jmp LBB11_32 + //0x0000319b LBB11_26 + 0x4c, 0x89, 0xe8, //0x0000319b movq %r13, %rax + 0x48, 0xf7, 0xd0, //0x0000319e notq %rax + 0x48, 0x01, 0xc3, //0x000031a1 addq %rax, %rbx + 0x4c, 0x39, 0xfb, //0x000031a4 cmpq %r15, %rbx + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x000031a7 jae LBB11_32 + //0x000031ad LBB11_27 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000031ad movb (%r13,%rbx), %cl + //0x000031b2 LBB11_28 + 0x4c, 0x8d, 0x63, 0x01, //0x000031b2 leaq $1(%rbx), %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x000031b6 movq %r12, $-48(%rbp) + 0x0f, 0xbe, 0xc1, //0x000031ba movsbl %cl, %eax + 0x83, 0xf8, 0x7d, //0x000031bd cmpl $125, %eax + 0x0f, 0x87, 0xc4, 0x00, 0x00, 0x00, //0x000031c0 ja LBB11_41 + 0x4d, 0x8d, 0x74, 0x1d, 0x00, //0x000031c6 leaq (%r13,%rbx), %r14 + 0x48, 0x8d, 0x15, 0x72, 0x03, 0x00, 0x00, //0x000031cb leaq $882(%rip), %rdx /* LJTI11_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000031d2 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000031d6 addq %rdx, %rax + 0xff, 0xe0, //0x000031d9 jmpq *%rax + //0x000031db LBB11_30 + 0x48, 0x89, 0x5d, 0xd0, //0x000031db movq %rbx, $-48(%rbp) + 0x41, 0xf6, 0xc0, 0x02, //0x000031df testb $2, %r8b + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000031e3 jne LBB11_35 + 0x48, 0x8d, 0x7d, 0xb0, //0x000031e9 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd0, //0x000031ed leaq $-48(%rbp), %rsi + 0x4c, 0x89, 0xca, //0x000031f1 movq %r9, %rdx + 0xe8, 0x27, 0x0b, 0x00, 0x00, //0x000031f4 callq _vnumber + 0x48, 0x8b, 0x5d, 0xd0, //0x000031f9 movq $-48(%rbp), %rbx + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000031fd jmp LBB11_34 + //0x00003202 LBB11_32 + 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x00003202 movq $1, (%r9) + //0x00003209 LBB11_33 + 0x4c, 0x89, 0xe3, //0x00003209 movq %r12, %rbx + //0x0000320c LBB11_34 + 0x48, 0x89, 0xd8, //0x0000320c movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x28, //0x0000320f addq $40, %rsp + 0x5b, //0x00003213 popq %rbx + 0x41, 0x5c, //0x00003214 popq %r12 + 0x41, 0x5d, //0x00003216 popq %r13 + 0x41, 0x5e, //0x00003218 popq %r14 + 0x41, 0x5f, //0x0000321a popq %r15 + 0x5d, //0x0000321c popq %rbp + 0xc3, //0x0000321d retq + //0x0000321e LBB11_35 + 0x31, 0xc0, //0x0000321e xorl %eax, %eax + 0x80, 0xf9, 0x2d, //0x00003220 cmpb $45, %cl + 0x0f, 0x94, 0xc0, //0x00003223 sete %al + 0x49, 0x01, 0xc6, //0x00003226 addq %rax, %r14 + 0x49, 0x29, 0xc7, //0x00003229 subq %rax, %r15 + 0x0f, 0x84, 0xda, 0x02, 0x00, 0x00, //0x0000322c je LBB11_85 + 0x4c, 0x89, 0x4d, 0xc8, //0x00003232 movq %r9, $-56(%rbp) + 0x4c, 0x39, 0xfb, //0x00003236 cmpq %r15, %rbx + 0x0f, 0x83, 0x0d, 0x00, 0x00, 0x00, //0x00003239 jae LBB11_38 + 0x41, 0x8a, 0x06, //0x0000323f movb (%r14), %al + 0x04, 0xd0, //0x00003242 addb $-48, %al + 0x3c, 0x0a, //0x00003244 cmpb $10, %al + 0x0f, 0x83, 0xd9, 0x02, 0x00, 0x00, //0x00003246 jae LBB11_87 + //0x0000324c LBB11_38 + 0x4c, 0x89, 0xf7, //0x0000324c movq %r14, %rdi + 0x4c, 0x89, 0xfe, //0x0000324f movq %r15, %rsi + 0xe8, 0xd9, 0x1d, 0x00, 0x00, //0x00003252 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00003257 testq %rax, %rax + 0x0f, 0x88, 0xbf, 0x02, 0x00, 0x00, //0x0000325a js LBB11_86 + 0x49, 0x01, 0xc6, //0x00003260 addq %rax, %r14 + 0x4d, 0x29, 0xee, //0x00003263 subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003266 movq %r14, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x0000326a testq %r12, %r12 + 0x4c, 0x8b, 0x4d, 0xc8, //0x0000326d movq $-56(%rbp), %r9 + 0x0f, 0x8e, 0xc0, 0x02, 0x00, 0x00, //0x00003271 jle LBB11_88 + 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003277 movq $8, (%r9) + 0x49, 0x89, 0x59, 0x18, //0x0000327e movq %rbx, $24(%r9) + 0x4c, 0x89, 0xf3, //0x00003282 movq %r14, %rbx + 0xe9, 0x82, 0xff, 0xff, 0xff, //0x00003285 jmp LBB11_34 + //0x0000328a LBB11_41 + 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x0000328a movq $-2, (%r9) + 0xe9, 0x76, 0xff, 0xff, 0xff, //0x00003291 jmp LBB11_34 + //0x00003296 LBB11_42 + 0x4d, 0x89, 0xce, //0x00003296 movq %r9, %r14 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003299 movq $-1, $-64(%rbp) + 0x48, 0x8d, 0x7d, 0xb0, //0x000032a1 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc0, //0x000032a5 leaq $-64(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x000032a9 movq %r12, %rsi + 0x4c, 0x89, 0xc1, //0x000032ac movq %r8, %rcx + 0xe8, 0x3c, 0x05, 0x00, 0x00, //0x000032af callq _advance_string + 0x48, 0x89, 0xc3, //0x000032b4 movq %rax, %rbx + 0x48, 0x85, 0xc0, //0x000032b7 testq %rax, %rax + 0x0f, 0x88, 0x41, 0x01, 0x00, 0x00, //0x000032ba js LBB11_61 + 0x48, 0x89, 0x5d, 0xd0, //0x000032c0 movq %rbx, $-48(%rbp) + 0x4d, 0x89, 0x66, 0x10, //0x000032c4 movq %r12, $16(%r14) + 0x48, 0x8b, 0x45, 0xc0, //0x000032c8 movq $-64(%rbp), %rax + 0x48, 0x39, 0xd8, //0x000032cc cmpq %rbx, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000032cf movq $-1, %rcx + 0x48, 0x0f, 0x4c, 0xc8, //0x000032d6 cmovlq %rax, %rcx + 0x49, 0x89, 0x4e, 0x18, //0x000032da movq %rcx, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000032de movl $7, %eax + 0x49, 0x89, 0x06, //0x000032e3 movq %rax, (%r14) + 0xe9, 0x21, 0xff, 0xff, 0xff, //0x000032e6 jmp LBB11_34 + //0x000032eb LBB11_44 + 0x31, 0xc0, //0x000032eb xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x000032ed testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x000032f0 setns %al + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x000032f3 movl $11, %ecx + 0xe9, 0xee, 0x00, 0x00, 0x00, //0x000032f8 jmp LBB11_60 + //0x000032fd LBB11_45 + 0x31, 0xc0, //0x000032fd xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x000032ff testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00003302 setns %al + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x00003305 movl $10, %ecx + 0xe9, 0xdc, 0x00, 0x00, 0x00, //0x0000330a jmp LBB11_60 + //0x0000330f LBB11_46 + 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x0000330f movq $5, (%r9) + 0xe9, 0xee, 0xfe, 0xff, 0xff, //0x00003316 jmp LBB11_33 + //0x0000331b LBB11_47 + 0x31, 0xc0, //0x0000331b xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x0000331d testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00003320 setns %al + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00003323 movl $12, %ecx + 0xe9, 0xbe, 0x00, 0x00, 0x00, //0x00003328 jmp LBB11_60 + //0x0000332d LBB11_48 + 0x49, 0x8d, 0x47, 0xfc, //0x0000332d leaq $-4(%r15), %rax + 0x48, 0x39, 0xc3, //0x00003331 cmpq %rax, %rbx + 0x0f, 0x83, 0x88, 0x00, 0x00, 0x00, //0x00003334 jae LBB11_57 + 0x43, 0x8b, 0x4c, 0x25, 0x00, //0x0000333a movl (%r13,%r12), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x0000333f cmpl $1702063201, %ecx + 0x0f, 0x85, 0xc5, 0x00, 0x00, 0x00, //0x00003345 jne LBB11_62 + 0x48, 0x83, 0xc3, 0x05, //0x0000334b addq $5, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x0000334f movq %rbx, $-48(%rbp) + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00003353 movl $4, %eax + 0x49, 0x89, 0xdf, //0x00003358 movq %rbx, %r15 + 0xe9, 0xa1, 0x01, 0x00, 0x00, //0x0000335b jmp LBB11_84 + //0x00003360 LBB11_51 + 0x49, 0x8d, 0x47, 0xfd, //0x00003360 leaq $-3(%r15), %rax + 0x48, 0x39, 0xc3, //0x00003364 cmpq %rax, %rbx + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x00003367 jae LBB11_57 + 0x41, 0x8b, 0x0e, //0x0000336d movl (%r14), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x00003370 cmpl $1819047278, %ecx + 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x00003376 jne LBB11_66 + 0x48, 0x83, 0xc3, 0x04, //0x0000337c addq $4, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003380 movq %rbx, $-48(%rbp) + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00003384 movl $2, %eax + 0x49, 0x89, 0xdf, //0x00003389 movq %rbx, %r15 + 0xe9, 0x70, 0x01, 0x00, 0x00, //0x0000338c jmp LBB11_84 + //0x00003391 LBB11_54 + 0x49, 0x8d, 0x47, 0xfd, //0x00003391 leaq $-3(%r15), %rax + 0x48, 0x39, 0xc3, //0x00003395 cmpq %rax, %rbx + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00003398 jae LBB11_57 + 0x41, 0x8b, 0x0e, //0x0000339e movl (%r14), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x000033a1 cmpl $1702195828, %ecx + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x000033a7 jne LBB11_70 + 0x48, 0x83, 0xc3, 0x04, //0x000033ad addq $4, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000033b1 movq %rbx, $-48(%rbp) + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000033b5 movl $3, %eax + 0x49, 0x89, 0xdf, //0x000033ba movq %rbx, %r15 + 0xe9, 0x3f, 0x01, 0x00, 0x00, //0x000033bd jmp LBB11_84 + //0x000033c2 LBB11_57 + 0x4c, 0x89, 0x7d, 0xd0, //0x000033c2 movq %r15, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000033c6 movq $-1, %rax + 0xe9, 0x2f, 0x01, 0x00, 0x00, //0x000033cd jmp LBB11_84 + //0x000033d2 LBB11_58 + 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000033d2 movq $6, (%r9) + 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x000033d9 jmp LBB11_33 + //0x000033de LBB11_59 + 0x31, 0xc0, //0x000033de xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x000033e0 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x000033e3 setns %al + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x000033e6 movl $13, %ecx + //0x000033eb LBB11_60 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000033eb movq $-2, %rdx + 0x48, 0x0f, 0x48, 0xd1, //0x000033f2 cmovsq %rcx, %rdx + 0x49, 0x89, 0x11, //0x000033f6 movq %rdx, (%r9) + 0x49, 0x29, 0xc4, //0x000033f9 subq %rax, %r12 + 0xe9, 0x08, 0xfe, 0xff, 0xff, //0x000033fc jmp LBB11_33 + //0x00003401 LBB11_61 + 0x4c, 0x89, 0x7d, 0xd0, //0x00003401 movq %r15, $-48(%rbp) + 0x49, 0x89, 0x1e, //0x00003405 movq %rbx, (%r14) + 0x4c, 0x89, 0xfb, //0x00003408 movq %r15, %rbx + 0xe9, 0xfc, 0xfd, 0xff, 0xff, //0x0000340b jmp LBB11_34 + //0x00003410 LBB11_62 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003410 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00003417 cmpb $97, %cl + 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x0000341a jne LBB11_74 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x00003420 cmpb $108, $2(%r13,%rbx) + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x00003426 jne LBB11_81 + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x73, //0x0000342c cmpb $115, $3(%r13,%rbx) + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003432 jne LBB11_79 + 0x4c, 0x8d, 0x7b, 0x04, //0x00003438 leaq $4(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x05, //0x0000343c leaq $5(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x04, 0x65, //0x00003440 cmpb $101, $4(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x00003446 cmoveq %rcx, %r15 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000344a jmp LBB11_83 + //0x0000344f LBB11_66 + 0x48, 0x89, 0x5d, 0xd0, //0x0000344f movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003453 movq $-2, %rax + 0x80, 0xf9, 0x6e, //0x0000345a cmpb $110, %cl + 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x0000345d jne LBB11_76 + 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x75, //0x00003463 cmpb $117, $1(%r13,%rbx) + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00003469 jne LBB11_77 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x0000346f cmpb $108, $2(%r13,%rbx) + 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x00003475 jne LBB11_81 + 0x4c, 0x8d, 0x7b, 0x03, //0x0000347b leaq $3(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x04, //0x0000347f leaq $4(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x6c, //0x00003483 cmpb $108, $3(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x00003489 cmoveq %rcx, %r15 + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x0000348d jmp LBB11_83 + //0x00003492 LBB11_70 + 0x48, 0x89, 0x5d, 0xd0, //0x00003492 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003496 movq $-2, %rax + 0x80, 0xf9, 0x74, //0x0000349d cmpb $116, %cl + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034a0 jne LBB11_76 + 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x72, //0x000034a6 cmpb $114, $1(%r13,%rbx) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000034ac jne LBB11_77 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x75, //0x000034b2 cmpb $117, $2(%r13,%rbx) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034b8 jne LBB11_81 + 0x4c, 0x8d, 0x7b, 0x03, //0x000034be leaq $3(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x04, //0x000034c2 leaq $4(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x65, //0x000034c6 cmpb $101, $3(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x000034cc cmoveq %rcx, %r15 + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000034d0 jmp LBB11_83 + //0x000034d5 LBB11_76 + 0x49, 0x89, 0xdf, //0x000034d5 movq %rbx, %r15 + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000034d8 jmp LBB11_84 + //0x000034dd LBB11_74 + 0x4d, 0x89, 0xe7, //0x000034dd movq %r12, %r15 + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x000034e0 jmp LBB11_84 + //0x000034e5 LBB11_77 + 0x48, 0xff, 0xc3, //0x000034e5 incq %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000034e8 jmp LBB11_82 + //0x000034ed LBB11_81 + 0x48, 0x83, 0xc3, 0x02, //0x000034ed addq $2, %rbx + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x000034f1 jmp LBB11_82 + //0x000034f6 LBB11_79 + 0x48, 0x83, 0xc3, 0x03, //0x000034f6 addq $3, %rbx + //0x000034fa LBB11_82 + 0x49, 0x89, 0xdf, //0x000034fa movq %rbx, %r15 + //0x000034fd LBB11_83 + 0x4c, 0x89, 0x7d, 0xd0, //0x000034fd movq %r15, $-48(%rbp) + //0x00003501 LBB11_84 + 0x49, 0x89, 0x01, //0x00003501 movq %rax, (%r9) + 0x4c, 0x89, 0xfb, //0x00003504 movq %r15, %rbx + 0xe9, 0x00, 0xfd, 0xff, 0xff, //0x00003507 jmp LBB11_34 + //0x0000350c LBB11_85 + 0x4d, 0x29, 0xee, //0x0000350c subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x0000350f movq %r14, $-48(%rbp) + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00003513 movq $-1, %rbx + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x0000351a jmp LBB11_88 + //0x0000351f LBB11_86 + 0x48, 0xf7, 0xd0, //0x0000351f notq %rax + 0x49, 0x01, 0xc6, //0x00003522 addq %rax, %r14 + //0x00003525 LBB11_87 + 0x4d, 0x29, 0xee, //0x00003525 subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003528 movq %r14, $-48(%rbp) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000352c movq $-2, %rbx + 0x4c, 0x8b, 0x4d, 0xc8, //0x00003533 movq $-56(%rbp), %r9 + //0x00003537 LBB11_88 + 0x49, 0x89, 0x19, //0x00003537 movq %rbx, (%r9) + 0x4c, 0x89, 0xf3, //0x0000353a movq %r14, %rbx + 0xe9, 0xca, 0xfc, 0xff, 0xff, //0x0000353d jmp LBB11_34 + 0x90, 0x90, //0x00003542 .p2align 2, 0x90 + // // .set L11_0_set_32, LBB11_32-LJTI11_0 + // // .set L11_0_set_41, LBB11_41-LJTI11_0 + // // .set L11_0_set_42, LBB11_42-LJTI11_0 + // // .set L11_0_set_44, LBB11_44-LJTI11_0 + // // .set L11_0_set_30, LBB11_30-LJTI11_0 + // // .set L11_0_set_45, LBB11_45-LJTI11_0 + // // .set L11_0_set_46, LBB11_46-LJTI11_0 + // // .set L11_0_set_47, LBB11_47-LJTI11_0 + // // .set L11_0_set_48, LBB11_48-LJTI11_0 + // // .set L11_0_set_51, LBB11_51-LJTI11_0 + // // .set L11_0_set_54, LBB11_54-LJTI11_0 + // // .set L11_0_set_58, LBB11_58-LJTI11_0 + // // .set L11_0_set_59, LBB11_59-LJTI11_0 + //0x00003544 LJTI11_0 + 0xbe, 0xfc, 0xff, 0xff, //0x00003544 .long L11_0_set_32 + 0x46, 0xfd, 0xff, 0xff, //0x00003548 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000354c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003550 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003554 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003558 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000355c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003560 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003564 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003568 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000356c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003570 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003574 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003578 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000357c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003580 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003584 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003588 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000358c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003590 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003594 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003598 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000359c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035a0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035a4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035a8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035ac .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035b0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035b4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035b8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035bc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035c0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035c4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035c8 .long L11_0_set_41 + 0x52, 0xfd, 0xff, 0xff, //0x000035cc .long L11_0_set_42 + 0x46, 0xfd, 0xff, 0xff, //0x000035d0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035d4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035d8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035dc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035e0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035e4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035e8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035ec .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035f0 .long L11_0_set_41 + 0xa7, 0xfd, 0xff, 0xff, //0x000035f4 .long L11_0_set_44 + 0x97, 0xfc, 0xff, 0xff, //0x000035f8 .long L11_0_set_30 + 0x46, 0xfd, 0xff, 0xff, //0x000035fc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003600 .long L11_0_set_41 + 0x97, 0xfc, 0xff, 0xff, //0x00003604 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003608 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x0000360c .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003610 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003614 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003618 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x0000361c .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003620 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003624 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003628 .long L11_0_set_30 + 0xb9, 0xfd, 0xff, 0xff, //0x0000362c .long L11_0_set_45 + 0x46, 0xfd, 0xff, 0xff, //0x00003630 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003634 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003638 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000363c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003640 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003644 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003648 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000364c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003650 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003654 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003658 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000365c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003660 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003664 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003668 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000366c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003670 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003674 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003678 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000367c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003680 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003684 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003688 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000368c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003690 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003694 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003698 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000369c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036a0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036a4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036a8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036ac .long L11_0_set_41 + 0xcb, 0xfd, 0xff, 0xff, //0x000036b0 .long L11_0_set_46 + 0x46, 0xfd, 0xff, 0xff, //0x000036b4 .long L11_0_set_41 + 0xd7, 0xfd, 0xff, 0xff, //0x000036b8 .long L11_0_set_47 + 0x46, 0xfd, 0xff, 0xff, //0x000036bc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036c0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036c4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036c8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036cc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036d0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036d4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036d8 .long L11_0_set_41 + 0xe9, 0xfd, 0xff, 0xff, //0x000036dc .long L11_0_set_48 + 0x46, 0xfd, 0xff, 0xff, //0x000036e0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036e4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036e8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036ec .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036f0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036f4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036f8 .long L11_0_set_41 + 0x1c, 0xfe, 0xff, 0xff, //0x000036fc .long L11_0_set_51 + 0x46, 0xfd, 0xff, 0xff, //0x00003700 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003704 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003708 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000370c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003710 .long L11_0_set_41 + 0x4d, 0xfe, 0xff, 0xff, //0x00003714 .long L11_0_set_54 + 0x46, 0xfd, 0xff, 0xff, //0x00003718 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000371c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003720 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003724 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003728 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000372c .long L11_0_set_41 + 0x8e, 0xfe, 0xff, 0xff, //0x00003730 .long L11_0_set_58 + 0x46, 0xfd, 0xff, 0xff, //0x00003734 .long L11_0_set_41 + 0x9a, 0xfe, 0xff, 0xff, //0x00003738 .long L11_0_set_59 + 0x90, 0x90, 0x90, 0x90, //0x0000373c .p2align 4, 0x90 + //0x00003740 _vstring + 0x55, //0x00003740 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003741 movq %rsp, %rbp + 0x41, 0x57, //0x00003744 pushq %r15 + 0x41, 0x56, //0x00003746 pushq %r14 + 0x41, 0x54, //0x00003748 pushq %r12 + 0x53, //0x0000374a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000374b subq $16, %rsp + 0x49, 0x89, 0xd6, //0x0000374f movq %rdx, %r14 + 0x48, 0x89, 0xf3, //0x00003752 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00003755 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003758 movq $-1, $-40(%rbp) + 0x4c, 0x8b, 0x26, //0x00003760 movq (%rsi), %r12 + 0x48, 0x8d, 0x55, 0xd8, //0x00003763 leaq $-40(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00003767 movq %r12, %rsi + 0xe8, 0x81, 0x00, 0x00, 0x00, //0x0000376a callq _advance_string + 0x48, 0x85, 0xc0, //0x0000376f testq %rax, %rax + 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003772 js LBB12_1 + 0x48, 0x89, 0x03, //0x00003778 movq %rax, (%rbx) + 0x4d, 0x89, 0x66, 0x10, //0x0000377b movq %r12, $16(%r14) + 0x48, 0x8b, 0x4d, 0xd8, //0x0000377f movq $-40(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x00003783 cmpq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003786 movq $-1, %rax + 0x48, 0x0f, 0x4c, 0xc1, //0x0000378d cmovlq %rcx, %rax + 0x49, 0x89, 0x46, 0x18, //0x00003791 movq %rax, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00003795 movl $7, %eax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000379a jmp LBB12_3 + //0x0000379f LBB12_1 + 0x49, 0x8b, 0x4f, 0x08, //0x0000379f movq $8(%r15), %rcx + 0x48, 0x89, 0x0b, //0x000037a3 movq %rcx, (%rbx) + //0x000037a6 LBB12_3 + 0x49, 0x89, 0x06, //0x000037a6 movq %rax, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x000037a9 addq $16, %rsp + 0x5b, //0x000037ad popq %rbx + 0x41, 0x5c, //0x000037ae popq %r12 + 0x41, 0x5e, //0x000037b0 popq %r14 + 0x41, 0x5f, //0x000037b2 popq %r15 + 0x5d, //0x000037b4 popq %rbp + 0xc3, //0x000037b5 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000037b6 .p2align 4, 0x00 + //0x000037c0 LCPI13_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000037c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000037d0 LCPI13_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000037d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000037e0 LCPI13_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000037e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000037f0 .p2align 4, 0x90 + //0x000037f0 _advance_string + 0xf6, 0xc1, 0x20, //0x000037f0 testb $32, %cl + 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x000037f3 jne LBB13_2 + 0xe9, 0x22, 0x57, 0x00, 0x00, //0x000037f9 jmp _advance_string_default + //0x000037fe LBB13_2 + 0x55, //0x000037fe pushq %rbp + 0x48, 0x89, 0xe5, //0x000037ff movq %rsp, %rbp + 0x41, 0x57, //0x00003802 pushq %r15 + 0x41, 0x56, //0x00003804 pushq %r14 + 0x41, 0x55, //0x00003806 pushq %r13 + 0x41, 0x54, //0x00003808 pushq %r12 + 0x53, //0x0000380a pushq %rbx + 0x50, //0x0000380b pushq %rax + 0x4c, 0x8b, 0x7f, 0x08, //0x0000380c movq $8(%rdi), %r15 + 0x49, 0x29, 0xf7, //0x00003810 subq %rsi, %r15 + 0x0f, 0x84, 0xac, 0x04, 0x00, 0x00, //0x00003813 je LBB13_45 + 0x48, 0x8b, 0x07, //0x00003819 movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x0000381c movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc6, //0x00003820 addq %rax, %rsi + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003823 movq $-1, (%rdx) + 0x49, 0x83, 0xff, 0x40, //0x0000382a cmpq $64, %r15 + 0x0f, 0x82, 0xd0, 0x03, 0x00, 0x00, //0x0000382e jb LBB13_46 + 0x45, 0x89, 0xf9, //0x00003834 movl %r15d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00003837 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000383b movq $-1, %r14 + 0x45, 0x31, 0xe4, //0x00003842 xorl %r12d, %r12d + 0xc5, 0x79, 0x6f, 0x05, 0x73, 0xff, 0xff, 0xff, //0x00003845 vmovdqa $-141(%rip), %xmm8 /* LCPI13_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x7b, 0xff, 0xff, 0xff, //0x0000384d vmovdqa $-133(%rip), %xmm1 /* LCPI13_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x83, 0xff, 0xff, 0xff, //0x00003855 vmovdqa $-125(%rip), %xmm2 /* LCPI13_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x0000385d vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003861 .p2align 4, 0x90 + //0x00003870 LBB13_5 + 0xc5, 0xfa, 0x6f, 0x3e, //0x00003870 vmovdqu (%rsi), %xmm7 + 0xc5, 0xfa, 0x6f, 0x76, 0x10, //0x00003874 vmovdqu $16(%rsi), %xmm6 + 0xc5, 0xfa, 0x6f, 0x6e, 0x20, //0x00003879 vmovdqu $32(%rsi), %xmm5 + 0xc5, 0xfa, 0x6f, 0x66, 0x30, //0x0000387e vmovdqu $48(%rsi), %xmm4 + 0xc5, 0xb9, 0x74, 0xc7, //0x00003883 vpcmpeqb %xmm7, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xd8, //0x00003887 vpmovmskb %xmm0, %r11d + 0xc5, 0xb9, 0x74, 0xc6, //0x0000388b vpcmpeqb %xmm6, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x0000388f vpmovmskb %xmm0, %r10d + 0xc5, 0xb9, 0x74, 0xc5, //0x00003893 vpcmpeqb %xmm5, %xmm8, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00003897 vpmovmskb %xmm0, %ecx + 0xc5, 0xb9, 0x74, 0xc4, //0x0000389b vpcmpeqb %xmm4, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x0000389f vpmovmskb %xmm0, %r13d + 0xc5, 0xc1, 0x74, 0xc1, //0x000038a3 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x000038a7 vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc1, //0x000038ab vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000038af vpmovmskb %xmm0, %eax + 0xc5, 0xd1, 0x74, 0xc1, //0x000038b3 vpcmpeqb %xmm1, %xmm5, %xmm0 + 0x49, 0xc1, 0xe2, 0x10, //0x000038b7 shlq $16, %r10 + 0x4d, 0x09, 0xd3, //0x000038bb orq %r10, %r11 + 0xc5, 0xf9, 0xd7, 0xd8, //0x000038be vpmovmskb %xmm0, %ebx + 0xc5, 0xd9, 0x74, 0xc1, //0x000038c2 vpcmpeqb %xmm1, %xmm4, %xmm0 + 0x48, 0xc1, 0xe1, 0x20, //0x000038c6 shlq $32, %rcx + 0x49, 0x09, 0xcb, //0x000038ca orq %rcx, %r11 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000038cd vpmovmskb %xmm0, %edi + 0xc5, 0xe9, 0x64, 0xc7, //0x000038d1 vpcmpgtb %xmm7, %xmm2, %xmm0 + 0xc5, 0xc1, 0x64, 0xfb, //0x000038d5 vpcmpgtb %xmm3, %xmm7, %xmm7 + 0xc5, 0xc1, 0xdb, 0xc0, //0x000038d9 vpand %xmm0, %xmm7, %xmm0 + 0x48, 0xc1, 0xe0, 0x10, //0x000038dd shlq $16, %rax + 0x49, 0x09, 0xc0, //0x000038e1 orq %rax, %r8 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000038e4 vpmovmskb %xmm0, %ecx + 0xc5, 0xe9, 0x64, 0xc6, //0x000038e8 vpcmpgtb %xmm6, %xmm2, %xmm0 + 0xc5, 0xc9, 0x64, 0xf3, //0x000038ec vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xc0, //0x000038f0 vpand %xmm0, %xmm6, %xmm0 + 0x48, 0xc1, 0xe3, 0x20, //0x000038f4 shlq $32, %rbx + 0x49, 0x09, 0xd8, //0x000038f8 orq %rbx, %r8 + 0xc5, 0xf9, 0xd7, 0xd8, //0x000038fb vpmovmskb %xmm0, %ebx + 0xc5, 0xe9, 0x64, 0xc5, //0x000038ff vpcmpgtb %xmm5, %xmm2, %xmm0 + 0xc5, 0xd1, 0x64, 0xeb, //0x00003903 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xc0, //0x00003907 vpand %xmm0, %xmm5, %xmm0 + 0x48, 0xc1, 0xe7, 0x30, //0x0000390b shlq $48, %rdi + 0x49, 0x09, 0xf8, //0x0000390f orq %rdi, %r8 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00003912 vpmovmskb %xmm0, %eax + 0xc5, 0xe9, 0x64, 0xc4, //0x00003916 vpcmpgtb %xmm4, %xmm2, %xmm0 + 0xc5, 0xd9, 0x64, 0xe3, //0x0000391a vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xc0, //0x0000391e vpand %xmm0, %xmm4, %xmm0 + 0x48, 0xc1, 0xe3, 0x10, //0x00003922 shlq $16, %rbx + 0x48, 0x09, 0xd9, //0x00003926 orq %rbx, %rcx + 0xc5, 0x79, 0xd7, 0xd0, //0x00003929 vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe5, 0x30, //0x0000392d shlq $48, %r13 + 0x48, 0xc1, 0xe0, 0x20, //0x00003931 shlq $32, %rax + 0x49, 0x83, 0xfe, 0xff, //0x00003935 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003939 jne LBB13_7 + 0x4d, 0x85, 0xc0, //0x0000393f testq %r8, %r8 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00003942 jne LBB13_12 + //0x00003948 LBB13_7 + 0x49, 0xc1, 0xe2, 0x30, //0x00003948 shlq $48, %r10 + 0x48, 0x09, 0xc1, //0x0000394c orq %rax, %rcx + 0x4d, 0x09, 0xeb, //0x0000394f orq %r13, %r11 + 0x4c, 0x89, 0xc0, //0x00003952 movq %r8, %rax + 0x4c, 0x09, 0xe0, //0x00003955 orq %r12, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00003958 jne LBB13_11 + 0x4c, 0x09, 0xd1, //0x0000395e orq %r10, %rcx + 0x4d, 0x85, 0xdb, //0x00003961 testq %r11, %r11 + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x00003964 jne LBB13_13 + //0x0000396a LBB13_9 + 0x48, 0x85, 0xc9, //0x0000396a testq %rcx, %rcx + 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x0000396d jne LBB13_19 + 0x48, 0x83, 0xc6, 0x40, //0x00003973 addq $64, %rsi + 0x49, 0x83, 0xc7, 0xc0, //0x00003977 addq $-64, %r15 + 0x49, 0x83, 0xff, 0x3f, //0x0000397b cmpq $63, %r15 + 0x0f, 0x87, 0xeb, 0xfe, 0xff, 0xff, //0x0000397f ja LBB13_5 + 0xe9, 0xea, 0x00, 0x00, 0x00, //0x00003985 jmp LBB13_21 + //0x0000398a LBB13_11 + 0x4c, 0x89, 0xe0, //0x0000398a movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x0000398d notq %rax + 0x4c, 0x21, 0xc0, //0x00003990 andq %r8, %rax + 0x4c, 0x8d, 0x2c, 0x00, //0x00003993 leaq (%rax,%rax), %r13 + 0x4d, 0x09, 0xe5, //0x00003997 orq %r12, %r13 + 0x4c, 0x89, 0xeb, //0x0000399a movq %r13, %rbx + 0x48, 0xf7, 0xd3, //0x0000399d notq %rbx + 0x4c, 0x21, 0xc3, //0x000039a0 andq %r8, %rbx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000039a3 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfb, //0x000039ad andq %rdi, %rbx + 0x45, 0x31, 0xe4, //0x000039b0 xorl %r12d, %r12d + 0x48, 0x01, 0xc3, //0x000039b3 addq %rax, %rbx + 0x41, 0x0f, 0x92, 0xc4, //0x000039b6 setb %r12b + 0x48, 0x01, 0xdb, //0x000039ba addq %rbx, %rbx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000039bd movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc3, //0x000039c7 xorq %rax, %rbx + 0x4c, 0x21, 0xeb, //0x000039ca andq %r13, %rbx + 0x48, 0xf7, 0xd3, //0x000039cd notq %rbx + 0x49, 0x21, 0xdb, //0x000039d0 andq %rbx, %r11 + 0x4c, 0x09, 0xd1, //0x000039d3 orq %r10, %rcx + 0x4d, 0x85, 0xdb, //0x000039d6 testq %r11, %r11 + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x000039d9 je LBB13_9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000039df jmp LBB13_13 + //0x000039e4 LBB13_12 + 0x48, 0x89, 0xf7, //0x000039e4 movq %rsi, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x000039e7 subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xf0, //0x000039eb bsfq %r8, %r14 + 0x49, 0x01, 0xfe, //0x000039ef addq %rdi, %r14 + 0x4c, 0x89, 0x32, //0x000039f2 movq %r14, (%rdx) + 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x000039f5 jmp LBB13_7 + //0x000039fa LBB13_13 + 0x49, 0x0f, 0xbc, 0xc3, //0x000039fa bsfq %r11, %rax + 0x48, 0x85, 0xc9, //0x000039fe testq %rcx, %rcx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00003a01 je LBB13_17 + 0x48, 0x0f, 0xbc, 0xc9, //0x00003a07 bsfq %rcx, %rcx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a0b subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc1, //0x00003a0f cmpq %rax, %rcx + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00003a12 jb LBB13_18 + //0x00003a18 LBB13_15 + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00003a18 leaq $1(%rsi,%rax), %rax + //0x00003a1d LBB13_16 + 0x48, 0x83, 0xc4, 0x08, //0x00003a1d addq $8, %rsp + 0x5b, //0x00003a21 popq %rbx + 0x41, 0x5c, //0x00003a22 popq %r12 + 0x41, 0x5d, //0x00003a24 popq %r13 + 0x41, 0x5e, //0x00003a26 popq %r14 + 0x41, 0x5f, //0x00003a28 popq %r15 + 0x5d, //0x00003a2a popq %rbp + 0xc3, //0x00003a2b retq + //0x00003a2c LBB13_17 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003a2c movl $64, %ecx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a31 subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc1, //0x00003a35 cmpq %rax, %rcx + 0x0f, 0x83, 0xda, 0xff, 0xff, 0xff, //0x00003a38 jae LBB13_15 + //0x00003a3e LBB13_18 + 0x48, 0x01, 0xf1, //0x00003a3e addq %rsi, %rcx + 0x48, 0x89, 0x0a, //0x00003a41 movq %rcx, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003a44 movq $-2, %rax + 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003a4b jmp LBB13_16 + //0x00003a50 LBB13_19 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003a50 movq $-2, %rax + 0x49, 0x83, 0xfe, 0xff, //0x00003a57 cmpq $-1, %r14 + 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x00003a5b jne LBB13_16 + 0x48, 0x0f, 0xbc, 0xc9, //0x00003a61 bsfq %rcx, %rcx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a65 subq $-48(%rbp), %rsi + 0x48, 0x01, 0xce, //0x00003a69 addq %rcx, %rsi + 0x48, 0x89, 0x32, //0x00003a6c movq %rsi, (%rdx) + 0xe9, 0xa9, 0xff, 0xff, 0xff, //0x00003a6f jmp LBB13_16 + //0x00003a74 LBB13_21 + 0x4d, 0x89, 0xcf, //0x00003a74 movq %r9, %r15 + 0x49, 0x83, 0xff, 0x20, //0x00003a77 cmpq $32, %r15 + 0x0f, 0x82, 0xf1, 0x00, 0x00, 0x00, //0x00003a7b jb LBB13_34 + //0x00003a81 LBB13_22 + 0xc5, 0xfa, 0x6f, 0x06, //0x00003a81 vmovdqu (%rsi), %xmm0 + 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x00003a85 vmovdqu $16(%rsi), %xmm1 + 0xc5, 0xf9, 0x6f, 0x15, 0x2e, 0xfd, 0xff, 0xff, //0x00003a8a vmovdqa $-722(%rip), %xmm2 /* LCPI13_0+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x00003a92 vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00003a96 vpmovmskb %xmm3, %edi + 0xc5, 0xf1, 0x74, 0xd2, //0x00003a9a vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0x79, 0xd7, 0xca, //0x00003a9e vpmovmskb %xmm2, %r9d + 0xc5, 0xf9, 0x6f, 0x15, 0x26, 0xfd, 0xff, 0xff, //0x00003aa2 vmovdqa $-730(%rip), %xmm2 /* LCPI13_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x00003aaa vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00003aae vpmovmskb %xmm3, %eax + 0xc5, 0xf1, 0x74, 0xd2, //0x00003ab2 vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00003ab6 vpmovmskb %xmm2, %ecx + 0xc5, 0xf9, 0x6f, 0x15, 0x1e, 0xfd, 0xff, 0xff, //0x00003aba vmovdqa $-738(%rip), %xmm2 /* LCPI13_2+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd8, //0x00003ac2 vpcmpgtb %xmm0, %xmm2, %xmm3 + 0xc5, 0xd9, 0x76, 0xe4, //0x00003ac6 vpcmpeqd %xmm4, %xmm4, %xmm4 + 0xc5, 0xf9, 0x64, 0xc4, //0x00003aca vpcmpgtb %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc3, //0x00003ace vpand %xmm3, %xmm0, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x00003ad2 vpmovmskb %xmm0, %r8d + 0xc5, 0xe9, 0x64, 0xc1, //0x00003ad6 vpcmpgtb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf1, 0x64, 0xcc, //0x00003ada vpcmpgtb %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xdb, 0xc0, //0x00003ade vpand %xmm0, %xmm1, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00003ae2 vpmovmskb %xmm0, %ebx + 0x49, 0xc1, 0xe1, 0x10, //0x00003ae6 shlq $16, %r9 + 0x48, 0xc1, 0xe1, 0x10, //0x00003aea shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x00003aee orq %rcx, %rax + 0x49, 0x83, 0xfe, 0xff, //0x00003af1 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003af5 jne LBB13_24 + 0x48, 0x85, 0xc0, //0x00003afb testq %rax, %rax + 0x0f, 0x85, 0x64, 0x01, 0x00, 0x00, //0x00003afe jne LBB13_49 + //0x00003b04 LBB13_24 + 0x48, 0xc1, 0xe3, 0x10, //0x00003b04 shlq $16, %rbx + 0x49, 0x09, 0xf9, //0x00003b08 orq %rdi, %r9 + 0x48, 0x89, 0xc1, //0x00003b0b movq %rax, %rcx + 0x4c, 0x09, 0xe1, //0x00003b0e orq %r12, %rcx + 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x00003b11 jne LBB13_47 + //0x00003b17 LBB13_25 + 0x4c, 0x09, 0xc3, //0x00003b17 orq %r8, %rbx + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00003b1a movl $64, %eax + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003b1f movl $64, %ecx + 0x4d, 0x85, 0xc9, //0x00003b24 testq %r9, %r9 + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003b27 je LBB13_27 + 0x49, 0x0f, 0xbc, 0xc9, //0x00003b2d bsfq %r9, %rcx + //0x00003b31 LBB13_27 + 0x48, 0x0f, 0xbc, 0xfb, //0x00003b31 bsfq %rbx, %rdi + 0x48, 0x85, 0xdb, //0x00003b35 testq %rbx, %rbx + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00003b38 je LBB13_29 + 0x48, 0x89, 0xf8, //0x00003b3e movq %rdi, %rax + //0x00003b41 LBB13_29 + 0x4d, 0x85, 0xc9, //0x00003b41 testq %r9, %r9 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003b44 je LBB13_32 + 0x48, 0x2b, 0x75, 0xd0, //0x00003b4a subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc8, //0x00003b4e cmpq %rcx, %rax + 0x0f, 0x82, 0xff, 0x00, 0x00, 0x00, //0x00003b51 jb LBB13_48 + 0x48, 0x8d, 0x44, 0x0e, 0x01, //0x00003b57 leaq $1(%rsi,%rcx), %rax + 0xe9, 0xbc, 0xfe, 0xff, 0xff, //0x00003b5c jmp LBB13_16 + //0x00003b61 LBB13_32 + 0x48, 0x85, 0xdb, //0x00003b61 testq %rbx, %rbx + 0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x00003b64 jne LBB13_50 + 0x48, 0x83, 0xc6, 0x20, //0x00003b6a addq $32, %rsi + 0x49, 0x83, 0xc7, 0xe0, //0x00003b6e addq $-32, %r15 + //0x00003b72 LBB13_34 + 0x4d, 0x85, 0xe4, //0x00003b72 testq %r12, %r12 + 0x0f, 0x85, 0x0f, 0x01, 0x00, 0x00, //0x00003b75 jne LBB13_51 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003b7b movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00003b82 testq %r15, %r15 + 0x0f, 0x84, 0x92, 0xfe, 0xff, 0xff, //0x00003b85 je LBB13_16 + //0x00003b8b LBB13_36 + 0x0f, 0xb6, 0x0e, //0x00003b8b movzbl (%rsi), %ecx + 0x80, 0xf9, 0x22, //0x00003b8e cmpb $34, %cl + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00003b91 je LBB13_44 + 0x80, 0xf9, 0x5c, //0x00003b97 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003b9a je LBB13_41 + 0x80, 0xf9, 0x1f, //0x00003ba0 cmpb $31, %cl + 0x0f, 0x86, 0x28, 0x01, 0x00, 0x00, //0x00003ba3 jbe LBB13_55 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003ba9 movq $-1, %rcx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00003bb0 movl $1, %edi + //0x00003bb5 LBB13_40 + 0x48, 0x01, 0xfe, //0x00003bb5 addq %rdi, %rsi + 0x49, 0x01, 0xcf, //0x00003bb8 addq %rcx, %r15 + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003bbb jne LBB13_36 + 0xe9, 0x57, 0xfe, 0xff, 0xff, //0x00003bc1 jmp LBB13_16 + //0x00003bc6 LBB13_41 + 0x49, 0x83, 0xff, 0x01, //0x00003bc6 cmpq $1, %r15 + 0x0f, 0x84, 0x4d, 0xfe, 0xff, 0xff, //0x00003bca je LBB13_16 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003bd0 movq $-2, %rcx + 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00003bd7 movl $2, %edi + 0x49, 0x83, 0xfe, 0xff, //0x00003bdc cmpq $-1, %r14 + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00003be0 jne LBB13_40 + 0x49, 0x89, 0xf6, //0x00003be6 movq %rsi, %r14 + 0x4c, 0x2b, 0x75, 0xd0, //0x00003be9 subq $-48(%rbp), %r14 + 0x4c, 0x89, 0x32, //0x00003bed movq %r14, (%rdx) + 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x00003bf0 jmp LBB13_40 + //0x00003bf5 LBB13_44 + 0x48, 0x2b, 0x75, 0xd0, //0x00003bf5 subq $-48(%rbp), %rsi + 0x48, 0xff, 0xc6, //0x00003bf9 incq %rsi + 0x48, 0x89, 0xf0, //0x00003bfc movq %rsi, %rax + 0xe9, 0x19, 0xfe, 0xff, 0xff, //0x00003bff jmp LBB13_16 + //0x00003c04 LBB13_46 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00003c04 movq $-1, %r14 + 0x45, 0x31, 0xe4, //0x00003c0b xorl %r12d, %r12d + 0x49, 0x83, 0xff, 0x20, //0x00003c0e cmpq $32, %r15 + 0x0f, 0x83, 0x69, 0xfe, 0xff, 0xff, //0x00003c12 jae LBB13_22 + 0xe9, 0x55, 0xff, 0xff, 0xff, //0x00003c18 jmp LBB13_34 + //0x00003c1d LBB13_47 + 0x44, 0x89, 0xe1, //0x00003c1d movl %r12d, %ecx + 0xf7, 0xd1, //0x00003c20 notl %ecx + 0x21, 0xc1, //0x00003c22 andl %eax, %ecx + 0x44, 0x8d, 0x14, 0x09, //0x00003c24 leal (%rcx,%rcx), %r10d + 0x45, 0x09, 0xe2, //0x00003c28 orl %r12d, %r10d + 0x44, 0x89, 0xd7, //0x00003c2b movl %r10d, %edi + 0xf7, 0xd7, //0x00003c2e notl %edi + 0x21, 0xc7, //0x00003c30 andl %eax, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003c32 andl $-1431655766, %edi + 0x45, 0x31, 0xe4, //0x00003c38 xorl %r12d, %r12d + 0x01, 0xcf, //0x00003c3b addl %ecx, %edi + 0x41, 0x0f, 0x92, 0xc4, //0x00003c3d setb %r12b + 0x01, 0xff, //0x00003c41 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00003c43 xorl $1431655765, %edi + 0x44, 0x21, 0xd7, //0x00003c49 andl %r10d, %edi + 0xf7, 0xd7, //0x00003c4c notl %edi + 0x41, 0x21, 0xf9, //0x00003c4e andl %edi, %r9d + 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003c51 jmp LBB13_25 + //0x00003c56 LBB13_48 + 0x48, 0x01, 0xf0, //0x00003c56 addq %rsi, %rax + 0x48, 0x89, 0x02, //0x00003c59 movq %rax, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003c5c movq $-2, %rax + 0xe9, 0xb5, 0xfd, 0xff, 0xff, //0x00003c63 jmp LBB13_16 + //0x00003c68 LBB13_49 + 0x48, 0x89, 0xf1, //0x00003c68 movq %rsi, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00003c6b subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xf0, //0x00003c6f bsfq %rax, %r14 + 0x49, 0x01, 0xce, //0x00003c73 addq %rcx, %r14 + 0x4c, 0x89, 0x32, //0x00003c76 movq %r14, (%rdx) + 0xe9, 0x86, 0xfe, 0xff, 0xff, //0x00003c79 jmp LBB13_24 + //0x00003c7e LBB13_50 + 0x48, 0x2b, 0x75, 0xd0, //0x00003c7e subq $-48(%rbp), %rsi + 0x48, 0x01, 0xfe, //0x00003c82 addq %rdi, %rsi + 0xe9, 0x4b, 0x00, 0x00, 0x00, //0x00003c85 jmp LBB13_56 + //0x00003c8a LBB13_51 + 0x4d, 0x85, 0xff, //0x00003c8a testq %r15, %r15 + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00003c8d je LBB13_45 + 0x49, 0x83, 0xfe, 0xff, //0x00003c93 cmpq $-1, %r14 + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00003c97 jne LBB13_54 + 0x4c, 0x8b, 0x75, 0xd0, //0x00003c9d movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x00003ca1 notq %r14 + 0x49, 0x01, 0xf6, //0x00003ca4 addq %rsi, %r14 + 0x4c, 0x89, 0x32, //0x00003ca7 movq %r14, (%rdx) + //0x00003caa LBB13_54 + 0x48, 0xff, 0xc6, //0x00003caa incq %rsi + 0x49, 0xff, 0xcf, //0x00003cad decq %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003cb0 movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00003cb7 testq %r15, %r15 + 0x0f, 0x85, 0xcb, 0xfe, 0xff, 0xff, //0x00003cba jne LBB13_36 + 0xe9, 0x58, 0xfd, 0xff, 0xff, //0x00003cc0 jmp LBB13_16 + //0x00003cc5 LBB13_45 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003cc5 movq $-1, %rax + 0xe9, 0x4c, 0xfd, 0xff, 0xff, //0x00003ccc jmp LBB13_16 + //0x00003cd1 LBB13_55 + 0x48, 0x2b, 0x75, 0xd0, //0x00003cd1 subq $-48(%rbp), %rsi + //0x00003cd5 LBB13_56 + 0x48, 0x89, 0x32, //0x00003cd5 movq %rsi, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003cd8 movq $-2, %rax + 0xe9, 0x39, 0xfd, 0xff, 0xff, //0x00003cdf jmp LBB13_16 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ce4 .p2align 4, 0x00 + //0x00003cf0 LCPI14_0 + 0x00, 0x00, 0x30, 0x43, //0x00003cf0 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00003cf4 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00003cf8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00003cfc .long 0 + //0x00003d00 LCPI14_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003d00 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003d08 .quad 4985484787499139072 + //0x00003d10 .p2align 3, 0x00 + //0x00003d10 LCPI14_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003d10 .quad 4831355200913801216 + //0x00003d18 LCPI14_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00003d18 .quad -4392016835940974592 + //0x00003d20 .p2align 4, 0x90 + //0x00003d20 _vnumber + 0x55, //0x00003d20 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003d21 movq %rsp, %rbp + 0x41, 0x57, //0x00003d24 pushq %r15 + 0x41, 0x56, //0x00003d26 pushq %r14 + 0x41, 0x55, //0x00003d28 pushq %r13 + 0x41, 0x54, //0x00003d2a pushq %r12 + 0x53, //0x00003d2c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x00003d2d subq $56, %rsp + 0x48, 0x89, 0xd3, //0x00003d31 movq %rdx, %rbx + 0x49, 0x89, 0xf6, //0x00003d34 movq %rsi, %r14 + 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00003d37 movq $0, $-48(%rbp) + 0x48, 0x8b, 0x06, //0x00003d3f movq (%rsi), %rax + 0x4c, 0x8b, 0x3f, //0x00003d42 movq (%rdi), %r15 + 0x4c, 0x8b, 0x6f, 0x08, //0x00003d45 movq $8(%rdi), %r13 + 0x4c, 0x8b, 0x52, 0x20, //0x00003d49 movq $32(%rdx), %r10 + 0x4c, 0x8b, 0x5a, 0x28, //0x00003d4d movq $40(%rdx), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00003d51 movq $9, (%rdx) + 0xc5, 0xf9, 0x57, 0xc0, //0x00003d58 vxorpd %xmm0, %xmm0, %xmm0 + 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x00003d5c vmovupd %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x00003d61 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00003d64 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xe8, //0x00003d68 cmpq %r13, %rax + 0x0f, 0x83, 0xc8, 0x02, 0x00, 0x00, //0x00003d6b jae LBB14_52 + 0x41, 0x8a, 0x3c, 0x07, //0x00003d71 movb (%r15,%rax), %dil + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00003d75 movl $1, %r9d + 0x40, 0x80, 0xff, 0x2d, //0x00003d7b cmpb $45, %dil + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00003d7f jne LBB14_4 + 0x48, 0xff, 0xc0, //0x00003d85 incq %rax + 0x4c, 0x39, 0xe8, //0x00003d88 cmpq %r13, %rax + 0x0f, 0x83, 0xa8, 0x02, 0x00, 0x00, //0x00003d8b jae LBB14_52 + 0x41, 0x8a, 0x3c, 0x07, //0x00003d91 movb (%r15,%rax), %dil + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00003d95 movl $-1, %r9d + //0x00003d9b LBB14_4 + 0x8d, 0x4f, 0xd0, //0x00003d9b leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00003d9e cmpb $10, %cl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00003da1 jb LBB14_6 + //0x00003da7 LBB14_5 + 0x49, 0x89, 0x06, //0x00003da7 movq %rax, (%r14) + 0x48, 0xc7, 0x03, 0xfe, 0xff, 0xff, 0xff, //0x00003daa movq $-2, (%rbx) + 0xe9, 0x8d, 0x02, 0x00, 0x00, //0x00003db1 jmp LBB14_53 + //0x00003db6 LBB14_6 + 0x40, 0x80, 0xff, 0x30, //0x00003db6 cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00003dba jne LBB14_10 + 0x48, 0x8d, 0x70, 0x01, //0x00003dc0 leaq $1(%rax), %rsi + 0x4c, 0x39, 0xe8, //0x00003dc4 cmpq %r13, %rax + 0x0f, 0x83, 0xa4, 0x00, 0x00, 0x00, //0x00003dc7 jae LBB14_19 + 0x41, 0x8a, 0x14, 0x37, //0x00003dcd movb (%r15,%rsi), %dl + 0x80, 0xc2, 0xd2, //0x00003dd1 addb $-46, %dl + 0x80, 0xfa, 0x37, //0x00003dd4 cmpb $55, %dl + 0x0f, 0x87, 0x94, 0x00, 0x00, 0x00, //0x00003dd7 ja LBB14_19 + 0x44, 0x0f, 0xb6, 0xc2, //0x00003ddd movzbl %dl, %r8d + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003de1 movabsq $36028797027352577, %rdx + 0x4c, 0x0f, 0xa3, 0xc2, //0x00003deb btq %r8, %rdx + 0x0f, 0x83, 0x7c, 0x00, 0x00, 0x00, //0x00003def jae LBB14_19 + //0x00003df5 LBB14_10 + 0x4c, 0x39, 0xe8, //0x00003df5 cmpq %r13, %rax + 0x0f, 0x83, 0x67, 0x00, 0x00, 0x00, //0x00003df8 jae LBB14_18 + 0x80, 0xf9, 0x09, //0x00003dfe cmpb $9, %cl + 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x00003e01 ja LBB14_20 + 0x4d, 0x8d, 0x45, 0xff, //0x00003e07 leaq $-1(%r13), %r8 + 0x31, 0xc9, //0x00003e0b xorl %ecx, %ecx + 0x31, 0xf6, //0x00003e0d xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00003e0f xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e12 .p2align 4, 0x90 + //0x00003e20 LBB14_13 + 0x83, 0xfe, 0x12, //0x00003e20 cmpl $18, %esi + 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00003e23 jg LBB14_15 + 0x48, 0x0f, 0xbe, 0xff, //0x00003e29 movsbq %dil, %rdi + 0x4b, 0x8d, 0x14, 0xa4, //0x00003e2d leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003e31 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc6, //0x00003e36 incl %esi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00003e38 jmp LBB14_16 + 0x90, 0x90, 0x90, //0x00003e3d .p2align 4, 0x90 + //0x00003e40 LBB14_15 + 0xff, 0xc1, //0x00003e40 incl %ecx + //0x00003e42 LBB14_16 + 0x49, 0x39, 0xc0, //0x00003e42 cmpq %rax, %r8 + 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00003e45 je LBB14_24 + 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00003e4b movzbl $1(%r15,%rax), %edi + 0x48, 0xff, 0xc0, //0x00003e51 incq %rax + 0x8d, 0x57, 0xd0, //0x00003e54 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x0a, //0x00003e57 cmpb $10, %dl + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00003e5a jb LBB14_13 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00003e60 jmp LBB14_21 + //0x00003e65 LBB14_18 + 0x31, 0xc9, //0x00003e65 xorl %ecx, %ecx + 0x31, 0xf6, //0x00003e67 xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00003e69 xorl %r12d, %r12d + 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00003e6c jmp LBB14_25 + //0x00003e71 LBB14_19 + 0x49, 0x89, 0x36, //0x00003e71 movq %rsi, (%r14) + 0xe9, 0xca, 0x01, 0x00, 0x00, //0x00003e74 jmp LBB14_53 + //0x00003e79 LBB14_20 + 0x45, 0x31, 0xe4, //0x00003e79 xorl %r12d, %r12d + 0x31, 0xf6, //0x00003e7c xorl %esi, %esi + 0x31, 0xc9, //0x00003e7e xorl %ecx, %ecx + //0x00003e80 LBB14_21 + 0x31, 0xd2, //0x00003e80 xorl %edx, %edx + 0x85, 0xc9, //0x00003e82 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00003e84 setg %dl + 0x89, 0x55, 0xcc, //0x00003e87 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003e8a movl $9, %r8d + 0x40, 0x80, 0xff, 0x2e, //0x00003e90 cmpb $46, %dil + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00003e94 jne LBB14_26 + 0x48, 0xff, 0xc0, //0x00003e9a incq %rax + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00003e9d movq $8, (%rbx) + 0x4c, 0x39, 0xe8, //0x00003ea4 cmpq %r13, %rax + 0x0f, 0x83, 0x8c, 0x01, 0x00, 0x00, //0x00003ea7 jae LBB14_52 + 0x41, 0x8a, 0x14, 0x07, //0x00003ead movb (%r15,%rax), %dl + 0x80, 0xc2, 0xd0, //0x00003eb1 addb $-48, %dl + 0x41, 0xb8, 0x08, 0x00, 0x00, 0x00, //0x00003eb4 movl $8, %r8d + 0x80, 0xfa, 0x0a, //0x00003eba cmpb $10, %dl + 0x0f, 0x83, 0xe4, 0xfe, 0xff, 0xff, //0x00003ebd jae LBB14_5 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00003ec3 jmp LBB14_26 + //0x00003ec8 LBB14_24 + 0x4c, 0x89, 0xe8, //0x00003ec8 movq %r13, %rax + //0x00003ecb LBB14_25 + 0x31, 0xd2, //0x00003ecb xorl %edx, %edx + 0x85, 0xc9, //0x00003ecd testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00003ecf setg %dl + 0x89, 0x55, 0xcc, //0x00003ed2 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003ed5 movl $9, %r8d + //0x00003edb LBB14_26 + 0x85, 0xc9, //0x00003edb testl %ecx, %ecx + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00003edd jne LBB14_35 + 0x4d, 0x85, 0xe4, //0x00003ee3 testq %r12, %r12 + 0x0f, 0x85, 0x46, 0x00, 0x00, 0x00, //0x00003ee6 jne LBB14_35 + 0x4c, 0x39, 0xe8, //0x00003eec cmpq %r13, %rax + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00003eef jae LBB14_33 + 0x89, 0xc7, //0x00003ef5 movl %eax, %edi + 0x44, 0x29, 0xef, //0x00003ef7 subl %r13d, %edi + 0x31, 0xf6, //0x00003efa xorl %esi, %esi + 0x31, 0xc9, //0x00003efc xorl %ecx, %ecx + 0x90, 0x90, //0x00003efe .p2align 4, 0x90 + //0x00003f00 LBB14_30 + 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00003f00 cmpb $48, (%r15,%rax) + 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x00003f05 jne LBB14_34 + 0x48, 0xff, 0xc0, //0x00003f0b incq %rax + 0xff, 0xc9, //0x00003f0e decl %ecx + 0x49, 0x39, 0xc5, //0x00003f10 cmpq %rax, %r13 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00003f13 jne LBB14_30 + 0x45, 0x31, 0xe4, //0x00003f19 xorl %r12d, %r12d + 0x41, 0x83, 0xf8, 0x09, //0x00003f1c cmpl $9, %r8d + 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00003f20 je LBB14_55 + 0xe9, 0x6a, 0x01, 0x00, 0x00, //0x00003f26 jmp LBB14_59 + //0x00003f2b LBB14_33 + 0x31, 0xc9, //0x00003f2b xorl %ecx, %ecx + 0x31, 0xf6, //0x00003f2d xorl %esi, %esi + //0x00003f2f LBB14_34 + 0x45, 0x31, 0xe4, //0x00003f2f xorl %r12d, %r12d + //0x00003f32 LBB14_35 + 0x4c, 0x39, 0xe8, //0x00003f32 cmpq %r13, %rax + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00003f35 jae LBB14_40 + 0x83, 0xfe, 0x12, //0x00003f3b cmpl $18, %esi + 0x0f, 0x8f, 0x42, 0x00, 0x00, 0x00, //0x00003f3e jg LBB14_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003f44 .p2align 4, 0x90 + //0x00003f50 LBB14_37 + 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00003f50 movzbl (%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00003f55 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00003f58 cmpb $9, %dl + 0x0f, 0x87, 0x25, 0x00, 0x00, 0x00, //0x00003f5b ja LBB14_40 + 0x4b, 0x8d, 0x14, 0xa4, //0x00003f61 leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003f65 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc9, //0x00003f6a decl %ecx + 0x48, 0xff, 0xc0, //0x00003f6c incq %rax + 0x4c, 0x39, 0xe8, //0x00003f6f cmpq %r13, %rax + 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00003f72 jae LBB14_40 + 0x8d, 0x56, 0x01, //0x00003f78 leal $1(%rsi), %edx + 0x83, 0xfe, 0x12, //0x00003f7b cmpl $18, %esi + 0x89, 0xd6, //0x00003f7e movl %edx, %esi + 0x0f, 0x8c, 0xca, 0xff, 0xff, 0xff, //0x00003f80 jl LBB14_37 + //0x00003f86 LBB14_40 + 0x4c, 0x39, 0xe8, //0x00003f86 cmpq %r13, %rax + 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00003f89 jae LBB14_54 + 0x41, 0x8a, 0x34, 0x07, //0x00003f8f movb (%r15,%rax), %sil + 0x8d, 0x56, 0xd0, //0x00003f93 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00003f96 cmpb $9, %dl + 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00003f99 ja LBB14_46 + 0x49, 0x8d, 0x7d, 0xff, //0x00003f9f leaq $-1(%r13), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003fa3 .p2align 4, 0x90 + //0x00003fb0 LBB14_43 + 0x48, 0x39, 0xc7, //0x00003fb0 cmpq %rax, %rdi + 0x0f, 0x84, 0x40, 0x02, 0x00, 0x00, //0x00003fb3 je LBB14_76 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00003fb9 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x00003fbf incq %rax + 0x8d, 0x56, 0xd0, //0x00003fc2 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00003fc5 cmpb $9, %dl + 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00003fc8 jbe LBB14_43 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x00003fce movl $1, $-52(%rbp) + //0x00003fd5 LBB14_46 + 0x40, 0x80, 0xce, 0x20, //0x00003fd5 orb $32, %sil + 0x40, 0x80, 0xfe, 0x65, //0x00003fd9 cmpb $101, %sil + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00003fdd jne LBB14_54 + 0x48, 0x8d, 0x78, 0x01, //0x00003fe3 leaq $1(%rax), %rdi + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00003fe7 movq $8, (%rbx) + 0x4c, 0x39, 0xef, //0x00003fee cmpq %r13, %rdi + 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00003ff1 jae LBB14_52 + 0x41, 0x8a, 0x34, 0x3f, //0x00003ff7 movb (%r15,%rdi), %sil + 0x40, 0x80, 0xfe, 0x2d, //0x00003ffb cmpb $45, %sil + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00003fff je LBB14_50 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004005 movl $1, %r8d + 0x40, 0x80, 0xfe, 0x2b, //0x0000400b cmpb $43, %sil + 0x0f, 0x85, 0x94, 0x02, 0x00, 0x00, //0x0000400f jne LBB14_85 + //0x00004015 LBB14_50 + 0x48, 0x83, 0xc0, 0x02, //0x00004015 addq $2, %rax + 0x4c, 0x39, 0xe8, //0x00004019 cmpq %r13, %rax + 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x0000401c jae LBB14_52 + 0x31, 0xd2, //0x00004022 xorl %edx, %edx + 0x40, 0x80, 0xfe, 0x2b, //0x00004024 cmpb $43, %sil + 0x0f, 0x94, 0xc2, //0x00004028 sete %dl + 0x44, 0x8d, 0x44, 0x12, 0xff, //0x0000402b leal $-1(%rdx,%rdx), %r8d + 0x41, 0x8a, 0x34, 0x07, //0x00004030 movb (%r15,%rax), %sil + 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00004034 jmp LBB14_86 + //0x00004039 LBB14_52 + 0x4d, 0x89, 0x2e, //0x00004039 movq %r13, (%r14) + 0x48, 0xc7, 0x03, 0xff, 0xff, 0xff, 0xff, //0x0000403c movq $-1, (%rbx) + //0x00004043 LBB14_53 + 0x48, 0x83, 0xc4, 0x38, //0x00004043 addq $56, %rsp + 0x5b, //0x00004047 popq %rbx + 0x41, 0x5c, //0x00004048 popq %r12 + 0x41, 0x5d, //0x0000404a popq %r13 + 0x41, 0x5e, //0x0000404c popq %r14 + 0x41, 0x5f, //0x0000404e popq %r15 + 0x5d, //0x00004050 popq %rbp + 0xc3, //0x00004051 retq + //0x00004052 LBB14_54 + 0x89, 0xcf, //0x00004052 movl %ecx, %edi + 0x49, 0x89, 0xc5, //0x00004054 movq %rax, %r13 + 0x41, 0x83, 0xf8, 0x09, //0x00004057 cmpl $9, %r8d + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x0000405b jne LBB14_59 + //0x00004061 LBB14_55 + 0x85, 0xff, //0x00004061 testl %edi, %edi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004063 jne LBB14_58 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004069 movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xc9, //0x00004073 movslq %r9d, %rcx + 0x4d, 0x85, 0xe4, //0x00004076 testq %r12, %r12 + 0x0f, 0x89, 0xba, 0x01, 0x00, 0x00, //0x00004079 jns LBB14_80 + 0x4c, 0x89, 0xe2, //0x0000407f movq %r12, %rdx + 0x48, 0x21, 0xca, //0x00004082 andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00004085 cmpq %rax, %rdx + 0x0f, 0x84, 0xab, 0x01, 0x00, 0x00, //0x00004088 je LBB14_80 + //0x0000408e LBB14_58 + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x0000408e movq $8, (%rbx) + //0x00004095 LBB14_59 + 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00004095 movq $0, $-64(%rbp) + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x0000409d vmovq %r12, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0x46, 0xfc, 0xff, 0xff, //0x000040a2 vpunpckldq $-954(%rip), %xmm0, %xmm0 /* LCPI14_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x4e, 0xfc, 0xff, 0xff, //0x000040aa vsubpd $-946(%rip), %xmm0, %xmm0 /* LCPI14_1+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x000040b2 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x000040b8 vaddsd %xmm0, %xmm1, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x000040bc vmovsd %xmm0, $-48(%rbp) + 0x4c, 0x89, 0xe0, //0x000040c1 movq %r12, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000040c4 shrq $52, %rax + 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x000040c8 je LBB14_71 + //0x000040ce LBB14_60 + 0x4c, 0x89, 0x5d, 0xb0, //0x000040ce movq %r11, $-80(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x000040d2 movq %r10, $-88(%rbp) + 0x48, 0x8d, 0x4d, 0xd0, //0x000040d6 leaq $-48(%rbp), %rcx + 0x48, 0x89, 0xfe, //0x000040da movq %rdi, %rsi + 0x4c, 0x89, 0xe7, //0x000040dd movq %r12, %rdi + 0x48, 0x89, 0x75, 0xb8, //0x000040e0 movq %rsi, $-72(%rbp) + 0x44, 0x89, 0xca, //0x000040e4 movl %r9d, %edx + 0x44, 0x89, 0x4d, 0xc8, //0x000040e7 movl %r9d, $-56(%rbp) + 0xe8, 0xc0, 0xe6, 0xff, 0xff, //0x000040eb callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x000040f0 testb %al, %al + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x000040f2 je LBB14_64 + 0x48, 0x8b, 0x75, 0xb8, //0x000040f8 movq $-72(%rbp), %rsi + 0x8b, 0x55, 0xc8, //0x000040fc movl $-56(%rbp), %edx + 0x83, 0x7d, 0xcc, 0x00, //0x000040ff cmpl $0, $-52(%rbp) + 0x0f, 0x84, 0x27, 0x01, 0x00, 0x00, //0x00004103 je LBB14_79 + 0x49, 0xff, 0xc4, //0x00004109 incq %r12 + 0x48, 0x8d, 0x4d, 0xc0, //0x0000410c leaq $-64(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x00004110 movq %r12, %rdi + 0xe8, 0x98, 0xe6, 0xff, 0xff, //0x00004113 callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004118 testb %al, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000411a je LBB14_64 + 0xc5, 0xfb, 0x10, 0x4d, 0xc0, //0x00004120 vmovsd $-64(%rbp), %xmm1 + 0xc5, 0xfb, 0x10, 0x45, 0xd0, //0x00004125 vmovsd $-48(%rbp), %xmm0 + 0xc5, 0xf9, 0x2e, 0xc8, //0x0000412a vucomisd %xmm0, %xmm1 + 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x0000412e jne LBB14_64 + 0x0f, 0x8b, 0x21, 0x00, 0x00, 0x00, //0x00004134 jnp LBB14_66 + //0x0000413a LBB14_64 + 0x49, 0x8b, 0x06, //0x0000413a movq (%r14), %rax + 0x49, 0x01, 0xc7, //0x0000413d addq %rax, %r15 + 0x4c, 0x89, 0xee, //0x00004140 movq %r13, %rsi + 0x48, 0x29, 0xc6, //0x00004143 subq %rax, %rsi + 0x4c, 0x89, 0xff, //0x00004146 movq %r15, %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x00004149 movq $-88(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x0000414d movq $-80(%rbp), %rcx + 0xe8, 0x6a, 0xec, 0xff, 0xff, //0x00004151 callq _atof_native + //0x00004156 LBB14_65 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004156 vmovsd %xmm0, $-48(%rbp) + //0x0000415b LBB14_66 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x0000415b vmovq %xmm0, %rax + //0x00004160 LBB14_67 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004160 movabsq $-9223372036854775808, %rcx + 0x48, 0xff, 0xc9, //0x0000416a decq %rcx + 0x48, 0x21, 0xc1, //0x0000416d andq %rax, %rcx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00004170 movabsq $9218868437227405312, %rdx + 0x48, 0x39, 0xd1, //0x0000417a cmpq %rdx, %rcx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x0000417d jne LBB14_69 + 0x48, 0xc7, 0x03, 0xf8, 0xff, 0xff, 0xff, //0x00004183 movq $-8, (%rbx) + //0x0000418a LBB14_69 + 0x48, 0x89, 0x43, 0x08, //0x0000418a movq %rax, $8(%rbx) + //0x0000418e LBB14_70 + 0x4d, 0x89, 0x2e, //0x0000418e movq %r13, (%r14) + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x00004191 jmp LBB14_53 + //0x00004196 LBB14_71 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004196 vmovq %xmm0, %rcx + 0x44, 0x89, 0xc8, //0x0000419b movl %r9d, %eax + 0xc1, 0xe8, 0x1f, //0x0000419e shrl $31, %eax + 0x48, 0xc1, 0xe0, 0x3f, //0x000041a1 shlq $63, %rax + 0x48, 0x09, 0xc8, //0x000041a5 orq %rcx, %rax + 0x48, 0x89, 0x45, 0xd0, //0x000041a8 movq %rax, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x000041ac testq %r12, %r12 + 0x0f, 0x84, 0xab, 0xff, 0xff, 0xff, //0x000041af je LBB14_67 + 0x85, 0xff, //0x000041b5 testl %edi, %edi + 0x0f, 0x84, 0xa3, 0xff, 0xff, 0xff, //0x000041b7 je LBB14_67 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000041bd vmovq %rax, %xmm0 + 0x8d, 0x47, 0xff, //0x000041c2 leal $-1(%rdi), %eax + 0x83, 0xf8, 0x24, //0x000041c5 cmpl $36, %eax + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x000041c8 ja LBB14_77 + 0x83, 0xff, 0x17, //0x000041ce cmpl $23, %edi + 0x0f, 0x8c, 0x9d, 0x00, 0x00, 0x00, //0x000041d1 jl LBB14_81 + 0x48, 0x63, 0xc7, //0x000041d7 movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0x6f, 0xef, 0x00, 0x00, //0x000041da leaq $61295(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x000041e1 vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x000041ea vmovsd %xmm0, $-48(%rbp) + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x000041ef movl $22, %eax + 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x000041f4 jmp LBB14_82 + //0x000041f9 LBB14_76 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x000041f9 movl $1, $-52(%rbp) + 0x89, 0xcf, //0x00004200 movl %ecx, %edi + 0x41, 0x83, 0xf8, 0x09, //0x00004202 cmpl $9, %r8d + 0x0f, 0x84, 0x55, 0xfe, 0xff, 0xff, //0x00004206 je LBB14_55 + 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x0000420c jmp LBB14_59 + //0x00004211 LBB14_77 + 0x83, 0xff, 0xea, //0x00004211 cmpl $-22, %edi + 0x0f, 0x82, 0xb4, 0xfe, 0xff, 0xff, //0x00004214 jb LBB14_60 + 0xf7, 0xdf, //0x0000421a negl %edi + 0x48, 0x63, 0xc7, //0x0000421c movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0x2a, 0xef, 0x00, 0x00, //0x0000421f leaq $61226(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x00004226 vdivsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xe9, 0x26, 0xff, 0xff, 0xff, //0x0000422b jmp LBB14_65 + //0x00004230 LBB14_79 + 0x48, 0x8b, 0x45, 0xd0, //0x00004230 movq $-48(%rbp), %rax + 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00004234 jmp LBB14_67 + //0x00004239 LBB14_80 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004239 vmovq %r12, %xmm0 + 0x4c, 0x0f, 0xaf, 0xe1, //0x0000423e imulq %rcx, %r12 + 0xc5, 0xf9, 0x62, 0x05, 0xa6, 0xfa, 0xff, 0xff, //0x00004242 vpunpckldq $-1370(%rip), %xmm0, %xmm0 /* LCPI14_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0xae, 0xfa, 0xff, 0xff, //0x0000424a vsubpd $-1362(%rip), %xmm0, %xmm0 /* LCPI14_1+0(%rip) */ + 0x4c, 0x89, 0x63, 0x10, //0x00004252 movq %r12, $16(%rbx) + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004256 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x0000425c vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x00004260 andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004263 vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x00004268 orq %rax, %rcx + 0x48, 0x89, 0x4b, 0x08, //0x0000426b movq %rcx, $8(%rbx) + 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x0000426f jmp LBB14_70 + //0x00004274 LBB14_81 + 0x89, 0xf8, //0x00004274 movl %edi, %eax + //0x00004276 LBB14_82 + 0xc5, 0xf9, 0x2e, 0x05, 0x92, 0xfa, 0xff, 0xff, //0x00004276 vucomisd $-1390(%rip), %xmm0 /* LCPI14_2+0(%rip) */ + 0x0f, 0x87, 0x4a, 0xfe, 0xff, 0xff, //0x0000427e ja LBB14_60 + 0xc5, 0xfb, 0x10, 0x0d, 0x8c, 0xfa, 0xff, 0xff, //0x00004284 vmovsd $-1396(%rip), %xmm1 /* LCPI14_3+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x0000428c vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x38, 0xfe, 0xff, 0xff, //0x00004290 ja LBB14_60 + 0x89, 0xc0, //0x00004296 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xb1, 0xee, 0x00, 0x00, //0x00004298 leaq $61105(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x0000429f vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x000042a4 jmp LBB14_65 + //0x000042a9 LBB14_85 + 0x48, 0x89, 0xf8, //0x000042a9 movq %rdi, %rax + //0x000042ac LBB14_86 + 0x8d, 0x7e, 0xd0, //0x000042ac leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x000042af cmpb $9, %dil + 0x0f, 0x87, 0xee, 0xfa, 0xff, 0xff, //0x000042b3 ja LBB14_5 + 0x44, 0x89, 0x4d, 0xc8, //0x000042b9 movl %r9d, $-56(%rbp) + 0x4c, 0x39, 0xe8, //0x000042bd cmpq %r13, %rax + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000042c0 jae LBB14_93 + 0x40, 0x80, 0xff, 0x09, //0x000042c6 cmpb $9, %dil + 0x0f, 0x87, 0x3f, 0x00, 0x00, 0x00, //0x000042ca ja LBB14_93 + 0x4d, 0x8d, 0x4d, 0xff, //0x000042d0 leaq $-1(%r13), %r9 + 0x31, 0xff, //0x000042d4 xorl %edi, %edi + //0x000042d6 LBB14_90 + 0x89, 0xfa, //0x000042d6 movl %edi, %edx + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000042d8 cmpl $10000, %edi + 0x8d, 0x3c, 0x92, //0x000042de leal (%rdx,%rdx,4), %edi + 0x40, 0x0f, 0xb6, 0xf6, //0x000042e1 movzbl %sil, %esi + 0x8d, 0x7c, 0x7e, 0xd0, //0x000042e5 leal $-48(%rsi,%rdi,2), %edi + 0x0f, 0x4d, 0xfa, //0x000042e9 cmovgel %edx, %edi + 0x49, 0x39, 0xc1, //0x000042ec cmpq %rax, %r9 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000042ef je LBB14_94 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x000042f5 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x000042fb incq %rax + 0x8d, 0x56, 0xd0, //0x000042fe leal $-48(%rsi), %edx + 0x80, 0xfa, 0x0a, //0x00004301 cmpb $10, %dl + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00004304 jb LBB14_90 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000430a jmp LBB14_95 + //0x0000430f LBB14_93 + 0x31, 0xff, //0x0000430f xorl %edi, %edi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004311 jmp LBB14_95 + //0x00004316 LBB14_94 + 0x4c, 0x89, 0xe8, //0x00004316 movq %r13, %rax + //0x00004319 LBB14_95 + 0x41, 0x0f, 0xaf, 0xf8, //0x00004319 imull %r8d, %edi + 0x01, 0xcf, //0x0000431d addl %ecx, %edi + 0x49, 0x89, 0xc5, //0x0000431f movq %rax, %r13 + 0x44, 0x8b, 0x4d, 0xc8, //0x00004322 movl $-56(%rbp), %r9d + 0xe9, 0x6a, 0xfd, 0xff, 0xff, //0x00004326 jmp LBB14_59 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000432b .p2align 4, 0x90 + //0x00004330 _vsigned + 0x55, //0x00004330 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004331 movq %rsp, %rbp + 0x53, //0x00004334 pushq %rbx + 0x48, 0x8b, 0x1e, //0x00004335 movq (%rsi), %rbx + 0x4c, 0x8b, 0x07, //0x00004338 movq (%rdi), %r8 + 0x4c, 0x8b, 0x57, 0x08, //0x0000433b movq $8(%rdi), %r10 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000433f movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00004346 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000434a vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x0000434f movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00004352 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd3, //0x00004356 cmpq %r10, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00004359 jae LBB15_1 + 0x41, 0x8a, 0x0c, 0x18, //0x0000435f movb (%r8,%rbx), %cl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00004363 movl $1, %r9d + 0x80, 0xf9, 0x2d, //0x00004369 cmpb $45, %cl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x0000436c jne LBB15_5 + 0x48, 0xff, 0xc3, //0x00004372 incq %rbx + 0x4c, 0x39, 0xd3, //0x00004375 cmpq %r10, %rbx + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004378 jae LBB15_1 + 0x41, 0x8a, 0x0c, 0x18, //0x0000437e movb (%r8,%rbx), %cl + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004382 movq $-1, %r9 + //0x00004389 LBB15_5 + 0x8d, 0x79, 0xd0, //0x00004389 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x0000438c cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00004390 jb LBB15_7 + 0x48, 0x89, 0x1e, //0x00004396 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00004399 movq $-2, (%rdx) + 0x5b, //0x000043a0 popq %rbx + 0x5d, //0x000043a1 popq %rbp + 0xc3, //0x000043a2 retq + //0x000043a3 LBB15_1 + 0x4c, 0x89, 0x16, //0x000043a3 movq %r10, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000043a6 movq $-1, (%rdx) + 0x5b, //0x000043ad popq %rbx + 0x5d, //0x000043ae popq %rbp + 0xc3, //0x000043af retq + //0x000043b0 LBB15_7 + 0x80, 0xf9, 0x30, //0x000043b0 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000043b3 jne LBB15_8 + 0x48, 0x8d, 0x7b, 0x01, //0x000043b9 leaq $1(%rbx), %rdi + 0x4c, 0x39, 0xd3, //0x000043bd cmpq %r10, %rbx + 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x000043c0 jae LBB15_17 + 0x41, 0x8a, 0x0c, 0x38, //0x000043c6 movb (%r8,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x000043ca addb $-46, %cl + 0x80, 0xf9, 0x37, //0x000043cd cmpb $55, %cl + 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x000043d0 ja LBB15_17 + 0x44, 0x0f, 0xb6, 0xd9, //0x000043d6 movzbl %cl, %r11d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000043da movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x000043e4 btq %r11, %rcx + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000043e8 jae LBB15_17 + //0x000043ee LBB15_8 + 0x31, 0xff, //0x000043ee xorl %edi, %edi + //0x000043f0 .p2align 4, 0x90 + //0x000043f0 LBB15_9 + 0x4c, 0x39, 0xd3, //0x000043f0 cmpq %r10, %rbx + 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x000043f3 jae LBB15_22 + 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x000043f9 movsbq (%r8,%rbx), %rcx + 0x8d, 0x41, 0xd0, //0x000043fe leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00004401 cmpb $9, %al + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00004403 ja LBB15_18 + 0x48, 0x6b, 0xff, 0x0a, //0x00004409 imulq $10, %rdi, %rdi + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000440d jo LBB15_13 + 0x48, 0xff, 0xc3, //0x00004413 incq %rbx + 0x48, 0x83, 0xc1, 0xd0, //0x00004416 addq $-48, %rcx + 0x49, 0x0f, 0xaf, 0xc9, //0x0000441a imulq %r9, %rcx + 0x48, 0x01, 0xcf, //0x0000441e addq %rcx, %rdi + 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00004421 jno LBB15_9 + //0x00004427 LBB15_13 + 0x48, 0xff, 0xcb, //0x00004427 decq %rbx + 0x48, 0x89, 0x1e, //0x0000442a movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000442d movq $-5, (%rdx) + 0x5b, //0x00004434 popq %rbx + 0x5d, //0x00004435 popq %rbp + 0xc3, //0x00004436 retq + //0x00004437 LBB15_17 + 0x48, 0x89, 0x3e, //0x00004437 movq %rdi, (%rsi) + 0x5b, //0x0000443a popq %rbx + 0x5d, //0x0000443b popq %rbp + 0xc3, //0x0000443c retq + //0x0000443d LBB15_18 + 0x80, 0xf9, 0x65, //0x0000443d cmpb $101, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00004440 je LBB15_21 + 0x80, 0xf9, 0x45, //0x00004446 cmpb $69, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00004449 je LBB15_21 + 0x80, 0xf9, 0x2e, //0x0000444f cmpb $46, %cl + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00004452 jne LBB15_22 + //0x00004458 LBB15_21 + 0x48, 0x89, 0x1e, //0x00004458 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x0000445b movq $-6, (%rdx) + 0x5b, //0x00004462 popq %rbx + 0x5d, //0x00004463 popq %rbp + 0xc3, //0x00004464 retq + //0x00004465 LBB15_22 + 0x48, 0x89, 0x1e, //0x00004465 movq %rbx, (%rsi) + 0x48, 0x89, 0x7a, 0x10, //0x00004468 movq %rdi, $16(%rdx) + 0x5b, //0x0000446c popq %rbx + 0x5d, //0x0000446d popq %rbp + 0xc3, //0x0000446e retq + 0x90, //0x0000446f .p2align 4, 0x90 + //0x00004470 _vunsigned + 0x55, //0x00004470 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004471 movq %rsp, %rbp + 0x49, 0x89, 0xd0, //0x00004474 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x00004477 movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x0000447a movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000447d movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004481 movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00004488 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000448c vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x06, //0x00004491 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x00004494 movq %rax, $24(%rdx) + 0x4c, 0x39, 0xd9, //0x00004498 cmpq %r11, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x0000449b jae LBB16_1 + 0x41, 0x8a, 0x04, 0x09, //0x000044a1 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x000044a5 cmpb $45, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000044a7 jne LBB16_4 + //0x000044ad LBB16_3 + 0x48, 0x89, 0x0e, //0x000044ad movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x000044b0 movq $-6, (%r8) + 0x5d, //0x000044b7 popq %rbp + 0xc3, //0x000044b8 retq + //0x000044b9 LBB16_1 + 0x4c, 0x89, 0x1e, //0x000044b9 movq %r11, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000044bc movq $-1, (%r8) + 0x5d, //0x000044c3 popq %rbp + 0xc3, //0x000044c4 retq + //0x000044c5 LBB16_4 + 0x8d, 0x50, 0xd0, //0x000044c5 leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x000044c8 cmpb $10, %dl + 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x000044cb jb LBB16_6 + 0x48, 0x89, 0x0e, //0x000044d1 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x000044d4 movq $-2, (%r8) + 0x5d, //0x000044db popq %rbp + 0xc3, //0x000044dc retq + //0x000044dd LBB16_6 + 0x3c, 0x30, //0x000044dd cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000044df jne LBB16_7 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x000044e5 movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x000044ea addb $-46, %al + 0x3c, 0x37, //0x000044ec cmpb $55, %al + 0x0f, 0x87, 0xb6, 0x00, 0x00, 0x00, //0x000044ee ja LBB16_16 + 0x0f, 0xb6, 0xc0, //0x000044f4 movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000044f7 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00004501 btq %rax, %rdx + 0x0f, 0x83, 0x9f, 0x00, 0x00, 0x00, //0x00004505 jae LBB16_16 + //0x0000450b LBB16_7 + 0x31, 0xc0, //0x0000450b xorl %eax, %eax + 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x0000450d movl $10, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004513 .p2align 4, 0x90 + //0x00004520 LBB16_8 + 0x4c, 0x39, 0xd9, //0x00004520 cmpq %r11, %rcx + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x00004523 jae LBB16_20 + 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x00004529 movsbl (%r9,%rcx), %edi + 0x8d, 0x57, 0xd0, //0x0000452e leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00004531 cmpb $9, %dl + 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x00004534 ja LBB16_17 + 0x49, 0xf7, 0xe2, //0x0000453a mulq %r10 + 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x0000453d jo LBB16_13 + 0x48, 0xff, 0xc1, //0x00004543 incq %rcx + 0x83, 0xc7, 0xd0, //0x00004546 addl $-48, %edi + 0x48, 0x63, 0xd7, //0x00004549 movslq %edi, %rdx + 0x48, 0x89, 0xd7, //0x0000454c movq %rdx, %rdi + 0x48, 0xc1, 0xff, 0x3f, //0x0000454f sarq $63, %rdi + 0x48, 0x01, 0xd0, //0x00004553 addq %rdx, %rax + 0x48, 0x83, 0xd7, 0x00, //0x00004556 adcq $0, %rdi + 0x89, 0xfa, //0x0000455a movl %edi, %edx + 0x83, 0xe2, 0x01, //0x0000455c andl $1, %edx + 0x48, 0xf7, 0xda, //0x0000455f negq %rdx + 0x48, 0x31, 0xd7, //0x00004562 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00004565 jne LBB16_13 + 0x48, 0x85, 0xd2, //0x0000456b testq %rdx, %rdx + 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x0000456e jns LBB16_8 + //0x00004574 LBB16_13 + 0x48, 0xff, 0xc9, //0x00004574 decq %rcx + 0x48, 0x89, 0x0e, //0x00004577 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x0000457a movq $-5, (%r8) + 0x5d, //0x00004581 popq %rbp + 0xc3, //0x00004582 retq + //0x00004583 LBB16_17 + 0x40, 0x80, 0xff, 0x65, //0x00004583 cmpb $101, %dil + 0x0f, 0x84, 0x20, 0xff, 0xff, 0xff, //0x00004587 je LBB16_3 + 0x40, 0x80, 0xff, 0x45, //0x0000458d cmpb $69, %dil + 0x0f, 0x84, 0x16, 0xff, 0xff, 0xff, //0x00004591 je LBB16_3 + 0x40, 0x80, 0xff, 0x2e, //0x00004597 cmpb $46, %dil + 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x0000459b je LBB16_3 + //0x000045a1 LBB16_20 + 0x48, 0x89, 0x0e, //0x000045a1 movq %rcx, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x000045a4 movq %rax, $16(%r8) + 0x5d, //0x000045a8 popq %rbp + 0xc3, //0x000045a9 retq + //0x000045aa LBB16_16 + 0x48, 0xff, 0xc1, //0x000045aa incq %rcx + 0x48, 0x89, 0x0e, //0x000045ad movq %rcx, (%rsi) + 0x5d, //0x000045b0 popq %rbp + 0xc3, //0x000045b1 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000045b2 .p2align 4, 0x00 + //0x000045c0 LCPI17_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000045c0 .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000045c8 .quad 5 + //0x000045d0 .p2align 4, 0x90 + //0x000045d0 _skip_array + 0x55, //0x000045d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000045d1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000045d4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000045d7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000045da movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x000045dd vmovaps $-37(%rip), %xmm0 /* LCPI17_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x000045e5 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x000045e9 movq %rax, %rdi + 0x5d, //0x000045ec popq %rbp + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000045ed jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000045f2 .p2align 4, 0x90 + //0x00004600 _fsm_exec + 0x55, //0x00004600 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004601 movq %rsp, %rbp + 0x41, 0x57, //0x00004604 pushq %r15 + 0x41, 0x56, //0x00004606 pushq %r14 + 0x41, 0x55, //0x00004608 pushq %r13 + 0x41, 0x54, //0x0000460a pushq %r12 + 0x53, //0x0000460c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000460d subq $56, %rsp + 0x48, 0x89, 0x4d, 0xa8, //0x00004611 movq %rcx, $-88(%rbp) + 0x4c, 0x8b, 0x0f, //0x00004615 movq (%rdi), %r9 + 0x4d, 0x85, 0xc9, //0x00004618 testq %r9, %r9 + 0x0f, 0x84, 0x16, 0x05, 0x00, 0x00, //0x0000461b je LBB18_2 + 0x49, 0x89, 0xd0, //0x00004621 movq %rdx, %r8 + 0x49, 0x89, 0xfa, //0x00004624 movq %rdi, %r10 + 0x48, 0x8d, 0x46, 0x08, //0x00004627 leaq $8(%rsi), %rax + 0x48, 0x89, 0x45, 0xc8, //0x0000462b movq %rax, $-56(%rbp) + 0x4c, 0x8b, 0x2a, //0x0000462f movq (%rdx), %r13 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004632 movq $-1, %r14 + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00004639 movabsq $4294977024, %r12 + 0x4c, 0x8d, 0x1d, 0x52, 0x06, 0x00, 0x00, //0x00004643 leaq $1618(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x48, 0x89, 0x55, 0xd0, //0x0000464a movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x0000464e movq %rsi, $-80(%rbp) + 0x48, 0x89, 0x7d, 0xb8, //0x00004652 movq %rdi, $-72(%rbp) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00004656 jmp LBB18_8 + //0x0000465b LBB18_3 + 0x49, 0x8b, 0x02, //0x0000465b movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000465e cmpq $4095, %rax + 0x0f, 0x8f, 0xe3, 0x04, 0x00, 0x00, //0x00004664 jg LBB18_82 + 0x48, 0x8d, 0x48, 0x01, //0x0000466a leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x0000466e movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00004671 movq $6, $8(%r10,%rax,8) + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000467a .p2align 4, 0x90 + //0x00004680 LBB18_5 + 0x4c, 0x89, 0xe9, //0x00004680 movq %r13, %rcx + //0x00004683 LBB18_6 + 0x49, 0x8b, 0x12, //0x00004683 movq (%r10), %rdx + 0x49, 0x89, 0xcd, //0x00004686 movq %rcx, %r13 + //0x00004689 LBB18_7 + 0x49, 0x89, 0xd1, //0x00004689 movq %rdx, %r9 + 0x4c, 0x89, 0xf0, //0x0000468c movq %r14, %rax + 0x48, 0x85, 0xd2, //0x0000468f testq %rdx, %rdx + 0x0f, 0x84, 0xa6, 0x04, 0x00, 0x00, //0x00004692 je LBB18_88 + //0x00004698 LBB18_8 + 0x48, 0x8b, 0x3e, //0x00004698 movq (%rsi), %rdi + 0x48, 0x8b, 0x46, 0x08, //0x0000469b movq $8(%rsi), %rax + 0x4c, 0x89, 0xea, //0x0000469f movq %r13, %rdx + 0x48, 0x29, 0xc2, //0x000046a2 subq %rax, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000046a5 jae LBB18_13 + 0x42, 0x8a, 0x1c, 0x2f, //0x000046ab movb (%rdi,%r13), %bl + 0x80, 0xfb, 0x0d, //0x000046af cmpb $13, %bl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000046b2 je LBB18_13 + 0x80, 0xfb, 0x20, //0x000046b8 cmpb $32, %bl + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x000046bb je LBB18_13 + 0x80, 0xc3, 0xf7, //0x000046c1 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000046c4 cmpb $1, %bl + 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x000046c7 jbe LBB18_13 + 0x4d, 0x89, 0xef, //0x000046cd movq %r13, %r15 + 0xe9, 0x2d, 0x01, 0x00, 0x00, //0x000046d0 jmp LBB18_34 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000046d5 .p2align 4, 0x90 + //0x000046e0 LBB18_13 + 0x4d, 0x8d, 0x7d, 0x01, //0x000046e0 leaq $1(%r13), %r15 + 0x49, 0x39, 0xc7, //0x000046e4 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000046e7 jae LBB18_17 + 0x42, 0x8a, 0x1c, 0x3f, //0x000046ed movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x000046f1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000046f4 je LBB18_17 + 0x80, 0xfb, 0x20, //0x000046fa cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000046fd je LBB18_17 + 0x80, 0xc3, 0xf7, //0x00004703 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004706 cmpb $1, %bl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00004709 ja LBB18_34 + 0x90, //0x0000470f .p2align 4, 0x90 + //0x00004710 LBB18_17 + 0x4d, 0x8d, 0x7d, 0x02, //0x00004710 leaq $2(%r13), %r15 + 0x49, 0x39, 0xc7, //0x00004714 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004717 jae LBB18_21 + 0x42, 0x8a, 0x1c, 0x3f, //0x0000471d movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00004721 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004724 je LBB18_21 + 0x80, 0xfb, 0x20, //0x0000472a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000472d je LBB18_21 + 0x80, 0xc3, 0xf7, //0x00004733 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004736 cmpb $1, %bl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00004739 ja LBB18_34 + 0x90, //0x0000473f .p2align 4, 0x90 + //0x00004740 LBB18_21 + 0x4d, 0x8d, 0x7d, 0x03, //0x00004740 leaq $3(%r13), %r15 + 0x49, 0x39, 0xc7, //0x00004744 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004747 jae LBB18_25 + 0x42, 0x8a, 0x1c, 0x3f, //0x0000474d movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00004751 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004754 je LBB18_25 + 0x80, 0xfb, 0x20, //0x0000475a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000475d je LBB18_25 + 0x80, 0xc3, 0xf7, //0x00004763 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004766 cmpb $1, %bl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00004769 ja LBB18_34 + 0x90, //0x0000476f .p2align 4, 0x90 + //0x00004770 LBB18_25 + 0x49, 0x8d, 0x4d, 0x04, //0x00004770 leaq $4(%r13), %rcx + 0x48, 0x39, 0xc8, //0x00004774 cmpq %rcx, %rax + 0x0f, 0x86, 0xb7, 0x03, 0x00, 0x00, //0x00004777 jbe LBB18_79 + 0x48, 0x39, 0xc8, //0x0000477d cmpq %rcx, %rax + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00004780 je LBB18_31 + 0x48, 0x8d, 0x0c, 0x07, //0x00004786 leaq (%rdi,%rax), %rcx + 0x48, 0x83, 0xc2, 0x04, //0x0000478a addq $4, %rdx + 0x4e, 0x8d, 0x7c, 0x2f, 0x05, //0x0000478e leaq $5(%rdi,%r13), %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004793 .p2align 4, 0x90 + //0x000047a0 LBB18_28 + 0x41, 0x0f, 0xbe, 0x5f, 0xff, //0x000047a0 movsbl $-1(%r15), %ebx + 0x83, 0xfb, 0x20, //0x000047a5 cmpl $32, %ebx + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000047a8 ja LBB18_33 + 0x49, 0x0f, 0xa3, 0xdc, //0x000047ae btq %rbx, %r12 + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000047b2 jae LBB18_33 + 0x49, 0xff, 0xc7, //0x000047b8 incq %r15 + 0x48, 0xff, 0xc2, //0x000047bb incq %rdx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000047be jne LBB18_28 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000047c4 jmp LBB18_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047c9 .p2align 4, 0x90 + //0x000047d0 LBB18_31 + 0x48, 0x01, 0xf9, //0x000047d0 addq %rdi, %rcx + //0x000047d3 LBB18_32 + 0x48, 0x29, 0xf9, //0x000047d3 subq %rdi, %rcx + 0x49, 0x89, 0xcf, //0x000047d6 movq %rcx, %r15 + 0x49, 0x39, 0xc7, //0x000047d9 cmpq %rax, %r15 + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000047dc jb LBB18_34 + 0xe9, 0x50, 0x03, 0x00, 0x00, //0x000047e2 jmp LBB18_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047e7 .p2align 4, 0x90 + //0x000047f0 LBB18_33 + 0x48, 0x89, 0xfa, //0x000047f0 movq %rdi, %rdx + 0x48, 0xf7, 0xd2, //0x000047f3 notq %rdx + 0x49, 0x01, 0xd7, //0x000047f6 addq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x000047f9 cmpq %rax, %r15 + 0x0f, 0x83, 0x35, 0x03, 0x00, 0x00, //0x000047fc jae LBB18_2 + //0x00004802 LBB18_34 + 0x4d, 0x8d, 0x6f, 0x01, //0x00004802 leaq $1(%r15), %r13 + 0x4d, 0x89, 0x28, //0x00004806 movq %r13, (%r8) + 0x42, 0x0f, 0xbe, 0x0c, 0x3f, //0x00004809 movsbl (%rdi,%r15), %ecx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000480e movq $-1, %rax + 0x85, 0xc9, //0x00004815 testl %ecx, %ecx + 0x0f, 0x84, 0x21, 0x03, 0x00, 0x00, //0x00004817 je LBB18_88 + 0x49, 0x8d, 0x51, 0xff, //0x0000481d leaq $-1(%r9), %rdx + 0x43, 0x8b, 0x1c, 0xca, //0x00004821 movl (%r10,%r9,8), %ebx + 0x49, 0x83, 0xfe, 0xff, //0x00004825 cmpq $-1, %r14 + 0x4d, 0x0f, 0x44, 0xf7, //0x00004829 cmoveq %r15, %r14 + 0xff, 0xcb, //0x0000482d decl %ebx + 0x83, 0xfb, 0x05, //0x0000482f cmpl $5, %ebx + 0x0f, 0x87, 0x20, 0x00, 0x00, 0x00, //0x00004832 ja LBB18_40 + 0x49, 0x63, 0x1c, 0x9b, //0x00004838 movslq (%r11,%rbx,4), %rbx + 0x4c, 0x01, 0xdb, //0x0000483c addq %r11, %rbx + 0xff, 0xe3, //0x0000483f jmpq *%rbx + //0x00004841 LBB18_37 + 0x83, 0xf9, 0x2c, //0x00004841 cmpl $44, %ecx + 0x0f, 0x84, 0x5d, 0x01, 0x00, 0x00, //0x00004844 je LBB18_58 + 0x83, 0xf9, 0x5d, //0x0000484a cmpl $93, %ecx + 0x0f, 0x84, 0xab, 0x00, 0x00, 0x00, //0x0000484d je LBB18_39 + 0xe9, 0x32, 0x03, 0x00, 0x00, //0x00004853 jmp LBB18_87 + //0x00004858 LBB18_40 + 0x49, 0x89, 0x12, //0x00004858 movq %rdx, (%r10) + 0x83, 0xf9, 0x7b, //0x0000485b cmpl $123, %ecx + 0x0f, 0x86, 0xd1, 0x00, 0x00, 0x00, //0x0000485e jbe LBB18_56 + 0xe9, 0x21, 0x03, 0x00, 0x00, //0x00004864 jmp LBB18_87 + //0x00004869 LBB18_41 + 0x83, 0xf9, 0x2c, //0x00004869 cmpl $44, %ecx + 0x0f, 0x84, 0x57, 0x01, 0x00, 0x00, //0x0000486c je LBB18_60 + 0x83, 0xf9, 0x7d, //0x00004872 cmpl $125, %ecx + 0x0f, 0x84, 0x83, 0x00, 0x00, 0x00, //0x00004875 je LBB18_39 + 0xe9, 0x0a, 0x03, 0x00, 0x00, //0x0000487b jmp LBB18_87 + //0x00004880 LBB18_44 + 0x80, 0xf9, 0x22, //0x00004880 cmpb $34, %cl + 0x0f, 0x85, 0x01, 0x03, 0x00, 0x00, //0x00004883 jne LBB18_87 + 0x4b, 0xc7, 0x04, 0xca, 0x04, 0x00, 0x00, 0x00, //0x00004889 movq $4, (%r10,%r9,8) + //0x00004891 LBB18_46 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004891 movq $-1, $-64(%rbp) + 0x48, 0x89, 0xf7, //0x00004899 movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x0000489c movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x0000489f leaq $-64(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa8, //0x000048a3 movq $-88(%rbp), %rcx + 0xe8, 0x44, 0xef, 0xff, 0xff, //0x000048a7 callq _advance_string + 0x48, 0x89, 0xc1, //0x000048ac movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x000048af testq %rax, %rax + 0x0f, 0x88, 0xa1, 0x02, 0x00, 0x00, //0x000048b2 js LBB18_81 + //0x000048b8 LBB18_47 + 0x4c, 0x8b, 0x45, 0xd0, //0x000048b8 movq $-48(%rbp), %r8 + 0x49, 0x89, 0x08, //0x000048bc movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x000048bf movq %r15, %rax + 0x4d, 0x85, 0xed, //0x000048c2 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xb0, //0x000048c5 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x000048c9 movq $-72(%rbp), %r10 + 0x4c, 0x8d, 0x1d, 0xc8, 0x03, 0x00, 0x00, //0x000048cd leaq $968(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x0f, 0x8f, 0xa9, 0xfd, 0xff, 0xff, //0x000048d4 jg LBB18_6 + 0xe9, 0x5f, 0x02, 0x00, 0x00, //0x000048da jmp LBB18_88 + //0x000048df LBB18_48 + 0x80, 0xf9, 0x3a, //0x000048df cmpb $58, %cl + 0x0f, 0x85, 0xa2, 0x02, 0x00, 0x00, //0x000048e2 jne LBB18_87 + 0x4b, 0xc7, 0x04, 0xca, 0x00, 0x00, 0x00, 0x00, //0x000048e8 movq $0, (%r10,%r9,8) + 0xe9, 0x8b, 0xfd, 0xff, 0xff, //0x000048f0 jmp LBB18_5 + //0x000048f5 LBB18_50 + 0x80, 0xf9, 0x5d, //0x000048f5 cmpb $93, %cl + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000048f8 jne LBB18_55 + //0x000048fe LBB18_39 + 0x49, 0x89, 0x12, //0x000048fe movq %rdx, (%r10) + 0xe9, 0x83, 0xfd, 0xff, 0xff, //0x00004901 jmp LBB18_7 + //0x00004906 LBB18_52 + 0x83, 0xf9, 0x22, //0x00004906 cmpl $34, %ecx + 0x0f, 0x84, 0xdc, 0x00, 0x00, 0x00, //0x00004909 je LBB18_62 + 0x83, 0xf9, 0x7d, //0x0000490f cmpl $125, %ecx + 0x0f, 0x85, 0x72, 0x02, 0x00, 0x00, //0x00004912 jne LBB18_87 + 0x49, 0x89, 0x12, //0x00004918 movq %rdx, (%r10) + 0x4c, 0x8b, 0x45, 0xd0, //0x0000491b movq $-48(%rbp), %r8 + 0xe9, 0x65, 0xfd, 0xff, 0xff, //0x0000491f jmp LBB18_7 + //0x00004924 LBB18_55 + 0x4b, 0xc7, 0x04, 0xca, 0x01, 0x00, 0x00, 0x00, //0x00004924 movq $1, (%r10,%r9,8) + 0x83, 0xf9, 0x7b, //0x0000492c cmpl $123, %ecx + 0x0f, 0x87, 0x55, 0x02, 0x00, 0x00, //0x0000492f ja LBB18_87 + //0x00004935 LBB18_56 + 0x4a, 0x8d, 0x1c, 0x3f, //0x00004935 leaq (%rdi,%r15), %rbx + 0x89, 0xca, //0x00004939 movl %ecx, %edx + 0x48, 0x8d, 0x0d, 0x72, 0x03, 0x00, 0x00, //0x0000493b leaq $882(%rip), %rcx /* LJTI18_1+0(%rip) */ + 0x48, 0x63, 0x14, 0x91, //0x00004942 movslq (%rcx,%rdx,4), %rdx + 0x48, 0x01, 0xca, //0x00004946 addq %rcx, %rdx + 0xff, 0xe2, //0x00004949 jmpq *%rdx + //0x0000494b LBB18_57 + 0x48, 0x8b, 0x45, 0xc8, //0x0000494b movq $-56(%rbp), %rax + 0x48, 0x8b, 0x30, //0x0000494f movq (%rax), %rsi + 0x4c, 0x29, 0xfe, //0x00004952 subq %r15, %rsi + 0x48, 0x89, 0xdf, //0x00004955 movq %rbx, %rdi + 0xe8, 0xd3, 0x06, 0x00, 0x00, //0x00004958 callq _do_skip_number + 0x4c, 0x8d, 0x1d, 0x38, 0x03, 0x00, 0x00, //0x0000495d leaq $824(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x4c, 0x8b, 0x55, 0xb8, //0x00004964 movq $-72(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xb0, //0x00004968 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x45, 0xd0, //0x0000496c movq $-48(%rbp), %r8 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00004970 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x00004977 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x0000497a testq %rax, %rax + 0x48, 0x8d, 0x48, 0xff, //0x0000497d leaq $-1(%rax), %rcx + 0x48, 0x0f, 0x48, 0xca, //0x00004981 cmovsq %rdx, %rcx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004985 movq $-2, %rax + 0x4c, 0x0f, 0x48, 0xf8, //0x0000498c cmovsq %rax, %r15 + 0x4c, 0x01, 0xe9, //0x00004990 addq %r13, %rcx + 0x49, 0x89, 0x08, //0x00004993 movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004996 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x00004999 testq %r15, %r15 + 0x0f, 0x89, 0xe1, 0xfc, 0xff, 0xff, //0x0000499c jns LBB18_6 + 0xe9, 0x97, 0x01, 0x00, 0x00, //0x000049a2 jmp LBB18_88 + //0x000049a7 LBB18_58 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000049a7 cmpq $4095, %r9 + 0x0f, 0x8f, 0x99, 0x01, 0x00, 0x00, //0x000049ae jg LBB18_82 + 0x49, 0x8d, 0x41, 0x01, //0x000049b4 leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x000049b8 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000049bb movq $0, $8(%r10,%r9,8) + 0xe9, 0xb7, 0xfc, 0xff, 0xff, //0x000049c4 jmp LBB18_5 + //0x000049c9 LBB18_60 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000049c9 cmpq $4095, %r9 + 0x0f, 0x8f, 0x77, 0x01, 0x00, 0x00, //0x000049d0 jg LBB18_82 + 0x49, 0x8d, 0x41, 0x01, //0x000049d6 leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x000049da movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000049dd movq $3, $8(%r10,%r9,8) + 0xe9, 0x95, 0xfc, 0xff, 0xff, //0x000049e6 jmp LBB18_5 + //0x000049eb LBB18_62 + 0x4b, 0xc7, 0x04, 0xca, 0x02, 0x00, 0x00, 0x00, //0x000049eb movq $2, (%r10,%r9,8) + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000049f3 movq $-1, $-64(%rbp) + 0x48, 0x89, 0xf7, //0x000049fb movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x000049fe movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x00004a01 leaq $-64(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa8, //0x00004a05 movq $-88(%rbp), %rcx + 0xe8, 0xe2, 0xed, 0xff, 0xff, //0x00004a09 callq _advance_string + 0x48, 0x89, 0xc1, //0x00004a0e movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x00004a11 testq %rax, %rax + 0x0f, 0x88, 0x3f, 0x01, 0x00, 0x00, //0x00004a14 js LBB18_81 + 0x4c, 0x8b, 0x45, 0xd0, //0x00004a1a movq $-48(%rbp), %r8 + 0x49, 0x89, 0x08, //0x00004a1e movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004a21 movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004a24 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xb0, //0x00004a27 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00004a2b movq $-72(%rbp), %r10 + 0x4c, 0x8d, 0x1d, 0x66, 0x02, 0x00, 0x00, //0x00004a2f leaq $614(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x0f, 0x8e, 0x02, 0x01, 0x00, 0x00, //0x00004a36 jle LBB18_88 + 0x49, 0x8b, 0x02, //0x00004a3c movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004a3f cmpq $4095, %rax + 0x0f, 0x8f, 0x02, 0x01, 0x00, 0x00, //0x00004a45 jg LBB18_82 + 0x48, 0x8d, 0x50, 0x01, //0x00004a4b leaq $1(%rax), %rdx + 0x49, 0x89, 0x12, //0x00004a4f movq %rdx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004a52 movq $4, $8(%r10,%rax,8) + 0xe9, 0x23, 0xfc, 0xff, 0xff, //0x00004a5b jmp LBB18_6 + //0x00004a60 LBB18_66 + 0x4c, 0x01, 0xef, //0x00004a60 addq %r13, %rdi + 0x48, 0x8b, 0x45, 0xc8, //0x00004a63 movq $-56(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00004a67 movq (%rax), %rsi + 0x4c, 0x29, 0xee, //0x00004a6a subq %r13, %rsi + 0xe8, 0xbe, 0x05, 0x00, 0x00, //0x00004a6d callq _do_skip_number + 0x48, 0x89, 0xc1, //0x00004a72 movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x00004a75 testq %rax, %rax + 0x0f, 0x88, 0x02, 0x01, 0x00, 0x00, //0x00004a78 js LBB18_86 + 0x4c, 0x01, 0xe9, //0x00004a7e addq %r13, %rcx + 0xe9, 0x32, 0xfe, 0xff, 0xff, //0x00004a81 jmp LBB18_47 + //0x00004a86 LBB18_68 + 0x49, 0x8b, 0x02, //0x00004a86 movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004a89 cmpq $4095, %rax + 0x0f, 0x8f, 0xb8, 0x00, 0x00, 0x00, //0x00004a8f jg LBB18_82 + 0x48, 0x8d, 0x48, 0x01, //0x00004a95 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x00004a99 movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004a9c movq $5, $8(%r10,%rax,8) + 0xe9, 0xd6, 0xfb, 0xff, 0xff, //0x00004aa5 jmp LBB18_5 + //0x00004aaa LBB18_70 + 0x48, 0x8b, 0x4d, 0xc8, //0x00004aaa movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004aae movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00004ab1 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00004ab5 cmpq %rdx, %r15 + 0x0f, 0x83, 0xd8, 0x00, 0x00, 0x00, //0x00004ab8 jae LBB18_90 + 0x42, 0x8b, 0x0c, 0x2f, //0x00004abe movl (%rdi,%r13), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004ac2 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00004ac8 jne LBB18_97 + 0x49, 0x8d, 0x4f, 0x05, //0x00004ace leaq $5(%r15), %rcx + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00004ad2 jmp LBB18_78 + //0x00004ad7 LBB18_73 + 0x48, 0x8b, 0x55, 0xc8, //0x00004ad7 movq $-56(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00004adb movq (%rdx), %rdx + 0x48, 0x8d, 0x4a, 0xfd, //0x00004ade leaq $-3(%rdx), %rcx + 0x49, 0x39, 0xcf, //0x00004ae2 cmpq %rcx, %r15 + 0x0f, 0x83, 0x8d, 0x00, 0x00, 0x00, //0x00004ae5 jae LBB18_92 + 0x81, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, //0x00004aeb cmpl $1819047278, (%rbx) + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00004af1 je LBB18_77 + 0xe9, 0x48, 0x01, 0x00, 0x00, //0x00004af7 jmp LBB18_102 + //0x00004afc LBB18_75 + 0x48, 0x8b, 0x55, 0xc8, //0x00004afc movq $-56(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00004b00 movq (%rdx), %rdx + 0x48, 0x8d, 0x4a, 0xfd, //0x00004b03 leaq $-3(%rdx), %rcx + 0x49, 0x39, 0xcf, //0x00004b07 cmpq %rcx, %r15 + 0x0f, 0x83, 0x68, 0x00, 0x00, 0x00, //0x00004b0a jae LBB18_92 + 0x81, 0x3b, 0x74, 0x72, 0x75, 0x65, //0x00004b10 cmpl $1702195828, (%rbx) + 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00004b16 jne LBB18_93 + //0x00004b1c LBB18_77 + 0x49, 0x8d, 0x4f, 0x04, //0x00004b1c leaq $4(%r15), %rcx + //0x00004b20 LBB18_78 + 0x49, 0x89, 0x08, //0x00004b20 movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004b23 movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004b26 testq %r13, %r13 + 0x0f, 0x8f, 0x54, 0xfb, 0xff, 0xff, //0x00004b29 jg LBB18_6 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004b2f jmp LBB18_88 + //0x00004b34 LBB18_79 + 0x49, 0x89, 0x08, //0x00004b34 movq %rcx, (%r8) + //0x00004b37 LBB18_2 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004b37 movq $-1, %rax + //0x00004b3e LBB18_88 + 0x48, 0x83, 0xc4, 0x38, //0x00004b3e addq $56, %rsp + 0x5b, //0x00004b42 popq %rbx + 0x41, 0x5c, //0x00004b43 popq %r12 + 0x41, 0x5d, //0x00004b45 popq %r13 + 0x41, 0x5e, //0x00004b47 popq %r14 + 0x41, 0x5f, //0x00004b49 popq %r15 + 0x5d, //0x00004b4b popq %rbp + 0xc3, //0x00004b4c retq + //0x00004b4d LBB18_82 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x00004b4d movq $-7, %rax + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00004b54 jmp LBB18_88 + //0x00004b59 LBB18_81 + 0x48, 0x83, 0xf9, 0xff, //0x00004b59 cmpq $-1, %rcx + 0x48, 0x8d, 0x45, 0xc0, //0x00004b5d leaq $-64(%rbp), %rax + 0x48, 0x0f, 0x44, 0x45, 0xc8, //0x00004b61 cmoveq $-56(%rbp), %rax + 0x48, 0x8b, 0x00, //0x00004b66 movq (%rax), %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00004b69 movq $-48(%rbp), %rdx + 0x48, 0x89, 0x02, //0x00004b6d movq %rax, (%rdx) + 0x48, 0x89, 0xc8, //0x00004b70 movq %rcx, %rax + 0xe9, 0xc6, 0xff, 0xff, 0xff, //0x00004b73 jmp LBB18_88 + //0x00004b78 LBB18_92 + 0x49, 0x89, 0x10, //0x00004b78 movq %rdx, (%r8) + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004b7b jmp LBB18_88 + //0x00004b80 LBB18_86 + 0x49, 0x29, 0xcf, //0x00004b80 subq %rcx, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x00004b83 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00004b87 movq %r15, (%rax) + //0x00004b8a LBB18_87 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004b8a movq $-2, %rax + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00004b91 jmp LBB18_88 + //0x00004b96 LBB18_90 + 0x49, 0x89, 0x08, //0x00004b96 movq %rcx, (%r8) + 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x00004b99 jmp LBB18_88 + //0x00004b9e LBB18_93 + 0x4d, 0x89, 0x38, //0x00004b9e movq %r15, (%r8) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004ba1 movq $-2, %rax + 0x80, 0x3b, 0x74, //0x00004ba8 cmpb $116, (%rbx) + 0x0f, 0x85, 0x8d, 0xff, 0xff, 0xff, //0x00004bab jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x01, //0x00004bb1 leaq $1(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004bb5 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x72, //0x00004bb8 cmpb $114, $1(%rdi,%r15) + 0x0f, 0x85, 0x7a, 0xff, 0xff, 0xff, //0x00004bbe jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004bc4 leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004bc8 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x75, //0x00004bcb cmpb $117, $2(%rdi,%r15) + 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00004bd1 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004bd7 leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004bdb movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x65, //0x00004bde cmpb $101, $3(%rdi,%r15) + 0x0f, 0x84, 0xa6, 0x00, 0x00, 0x00, //0x00004be4 je LBB18_106 + 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00004bea jmp LBB18_88 + //0x00004bef LBB18_97 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004bef movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00004bf6 cmpb $97, %cl + 0x0f, 0x85, 0x3f, 0xff, 0xff, 0xff, //0x00004bf9 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004bff leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c03 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004c06 cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00004c0c jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004c12 leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c16 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x73, //0x00004c19 cmpb $115, $3(%rdi,%r15) + 0x0f, 0x85, 0x19, 0xff, 0xff, 0xff, //0x00004c1f jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x04, //0x00004c25 leaq $4(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c29 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x04, 0x65, //0x00004c2c cmpb $101, $4(%rdi,%r15) + 0x0f, 0x85, 0x06, 0xff, 0xff, 0xff, //0x00004c32 jne LBB18_88 + 0x49, 0x83, 0xc7, 0x05, //0x00004c38 addq $5, %r15 + 0x4d, 0x89, 0x38, //0x00004c3c movq %r15, (%r8) + 0xe9, 0xfa, 0xfe, 0xff, 0xff, //0x00004c3f jmp LBB18_88 + //0x00004c44 LBB18_102 + 0x4d, 0x89, 0x38, //0x00004c44 movq %r15, (%r8) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c47 movq $-2, %rax + 0x80, 0x3b, 0x6e, //0x00004c4e cmpb $110, (%rbx) + 0x0f, 0x85, 0xe7, 0xfe, 0xff, 0xff, //0x00004c51 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x01, //0x00004c57 leaq $1(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c5b movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x75, //0x00004c5e cmpb $117, $1(%rdi,%r15) + 0x0f, 0x85, 0xd4, 0xfe, 0xff, 0xff, //0x00004c64 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004c6a leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c6e movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004c71 cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0xc1, 0xfe, 0xff, 0xff, //0x00004c77 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004c7d leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c81 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x6c, //0x00004c84 cmpb $108, $3(%rdi,%r15) + 0x0f, 0x85, 0xae, 0xfe, 0xff, 0xff, //0x00004c8a jne LBB18_88 + //0x00004c90 LBB18_106 + 0x49, 0x83, 0xc7, 0x04, //0x00004c90 addq $4, %r15 + 0x4d, 0x89, 0x38, //0x00004c94 movq %r15, (%r8) + 0xe9, 0xa2, 0xfe, 0xff, 0xff, //0x00004c97 jmp LBB18_88 + //0x00004c9c .p2align 2, 0x90 + // // .set L18_0_set_37, LBB18_37-LJTI18_0 + // // .set L18_0_set_41, LBB18_41-LJTI18_0 + // // .set L18_0_set_44, LBB18_44-LJTI18_0 + // // .set L18_0_set_48, LBB18_48-LJTI18_0 + // // .set L18_0_set_50, LBB18_50-LJTI18_0 + // // .set L18_0_set_52, LBB18_52-LJTI18_0 + //0x00004c9c LJTI18_0 + 0xa5, 0xfb, 0xff, 0xff, //0x00004c9c .long L18_0_set_37 + 0xcd, 0xfb, 0xff, 0xff, //0x00004ca0 .long L18_0_set_41 + 0xe4, 0xfb, 0xff, 0xff, //0x00004ca4 .long L18_0_set_44 + 0x43, 0xfc, 0xff, 0xff, //0x00004ca8 .long L18_0_set_48 + 0x59, 0xfc, 0xff, 0xff, //0x00004cac .long L18_0_set_50 + 0x6a, 0xfc, 0xff, 0xff, //0x00004cb0 .long L18_0_set_52 + // // .set L18_1_set_88, LBB18_88-LJTI18_1 + // // .set L18_1_set_87, LBB18_87-LJTI18_1 + // // .set L18_1_set_46, LBB18_46-LJTI18_1 + // // .set L18_1_set_66, LBB18_66-LJTI18_1 + // // .set L18_1_set_57, LBB18_57-LJTI18_1 + // // .set L18_1_set_68, LBB18_68-LJTI18_1 + // // .set L18_1_set_70, LBB18_70-LJTI18_1 + // // .set L18_1_set_73, LBB18_73-LJTI18_1 + // // .set L18_1_set_75, LBB18_75-LJTI18_1 + // // .set L18_1_set_3, LBB18_3-LJTI18_1 + //0x00004cb4 LJTI18_1 + 0x8a, 0xfe, 0xff, 0xff, //0x00004cb4 .long L18_1_set_88 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cb8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cbc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cc0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cc4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cc8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ccc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cd0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cd4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cd8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cdc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ce0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ce4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ce8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cec .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cf0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cf4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cf8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cfc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d00 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d04 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d08 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d0c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d10 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d14 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d18 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d1c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d20 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d24 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d28 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d2c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d30 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d34 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d38 .long L18_1_set_87 + 0xdd, 0xfb, 0xff, 0xff, //0x00004d3c .long L18_1_set_46 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d40 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d44 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d48 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d4c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d50 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d54 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d58 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d5c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d60 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d64 .long L18_1_set_87 + 0xac, 0xfd, 0xff, 0xff, //0x00004d68 .long L18_1_set_66 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d6c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d70 .long L18_1_set_87 + 0x97, 0xfc, 0xff, 0xff, //0x00004d74 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d78 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d7c .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d80 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d84 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d88 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d8c .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d90 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d94 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d98 .long L18_1_set_57 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d9c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dac .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dbc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dcc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dd0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dd4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dd8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ddc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004de0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004de4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004de8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dec .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004df0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004df4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004df8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dfc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e00 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e04 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e08 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e0c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e10 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e14 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e18 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e1c .long L18_1_set_87 + 0xd2, 0xfd, 0xff, 0xff, //0x00004e20 .long L18_1_set_68 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e24 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e28 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e2c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e30 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e34 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e38 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e3c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e40 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e44 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e48 .long L18_1_set_87 + 0xf6, 0xfd, 0xff, 0xff, //0x00004e4c .long L18_1_set_70 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e50 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e54 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e58 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e5c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e60 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e64 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e68 .long L18_1_set_87 + 0x23, 0xfe, 0xff, 0xff, //0x00004e6c .long L18_1_set_73 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e70 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e74 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e78 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e7c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e80 .long L18_1_set_87 + 0x48, 0xfe, 0xff, 0xff, //0x00004e84 .long L18_1_set_75 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e88 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e8c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e90 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e94 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e98 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e9c .long L18_1_set_87 + 0xa7, 0xf9, 0xff, 0xff, //0x00004ea0 .long L18_1_set_3 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ea4 .p2align 4, 0x00 + //0x00004eb0 LCPI19_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004eb0 .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004eb8 .quad 6 + //0x00004ec0 .p2align 4, 0x90 + //0x00004ec0 _skip_object + 0x55, //0x00004ec0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004ec1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00004ec4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00004ec7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x00004eca movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x00004ecd vmovaps $-37(%rip), %xmm0 /* LCPI19_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00004ed5 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00004ed9 movq %rax, %rdi + 0x5d, //0x00004edc popq %rbp + 0xe9, 0x1e, 0xf7, 0xff, 0xff, //0x00004edd jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004ee2 .p2align 4, 0x90 + //0x00004ef0 _skip_string + 0x55, //0x00004ef0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004ef1 movq %rsp, %rbp + 0x41, 0x57, //0x00004ef4 pushq %r15 + 0x41, 0x56, //0x00004ef6 pushq %r14 + 0x41, 0x54, //0x00004ef8 pushq %r12 + 0x53, //0x00004efa pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00004efb subq $16, %rsp + 0x48, 0x89, 0xd1, //0x00004eff movq %rdx, %rcx + 0x49, 0x89, 0xf6, //0x00004f02 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00004f05 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00004f08 movq $-1, $-40(%rbp) + 0x48, 0x8b, 0x1e, //0x00004f10 movq (%rsi), %rbx + 0x4c, 0x8d, 0x65, 0xd8, //0x00004f13 leaq $-40(%rbp), %r12 + 0x48, 0x89, 0xde, //0x00004f17 movq %rbx, %rsi + 0x4c, 0x89, 0xe2, //0x00004f1a movq %r12, %rdx + 0xe8, 0xce, 0xe8, 0xff, 0xff, //0x00004f1d callq _advance_string + 0x48, 0x85, 0xc0, //0x00004f22 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004f25 js LBB20_1 + 0x48, 0xff, 0xcb, //0x00004f2b decq %rbx + 0x48, 0x89, 0xc1, //0x00004f2e movq %rax, %rcx + 0x48, 0x89, 0xd8, //0x00004f31 movq %rbx, %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004f34 jmp LBB20_3 + //0x00004f39 LBB20_1 + 0x49, 0x83, 0xc7, 0x08, //0x00004f39 addq $8, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x00004f3d cmpq $-1, %rax + 0x4d, 0x0f, 0x44, 0xe7, //0x00004f41 cmoveq %r15, %r12 + 0x49, 0x8b, 0x0c, 0x24, //0x00004f45 movq (%r12), %rcx + //0x00004f49 LBB20_3 + 0x49, 0x89, 0x0e, //0x00004f49 movq %rcx, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00004f4c addq $16, %rsp + 0x5b, //0x00004f50 popq %rbx + 0x41, 0x5c, //0x00004f51 popq %r12 + 0x41, 0x5e, //0x00004f53 popq %r14 + 0x41, 0x5f, //0x00004f55 popq %r15 + 0x5d, //0x00004f57 popq %rbp + 0xc3, //0x00004f58 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004f59 .p2align 4, 0x90 + //0x00004f60 _skip_negative + 0x55, //0x00004f60 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004f61 movq %rsp, %rbp + 0x41, 0x56, //0x00004f64 pushq %r14 + 0x53, //0x00004f66 pushq %rbx + 0x49, 0x89, 0xf6, //0x00004f67 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x00004f6a movq (%rsi), %rbx + 0x48, 0x8b, 0x07, //0x00004f6d movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00004f70 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x00004f73 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x00004f77 subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00004f7a movq %rax, %rdi + 0xe8, 0xae, 0x00, 0x00, 0x00, //0x00004f7d callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00004f82 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004f85 js LBB21_1 + 0x48, 0x01, 0xd8, //0x00004f8b addq %rbx, %rax + 0x49, 0x89, 0x06, //0x00004f8e movq %rax, (%r14) + 0x48, 0xff, 0xcb, //0x00004f91 decq %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004f94 jmp LBB21_3 + //0x00004f99 LBB21_1 + 0x48, 0xf7, 0xd0, //0x00004f99 notq %rax + 0x48, 0x01, 0xc3, //0x00004f9c addq %rax, %rbx + 0x49, 0x89, 0x1e, //0x00004f9f movq %rbx, (%r14) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00004fa2 movq $-2, %rbx + //0x00004fa9 LBB21_3 + 0x48, 0x89, 0xd8, //0x00004fa9 movq %rbx, %rax + 0x5b, //0x00004fac popq %rbx + 0x41, 0x5e, //0x00004fad popq %r14 + 0x5d, //0x00004faf popq %rbp + 0xc3, //0x00004fb0 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004fb1 .p2align 4, 0x00 + //0x00004fc0 LCPI22_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00004fc0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00004fd0 LCPI22_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00004fd0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00004fe0 LCPI22_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00004fe0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00004ff0 LCPI22_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00004ff0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005000 LCPI22_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005000 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005010 LCPI22_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005010 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005020 LCPI22_6 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005020 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00005030 .p2align 4, 0x90 + //0x00005030 _do_skip_number + 0x55, //0x00005030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005031 movq %rsp, %rbp + 0x41, 0x57, //0x00005034 pushq %r15 + 0x41, 0x56, //0x00005036 pushq %r14 + 0x41, 0x55, //0x00005038 pushq %r13 + 0x41, 0x54, //0x0000503a pushq %r12 + 0x53, //0x0000503c pushq %rbx + 0x48, 0x85, 0xf6, //0x0000503d testq %rsi, %rsi + 0x0f, 0x84, 0x64, 0x02, 0x00, 0x00, //0x00005040 je LBB22_34 + 0x80, 0x3f, 0x30, //0x00005046 cmpb $48, (%rdi) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00005049 jne LBB22_5 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000504f movl $1, %edx + 0x48, 0x83, 0xfe, 0x01, //0x00005054 cmpq $1, %rsi + 0x0f, 0x84, 0x20, 0x03, 0x00, 0x00, //0x00005058 je LBB22_52 + 0x8a, 0x47, 0x01, //0x0000505e movb $1(%rdi), %al + 0x04, 0xd2, //0x00005061 addb $-46, %al + 0x3c, 0x37, //0x00005063 cmpb $55, %al + 0x0f, 0x87, 0x13, 0x03, 0x00, 0x00, //0x00005065 ja LBB22_52 + 0x0f, 0xb6, 0xc0, //0x0000506b movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000506e movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00005078 btq %rax, %rcx + 0x0f, 0x83, 0xfc, 0x02, 0x00, 0x00, //0x0000507c jae LBB22_52 + //0x00005082 LBB22_5 + 0x48, 0x83, 0xfe, 0x10, //0x00005082 cmpq $16, %rsi + 0x0f, 0x82, 0x20, 0x03, 0x00, 0x00, //0x00005086 jb LBB22_57 + 0x4c, 0x8d, 0x5e, 0xf0, //0x0000508c leaq $-16(%rsi), %r11 + 0x4c, 0x89, 0xd8, //0x00005090 movq %r11, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00005093 andq $-16, %rax + 0x4c, 0x8d, 0x54, 0x38, 0x10, //0x00005097 leaq $16(%rax,%rdi), %r10 + 0x41, 0x83, 0xe3, 0x0f, //0x0000509c andl $15, %r11d + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000050a0 movq $-1, %r9 + 0xc5, 0x79, 0x6f, 0x05, 0x11, 0xff, 0xff, 0xff, //0x000050a7 vmovdqa $-239(%rip), %xmm8 /* LCPI22_0+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x19, 0xff, 0xff, 0xff, //0x000050af vmovdqa $-231(%rip), %xmm9 /* LCPI22_1+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x21, 0xff, 0xff, 0xff, //0x000050b7 vmovdqa $-223(%rip), %xmm10 /* LCPI22_2+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x1d, 0x29, 0xff, 0xff, 0xff, //0x000050bf vmovdqa $-215(%rip), %xmm11 /* LCPI22_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x31, 0xff, 0xff, 0xff, //0x000050c7 vmovdqa $-207(%rip), %xmm4 /* LCPI22_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0x39, 0xff, 0xff, 0xff, //0x000050cf vmovdqa $-199(%rip), %xmm5 /* LCPI22_5+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x35, 0x41, 0xff, 0xff, 0xff, //0x000050d7 vmovdqa $-191(%rip), %xmm6 /* LCPI22_6+0(%rip) */ + 0x41, 0xbe, 0xff, 0xff, 0xff, 0xff, //0x000050df movl $4294967295, %r14d + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000050e5 movq $-1, %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000050ec movq $-1, %r8 + 0x49, 0x89, 0xff, //0x000050f3 movq %rdi, %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000050f6 .p2align 4, 0x90 + //0x00005100 LBB22_7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x3f, //0x00005100 vmovdqu (%r15), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00005105 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x0000510a vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x0000510e vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x00005112 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x00005116 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000511a vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xeb, 0xd4, //0x0000511e vpor %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x00005122 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x00005126 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x0000512a vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x0000512e vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x00005132 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd7, //0x00005136 vpmovmskb %xmm7, %edx + 0xc5, 0x79, 0xd7, 0xea, //0x0000513a vpmovmskb %xmm2, %r13d + 0xc5, 0x79, 0xd7, 0xe1, //0x0000513e vpmovmskb %xmm1, %r12d + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005142 vpmovmskb %xmm0, %ecx + 0x4c, 0x31, 0xf1, //0x00005146 xorq %r14, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00005149 bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x0000514d cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005150 je LBB22_9 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005156 movl $-1, %ebx + 0xd3, 0xe3, //0x0000515b shll %cl, %ebx + 0xf7, 0xd3, //0x0000515d notl %ebx + 0x21, 0xda, //0x0000515f andl %ebx, %edx + 0x41, 0x21, 0xdd, //0x00005161 andl %ebx, %r13d + 0x44, 0x21, 0xe3, //0x00005164 andl %r12d, %ebx + 0x41, 0x89, 0xdc, //0x00005167 movl %ebx, %r12d + //0x0000516a LBB22_9 + 0x8d, 0x5a, 0xff, //0x0000516a leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x0000516d andl %edx, %ebx + 0x0f, 0x85, 0xfd, 0x01, 0x00, 0x00, //0x0000516f jne LBB22_50 + 0x41, 0x8d, 0x5d, 0xff, //0x00005175 leal $-1(%r13), %ebx + 0x44, 0x21, 0xeb, //0x00005179 andl %r13d, %ebx + 0x0f, 0x85, 0xf0, 0x01, 0x00, 0x00, //0x0000517c jne LBB22_50 + 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x00005182 leal $-1(%r12), %ebx + 0x44, 0x21, 0xe3, //0x00005187 andl %r12d, %ebx + 0x0f, 0x85, 0xe2, 0x01, 0x00, 0x00, //0x0000518a jne LBB22_50 + 0x85, 0xd2, //0x00005190 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00005192 je LBB22_15 + 0x4c, 0x89, 0xfb, //0x00005198 movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x0000519b subq %rdi, %rbx + 0x0f, 0xbc, 0xd2, //0x0000519e bsfl %edx, %edx + 0x48, 0x01, 0xda, //0x000051a1 addq %rbx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x000051a4 cmpq $-1, %r8 + 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x000051a8 jne LBB22_51 + 0x49, 0x89, 0xd0, //0x000051ae movq %rdx, %r8 + //0x000051b1 LBB22_15 + 0x45, 0x85, 0xed, //0x000051b1 testl %r13d, %r13d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000051b4 je LBB22_18 + 0x4c, 0x89, 0xfb, //0x000051ba movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x000051bd subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd5, //0x000051c0 bsfl %r13d, %edx + 0x48, 0x01, 0xda, //0x000051c4 addq %rbx, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x000051c7 cmpq $-1, %rax + 0x0f, 0x85, 0xaa, 0x01, 0x00, 0x00, //0x000051cb jne LBB22_51 + 0x48, 0x89, 0xd0, //0x000051d1 movq %rdx, %rax + //0x000051d4 LBB22_18 + 0x45, 0x85, 0xe4, //0x000051d4 testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000051d7 je LBB22_21 + 0x4c, 0x89, 0xfb, //0x000051dd movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x000051e0 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd4, //0x000051e3 bsfl %r12d, %edx + 0x48, 0x01, 0xda, //0x000051e7 addq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000051ea cmpq $-1, %r9 + 0x0f, 0x85, 0x87, 0x01, 0x00, 0x00, //0x000051ee jne LBB22_51 + 0x49, 0x89, 0xd1, //0x000051f4 movq %rdx, %r9 + //0x000051f7 LBB22_21 + 0x83, 0xf9, 0x10, //0x000051f7 cmpl $16, %ecx + 0x0f, 0x85, 0xb6, 0x00, 0x00, 0x00, //0x000051fa jne LBB22_35 + 0x49, 0x83, 0xc7, 0x10, //0x00005200 addq $16, %r15 + 0x48, 0x83, 0xc6, 0xf0, //0x00005204 addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x00005208 cmpq $15, %rsi + 0x0f, 0x87, 0xee, 0xfe, 0xff, 0xff, //0x0000520c ja LBB22_7 + 0x4d, 0x85, 0xdb, //0x00005212 testq %r11, %r11 + 0x0f, 0x84, 0xa1, 0x00, 0x00, 0x00, //0x00005215 je LBB22_36 + //0x0000521b LBB22_24 + 0x4b, 0x8d, 0x0c, 0x1a, //0x0000521b leaq (%r10,%r11), %rcx + 0x48, 0x8d, 0x35, 0xa6, 0x01, 0x00, 0x00, //0x0000521f leaq $422(%rip), %rsi /* LJTI22_0+0(%rip) */ + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00005226 jmp LBB22_26 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000522b .p2align 4, 0x90 + //0x00005230 LBB22_25 + 0x49, 0x89, 0xda, //0x00005230 movq %rbx, %r10 + 0x49, 0xff, 0xcb, //0x00005233 decq %r11 + 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00005236 je LBB22_54 + //0x0000523c LBB22_26 + 0x41, 0x0f, 0xbe, 0x12, //0x0000523c movsbl (%r10), %edx + 0x83, 0xc2, 0xd5, //0x00005240 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00005243 cmpl $58, %edx + 0x0f, 0x87, 0x70, 0x00, 0x00, 0x00, //0x00005246 ja LBB22_36 + 0x49, 0x8d, 0x5a, 0x01, //0x0000524c leaq $1(%r10), %rbx + 0x48, 0x63, 0x14, 0x96, //0x00005250 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00005254 addq %rsi, %rdx + 0xff, 0xe2, //0x00005257 jmpq *%rdx + //0x00005259 LBB22_28 + 0x48, 0x89, 0xda, //0x00005259 movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x0000525c subq %rdi, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000525f cmpq $-1, %r9 + 0x0f, 0x85, 0x3b, 0x01, 0x00, 0x00, //0x00005263 jne LBB22_58 + 0x48, 0xff, 0xca, //0x00005269 decq %rdx + 0x49, 0x89, 0xd1, //0x0000526c movq %rdx, %r9 + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000526f jmp LBB22_25 + //0x00005274 LBB22_30 + 0x48, 0x89, 0xda, //0x00005274 movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x00005277 subq %rdi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x0000527a cmpq $-1, %rax + 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x0000527e jne LBB22_58 + 0x48, 0xff, 0xca, //0x00005284 decq %rdx + 0x48, 0x89, 0xd0, //0x00005287 movq %rdx, %rax + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000528a jmp LBB22_25 + //0x0000528f LBB22_32 + 0x48, 0x89, 0xda, //0x0000528f movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x00005292 subq %rdi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00005295 cmpq $-1, %r8 + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00005299 jne LBB22_58 + 0x48, 0xff, 0xca, //0x0000529f decq %rdx + 0x49, 0x89, 0xd0, //0x000052a2 movq %rdx, %r8 + 0xe9, 0x86, 0xff, 0xff, 0xff, //0x000052a5 jmp LBB22_25 + //0x000052aa LBB22_34 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000052aa movq $-1, %rax + 0xe9, 0xcb, 0x00, 0x00, 0x00, //0x000052b1 jmp LBB22_53 + //0x000052b6 LBB22_35 + 0x49, 0x01, 0xcf, //0x000052b6 addq %rcx, %r15 + 0x4d, 0x89, 0xfa, //0x000052b9 movq %r15, %r10 + //0x000052bc LBB22_36 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000052bc movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x000052c3 testq %rax, %rax + 0x0f, 0x84, 0xb2, 0x00, 0x00, 0x00, //0x000052c6 je LBB22_52 + //0x000052cc LBB22_37 + 0x4d, 0x85, 0xc9, //0x000052cc testq %r9, %r9 + 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, //0x000052cf je LBB22_52 + 0x4d, 0x85, 0xc0, //0x000052d5 testq %r8, %r8 + 0x0f, 0x84, 0xa0, 0x00, 0x00, 0x00, //0x000052d8 je LBB22_52 + 0x49, 0x29, 0xfa, //0x000052de subq %rdi, %r10 + 0x49, 0x8d, 0x4a, 0xff, //0x000052e1 leaq $-1(%r10), %rcx + 0x48, 0x39, 0xc8, //0x000052e5 cmpq %rcx, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x000052e8 je LBB22_45 + 0x49, 0x39, 0xc8, //0x000052ee cmpq %rcx, %r8 + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000052f1 je LBB22_45 + 0x49, 0x39, 0xc9, //0x000052f7 cmpq %rcx, %r9 + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000052fa je LBB22_45 + 0x4d, 0x85, 0xc9, //0x00005300 testq %r9, %r9 + 0x0f, 0x8e, 0x29, 0x00, 0x00, 0x00, //0x00005303 jle LBB22_46 + 0x49, 0x8d, 0x49, 0xff, //0x00005309 leaq $-1(%r9), %rcx + 0x48, 0x39, 0xc8, //0x0000530d cmpq %rcx, %rax + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00005310 je LBB22_46 + 0x49, 0xf7, 0xd1, //0x00005316 notq %r9 + 0x4c, 0x89, 0xca, //0x00005319 movq %r9, %rdx + 0x4c, 0x89, 0xc8, //0x0000531c movq %r9, %rax + 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x0000531f jmp LBB22_53 + //0x00005324 LBB22_45 + 0x49, 0xf7, 0xda, //0x00005324 negq %r10 + 0x4c, 0x89, 0xd2, //0x00005327 movq %r10, %rdx + 0x4c, 0x89, 0xd0, //0x0000532a movq %r10, %rax + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x0000532d jmp LBB22_53 + //0x00005332 LBB22_46 + 0x4c, 0x89, 0xc1, //0x00005332 movq %r8, %rcx + 0x48, 0x09, 0xc1, //0x00005335 orq %rax, %rcx + 0x49, 0x39, 0xc0, //0x00005338 cmpq %rax, %r8 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x0000533b jl LBB22_49 + 0x48, 0x85, 0xc9, //0x00005341 testq %rcx, %rcx + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00005344 js LBB22_49 + 0x49, 0xf7, 0xd0, //0x0000534a notq %r8 + 0x4c, 0x89, 0xc2, //0x0000534d movq %r8, %rdx + 0x4c, 0x89, 0xc0, //0x00005350 movq %r8, %rax + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00005353 jmp LBB22_53 + //0x00005358 LBB22_49 + 0x48, 0x85, 0xc9, //0x00005358 testq %rcx, %rcx + 0x48, 0x8d, 0x48, 0xff, //0x0000535b leaq $-1(%rax), %rcx + 0x48, 0xf7, 0xd0, //0x0000535f notq %rax + 0x49, 0x0f, 0x48, 0xc2, //0x00005362 cmovsq %r10, %rax + 0x49, 0x39, 0xc8, //0x00005366 cmpq %rcx, %r8 + 0x49, 0x0f, 0x45, 0xc2, //0x00005369 cmovneq %r10, %rax + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000536d jmp LBB22_53 + //0x00005372 LBB22_50 + 0x49, 0x29, 0xff, //0x00005372 subq %rdi, %r15 + 0x0f, 0xbc, 0xd3, //0x00005375 bsfl %ebx, %edx + 0x4c, 0x01, 0xfa, //0x00005378 addq %r15, %rdx + //0x0000537b LBB22_51 + 0x48, 0xf7, 0xd2, //0x0000537b notq %rdx + //0x0000537e LBB22_52 + 0x48, 0x89, 0xd0, //0x0000537e movq %rdx, %rax + //0x00005381 LBB22_53 + 0x5b, //0x00005381 popq %rbx + 0x41, 0x5c, //0x00005382 popq %r12 + 0x41, 0x5d, //0x00005384 popq %r13 + 0x41, 0x5e, //0x00005386 popq %r14 + 0x41, 0x5f, //0x00005388 popq %r15 + 0x5d, //0x0000538a popq %rbp + 0xc3, //0x0000538b retq + //0x0000538c LBB22_54 + 0x49, 0x89, 0xca, //0x0000538c movq %rcx, %r10 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000538f movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x00005396 testq %rax, %rax + 0x0f, 0x85, 0x2d, 0xff, 0xff, 0xff, //0x00005399 jne LBB22_37 + 0xe9, 0xda, 0xff, 0xff, 0xff, //0x0000539f jmp LBB22_52 + //0x000053a4 LBB22_58 + 0x48, 0xf7, 0xda, //0x000053a4 negq %rdx + 0xe9, 0xd2, 0xff, 0xff, 0xff, //0x000053a7 jmp LBB22_52 + //0x000053ac LBB22_57 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000053ac movq $-1, %r8 + 0x49, 0x89, 0xfa, //0x000053b3 movq %rdi, %r10 + 0x49, 0x89, 0xf3, //0x000053b6 movq %rsi, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000053b9 movq $-1, %rax + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000053c0 movq $-1, %r9 + 0xe9, 0x4f, 0xfe, 0xff, 0xff, //0x000053c7 jmp LBB22_24 + //0x000053cc .p2align 2, 0x90 + // // .set L22_0_set_28, LBB22_28-LJTI22_0 + // // .set L22_0_set_36, LBB22_36-LJTI22_0 + // // .set L22_0_set_32, LBB22_32-LJTI22_0 + // // .set L22_0_set_25, LBB22_25-LJTI22_0 + // // .set L22_0_set_30, LBB22_30-LJTI22_0 + //0x000053cc LJTI22_0 + 0x8d, 0xfe, 0xff, 0xff, //0x000053cc .long L22_0_set_28 + 0xf0, 0xfe, 0xff, 0xff, //0x000053d0 .long L22_0_set_36 + 0x8d, 0xfe, 0xff, 0xff, //0x000053d4 .long L22_0_set_28 + 0xc3, 0xfe, 0xff, 0xff, //0x000053d8 .long L22_0_set_32 + 0xf0, 0xfe, 0xff, 0xff, //0x000053dc .long L22_0_set_36 + 0x64, 0xfe, 0xff, 0xff, //0x000053e0 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053e4 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053e8 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053ec .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053f0 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053f4 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053f8 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053fc .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005400 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005404 .long L22_0_set_25 + 0xf0, 0xfe, 0xff, 0xff, //0x00005408 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000540c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005410 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005414 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005418 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000541c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005420 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005424 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005428 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000542c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005430 .long L22_0_set_36 + 0xa8, 0xfe, 0xff, 0xff, //0x00005434 .long L22_0_set_30 + 0xf0, 0xfe, 0xff, 0xff, //0x00005438 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000543c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005440 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005444 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005448 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000544c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005450 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005454 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005458 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000545c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005460 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005464 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005468 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000546c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005470 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005474 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005478 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000547c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005480 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005484 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005488 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000548c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005490 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005494 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005498 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000549c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054ac .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054b0 .long L22_0_set_36 + 0xa8, 0xfe, 0xff, 0xff, //0x000054b4 .long L22_0_set_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000054b8 .p2align 4, 0x90 + //0x000054c0 _skip_positive + 0x55, //0x000054c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000054c1 movq %rsp, %rbp + 0x41, 0x57, //0x000054c4 pushq %r15 + 0x41, 0x56, //0x000054c6 pushq %r14 + 0x53, //0x000054c8 pushq %rbx + 0x50, //0x000054c9 pushq %rax + 0x49, 0x89, 0xf6, //0x000054ca movq %rsi, %r14 + 0x4c, 0x8b, 0x3e, //0x000054cd movq (%rsi), %r15 + 0x49, 0x8d, 0x5f, 0xff, //0x000054d0 leaq $-1(%r15), %rbx + 0x48, 0x8b, 0x07, //0x000054d4 movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x000054d7 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x000054da movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x000054de subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x000054e1 movq %rax, %rdi + 0xe8, 0x47, 0xfb, 0xff, 0xff, //0x000054e4 callq _do_skip_number + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000054e9 movq $-2, %rcx + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000054f0 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x000054f7 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x000054fa testq %rax, %rax + 0x48, 0x8d, 0x40, 0xff, //0x000054fd leaq $-1(%rax), %rax + 0x48, 0x0f, 0x48, 0xc2, //0x00005501 cmovsq %rdx, %rax + 0x48, 0x0f, 0x49, 0xcb, //0x00005505 cmovnsq %rbx, %rcx + 0x4c, 0x01, 0xf8, //0x00005509 addq %r15, %rax + 0x49, 0x89, 0x06, //0x0000550c movq %rax, (%r14) + 0x48, 0x89, 0xc8, //0x0000550f movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00005512 addq $8, %rsp + 0x5b, //0x00005516 popq %rbx + 0x41, 0x5e, //0x00005517 popq %r14 + 0x41, 0x5f, //0x00005519 popq %r15 + 0x5d, //0x0000551b popq %rbp + 0xc3, //0x0000551c retq + 0x90, 0x90, 0x90, //0x0000551d .p2align 4, 0x90 + //0x00005520 _skip_number + 0x55, //0x00005520 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005521 movq %rsp, %rbp + 0x41, 0x57, //0x00005524 pushq %r15 + 0x41, 0x56, //0x00005526 pushq %r14 + 0x41, 0x54, //0x00005528 pushq %r12 + 0x53, //0x0000552a pushq %rbx + 0x49, 0x89, 0xf6, //0x0000552b movq %rsi, %r14 + 0x4c, 0x8b, 0x27, //0x0000552e movq (%rdi), %r12 + 0x48, 0x8b, 0x77, 0x08, //0x00005531 movq $8(%rdi), %rsi + 0x4d, 0x8b, 0x3e, //0x00005535 movq (%r14), %r15 + 0x31, 0xc0, //0x00005538 xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x3c, 0x2d, //0x0000553a cmpb $45, (%r12,%r15) + 0x4b, 0x8d, 0x1c, 0x3c, //0x0000553f leaq (%r12,%r15), %rbx + 0x0f, 0x94, 0xc0, //0x00005543 sete %al + 0x48, 0x01, 0xc3, //0x00005546 addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x00005549 subq %rax, %rsi + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x0000554c je LBB24_6 + 0x49, 0x39, 0xf7, //0x00005552 cmpq %rsi, %r15 + 0x0f, 0x83, 0x0c, 0x00, 0x00, 0x00, //0x00005555 jae LBB24_3 + 0x8a, 0x03, //0x0000555b movb (%rbx), %al + 0x04, 0xd0, //0x0000555d addb $-48, %al + 0x3c, 0x09, //0x0000555f cmpb $9, %al + 0x0f, 0x87, 0x38, 0x00, 0x00, 0x00, //0x00005561 ja LBB24_8 + //0x00005567 LBB24_3 + 0x48, 0x89, 0xdf, //0x00005567 movq %rbx, %rdi + 0xe8, 0xc1, 0xfa, 0xff, 0xff, //0x0000556a callq _do_skip_number + 0x48, 0x85, 0xc0, //0x0000556f testq %rax, %rax + 0x0f, 0x88, 0x21, 0x00, 0x00, 0x00, //0x00005572 js LBB24_7 + 0x48, 0x01, 0xc3, //0x00005578 addq %rax, %rbx + //0x0000557b LBB24_5 + 0x4c, 0x29, 0xe3, //0x0000557b subq %r12, %rbx + 0x49, 0x89, 0x1e, //0x0000557e movq %rbx, (%r14) + 0x4c, 0x89, 0xf8, //0x00005581 movq %r15, %rax + 0x5b, //0x00005584 popq %rbx + 0x41, 0x5c, //0x00005585 popq %r12 + 0x41, 0x5e, //0x00005587 popq %r14 + 0x41, 0x5f, //0x00005589 popq %r15 + 0x5d, //0x0000558b popq %rbp + 0xc3, //0x0000558c retq + //0x0000558d LBB24_6 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000558d movq $-1, %r15 + 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x00005594 jmp LBB24_5 + //0x00005599 LBB24_7 + 0x48, 0xf7, 0xd0, //0x00005599 notq %rax + 0x48, 0x01, 0xc3, //0x0000559c addq %rax, %rbx + //0x0000559f LBB24_8 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000559f movq $-2, %r15 + 0xe9, 0xd0, 0xff, 0xff, 0xff, //0x000055a6 jmp LBB24_5 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000055ab .p2align 4, 0x90 + //0x000055b0 _skip_one + 0x55, //0x000055b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000055b1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000055b4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000055b7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000055ba movq %rdi, %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000055bd movl $1, %edi + 0xc4, 0xe1, 0xf9, 0x6e, 0xc7, //0x000055c2 vmovq %rdi, %xmm0 + 0xc5, 0xfa, 0x7f, 0x00, //0x000055c7 vmovdqu %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x000055cb movq %rax, %rdi + 0x5d, //0x000055ce popq %rbp + 0xe9, 0x2c, 0xf0, 0xff, 0xff, //0x000055cf jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000055d4 .p2align 4, 0x90 + //0x000055e0 _validate_one + 0x55, //0x000055e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000055e1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000055e4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000055e7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000055ea movq %rdi, %rsi + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000055ed movl $1, %ecx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x000055f2 vmovq %rcx, %xmm0 + 0xc5, 0xfa, 0x7f, 0x00, //0x000055f7 vmovdqu %xmm0, (%rax) + 0xb9, 0x20, 0x00, 0x00, 0x00, //0x000055fb movl $32, %ecx + 0x48, 0x89, 0xc7, //0x00005600 movq %rax, %rdi + 0x5d, //0x00005603 popq %rbp + 0xe9, 0xf7, 0xef, 0xff, 0xff, //0x00005604 jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005609 .p2align 4, 0x00 + //0x00005610 LCPI27_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00005610 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00005620 LCPI27_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005620 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005630 LCPI27_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00005630 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00005640 LCPI27_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00005640 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00005650 LCPI27_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00005650 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00005660 LCPI27_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00005660 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00005670 LCPI27_6 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00005670 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00005680 LCPI27_7 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00005680 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00005690 .p2align 4, 0x90 + //0x00005690 _skip_one_fast + 0x55, //0x00005690 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005691 movq %rsp, %rbp + 0x41, 0x57, //0x00005694 pushq %r15 + 0x41, 0x56, //0x00005696 pushq %r14 + 0x41, 0x55, //0x00005698 pushq %r13 + 0x41, 0x54, //0x0000569a pushq %r12 + 0x53, //0x0000569c pushq %rbx + 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000569d subq $128, %rsp + 0x4c, 0x8b, 0x37, //0x000056a4 movq (%rdi), %r14 + 0x4c, 0x8b, 0x47, 0x08, //0x000056a7 movq $8(%rdi), %r8 + 0x48, 0x8b, 0x16, //0x000056ab movq (%rsi), %rdx + 0x48, 0x89, 0xd0, //0x000056ae movq %rdx, %rax + 0x4c, 0x29, 0xc0, //0x000056b1 subq %r8, %rax + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x000056b4 jae LBB27_5 + 0x41, 0x8a, 0x0c, 0x16, //0x000056ba movb (%r14,%rdx), %cl + 0x80, 0xf9, 0x0d, //0x000056be cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x000056c1 je LBB27_5 + 0x80, 0xf9, 0x20, //0x000056c7 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000056ca je LBB27_5 + 0x80, 0xc1, 0xf7, //0x000056d0 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000056d3 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x000056d6 jbe LBB27_5 + 0x49, 0x89, 0xd3, //0x000056dc movq %rdx, %r11 + 0xe9, 0x2b, 0x01, 0x00, 0x00, //0x000056df jmp LBB27_27 + //0x000056e4 LBB27_5 + 0x4c, 0x8d, 0x5a, 0x01, //0x000056e4 leaq $1(%rdx), %r11 + 0x4d, 0x39, 0xc3, //0x000056e8 cmpq %r8, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000056eb jae LBB27_9 + 0x43, 0x8a, 0x0c, 0x1e, //0x000056f1 movb (%r14,%r11), %cl + 0x80, 0xf9, 0x0d, //0x000056f5 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000056f8 je LBB27_9 + 0x80, 0xf9, 0x20, //0x000056fe cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00005701 je LBB27_9 + 0x80, 0xc1, 0xf7, //0x00005707 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x0000570a cmpb $1, %cl + 0x0f, 0x87, 0xfc, 0x00, 0x00, 0x00, //0x0000570d ja LBB27_27 + //0x00005713 LBB27_9 + 0x4c, 0x8d, 0x5a, 0x02, //0x00005713 leaq $2(%rdx), %r11 + 0x4d, 0x39, 0xc3, //0x00005717 cmpq %r8, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000571a jae LBB27_13 + 0x43, 0x8a, 0x0c, 0x1e, //0x00005720 movb (%r14,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00005724 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005727 je LBB27_13 + 0x80, 0xf9, 0x20, //0x0000572d cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00005730 je LBB27_13 + 0x80, 0xc1, 0xf7, //0x00005736 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00005739 cmpb $1, %cl + 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x0000573c ja LBB27_27 + //0x00005742 LBB27_13 + 0x4c, 0x8d, 0x5a, 0x03, //0x00005742 leaq $3(%rdx), %r11 + 0x4d, 0x39, 0xc3, //0x00005746 cmpq %r8, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00005749 jae LBB27_17 + 0x43, 0x8a, 0x0c, 0x1e, //0x0000574f movb (%r14,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00005753 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005756 je LBB27_17 + 0x80, 0xf9, 0x20, //0x0000575c cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000575f je LBB27_17 + 0x80, 0xc1, 0xf7, //0x00005765 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00005768 cmpb $1, %cl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x0000576b ja LBB27_27 + //0x00005771 LBB27_17 + 0x48, 0x8d, 0x4a, 0x04, //0x00005771 leaq $4(%rdx), %rcx + 0x49, 0x39, 0xc8, //0x00005775 cmpq %rcx, %r8 + 0x0f, 0x86, 0x4b, 0x00, 0x00, 0x00, //0x00005778 jbe LBB27_23 + 0x49, 0x39, 0xc8, //0x0000577e cmpq %rcx, %r8 + 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x00005781 je LBB27_24 + 0x4b, 0x8d, 0x0c, 0x06, //0x00005787 leaq (%r14,%r8), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x0000578b addq $4, %rax + 0x4e, 0x8d, 0x5c, 0x32, 0x05, //0x0000578f leaq $5(%rdx,%r14), %r11 + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005794 movabsq $4294977024, %rdx + 0x90, 0x90, //0x0000579e .p2align 4, 0x90 + //0x000057a0 LBB27_20 + 0x41, 0x0f, 0xbe, 0x5b, 0xff, //0x000057a0 movsbl $-1(%r11), %ebx + 0x83, 0xfb, 0x20, //0x000057a5 cmpl $32, %ebx + 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x000057a8 ja LBB27_26 + 0x48, 0x0f, 0xa3, 0xda, //0x000057ae btq %rbx, %rdx + 0x0f, 0x83, 0x3e, 0x00, 0x00, 0x00, //0x000057b2 jae LBB27_26 + 0x49, 0xff, 0xc3, //0x000057b8 incq %r11 + 0x48, 0xff, 0xc0, //0x000057bb incq %rax + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000057be jne LBB27_20 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000057c4 jmp LBB27_25 + //0x000057c9 LBB27_23 + 0x48, 0x89, 0x0e, //0x000057c9 movq %rcx, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000057cc movq $-1, %rax + 0xe9, 0x46, 0x01, 0x00, 0x00, //0x000057d3 jmp LBB27_45 + //0x000057d8 LBB27_24 + 0x4c, 0x01, 0xf1, //0x000057d8 addq %r14, %rcx + //0x000057db LBB27_25 + 0x4c, 0x29, 0xf1, //0x000057db subq %r14, %rcx + 0x49, 0x89, 0xcb, //0x000057de movq %rcx, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000057e1 movq $-1, %rax + 0x4d, 0x39, 0xc3, //0x000057e8 cmpq %r8, %r11 + 0x0f, 0x82, 0x1e, 0x00, 0x00, 0x00, //0x000057eb jb LBB27_27 + 0xe9, 0x28, 0x01, 0x00, 0x00, //0x000057f1 jmp LBB27_45 + //0x000057f6 LBB27_26 + 0x4c, 0x89, 0xf0, //0x000057f6 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x000057f9 notq %rax + 0x49, 0x01, 0xc3, //0x000057fc addq %rax, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000057ff movq $-1, %rax + 0x4d, 0x39, 0xc3, //0x00005806 cmpq %r8, %r11 + 0x0f, 0x83, 0x0f, 0x01, 0x00, 0x00, //0x00005809 jae LBB27_45 + //0x0000580f LBB27_27 + 0x49, 0x8d, 0x5b, 0x01, //0x0000580f leaq $1(%r11), %rbx + 0x48, 0x89, 0x1e, //0x00005813 movq %rbx, (%rsi) + 0x43, 0x0f, 0xbe, 0x0c, 0x1e, //0x00005816 movsbl (%r14,%r11), %ecx + 0x83, 0xf9, 0x7b, //0x0000581b cmpl $123, %ecx + 0x0f, 0x87, 0x1f, 0x01, 0x00, 0x00, //0x0000581e ja LBB27_47 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005824 movq $-1, %rax + 0x48, 0x8d, 0x15, 0x26, 0x0a, 0x00, 0x00, //0x0000582b leaq $2598(%rip), %rdx /* LJTI27_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x00005832 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x00005836 addq %rdx, %rcx + 0xff, 0xe1, //0x00005839 jmpq *%rcx + //0x0000583b LBB27_29 + 0x48, 0x8b, 0x4f, 0x08, //0x0000583b movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x0000583f movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00005842 subq %rbx, %rax + 0x4c, 0x01, 0xf3, //0x00005845 addq %r14, %rbx + 0x48, 0x83, 0xf8, 0x10, //0x00005848 cmpq $16, %rax + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x0000584c jb LBB27_34 + 0x4c, 0x29, 0xd9, //0x00005852 subq %r11, %rcx + 0x48, 0x83, 0xc1, 0xef, //0x00005855 addq $-17, %rcx + 0x48, 0x89, 0xca, //0x00005859 movq %rcx, %rdx + 0x48, 0x83, 0xe2, 0xf0, //0x0000585c andq $-16, %rdx + 0x4c, 0x01, 0xda, //0x00005860 addq %r11, %rdx + 0x49, 0x8d, 0x54, 0x16, 0x11, //0x00005863 leaq $17(%r14,%rdx), %rdx + 0x83, 0xe1, 0x0f, //0x00005868 andl $15, %ecx + 0xc5, 0xf9, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x0000586b vmovdqa $-611(%rip), %xmm0 /* LCPI27_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x00005873 vmovdqa $-603(%rip), %xmm1 /* LCPI27_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x0000587b vmovdqa $-595(%rip), %xmm2 /* LCPI27_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005883 .p2align 4, 0x90 + //0x00005890 LBB27_31 + 0xc5, 0xfa, 0x6f, 0x1b, //0x00005890 vmovdqu (%rbx), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x00005894 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xeb, 0xd9, //0x00005898 vpor %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x0000589c vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x000058a0 vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x000058a4 vpmovmskb %xmm3, %edi + 0x66, 0x85, 0xff, //0x000058a8 testw %di, %di + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x000058ab jne LBB27_42 + 0x48, 0x83, 0xc3, 0x10, //0x000058b1 addq $16, %rbx + 0x48, 0x83, 0xc0, 0xf0, //0x000058b5 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x000058b9 cmpq $15, %rax + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000058bd ja LBB27_31 + 0x48, 0x89, 0xc8, //0x000058c3 movq %rcx, %rax + 0x48, 0x89, 0xd3, //0x000058c6 movq %rdx, %rbx + //0x000058c9 LBB27_34 + 0x48, 0x85, 0xc0, //0x000058c9 testq %rax, %rax + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000058cc je LBB27_41 + 0x48, 0x8d, 0x0c, 0x03, //0x000058d2 leaq (%rbx,%rax), %rcx + //0x000058d6 LBB27_36 + 0x0f, 0xb6, 0x13, //0x000058d6 movzbl (%rbx), %edx + 0x80, 0xfa, 0x2c, //0x000058d9 cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000058dc je LBB27_41 + 0x80, 0xfa, 0x7d, //0x000058e2 cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000058e5 je LBB27_41 + 0x80, 0xfa, 0x5d, //0x000058eb cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000058ee je LBB27_41 + 0x48, 0xff, 0xc3, //0x000058f4 incq %rbx + 0x48, 0xff, 0xc8, //0x000058f7 decq %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x000058fa jne LBB27_36 + 0x48, 0x89, 0xcb, //0x00005900 movq %rcx, %rbx + //0x00005903 LBB27_41 + 0x4c, 0x29, 0xf3, //0x00005903 subq %r14, %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005906 jmp LBB27_43 + //0x0000590b LBB27_42 + 0x0f, 0xb7, 0xc7, //0x0000590b movzwl %di, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x0000590e bsfq %rax, %rax + 0x4c, 0x29, 0xf3, //0x00005912 subq %r14, %rbx + 0x48, 0x01, 0xc3, //0x00005915 addq %rax, %rbx + //0x00005918 LBB27_43 + 0x48, 0x89, 0x1e, //0x00005918 movq %rbx, (%rsi) + //0x0000591b LBB27_44 + 0x4c, 0x89, 0xd8, //0x0000591b movq %r11, %rax + //0x0000591e LBB27_45 + 0x48, 0x8d, 0x65, 0xd8, //0x0000591e leaq $-40(%rbp), %rsp + 0x5b, //0x00005922 popq %rbx + 0x41, 0x5c, //0x00005923 popq %r12 + 0x41, 0x5d, //0x00005925 popq %r13 + 0x41, 0x5e, //0x00005927 popq %r14 + 0x41, 0x5f, //0x00005929 popq %r15 + 0x5d, //0x0000592b popq %rbp + 0xc5, 0xf8, 0x77, //0x0000592c vzeroupper + 0xc3, //0x0000592f retq + //0x00005930 LBB27_46 + 0x49, 0x8d, 0x4b, 0x04, //0x00005930 leaq $4(%r11), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00005934 cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x00005938 ja LBB27_45 + 0xe9, 0xa6, 0x04, 0x00, 0x00, //0x0000593e jmp LBB27_83 + //0x00005943 LBB27_47 + 0x4c, 0x89, 0x1e, //0x00005943 movq %r11, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00005946 movq $-2, %rax + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x0000594d jmp LBB27_45 + //0x00005952 LBB27_48 + 0x4c, 0x8b, 0x47, 0x08, //0x00005952 movq $8(%rdi), %r8 + 0x4d, 0x89, 0xc7, //0x00005956 movq %r8, %r15 + 0x49, 0x29, 0xdf, //0x00005959 subq %rbx, %r15 + 0x49, 0x83, 0xff, 0x20, //0x0000595c cmpq $32, %r15 + 0x0f, 0x8c, 0xbb, 0x08, 0x00, 0x00, //0x00005960 jl LBB27_117 + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00005966 movl $4294967295, %r9d + 0x4f, 0x8d, 0x14, 0x1e, //0x0000596c leaq (%r14,%r11), %r10 + 0x4d, 0x29, 0xd8, //0x00005970 subq %r11, %r8 + 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x00005973 movl $31, %r13d + 0x45, 0x31, 0xff, //0x00005979 xorl %r15d, %r15d + 0xc5, 0xf9, 0x6f, 0x05, 0xbc, 0xfc, 0xff, 0xff, //0x0000597c vmovdqa $-836(%rip), %xmm0 /* LCPI27_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xc4, 0xfc, 0xff, 0xff, //0x00005984 vmovdqa $-828(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0x45, 0x31, 0xe4, //0x0000598c xorl %r12d, %r12d + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x0000598f jmp LBB27_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005994 .p2align 4, 0x90 + //0x000059a0 LBB27_52 + 0x45, 0x31, 0xe4, //0x000059a0 xorl %r12d, %r12d + 0x85, 0xc9, //0x000059a3 testl %ecx, %ecx + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x000059a5 jne LBB27_110 + //0x000059ab LBB27_53 + 0x49, 0x83, 0xc7, 0x20, //0x000059ab addq $32, %r15 + 0x4b, 0x8d, 0x4c, 0x28, 0xe0, //0x000059af leaq $-32(%r8,%r13), %rcx + 0x49, 0x83, 0xc5, 0xe0, //0x000059b4 addq $-32, %r13 + 0x48, 0x83, 0xf9, 0x3f, //0x000059b8 cmpq $63, %rcx + 0x0f, 0x8e, 0xdc, 0x07, 0x00, 0x00, //0x000059bc jle LBB27_54 + //0x000059c2 LBB27_50 + 0xc4, 0x81, 0x7a, 0x6f, 0x54, 0x3a, 0x01, //0x000059c2 vmovdqu $1(%r10,%r15), %xmm2 + 0xc4, 0x81, 0x7a, 0x6f, 0x5c, 0x3a, 0x11, //0x000059c9 vmovdqu $17(%r10,%r15), %xmm3 + 0xc5, 0xe9, 0x74, 0xe0, //0x000059d0 vpcmpeqb %xmm0, %xmm2, %xmm4 + 0xc5, 0xf9, 0xd7, 0xfc, //0x000059d4 vpmovmskb %xmm4, %edi + 0xc5, 0xe1, 0x74, 0xe0, //0x000059d8 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf9, 0xd7, 0xcc, //0x000059dc vpmovmskb %xmm4, %ecx + 0x48, 0xc1, 0xe1, 0x10, //0x000059e0 shlq $16, %rcx + 0x48, 0x09, 0xf9, //0x000059e4 orq %rdi, %rcx + 0xc5, 0xe9, 0x74, 0xd1, //0x000059e7 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000059eb vpmovmskb %xmm2, %ebx + 0xc5, 0xe1, 0x74, 0xd1, //0x000059ef vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000059f3 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe7, 0x10, //0x000059f7 shlq $16, %rdi + 0x48, 0x09, 0xdf, //0x000059fb orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x000059fe movq %rdi, %rbx + 0x4c, 0x09, 0xe3, //0x00005a01 orq %r12, %rbx + 0x0f, 0x84, 0x96, 0xff, 0xff, 0xff, //0x00005a04 je LBB27_52 + 0x44, 0x89, 0xe3, //0x00005a0a movl %r12d, %ebx + 0x44, 0x31, 0xcb, //0x00005a0d xorl %r9d, %ebx + 0x21, 0xdf, //0x00005a10 andl %ebx, %edi + 0x8d, 0x1c, 0x3f, //0x00005a12 leal (%rdi,%rdi), %ebx + 0x44, 0x09, 0xe3, //0x00005a15 orl %r12d, %ebx + 0x41, 0x8d, 0x91, 0xab, 0xaa, 0xaa, 0xaa, //0x00005a18 leal $-1431655765(%r9), %edx + 0x31, 0xda, //0x00005a1f xorl %ebx, %edx + 0x21, 0xfa, //0x00005a21 andl %edi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005a23 andl $-1431655766, %edx + 0x45, 0x31, 0xe4, //0x00005a29 xorl %r12d, %r12d + 0x01, 0xfa, //0x00005a2c addl %edi, %edx + 0x41, 0x0f, 0x92, 0xc4, //0x00005a2e setb %r12b + 0x01, 0xd2, //0x00005a32 addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00005a34 xorl $1431655765, %edx + 0x21, 0xda, //0x00005a3a andl %ebx, %edx + 0x44, 0x31, 0xca, //0x00005a3c xorl %r9d, %edx + 0x21, 0xd1, //0x00005a3f andl %edx, %ecx + 0x85, 0xc9, //0x00005a41 testl %ecx, %ecx + 0x0f, 0x84, 0x62, 0xff, 0xff, 0xff, //0x00005a43 je LBB27_53 + //0x00005a49 LBB27_110 + 0x48, 0x0f, 0xbc, 0xc1, //0x00005a49 bsfq %rcx, %rax + 0x49, 0x01, 0xc2, //0x00005a4d addq %rax, %r10 + 0x4d, 0x01, 0xfa, //0x00005a50 addq %r15, %r10 + 0x4d, 0x29, 0xf2, //0x00005a53 subq %r14, %r10 + 0x49, 0x83, 0xc2, 0x02, //0x00005a56 addq $2, %r10 + 0x4c, 0x89, 0x16, //0x00005a5a movq %r10, (%rsi) + 0xe9, 0xb9, 0xfe, 0xff, 0xff, //0x00005a5d jmp LBB27_44 + //0x00005a62 LBB27_57 + 0x48, 0x8b, 0x4f, 0x08, //0x00005a62 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00005a66 subq %rbx, %rcx + 0x49, 0x01, 0xde, //0x00005a69 addq %rbx, %r14 + 0x45, 0x31, 0xe4, //0x00005a6c xorl %r12d, %r12d + 0xc5, 0x79, 0x6f, 0x15, 0xc9, 0xfb, 0xff, 0xff, //0x00005a6f vmovdqa $-1079(%rip), %xmm10 /* LCPI27_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xd1, 0xfb, 0xff, 0xff, //0x00005a77 vmovdqa $-1071(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00005a7f vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xf9, 0x6f, 0x1d, 0xe4, 0xfb, 0xff, 0xff, //0x00005a84 vmovdqa $-1052(%rip), %xmm3 /* LCPI27_6+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0xec, 0xfb, 0xff, 0xff, //0x00005a8c vmovdqa $-1044(%rip), %xmm4 /* LCPI27_7+0(%rip) */ + 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00005a94 vxorps %xmm8, %xmm8, %xmm8 + 0x31, 0xdb, //0x00005a99 xorl %ebx, %ebx + 0x45, 0x31, 0xc0, //0x00005a9b xorl %r8d, %r8d + 0x45, 0x31, 0xff, //0x00005a9e xorl %r15d, %r15d + 0x48, 0x83, 0xf9, 0x40, //0x00005aa1 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00005aa5 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00005aaa movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x33, 0x01, 0x00, 0x00, //0x00005aaf jge LBB27_58 + //0x00005ab5 LBB27_67 + 0x48, 0x85, 0xc9, //0x00005ab5 testq %rcx, %rcx + 0x0f, 0x8e, 0x6b, 0x07, 0x00, 0x00, //0x00005ab8 jle LBB27_118 + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x00005abe vmovups %ymm8, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x00005ac4 vmovups %ymm8, $32(%rsp) + 0x44, 0x89, 0xf1, //0x00005aca movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00005acd andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00005ad3 cmpl $4033, %ecx + 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00005ad9 jb LBB27_58 + 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x00005adf cmpq $32, $8(%rsp) + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x00005ae5 jb LBB27_71 + 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00005aeb vmovups (%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x00005af0 vmovups %xmm0, $32(%rsp) + 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x00005af6 vmovdqu $16(%r14), %xmm0 + 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x00005afc vmovdqu %xmm0, $48(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x00005b02 addq $32, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00005b06 movq $8(%rsp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00005b0b leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00005b0f leaq $64(%rsp), %r8 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00005b14 jmp LBB27_72 + //0x00005b19 LBB27_71 + 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00005b19 leaq $32(%rsp), %r8 + 0x48, 0x8b, 0x54, 0x24, 0x08, //0x00005b1e movq $8(%rsp), %rdx + //0x00005b23 LBB27_72 + 0x48, 0x83, 0xfa, 0x10, //0x00005b23 cmpq $16, %rdx + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00005b27 jb LBB27_73 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00005b2d vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00005b32 vmovdqu %xmm0, (%r8) + 0x49, 0x83, 0xc6, 0x10, //0x00005b37 addq $16, %r14 + 0x49, 0x83, 0xc0, 0x10, //0x00005b3b addq $16, %r8 + 0x48, 0x83, 0xc2, 0xf0, //0x00005b3f addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x00005b43 cmpq $8, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005b47 jae LBB27_78 + //0x00005b4d LBB27_74 + 0x48, 0x83, 0xfa, 0x04, //0x00005b4d cmpq $4, %rdx + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00005b51 jl LBB27_75 + //0x00005b57 LBB27_79 + 0x41, 0x8b, 0x0e, //0x00005b57 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x00005b5a movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x00005b5d addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x00005b61 addq $4, %r8 + 0x48, 0x83, 0xc2, 0xfc, //0x00005b65 addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00005b69 cmpq $2, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005b6d jae LBB27_80 + //0x00005b73 LBB27_76 + 0x4c, 0x89, 0xf1, //0x00005b73 movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005b76 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x00005b7b testq %rdx, %rdx + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00005b7e jne LBB27_81 + 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00005b84 jmp LBB27_58 + //0x00005b89 LBB27_73 + 0x48, 0x83, 0xfa, 0x08, //0x00005b89 cmpq $8, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005b8d jb LBB27_74 + //0x00005b93 LBB27_78 + 0x49, 0x8b, 0x0e, //0x00005b93 movq (%r14), %rcx + 0x49, 0x89, 0x08, //0x00005b96 movq %rcx, (%r8) + 0x49, 0x83, 0xc6, 0x08, //0x00005b99 addq $8, %r14 + 0x49, 0x83, 0xc0, 0x08, //0x00005b9d addq $8, %r8 + 0x48, 0x83, 0xc2, 0xf8, //0x00005ba1 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00005ba5 cmpq $4, %rdx + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00005ba9 jge LBB27_79 + //0x00005baf LBB27_75 + 0x48, 0x83, 0xfa, 0x02, //0x00005baf cmpq $2, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005bb3 jb LBB27_76 + //0x00005bb9 LBB27_80 + 0x41, 0x0f, 0xb7, 0x0e, //0x00005bb9 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00005bbd movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x00005bc1 addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x00005bc5 addq $2, %r8 + 0x48, 0x83, 0xc2, 0xfe, //0x00005bc9 addq $-2, %rdx + 0x4c, 0x89, 0xf1, //0x00005bcd movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005bd0 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x00005bd5 testq %rdx, %rdx + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005bd8 je LBB27_58 + //0x00005bde LBB27_81 + 0x8a, 0x09, //0x00005bde movb (%rcx), %cl + 0x41, 0x88, 0x08, //0x00005be0 movb %cl, (%r8) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005be3 leaq $32(%rsp), %r14 + //0x00005be8 LBB27_58 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00005be8 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x00005bed vmovdqu $16(%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x00005bf3 vmovdqu $32(%r14), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x00005bf9 vmovdqu $48(%r14), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x00005bff vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x00005c03 vpmovmskb %xmm0, %r13d + 0xc5, 0xa9, 0x74, 0xc5, //0x00005c07 vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005c0b vpmovmskb %xmm0, %ecx + 0xc5, 0xa9, 0x74, 0xc7, //0x00005c0f vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005c13 vpmovmskb %xmm0, %edx + 0xc5, 0xa9, 0x74, 0xc6, //0x00005c17 vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005c1b vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x00005c1f shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00005c23 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x00005c27 shlq $16, %rcx + 0x49, 0x09, 0xcd, //0x00005c2b orq %rcx, %r13 + 0x49, 0x09, 0xd5, //0x00005c2e orq %rdx, %r13 + 0x4d, 0x09, 0xcd, //0x00005c31 orq %r9, %r13 + 0xc5, 0xe9, 0x74, 0xc1, //0x00005c34 vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005c38 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc1, //0x00005c3c vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005c40 vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc1, //0x00005c44 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005c48 vpmovmskb %xmm0, %r9d + 0xc5, 0xc9, 0x74, 0xc1, //0x00005c4c vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00005c50 vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x00005c54 shlq $48, %r10 + 0x49, 0xc1, 0xe1, 0x20, //0x00005c58 shlq $32, %r9 + 0x48, 0xc1, 0xe2, 0x10, //0x00005c5c shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x00005c60 orq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x00005c63 orq %r9, %rcx + 0x4c, 0x09, 0xd1, //0x00005c66 orq %r10, %rcx + 0x48, 0x89, 0xca, //0x00005c69 movq %rcx, %rdx + 0x48, 0x09, 0xda, //0x00005c6c orq %rbx, %rdx + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00005c6f je LBB27_60 + 0x48, 0x89, 0xda, //0x00005c75 movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00005c78 notq %rdx + 0x48, 0x21, 0xca, //0x00005c7b andq %rcx, %rdx + 0x4c, 0x8d, 0x0c, 0x12, //0x00005c7e leaq (%rdx,%rdx), %r9 + 0x49, 0x09, 0xd9, //0x00005c82 orq %rbx, %r9 + 0x4d, 0x89, 0xca, //0x00005c85 movq %r9, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005c88 movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x00005c92 xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x00005c95 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00005c98 andq %r10, %rcx + 0x31, 0xdb, //0x00005c9b xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x00005c9d addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x00005ca0 setb %bl + 0x48, 0x01, 0xc9, //0x00005ca3 addq %rcx, %rcx + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005ca6 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd1, //0x00005cb0 xorq %rdx, %rcx + 0x4c, 0x21, 0xc9, //0x00005cb3 andq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00005cb6 notq %rcx + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00005cb9 jmp LBB27_61 + //0x00005cbe LBB27_60 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005cbe movq $-1, %rcx + 0x31, 0xdb, //0x00005cc5 xorl %ebx, %ebx + //0x00005cc7 LBB27_61 + 0x48, 0x89, 0x5c, 0x24, 0x18, //0x00005cc7 movq %rbx, $24(%rsp) + 0x4c, 0x21, 0xe9, //0x00005ccc andq %r13, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00005ccf vmovq %rcx, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00005cd4 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x00005cda vmovq %xmm0, %r13 + 0x4d, 0x31, 0xe5, //0x00005cdf xorq %r12, %r13 + 0xc5, 0xe9, 0x74, 0xc3, //0x00005ce2 vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00005ce6 vpmovmskb %xmm0, %r10d + 0xc5, 0xd1, 0x74, 0xc3, //0x00005cea vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005cee vpmovmskb %xmm0, %ecx + 0xc5, 0xc1, 0x74, 0xc3, //0x00005cf2 vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005cf6 vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x00005cfa vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005cfe vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x00005d02 shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00005d06 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x00005d0a shlq $16, %rcx + 0x49, 0x09, 0xca, //0x00005d0e orq %rcx, %r10 + 0x49, 0x09, 0xd2, //0x00005d11 orq %rdx, %r10 + 0x4d, 0x09, 0xca, //0x00005d14 orq %r9, %r10 + 0x4d, 0x89, 0xe9, //0x00005d17 movq %r13, %r9 + 0x49, 0xf7, 0xd1, //0x00005d1a notq %r9 + 0x4d, 0x21, 0xca, //0x00005d1d andq %r9, %r10 + 0xc5, 0xe9, 0x74, 0xc4, //0x00005d20 vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005d24 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc4, //0x00005d28 vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005d2c vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc4, //0x00005d30 vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x00005d34 vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc4, //0x00005d38 vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xe0, //0x00005d3c vpmovmskb %xmm0, %r12d + 0x49, 0xc1, 0xe4, 0x30, //0x00005d40 shlq $48, %r12 + 0x49, 0xc1, 0xe0, 0x20, //0x00005d44 shlq $32, %r8 + 0x48, 0xc1, 0xe2, 0x10, //0x00005d48 shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x00005d4c orq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00005d4f orq %r8, %rcx + 0x4c, 0x09, 0xe1, //0x00005d52 orq %r12, %rcx + 0x4c, 0x21, 0xc9, //0x00005d55 andq %r9, %rcx + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00005d58 je LBB27_65 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x00005d5e movq $16(%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005d63 .p2align 4, 0x90 + //0x00005d70 LBB27_63 + 0x48, 0x8d, 0x59, 0xff, //0x00005d70 leaq $-1(%rcx), %rbx + 0x48, 0x89, 0xda, //0x00005d74 movq %rbx, %rdx + 0x4c, 0x21, 0xd2, //0x00005d77 andq %r10, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x00005d7a popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x00005d7f addq %r8, %rdx + 0x4c, 0x39, 0xfa, //0x00005d82 cmpq %r15, %rdx + 0x0f, 0x86, 0xe0, 0x03, 0x00, 0x00, //0x00005d85 jbe LBB27_109 + 0x49, 0xff, 0xc7, //0x00005d8b incq %r15 + 0x48, 0x21, 0xd9, //0x00005d8e andq %rbx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00005d91 jne LBB27_63 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00005d97 jmp LBB27_66 + //0x00005d9c LBB27_65 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x00005d9c movq $16(%rsp), %r8 + //0x00005da1 LBB27_66 + 0x49, 0xc1, 0xfd, 0x3f, //0x00005da1 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xca, //0x00005da5 popcntq %r10, %rcx + 0x49, 0x01, 0xc8, //0x00005daa addq %rcx, %r8 + 0x49, 0x83, 0xc6, 0x40, //0x00005dad addq $64, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00005db1 movq $8(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00005db6 addq $-64, %rcx + 0x4d, 0x89, 0xec, //0x00005dba movq %r13, %r12 + 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x00005dbd movq $24(%rsp), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00005dc2 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00005dc6 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00005dcb movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x12, 0xfe, 0xff, 0xff, //0x00005dd0 jge LBB27_58 + 0xe9, 0xda, 0xfc, 0xff, 0xff, //0x00005dd6 jmp LBB27_67 + //0x00005ddb LBB27_82 + 0x49, 0x8d, 0x4b, 0x05, //0x00005ddb leaq $5(%r11), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00005ddf cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0x35, 0xfb, 0xff, 0xff, //0x00005de3 ja LBB27_45 + //0x00005de9 LBB27_83 + 0x48, 0x89, 0x0e, //0x00005de9 movq %rcx, (%rsi) + 0xe9, 0x2a, 0xfb, 0xff, 0xff, //0x00005dec jmp LBB27_44 + //0x00005df1 LBB27_84 + 0x48, 0x8b, 0x4f, 0x08, //0x00005df1 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00005df5 subq %rbx, %rcx + 0x49, 0x01, 0xde, //0x00005df8 addq %rbx, %r14 + 0x45, 0x31, 0xe4, //0x00005dfb xorl %r12d, %r12d + 0xc5, 0x79, 0x6f, 0x15, 0x3a, 0xf8, 0xff, 0xff, //0x00005dfe vmovdqa $-1990(%rip), %xmm10 /* LCPI27_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x42, 0xf8, 0xff, 0xff, //0x00005e06 vmovdqa $-1982(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00005e0e vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xf9, 0x6f, 0x1d, 0x45, 0xf8, 0xff, 0xff, //0x00005e13 vmovdqa $-1979(%rip), %xmm3 /* LCPI27_5+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x0d, 0xf8, 0xff, 0xff, //0x00005e1b vmovdqa $-2035(%rip), %xmm4 /* LCPI27_2+0(%rip) */ + 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00005e23 vxorps %xmm8, %xmm8, %xmm8 + 0x31, 0xdb, //0x00005e28 xorl %ebx, %ebx + 0x45, 0x31, 0xc0, //0x00005e2a xorl %r8d, %r8d + 0x45, 0x31, 0xff, //0x00005e2d xorl %r15d, %r15d + 0x48, 0x83, 0xf9, 0x40, //0x00005e30 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00005e34 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00005e39 movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x33, 0x01, 0x00, 0x00, //0x00005e3e jge LBB27_85 + //0x00005e44 LBB27_94 + 0x48, 0x85, 0xc9, //0x00005e44 testq %rcx, %rcx + 0x0f, 0x8e, 0xdc, 0x03, 0x00, 0x00, //0x00005e47 jle LBB27_118 + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x00005e4d vmovups %ymm8, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x00005e53 vmovups %ymm8, $32(%rsp) + 0x44, 0x89, 0xf1, //0x00005e59 movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00005e5c andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00005e62 cmpl $4033, %ecx + 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00005e68 jb LBB27_85 + 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x00005e6e cmpq $32, $8(%rsp) + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x00005e74 jb LBB27_98 + 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00005e7a vmovups (%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x00005e7f vmovups %xmm0, $32(%rsp) + 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x00005e85 vmovdqu $16(%r14), %xmm0 + 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x00005e8b vmovdqu %xmm0, $48(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x00005e91 addq $32, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00005e95 movq $8(%rsp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00005e9a leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00005e9e leaq $64(%rsp), %r8 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00005ea3 jmp LBB27_99 + //0x00005ea8 LBB27_98 + 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00005ea8 leaq $32(%rsp), %r8 + 0x48, 0x8b, 0x54, 0x24, 0x08, //0x00005ead movq $8(%rsp), %rdx + //0x00005eb2 LBB27_99 + 0x48, 0x83, 0xfa, 0x10, //0x00005eb2 cmpq $16, %rdx + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00005eb6 jb LBB27_100 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00005ebc vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00005ec1 vmovdqu %xmm0, (%r8) + 0x49, 0x83, 0xc6, 0x10, //0x00005ec6 addq $16, %r14 + 0x49, 0x83, 0xc0, 0x10, //0x00005eca addq $16, %r8 + 0x48, 0x83, 0xc2, 0xf0, //0x00005ece addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x00005ed2 cmpq $8, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005ed6 jae LBB27_105 + //0x00005edc LBB27_101 + 0x48, 0x83, 0xfa, 0x04, //0x00005edc cmpq $4, %rdx + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00005ee0 jl LBB27_102 + //0x00005ee6 LBB27_106 + 0x41, 0x8b, 0x0e, //0x00005ee6 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x00005ee9 movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x00005eec addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x00005ef0 addq $4, %r8 + 0x48, 0x83, 0xc2, 0xfc, //0x00005ef4 addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00005ef8 cmpq $2, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005efc jae LBB27_107 + //0x00005f02 LBB27_103 + 0x4c, 0x89, 0xf1, //0x00005f02 movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005f05 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x00005f0a testq %rdx, %rdx + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00005f0d jne LBB27_108 + 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00005f13 jmp LBB27_85 + //0x00005f18 LBB27_100 + 0x48, 0x83, 0xfa, 0x08, //0x00005f18 cmpq $8, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005f1c jb LBB27_101 + //0x00005f22 LBB27_105 + 0x49, 0x8b, 0x0e, //0x00005f22 movq (%r14), %rcx + 0x49, 0x89, 0x08, //0x00005f25 movq %rcx, (%r8) + 0x49, 0x83, 0xc6, 0x08, //0x00005f28 addq $8, %r14 + 0x49, 0x83, 0xc0, 0x08, //0x00005f2c addq $8, %r8 + 0x48, 0x83, 0xc2, 0xf8, //0x00005f30 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00005f34 cmpq $4, %rdx + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00005f38 jge LBB27_106 + //0x00005f3e LBB27_102 + 0x48, 0x83, 0xfa, 0x02, //0x00005f3e cmpq $2, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005f42 jb LBB27_103 + //0x00005f48 LBB27_107 + 0x41, 0x0f, 0xb7, 0x0e, //0x00005f48 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00005f4c movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x00005f50 addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x00005f54 addq $2, %r8 + 0x48, 0x83, 0xc2, 0xfe, //0x00005f58 addq $-2, %rdx + 0x4c, 0x89, 0xf1, //0x00005f5c movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005f5f leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x00005f64 testq %rdx, %rdx + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005f67 je LBB27_85 + //0x00005f6d LBB27_108 + 0x8a, 0x09, //0x00005f6d movb (%rcx), %cl + 0x41, 0x88, 0x08, //0x00005f6f movb %cl, (%r8) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005f72 leaq $32(%rsp), %r14 + //0x00005f77 LBB27_85 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00005f77 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x00005f7c vmovdqu $16(%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x00005f82 vmovdqu $32(%r14), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x00005f88 vmovdqu $48(%r14), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x00005f8e vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x00005f92 vpmovmskb %xmm0, %r13d + 0xc5, 0xa9, 0x74, 0xc5, //0x00005f96 vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005f9a vpmovmskb %xmm0, %ecx + 0xc5, 0xa9, 0x74, 0xc7, //0x00005f9e vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005fa2 vpmovmskb %xmm0, %edx + 0xc5, 0xa9, 0x74, 0xc6, //0x00005fa6 vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005faa vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x00005fae shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00005fb2 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x00005fb6 shlq $16, %rcx + 0x49, 0x09, 0xcd, //0x00005fba orq %rcx, %r13 + 0x49, 0x09, 0xd5, //0x00005fbd orq %rdx, %r13 + 0x4d, 0x09, 0xcd, //0x00005fc0 orq %r9, %r13 + 0xc5, 0xe9, 0x74, 0xc1, //0x00005fc3 vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005fc7 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc1, //0x00005fcb vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005fcf vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc1, //0x00005fd3 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005fd7 vpmovmskb %xmm0, %r9d + 0xc5, 0xc9, 0x74, 0xc1, //0x00005fdb vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00005fdf vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x00005fe3 shlq $48, %r10 + 0x49, 0xc1, 0xe1, 0x20, //0x00005fe7 shlq $32, %r9 + 0x48, 0xc1, 0xe2, 0x10, //0x00005feb shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x00005fef orq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x00005ff2 orq %r9, %rcx + 0x4c, 0x09, 0xd1, //0x00005ff5 orq %r10, %rcx + 0x48, 0x89, 0xca, //0x00005ff8 movq %rcx, %rdx + 0x48, 0x09, 0xda, //0x00005ffb orq %rbx, %rdx + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00005ffe je LBB27_87 + 0x48, 0x89, 0xda, //0x00006004 movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00006007 notq %rdx + 0x48, 0x21, 0xca, //0x0000600a andq %rcx, %rdx + 0x4c, 0x8d, 0x0c, 0x12, //0x0000600d leaq (%rdx,%rdx), %r9 + 0x49, 0x09, 0xd9, //0x00006011 orq %rbx, %r9 + 0x4d, 0x89, 0xca, //0x00006014 movq %r9, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006017 movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x00006021 xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x00006024 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00006027 andq %r10, %rcx + 0x31, 0xdb, //0x0000602a xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x0000602c addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x0000602f setb %bl + 0x48, 0x01, 0xc9, //0x00006032 addq %rcx, %rcx + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006035 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd1, //0x0000603f xorq %rdx, %rcx + 0x4c, 0x21, 0xc9, //0x00006042 andq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00006045 notq %rcx + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00006048 jmp LBB27_88 + //0x0000604d LBB27_87 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000604d movq $-1, %rcx + 0x31, 0xdb, //0x00006054 xorl %ebx, %ebx + //0x00006056 LBB27_88 + 0x48, 0x89, 0x5c, 0x24, 0x18, //0x00006056 movq %rbx, $24(%rsp) + 0x4c, 0x21, 0xe9, //0x0000605b andq %r13, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x0000605e vmovq %rcx, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00006063 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x00006069 vmovq %xmm0, %r13 + 0x4d, 0x31, 0xe5, //0x0000606e xorq %r12, %r13 + 0xc5, 0xe9, 0x74, 0xc3, //0x00006071 vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00006075 vpmovmskb %xmm0, %r10d + 0xc5, 0xd1, 0x74, 0xc3, //0x00006079 vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x0000607d vpmovmskb %xmm0, %ecx + 0xc5, 0xc1, 0x74, 0xc3, //0x00006081 vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00006085 vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x00006089 vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x0000608d vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x00006091 shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00006095 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x00006099 shlq $16, %rcx + 0x49, 0x09, 0xca, //0x0000609d orq %rcx, %r10 + 0x49, 0x09, 0xd2, //0x000060a0 orq %rdx, %r10 + 0x4d, 0x09, 0xca, //0x000060a3 orq %r9, %r10 + 0x4d, 0x89, 0xe9, //0x000060a6 movq %r13, %r9 + 0x49, 0xf7, 0xd1, //0x000060a9 notq %r9 + 0x4d, 0x21, 0xca, //0x000060ac andq %r9, %r10 + 0xc5, 0xe9, 0x74, 0xc4, //0x000060af vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000060b3 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc4, //0x000060b7 vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x000060bb vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc4, //0x000060bf vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x000060c3 vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc4, //0x000060c7 vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xe0, //0x000060cb vpmovmskb %xmm0, %r12d + 0x49, 0xc1, 0xe4, 0x30, //0x000060cf shlq $48, %r12 + 0x49, 0xc1, 0xe0, 0x20, //0x000060d3 shlq $32, %r8 + 0x48, 0xc1, 0xe2, 0x10, //0x000060d7 shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x000060db orq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x000060de orq %r8, %rcx + 0x4c, 0x09, 0xe1, //0x000060e1 orq %r12, %rcx + 0x4c, 0x21, 0xc9, //0x000060e4 andq %r9, %rcx + 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x000060e7 je LBB27_92 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x000060ed movq $16(%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000060f2 .p2align 4, 0x90 + //0x00006100 LBB27_90 + 0x48, 0x8d, 0x59, 0xff, //0x00006100 leaq $-1(%rcx), %rbx + 0x48, 0x89, 0xda, //0x00006104 movq %rbx, %rdx + 0x4c, 0x21, 0xd2, //0x00006107 andq %r10, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x0000610a popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x0000610f addq %r8, %rdx + 0x4c, 0x39, 0xfa, //0x00006112 cmpq %r15, %rdx + 0x0f, 0x86, 0x50, 0x00, 0x00, 0x00, //0x00006115 jbe LBB27_109 + 0x49, 0xff, 0xc7, //0x0000611b incq %r15 + 0x48, 0x21, 0xd9, //0x0000611e andq %rbx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00006121 jne LBB27_90 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00006127 jmp LBB27_93 + //0x0000612c LBB27_92 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x0000612c movq $16(%rsp), %r8 + //0x00006131 LBB27_93 + 0x49, 0xc1, 0xfd, 0x3f, //0x00006131 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xca, //0x00006135 popcntq %r10, %rcx + 0x49, 0x01, 0xc8, //0x0000613a addq %rcx, %r8 + 0x49, 0x83, 0xc6, 0x40, //0x0000613d addq $64, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00006141 movq $8(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00006146 addq $-64, %rcx + 0x4d, 0x89, 0xec, //0x0000614a movq %r13, %r12 + 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x0000614d movq $24(%rsp), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00006152 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00006156 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x0000615b movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x11, 0xfe, 0xff, 0xff, //0x00006160 jge LBB27_85 + 0xe9, 0xd9, 0xfc, 0xff, 0xff, //0x00006166 jmp LBB27_94 + //0x0000616b LBB27_109 + 0x48, 0x8b, 0x47, 0x08, //0x0000616b movq $8(%rdi), %rax + 0x48, 0x0f, 0xbc, 0xc9, //0x0000616f bsfq %rcx, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x08, //0x00006173 subq $8(%rsp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00006178 leaq $1(%rcx,%rax), %rax + 0x48, 0x89, 0x06, //0x0000617d movq %rax, (%rsi) + 0x48, 0x8b, 0x4f, 0x08, //0x00006180 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc8, //0x00006184 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00006187 cmovaq %rcx, %rax + 0x48, 0x89, 0x06, //0x0000618b movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000618e movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xd8, //0x00006195 cmovaq %rax, %r11 + 0xe9, 0x7d, 0xf7, 0xff, 0xff, //0x00006199 jmp LBB27_44 + //0x0000619e LBB27_54 + 0x4d, 0x85, 0xe4, //0x0000619e testq %r12, %r12 + 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x000061a1 jne LBB27_119 + 0x4b, 0x8d, 0x5c, 0x17, 0x01, //0x000061a7 leaq $1(%r15,%r10), %rbx + 0x49, 0xf7, 0xd7, //0x000061ac notq %r15 + 0x4d, 0x01, 0xc7, //0x000061af addq %r8, %r15 + //0x000061b2 LBB27_56 + 0x4d, 0x85, 0xff, //0x000061b2 testq %r15, %r15 + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x000061b5 jg LBB27_113 + 0xe9, 0x5e, 0xf7, 0xff, 0xff, //0x000061bb jmp LBB27_45 + //0x000061c0 LBB27_111 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000061c0 movq $-2, %rcx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000061c7 movl $2, %eax + 0x48, 0x01, 0xc3, //0x000061cc addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000061cf movq $-1, %rax + 0x49, 0x01, 0xcf, //0x000061d6 addq %rcx, %r15 + 0x0f, 0x8e, 0x3f, 0xf7, 0xff, 0xff, //0x000061d9 jle LBB27_45 + //0x000061df LBB27_113 + 0x0f, 0xb6, 0x03, //0x000061df movzbl (%rbx), %eax + 0x3c, 0x5c, //0x000061e2 cmpb $92, %al + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x000061e4 je LBB27_111 + 0x3c, 0x22, //0x000061ea cmpb $34, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000061ec je LBB27_116 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000061f2 movq $-1, %rcx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000061f9 movl $1, %eax + 0x48, 0x01, 0xc3, //0x000061fe addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006201 movq $-1, %rax + 0x49, 0x01, 0xcf, //0x00006208 addq %rcx, %r15 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x0000620b jg LBB27_113 + 0xe9, 0x08, 0xf7, 0xff, 0xff, //0x00006211 jmp LBB27_45 + //0x00006216 LBB27_116 + 0x4c, 0x29, 0xf3, //0x00006216 subq %r14, %rbx + 0x48, 0xff, 0xc3, //0x00006219 incq %rbx + 0xe9, 0xf7, 0xf6, 0xff, 0xff, //0x0000621c jmp LBB27_43 + //0x00006221 LBB27_117 + 0x4c, 0x01, 0xf3, //0x00006221 addq %r14, %rbx + 0xe9, 0x89, 0xff, 0xff, 0xff, //0x00006224 jmp LBB27_56 + //0x00006229 LBB27_118 + 0x48, 0x8b, 0x4f, 0x08, //0x00006229 movq $8(%rdi), %rcx + 0x48, 0x89, 0x0e, //0x0000622d movq %rcx, (%rsi) + 0xe9, 0xe9, 0xf6, 0xff, 0xff, //0x00006230 jmp LBB27_45 + //0x00006235 LBB27_119 + 0x49, 0x8d, 0x48, 0xff, //0x00006235 leaq $-1(%r8), %rcx + 0x4c, 0x39, 0xf9, //0x00006239 cmpq %r15, %rcx + 0x0f, 0x84, 0xdc, 0xf6, 0xff, 0xff, //0x0000623c je LBB27_45 + 0x4b, 0x8d, 0x5c, 0x17, 0x02, //0x00006242 leaq $2(%r15,%r10), %rbx + 0x4d, 0x29, 0xf8, //0x00006247 subq %r15, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x0000624a addq $-2, %r8 + 0x4d, 0x89, 0xc7, //0x0000624e movq %r8, %r15 + 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x00006251 jmp LBB27_56 + 0x90, 0x90, //0x00006256 .p2align 2, 0x90 + // // .set L27_0_set_45, LBB27_45-LJTI27_0 + // // .set L27_0_set_47, LBB27_47-LJTI27_0 + // // .set L27_0_set_48, LBB27_48-LJTI27_0 + // // .set L27_0_set_29, LBB27_29-LJTI27_0 + // // .set L27_0_set_57, LBB27_57-LJTI27_0 + // // .set L27_0_set_82, LBB27_82-LJTI27_0 + // // .set L27_0_set_46, LBB27_46-LJTI27_0 + // // .set L27_0_set_84, LBB27_84-LJTI27_0 + //0x00006258 LJTI27_0 + 0xc6, 0xf6, 0xff, 0xff, //0x00006258 .long L27_0_set_45 + 0xeb, 0xf6, 0xff, 0xff, //0x0000625c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006260 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006264 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006268 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000626c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006270 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006274 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006278 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000627c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006280 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006284 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006288 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000628c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006290 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006294 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006298 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000629c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062a0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062a4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062a8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062ac .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062b0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062b4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062b8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062bc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062c0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062c4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062c8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062cc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062d0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062d4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062d8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062dc .long L27_0_set_47 + 0xfa, 0xf6, 0xff, 0xff, //0x000062e0 .long L27_0_set_48 + 0xeb, 0xf6, 0xff, 0xff, //0x000062e4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062e8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062ec .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062f0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062f4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062f8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062fc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006300 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006304 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006308 .long L27_0_set_47 + 0xe3, 0xf5, 0xff, 0xff, //0x0000630c .long L27_0_set_29 + 0xeb, 0xf6, 0xff, 0xff, //0x00006310 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006314 .long L27_0_set_47 + 0xe3, 0xf5, 0xff, 0xff, //0x00006318 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x0000631c .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006320 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006324 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006328 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x0000632c .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006330 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006334 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006338 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x0000633c .long L27_0_set_29 + 0xeb, 0xf6, 0xff, 0xff, //0x00006340 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006344 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006348 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000634c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006350 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006354 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006358 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000635c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006360 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006364 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006368 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000636c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006370 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006374 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006378 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000637c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006380 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006384 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006388 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000638c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006390 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006394 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006398 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000639c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063a0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063a4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063a8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063ac .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063b0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063b4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063b8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063bc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063c0 .long L27_0_set_47 + 0x0a, 0xf8, 0xff, 0xff, //0x000063c4 .long L27_0_set_57 + 0xeb, 0xf6, 0xff, 0xff, //0x000063c8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063cc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063d0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063d4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063d8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063dc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063e0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063e4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063e8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063ec .long L27_0_set_47 + 0x83, 0xfb, 0xff, 0xff, //0x000063f0 .long L27_0_set_82 + 0xeb, 0xf6, 0xff, 0xff, //0x000063f4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063f8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063fc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006400 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006404 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006408 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000640c .long L27_0_set_47 + 0xd8, 0xf6, 0xff, 0xff, //0x00006410 .long L27_0_set_46 + 0xeb, 0xf6, 0xff, 0xff, //0x00006414 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006418 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000641c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006420 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006424 .long L27_0_set_47 + 0xd8, 0xf6, 0xff, 0xff, //0x00006428 .long L27_0_set_46 + 0xeb, 0xf6, 0xff, 0xff, //0x0000642c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006430 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006434 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006438 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000643c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006440 .long L27_0_set_47 + 0x99, 0xfb, 0xff, 0xff, //0x00006444 .long L27_0_set_84 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006448 .p2align 4, 0x90 + //0x00006450 _get_by_path + 0x55, //0x00006450 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006451 movq %rsp, %rbp + 0x41, 0x57, //0x00006454 pushq %r15 + 0x41, 0x56, //0x00006456 pushq %r14 + 0x41, 0x55, //0x00006458 pushq %r13 + 0x41, 0x54, //0x0000645a pushq %r12 + 0x53, //0x0000645c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000645d subq $56, %rsp + 0x49, 0x89, 0xf7, //0x00006461 movq %rsi, %r15 + 0x49, 0x89, 0xfb, //0x00006464 movq %rdi, %r11 + 0x4c, 0x8b, 0x52, 0x08, //0x00006467 movq $8(%rdx), %r10 + 0x4d, 0x85, 0xd2, //0x0000646b testq %r10, %r10 + 0x0f, 0x84, 0x4c, 0x0f, 0x00, 0x00, //0x0000646e je LBB28_244 + 0x48, 0x8b, 0x02, //0x00006474 movq (%rdx), %rax + 0x49, 0xc1, 0xe2, 0x04, //0x00006477 shlq $4, %r10 + 0x48, 0x89, 0x45, 0xb8, //0x0000647b movq %rax, $-72(%rbp) + 0x49, 0x01, 0xc2, //0x0000647f addq %rax, %r10 + 0x4d, 0x8b, 0x0b, //0x00006482 movq (%r11), %r9 + 0x49, 0x8b, 0x17, //0x00006485 movq (%r15), %rdx + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006488 movabsq $4294977024, %r12 + 0x4c, 0x89, 0x5d, 0xc0, //0x00006492 movq %r11, $-64(%rbp) + 0x48, 0x89, 0x4d, 0xa0, //0x00006496 movq %rcx, $-96(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x0000649a movq %r10, $-88(%rbp) + //0x0000649e LBB28_2 + 0x4d, 0x8b, 0x43, 0x08, //0x0000649e movq $8(%r11), %r8 + 0x48, 0x89, 0xd7, //0x000064a2 movq %rdx, %rdi + 0x4c, 0x29, 0xc7, //0x000064a5 subq %r8, %rdi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000064a8 jae LBB28_7 + 0x41, 0x8a, 0x04, 0x11, //0x000064ae movb (%r9,%rdx), %al + 0x3c, 0x0d, //0x000064b2 cmpb $13, %al + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000064b4 je LBB28_7 + 0x3c, 0x20, //0x000064ba cmpb $32, %al + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000064bc je LBB28_7 + 0x04, 0xf7, //0x000064c2 addb $-9, %al + 0x3c, 0x01, //0x000064c4 cmpb $1, %al + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000064c6 jbe LBB28_7 + 0x48, 0x89, 0xd6, //0x000064cc movq %rdx, %rsi + 0xe9, 0xfe, 0x00, 0x00, 0x00, //0x000064cf jmp LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000064d4 .p2align 4, 0x90 + //0x000064e0 LBB28_7 + 0x48, 0x8d, 0x72, 0x01, //0x000064e0 leaq $1(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x000064e4 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000064e7 jae LBB28_11 + 0x41, 0x8a, 0x04, 0x31, //0x000064ed movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x000064f1 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000064f3 je LBB28_11 + 0x3c, 0x20, //0x000064f9 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000064fb je LBB28_11 + 0x04, 0xf7, //0x00006501 addb $-9, %al + 0x3c, 0x01, //0x00006503 cmpb $1, %al + 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00006505 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000650b .p2align 4, 0x90 + //0x00006510 LBB28_11 + 0x48, 0x8d, 0x72, 0x02, //0x00006510 leaq $2(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x00006514 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006517 jae LBB28_15 + 0x41, 0x8a, 0x04, 0x31, //0x0000651d movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x00006521 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006523 je LBB28_15 + 0x3c, 0x20, //0x00006529 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000652b je LBB28_15 + 0x04, 0xf7, //0x00006531 addb $-9, %al + 0x3c, 0x01, //0x00006533 cmpb $1, %al + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006535 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000653b .p2align 4, 0x90 + //0x00006540 LBB28_15 + 0x48, 0x8d, 0x72, 0x03, //0x00006540 leaq $3(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x00006544 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006547 jae LBB28_19 + 0x41, 0x8a, 0x04, 0x31, //0x0000654d movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x00006551 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006553 je LBB28_19 + 0x3c, 0x20, //0x00006559 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000655b je LBB28_19 + 0x04, 0xf7, //0x00006561 addb $-9, %al + 0x3c, 0x01, //0x00006563 cmpb $1, %al + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006565 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000656b .p2align 4, 0x90 + //0x00006570 LBB28_19 + 0x48, 0x8d, 0x42, 0x04, //0x00006570 leaq $4(%rdx), %rax + 0x49, 0x39, 0xc0, //0x00006574 cmpq %rax, %r8 + 0x0f, 0x86, 0x83, 0x00, 0x00, 0x00, //0x00006577 jbe LBB28_25 + 0x49, 0x39, 0xc0, //0x0000657d cmpq %rax, %r8 + 0x0f, 0x84, 0x94, 0x00, 0x00, 0x00, //0x00006580 je LBB28_26 + 0x4b, 0x8d, 0x04, 0x01, //0x00006586 leaq (%r9,%r8), %rax + 0x48, 0x83, 0xc7, 0x04, //0x0000658a addq $4, %rdi + 0x49, 0x8d, 0x74, 0x11, 0x05, //0x0000658e leaq $5(%r9,%rdx), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006593 .p2align 4, 0x90 + //0x000065a0 LBB28_22 + 0x0f, 0xbe, 0x5e, 0xff, //0x000065a0 movsbl $-1(%rsi), %ebx + 0x83, 0xfb, 0x20, //0x000065a4 cmpl $32, %ebx + 0x0f, 0x87, 0xfd, 0x0b, 0x00, 0x00, //0x000065a7 ja LBB28_29 + 0x49, 0x0f, 0xa3, 0xdc, //0x000065ad btq %rbx, %r12 + 0x0f, 0x83, 0xf3, 0x0b, 0x00, 0x00, //0x000065b1 jae LBB28_29 + 0x48, 0xff, 0xc6, //0x000065b7 incq %rsi + 0x48, 0xff, 0xc7, //0x000065ba incq %rdi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000065bd jne LBB28_22 + 0x4c, 0x29, 0xc8, //0x000065c3 subq %r9, %rax + 0x48, 0x89, 0xc6, //0x000065c6 movq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x000065c9 cmpq %r8, %rsi + 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x000065cc jae LBB28_30 + //0x000065d2 LBB28_28 + 0x48, 0x8d, 0x46, 0x01, //0x000065d2 leaq $1(%rsi), %rax + 0x49, 0x89, 0x07, //0x000065d6 movq %rax, (%r15) + 0x41, 0x8a, 0x34, 0x31, //0x000065d9 movb (%r9,%rsi), %sil + 0x48, 0x8b, 0x55, 0xb8, //0x000065dd movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x000065e1 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x000065e4 testq %rdx, %rdx + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x000065e7 jne LBB28_31 + 0xe9, 0x29, 0x0e, 0x00, 0x00, //0x000065ed jmp LBB28_251 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000065f2 .p2align 4, 0x90 + //0x00006600 LBB28_25 + 0x49, 0x89, 0x07, //0x00006600 movq %rax, (%r15) + 0x31, 0xf6, //0x00006603 xorl %esi, %esi + 0x48, 0x8b, 0x55, 0xb8, //0x00006605 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00006609 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x0000660c testq %rdx, %rdx + 0x0f, 0x85, 0x3b, 0x00, 0x00, 0x00, //0x0000660f jne LBB28_31 + 0xe9, 0x01, 0x0e, 0x00, 0x00, //0x00006615 jmp LBB28_251 + //0x0000661a LBB28_26 + 0x4c, 0x01, 0xc8, //0x0000661a addq %r9, %rax + 0x4c, 0x29, 0xc8, //0x0000661d subq %r9, %rax + 0x48, 0x89, 0xc6, //0x00006620 movq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x00006623 cmpq %r8, %rsi + 0x0f, 0x82, 0xa6, 0xff, 0xff, 0xff, //0x00006626 jb LBB28_28 + //0x0000662c LBB28_30 + 0x31, 0xf6, //0x0000662c xorl %esi, %esi + 0x48, 0x89, 0xd0, //0x0000662e movq %rdx, %rax + 0x48, 0x8b, 0x55, 0xb8, //0x00006631 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00006635 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x00006638 testq %rdx, %rdx + 0x0f, 0x84, 0xda, 0x0d, 0x00, 0x00, //0x0000663b je LBB28_251 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006641 .p2align 4, 0x90 + //0x00006650 LBB28_31 + 0x8a, 0x52, 0x17, //0x00006650 movb $23(%rdx), %dl + 0x80, 0xe2, 0x1f, //0x00006653 andb $31, %dl + 0x80, 0xfa, 0x02, //0x00006656 cmpb $2, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00006659 je LBB28_184 + 0x80, 0xfa, 0x18, //0x0000665f cmpb $24, %dl + 0x0f, 0x85, 0xb3, 0x0d, 0x00, 0x00, //0x00006662 jne LBB28_251 + 0x40, 0x80, 0xfe, 0x7b, //0x00006668 cmpb $123, %sil + 0x4c, 0x89, 0x7d, 0xd0, //0x0000666c movq %r15, $-48(%rbp) + 0x0f, 0x84, 0x78, 0x01, 0x00, 0x00, //0x00006670 je LBB28_34 + 0xe9, 0x71, 0x0d, 0x00, 0x00, //0x00006676 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000667b .p2align 4, 0x90 + //0x00006680 LBB28_184 + 0x40, 0x80, 0xfe, 0x5b, //0x00006680 cmpb $91, %sil + 0x0f, 0x85, 0x62, 0x0d, 0x00, 0x00, //0x00006684 jne LBB28_247 + 0x48, 0x8b, 0x55, 0xb8, //0x0000668a movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x52, 0x08, //0x0000668e movq $8(%rdx), %rdx + 0x4c, 0x8b, 0x32, //0x00006692 movq (%rdx), %r14 + 0x4d, 0x85, 0xf6, //0x00006695 testq %r14, %r14 + 0x0f, 0x88, 0x7d, 0x0d, 0x00, 0x00, //0x00006698 js LBB28_251 + 0x4d, 0x8b, 0x43, 0x08, //0x0000669e movq $8(%r11), %r8 + 0x48, 0x89, 0xc6, //0x000066a2 movq %rax, %rsi + 0x4c, 0x29, 0xc6, //0x000066a5 subq %r8, %rsi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000066a8 jae LBB28_191 + 0x41, 0x8a, 0x14, 0x01, //0x000066ae movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x000066b2 cmpb $13, %dl + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000066b5 je LBB28_191 + 0x80, 0xfa, 0x20, //0x000066bb cmpb $32, %dl + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000066be je LBB28_191 + 0x80, 0xc2, 0xf7, //0x000066c4 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000066c7 cmpb $1, %dl + 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x000066ca jbe LBB28_191 + 0x48, 0x89, 0xc7, //0x000066d0 movq %rax, %rdi + 0xe9, 0x12, 0x0b, 0x00, 0x00, //0x000066d3 jmp LBB28_213 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000066d8 .p2align 4, 0x90 + //0x000066e0 LBB28_191 + 0x48, 0x8d, 0x78, 0x01, //0x000066e0 leaq $1(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x000066e4 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000066e7 jae LBB28_195 + 0x41, 0x8a, 0x14, 0x39, //0x000066ed movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000066f1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000066f4 je LBB28_195 + 0x80, 0xfa, 0x20, //0x000066fa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000066fd je LBB28_195 + 0x80, 0xc2, 0xf7, //0x00006703 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006706 cmpb $1, %dl + 0x0f, 0x87, 0xdb, 0x0a, 0x00, 0x00, //0x00006709 ja LBB28_213 + 0x90, //0x0000670f .p2align 4, 0x90 + //0x00006710 LBB28_195 + 0x48, 0x8d, 0x78, 0x02, //0x00006710 leaq $2(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x00006714 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006717 jae LBB28_199 + 0x41, 0x8a, 0x14, 0x39, //0x0000671d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00006721 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006724 je LBB28_199 + 0x80, 0xfa, 0x20, //0x0000672a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000672d je LBB28_199 + 0x80, 0xc2, 0xf7, //0x00006733 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006736 cmpb $1, %dl + 0x0f, 0x87, 0xab, 0x0a, 0x00, 0x00, //0x00006739 ja LBB28_213 + 0x90, //0x0000673f .p2align 4, 0x90 + //0x00006740 LBB28_199 + 0x48, 0x8d, 0x78, 0x03, //0x00006740 leaq $3(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x00006744 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006747 jae LBB28_203 + 0x41, 0x8a, 0x14, 0x39, //0x0000674d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00006751 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006754 je LBB28_203 + 0x80, 0xfa, 0x20, //0x0000675a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000675d je LBB28_203 + 0x80, 0xc2, 0xf7, //0x00006763 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006766 cmpb $1, %dl + 0x0f, 0x87, 0x7b, 0x0a, 0x00, 0x00, //0x00006769 ja LBB28_213 + 0x90, //0x0000676f .p2align 4, 0x90 + //0x00006770 LBB28_203 + 0x48, 0x8d, 0x50, 0x04, //0x00006770 leaq $4(%rax), %rdx + 0x49, 0x39, 0xd0, //0x00006774 cmpq %rdx, %r8 + 0x0f, 0x86, 0x22, 0x0a, 0x00, 0x00, //0x00006777 jbe LBB28_209 + 0x49, 0x39, 0xd0, //0x0000677d cmpq %rdx, %r8 + 0x0f, 0x84, 0x3b, 0x0a, 0x00, 0x00, //0x00006780 je LBB28_210 + 0x4b, 0x8d, 0x14, 0x01, //0x00006786 leaq (%r9,%r8), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000678a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000678e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006793 .p2align 4, 0x90 + //0x000067a0 LBB28_206 + 0x0f, 0xbe, 0x4f, 0xff, //0x000067a0 movsbl $-1(%rdi), %ecx + 0x83, 0xf9, 0x20, //0x000067a4 cmpl $32, %ecx + 0x0f, 0x87, 0x2b, 0x0a, 0x00, 0x00, //0x000067a7 ja LBB28_212 + 0x49, 0x0f, 0xa3, 0xcc, //0x000067ad btq %rcx, %r12 + 0x0f, 0x83, 0x21, 0x0a, 0x00, 0x00, //0x000067b1 jae LBB28_212 + 0x48, 0xff, 0xc7, //0x000067b7 incq %rdi + 0x48, 0xff, 0xc6, //0x000067ba incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000067bd jne LBB28_206 + 0xe9, 0xfc, 0x09, 0x00, 0x00, //0x000067c3 jmp LBB28_211 + //0x000067c8 LBB28_180 + 0x4c, 0x89, 0xca, //0x000067c8 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x000067cb notq %rdx + 0x48, 0x01, 0xd7, //0x000067ce addq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x000067d1 cmpq %rcx, %rdi + 0x0f, 0x83, 0x12, 0x0c, 0x00, 0x00, //0x000067d4 jae LBB28_247 + //0x000067da LBB28_181 + 0x48, 0x8d, 0x47, 0x01, //0x000067da leaq $1(%rdi), %rax + 0x49, 0x89, 0x07, //0x000067de movq %rax, (%r15) + 0x41, 0x8a, 0x0c, 0x39, //0x000067e1 movb (%r9,%rdi), %cl + 0x80, 0xf9, 0x2c, //0x000067e5 cmpb $44, %cl + 0x0f, 0x85, 0x42, 0x0c, 0x00, 0x00, //0x000067e8 jne LBB28_253 + //0x000067ee LBB28_34 + 0x49, 0x8b, 0x4b, 0x08, //0x000067ee movq $8(%r11), %rcx + 0x48, 0x89, 0xc6, //0x000067f2 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x000067f5 subq %rcx, %rsi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000067f8 jae LBB28_39 + 0x41, 0x8a, 0x14, 0x01, //0x000067fe movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00006802 cmpb $13, %dl + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00006805 je LBB28_39 + 0x80, 0xfa, 0x20, //0x0000680b cmpb $32, %dl + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000680e je LBB28_39 + 0x80, 0xc2, 0xf7, //0x00006814 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006817 cmpb $1, %dl + 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x0000681a jbe LBB28_39 + 0x49, 0x89, 0xc5, //0x00006820 movq %rax, %r13 + 0xe9, 0x2a, 0x01, 0x00, 0x00, //0x00006823 jmp LBB28_60 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006828 .p2align 4, 0x90 + //0x00006830 LBB28_39 + 0x4c, 0x8d, 0x68, 0x01, //0x00006830 leaq $1(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006834 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006837 jae LBB28_43 + 0x43, 0x8a, 0x14, 0x29, //0x0000683d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006841 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006844 je LBB28_43 + 0x80, 0xfa, 0x20, //0x0000684a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000684d je LBB28_43 + 0x80, 0xc2, 0xf7, //0x00006853 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006856 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00006859 ja LBB28_60 + 0x90, //0x0000685f .p2align 4, 0x90 + //0x00006860 LBB28_43 + 0x4c, 0x8d, 0x68, 0x02, //0x00006860 leaq $2(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006864 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006867 jae LBB28_47 + 0x43, 0x8a, 0x14, 0x29, //0x0000686d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006871 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006874 je LBB28_47 + 0x80, 0xfa, 0x20, //0x0000687a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000687d je LBB28_47 + 0x80, 0xc2, 0xf7, //0x00006883 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006886 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00006889 ja LBB28_60 + 0x90, //0x0000688f .p2align 4, 0x90 + //0x00006890 LBB28_47 + 0x4c, 0x8d, 0x68, 0x03, //0x00006890 leaq $3(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006894 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006897 jae LBB28_51 + 0x43, 0x8a, 0x14, 0x29, //0x0000689d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x000068a1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000068a4 je LBB28_51 + 0x80, 0xfa, 0x20, //0x000068aa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000068ad je LBB28_51 + 0x80, 0xc2, 0xf7, //0x000068b3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000068b6 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000068b9 ja LBB28_60 + 0x90, //0x000068bf .p2align 4, 0x90 + //0x000068c0 LBB28_51 + 0x48, 0x8d, 0x50, 0x04, //0x000068c0 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x000068c4 cmpq %rdx, %rcx + 0x0f, 0x86, 0x19, 0x0b, 0x00, 0x00, //0x000068c7 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x000068cd cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000068d0 je LBB28_57 + 0x49, 0x8d, 0x14, 0x09, //0x000068d6 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x000068da addq $4, %rsi + 0x4d, 0x8d, 0x6c, 0x01, 0x05, //0x000068de leaq $5(%r9,%rax), %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000068e3 .p2align 4, 0x90 + //0x000068f0 LBB28_54 + 0x41, 0x0f, 0xbe, 0x7d, 0xff, //0x000068f0 movsbl $-1(%r13), %edi + 0x83, 0xff, 0x20, //0x000068f5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000068f8 ja LBB28_59 + 0x49, 0x0f, 0xa3, 0xfc, //0x000068fe btq %rdi, %r12 + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006902 jae LBB28_59 + 0x49, 0xff, 0xc5, //0x00006908 incq %r13 + 0x48, 0xff, 0xc6, //0x0000690b incq %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000690e jne LBB28_54 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006914 jmp LBB28_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006919 .p2align 4, 0x90 + //0x00006920 LBB28_57 + 0x4c, 0x01, 0xca, //0x00006920 addq %r9, %rdx + //0x00006923 LBB28_58 + 0x4c, 0x29, 0xca, //0x00006923 subq %r9, %rdx + 0x49, 0x89, 0xd5, //0x00006926 movq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00006929 cmpq %rcx, %r13 + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000692c jb LBB28_60 + 0xe9, 0xb5, 0x0a, 0x00, 0x00, //0x00006932 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006937 .p2align 4, 0x90 + //0x00006940 LBB28_59 + 0x4c, 0x89, 0xca, //0x00006940 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x00006943 notq %rdx + 0x49, 0x01, 0xd5, //0x00006946 addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00006949 cmpq %rcx, %r13 + 0x0f, 0x83, 0x9a, 0x0a, 0x00, 0x00, //0x0000694c jae LBB28_247 + //0x00006952 LBB28_60 + 0x49, 0x8d, 0x5d, 0x01, //0x00006952 leaq $1(%r13), %rbx + 0x49, 0x89, 0x1f, //0x00006956 movq %rbx, (%r15) + 0x43, 0x8a, 0x0c, 0x29, //0x00006959 movb (%r9,%r13), %cl + 0x80, 0xf9, 0x22, //0x0000695d cmpb $34, %cl + 0x0f, 0x85, 0xc7, 0x0a, 0x00, 0x00, //0x00006960 jne LBB28_252 + 0x48, 0x8b, 0x45, 0xb8, //0x00006966 movq $-72(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x0000696a movq $8(%rax), %rax + 0x4c, 0x8b, 0x30, //0x0000696e movq (%rax), %r14 + 0x4c, 0x8b, 0x78, 0x08, //0x00006971 movq $8(%rax), %r15 + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006975 movq $-1, $-80(%rbp) + 0x4c, 0x89, 0xdf, //0x0000697d movq %r11, %rdi + 0x48, 0x89, 0xde, //0x00006980 movq %rbx, %rsi + 0x48, 0x8d, 0x55, 0xb0, //0x00006983 leaq $-80(%rbp), %rdx + 0xe8, 0x94, 0x25, 0x00, 0x00, //0x00006987 callq _advance_string_default + 0x48, 0x85, 0xc0, //0x0000698c testq %rax, %rax + 0x0f, 0x88, 0xb6, 0x0a, 0x00, 0x00, //0x0000698f js LBB28_255 + 0x48, 0x8b, 0x4d, 0xd0, //0x00006995 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00006999 movq %rax, (%rcx) + 0x48, 0x8b, 0x4d, 0xb0, //0x0000699c movq $-80(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x000069a0 cmpq $-1, %rcx + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x000069a4 je LBB28_64 + 0x48, 0x39, 0xc1, //0x000069aa cmpq %rax, %rcx + 0x0f, 0x8e, 0x61, 0x01, 0x00, 0x00, //0x000069ad jle LBB28_87 + //0x000069b3 LBB28_64 + 0x48, 0x89, 0xc2, //0x000069b3 movq %rax, %rdx + 0x4c, 0x29, 0xea, //0x000069b6 subq %r13, %rdx + 0x48, 0x83, 0xc2, 0xfe, //0x000069b9 addq $-2, %rdx + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000069bd movl $1, %r10d + 0x48, 0x89, 0xd1, //0x000069c3 movq %rdx, %rcx + 0x4c, 0x09, 0xf9, //0x000069c6 orq %r15, %rcx + 0x4c, 0x8b, 0x5d, 0xc0, //0x000069c9 movq $-64(%rbp), %r11 + 0x0f, 0x84, 0x00, 0x01, 0x00, 0x00, //0x000069cd je LBB28_82 + 0x4c, 0x39, 0xfa, //0x000069d3 cmpq %r15, %rdx + 0x0f, 0x85, 0xf4, 0x00, 0x00, 0x00, //0x000069d6 jne LBB28_81 + 0x49, 0x03, 0x1b, //0x000069dc addq (%r11), %rbx + 0x49, 0x83, 0xff, 0x10, //0x000069df cmpq $16, %r15 + 0x0f, 0x82, 0x5b, 0x00, 0x00, 0x00, //0x000069e3 jb LBB28_71 + 0x49, 0x8d, 0x57, 0xf0, //0x000069e9 leaq $-16(%r15), %rdx + 0x48, 0x89, 0xd1, //0x000069ed movq %rdx, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x000069f0 andq $-16, %rcx + 0x4c, 0x8d, 0x44, 0x0b, 0x10, //0x000069f4 leaq $16(%rbx,%rcx), %r8 + 0x49, 0x8d, 0x7c, 0x0e, 0x10, //0x000069f9 leaq $16(%r14,%rcx), %rdi + 0x83, 0xe2, 0x0f, //0x000069fe andl $15, %edx + 0x31, 0xf6, //0x00006a01 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a03 .p2align 4, 0x90 + //0x00006a10 LBB28_68 + 0xc5, 0xfa, 0x6f, 0x04, 0x33, //0x00006a10 vmovdqu (%rbx,%rsi), %xmm0 + 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x36, //0x00006a15 vpcmpeqb (%r14,%rsi), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00006a1b vpmovmskb %xmm0, %ecx + 0x66, 0x83, 0xf9, 0xff, //0x00006a1f cmpw $-1, %cx + 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x00006a23 jne LBB28_81 + 0x49, 0x83, 0xc7, 0xf0, //0x00006a29 addq $-16, %r15 + 0x48, 0x83, 0xc6, 0x10, //0x00006a2d addq $16, %rsi + 0x49, 0x83, 0xff, 0x0f, //0x00006a31 cmpq $15, %r15 + 0x0f, 0x87, 0xd5, 0xff, 0xff, 0xff, //0x00006a35 ja LBB28_68 + 0x49, 0x89, 0xd7, //0x00006a3b movq %rdx, %r15 + 0x49, 0x89, 0xfe, //0x00006a3e movq %rdi, %r14 + 0x4c, 0x89, 0xc3, //0x00006a41 movq %r8, %rbx + //0x00006a44 LBB28_71 + 0x44, 0x89, 0xf1, //0x00006a44 movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006a47 andl $4095, %ecx + 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006a4d cmpl $4080, %ecx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00006a53 ja LBB28_76 + 0x89, 0xd9, //0x00006a59 movl %ebx, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006a5b andl $4095, %ecx + 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006a61 cmpl $4081, %ecx + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00006a67 jae LBB28_76 + 0xc5, 0xfa, 0x6f, 0x03, //0x00006a6d vmovdqu (%rbx), %xmm0 + 0xc4, 0xc1, 0x79, 0x74, 0x06, //0x00006a71 vpcmpeqb (%r14), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00006a76 vpmovmskb %xmm0, %edx + 0x66, 0x83, 0xfa, 0xff, //0x00006a7a cmpw $-1, %dx + 0x0f, 0x84, 0x4f, 0x00, 0x00, 0x00, //0x00006a7e je LBB28_82 + 0xf7, 0xd2, //0x00006a84 notl %edx + 0x0f, 0xb7, 0xca, //0x00006a86 movzwl %dx, %ecx + 0x48, 0x0f, 0xbc, 0xc9, //0x00006a89 bsfq %rcx, %rcx + 0x45, 0x31, 0xd2, //0x00006a8d xorl %r10d, %r10d + 0x4c, 0x39, 0xf9, //0x00006a90 cmpq %r15, %rcx + 0x41, 0x0f, 0x93, 0xc2, //0x00006a93 setae %r10b + 0xe9, 0x37, 0x00, 0x00, 0x00, //0x00006a97 jmp LBB28_82 + //0x00006a9c LBB28_76 + 0x4d, 0x85, 0xff, //0x00006a9c testq %r15, %r15 + 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x00006a9f je LBB28_82 + 0x31, 0xd2, //0x00006aa5 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006aa7 .p2align 4, 0x90 + //0x00006ab0 LBB28_78 + 0x0f, 0xb6, 0x0c, 0x13, //0x00006ab0 movzbl (%rbx,%rdx), %ecx + 0x41, 0x3a, 0x0c, 0x16, //0x00006ab4 cmpb (%r14,%rdx), %cl + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00006ab8 jne LBB28_81 + 0x48, 0xff, 0xc2, //0x00006abe incq %rdx + 0x49, 0x39, 0xd7, //0x00006ac1 cmpq %rdx, %r15 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00006ac4 jne LBB28_78 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00006aca jmp LBB28_82 + 0x90, //0x00006acf .p2align 4, 0x90 + //0x00006ad0 LBB28_81 + 0x45, 0x31, 0xd2, //0x00006ad0 xorl %r10d, %r10d + //0x00006ad3 LBB28_82 + 0x4d, 0x8b, 0x0b, //0x00006ad3 movq (%r11), %r9 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ad6 movq $-48(%rbp), %r15 + 0x49, 0x8b, 0x73, 0x08, //0x00006ada movq $8(%r11), %rsi + 0x48, 0x89, 0xc7, //0x00006ade movq %rax, %rdi + 0x48, 0x29, 0xf7, //0x00006ae1 subq %rsi, %rdi + 0x0f, 0x83, 0x16, 0x04, 0x00, 0x00, //0x00006ae4 jae LBB28_132 + //0x00006aea LBB28_83 + 0x41, 0x8a, 0x14, 0x01, //0x00006aea movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00006aee cmpb $13, %dl + 0x0f, 0x84, 0x09, 0x04, 0x00, 0x00, //0x00006af1 je LBB28_132 + 0x80, 0xfa, 0x20, //0x00006af7 cmpb $32, %dl + 0x0f, 0x84, 0x00, 0x04, 0x00, 0x00, //0x00006afa je LBB28_132 + 0x80, 0xc2, 0xf7, //0x00006b00 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006b03 cmpb $1, %dl + 0x0f, 0x86, 0xf4, 0x03, 0x00, 0x00, //0x00006b06 jbe LBB28_132 + 0x48, 0x89, 0xc3, //0x00006b0c movq %rax, %rbx + 0xe9, 0x0e, 0x05, 0x00, 0x00, //0x00006b0f jmp LBB28_153 + //0x00006b14 LBB28_87 + 0x48, 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00006b14 movq $0, $-56(%rbp) + 0x48, 0x8b, 0x4d, 0xc0, //0x00006b1c movq $-64(%rbp), %rcx + 0x4c, 0x8b, 0x09, //0x00006b20 movq (%rcx), %r9 + 0x4c, 0x01, 0xcb, //0x00006b23 addq %r9, %rbx + 0x4d, 0x8d, 0x44, 0x01, 0xff, //0x00006b26 leaq $-1(%r9,%rax), %r8 + 0x4f, 0x8d, 0x1c, 0x3e, //0x00006b2b leaq (%r14,%r15), %r11 + 0x4d, 0x85, 0xff, //0x00006b2f testq %r15, %r15 + 0x0f, 0x8e, 0xa0, 0x03, 0x00, 0x00, //0x00006b32 jle LBB28_129 + 0x49, 0x39, 0xd8, //0x00006b38 cmpq %rbx, %r8 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006b3b movq $-48(%rbp), %r15 + 0x0f, 0x86, 0x97, 0x03, 0x00, 0x00, //0x00006b3f jbe LBB28_130 + //0x00006b45 LBB28_89 + 0x8a, 0x0b, //0x00006b45 movb (%rbx), %cl + 0x80, 0xf9, 0x5c, //0x00006b47 cmpb $92, %cl + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00006b4a jne LBB28_94 + 0x4c, 0x89, 0xc2, //0x00006b50 movq %r8, %rdx + 0x48, 0x29, 0xda, //0x00006b53 subq %rbx, %rdx + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006b56 movq $-1, %rcx + 0x48, 0x85, 0xd2, //0x00006b5d testq %rdx, %rdx + 0x0f, 0x8e, 0x22, 0x09, 0x00, 0x00, //0x00006b60 jle LBB28_259 + 0x0f, 0xb6, 0x73, 0x01, //0x00006b66 movzbl $1(%rbx), %esi + 0x48, 0x8d, 0x3d, 0x0f, 0x9c, 0x00, 0x00, //0x00006b6a leaq $39951(%rip), %rdi /* __UnquoteTab+0(%rip) */ + 0x44, 0x8a, 0x3c, 0x3e, //0x00006b71 movb (%rsi,%rdi), %r15b + 0x41, 0x80, 0xff, 0xff, //0x00006b75 cmpb $-1, %r15b + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00006b79 je LBB28_96 + 0x45, 0x84, 0xff, //0x00006b7f testb %r15b, %r15b + 0x0f, 0x84, 0xee, 0x08, 0x00, 0x00, //0x00006b82 je LBB28_257 + 0x44, 0x88, 0x7d, 0xc8, //0x00006b88 movb %r15b, $-56(%rbp) + 0x48, 0x83, 0xc3, 0x02, //0x00006b8c addq $2, %rbx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006b90 movl $1, %edx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006b95 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006b9a cmpq %r11, %r14 + 0x0f, 0x82, 0x30, 0x01, 0x00, 0x00, //0x00006b9d jb LBB28_107 + 0xe9, 0x08, 0x03, 0x00, 0x00, //0x00006ba3 jmp LBB28_113 + //0x00006ba8 LBB28_94 + 0x41, 0x3a, 0x0e, //0x00006ba8 cmpb (%r14), %cl + 0x0f, 0x85, 0xe6, 0x05, 0x00, 0x00, //0x00006bab jne LBB28_183 + 0x48, 0xff, 0xc3, //0x00006bb1 incq %rbx + 0x49, 0xff, 0xc6, //0x00006bb4 incq %r14 + 0xe9, 0x05, 0x03, 0x00, 0x00, //0x00006bb7 jmp LBB28_115 + //0x00006bbc LBB28_96 + 0x48, 0x83, 0xfa, 0x03, //0x00006bbc cmpq $3, %rdx + 0x0f, 0x8e, 0xbf, 0x08, 0x00, 0x00, //0x00006bc0 jle LBB28_258 + 0x8b, 0x4b, 0x02, //0x00006bc6 movl $2(%rbx), %ecx + 0x89, 0xce, //0x00006bc9 movl %ecx, %esi + 0xf7, 0xd6, //0x00006bcb notl %esi + 0x8d, 0xb9, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006bcd leal $-808464432(%rcx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00006bd3 andl $-2139062144, %esi + 0x85, 0xfe, //0x00006bd9 testl %edi, %esi + 0x0f, 0x85, 0x85, 0x08, 0x00, 0x00, //0x00006bdb jne LBB28_256 + 0x8d, 0xb9, 0x19, 0x19, 0x19, 0x19, //0x00006be1 leal $421075225(%rcx), %edi + 0x09, 0xcf, //0x00006be7 orl %ecx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00006be9 testl $-2139062144, %edi + 0x0f, 0x85, 0x71, 0x08, 0x00, 0x00, //0x00006bef jne LBB28_256 + 0x89, 0xcf, //0x00006bf5 movl %ecx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006bf7 andl $2139062143, %edi + 0x41, 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006bfd movl $-1061109568, %r10d + 0x41, 0x29, 0xfa, //0x00006c03 subl %edi, %r10d + 0x44, 0x8d, 0xbf, 0x46, 0x46, 0x46, 0x46, //0x00006c06 leal $1179010630(%rdi), %r15d + 0x41, 0x21, 0xf2, //0x00006c0d andl %esi, %r10d + 0x45, 0x85, 0xfa, //0x00006c10 testl %r15d, %r10d + 0x0f, 0x85, 0x4d, 0x08, 0x00, 0x00, //0x00006c13 jne LBB28_256 + 0x41, 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006c19 movl $-522133280, %r10d + 0x41, 0x29, 0xfa, //0x00006c1f subl %edi, %r10d + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00006c22 addl $960051513, %edi + 0x44, 0x21, 0xd6, //0x00006c28 andl %r10d, %esi + 0x85, 0xfe, //0x00006c2b testl %edi, %esi + 0x0f, 0x85, 0x33, 0x08, 0x00, 0x00, //0x00006c2d jne LBB28_256 + 0x0f, 0xc9, //0x00006c33 bswapl %ecx + 0x89, 0xce, //0x00006c35 movl %ecx, %esi + 0xc1, 0xee, 0x04, //0x00006c37 shrl $4, %esi + 0xf7, 0xd6, //0x00006c3a notl %esi + 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x00006c3c andl $16843009, %esi + 0x8d, 0x34, 0xf6, //0x00006c42 leal (%rsi,%rsi,8), %esi + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006c45 andl $252645135, %ecx + 0x01, 0xf1, //0x00006c4b addl %esi, %ecx + 0x41, 0x89, 0xcf, //0x00006c4d movl %ecx, %r15d + 0x41, 0xc1, 0xef, 0x04, //0x00006c50 shrl $4, %r15d + 0x41, 0x09, 0xcf, //0x00006c54 orl %ecx, %r15d + 0x44, 0x89, 0xfe, //0x00006c57 movl %r15d, %esi + 0xc1, 0xee, 0x08, //0x00006c5a shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00006c5d andl $65280, %esi + 0x41, 0x0f, 0xb6, 0xcf, //0x00006c63 movzbl %r15b, %ecx + 0x09, 0xf1, //0x00006c67 orl %esi, %ecx + 0x4c, 0x8d, 0x53, 0x06, //0x00006c69 leaq $6(%rbx), %r10 + 0x83, 0xf9, 0x7f, //0x00006c6d cmpl $127, %ecx + 0x0f, 0x86, 0xb2, 0x00, 0x00, 0x00, //0x00006c70 jbe LBB28_117 + 0x81, 0xf9, 0xff, 0x07, 0x00, 0x00, //0x00006c76 cmpl $2047, %ecx + 0x0f, 0x86, 0xc5, 0x00, 0x00, 0x00, //0x00006c7c jbe LBB28_118 + 0x44, 0x89, 0xff, //0x00006c82 movl %r15d, %edi + 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x00006c85 andl $16252928, %edi + 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x00006c8b cmpl $14155776, %edi + 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x00006c91 je LBB28_119 + 0xc1, 0xee, 0x0c, //0x00006c97 shrl $12, %esi + 0x40, 0x80, 0xce, 0xe0, //0x00006c9a orb $-32, %sil + 0x40, 0x88, 0x75, 0xc8, //0x00006c9e movb %sil, $-56(%rbp) + 0xc1, 0xe9, 0x06, //0x00006ca2 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00006ca5 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00006ca8 orb $-128, %cl + 0x88, 0x4d, 0xc9, //0x00006cab movb %cl, $-55(%rbp) + 0x41, 0x80, 0xe7, 0x3f, //0x00006cae andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00006cb2 orb $-128, %r15b + 0x44, 0x88, 0x7d, 0xca, //0x00006cb6 movb %r15b, $-54(%rbp) + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00006cba movl $3, %edx + 0x41, 0x89, 0xf7, //0x00006cbf movl %esi, %r15d + 0x4c, 0x89, 0xd3, //0x00006cc2 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006cc5 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006cca cmpq %r11, %r14 + 0x0f, 0x83, 0xdd, 0x01, 0x00, 0x00, //0x00006ccd jae LBB28_113 + //0x00006cd3 LBB28_107 + 0x48, 0x8d, 0x4d, 0xc8, //0x00006cd3 leaq $-56(%rbp), %rcx + 0x49, 0x39, 0xca, //0x00006cd7 cmpq %rcx, %r10 + 0x0f, 0x86, 0xd0, 0x01, 0x00, 0x00, //0x00006cda jbe LBB28_113 + 0x45, 0x38, 0x3e, //0x00006ce0 cmpb %r15b, (%r14) + 0x0f, 0x85, 0xc7, 0x01, 0x00, 0x00, //0x00006ce3 jne LBB28_113 + 0x49, 0xff, 0xc6, //0x00006ce9 incq %r14 + 0x48, 0x8d, 0x75, 0xc9, //0x00006cec leaq $-55(%rbp), %rsi + 0x4c, 0x89, 0xf7, //0x00006cf0 movq %r14, %rdi + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006cf3 movq $-48(%rbp), %r15 + //0x00006cf7 LBB28_110 + 0x49, 0x89, 0xfe, //0x00006cf7 movq %rdi, %r14 + 0x48, 0x89, 0xf2, //0x00006cfa movq %rsi, %rdx + 0x4c, 0x39, 0xd6, //0x00006cfd cmpq %r10, %rsi + 0x0f, 0x83, 0xb2, 0x01, 0x00, 0x00, //0x00006d00 jae LBB28_114 + 0x4d, 0x39, 0xde, //0x00006d06 cmpq %r11, %r14 + 0x0f, 0x83, 0xa9, 0x01, 0x00, 0x00, //0x00006d09 jae LBB28_114 + 0x41, 0x0f, 0xb6, 0x0e, //0x00006d0f movzbl (%r14), %ecx + 0x49, 0x8d, 0x7e, 0x01, //0x00006d13 leaq $1(%r14), %rdi + 0x48, 0x8d, 0x72, 0x01, //0x00006d17 leaq $1(%rdx), %rsi + 0x3a, 0x0a, //0x00006d1b cmpb (%rdx), %cl + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00006d1d je LBB28_110 + 0xe9, 0x90, 0x01, 0x00, 0x00, //0x00006d23 jmp LBB28_114 + //0x00006d28 LBB28_117 + 0x44, 0x88, 0x7d, 0xc8, //0x00006d28 movb %r15b, $-56(%rbp) + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006d2c movl $1, %edx + 0x4c, 0x89, 0xd3, //0x00006d31 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006d34 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006d39 cmpq %r11, %r14 + 0x0f, 0x82, 0x91, 0xff, 0xff, 0xff, //0x00006d3c jb LBB28_107 + 0xe9, 0x69, 0x01, 0x00, 0x00, //0x00006d42 jmp LBB28_113 + //0x00006d47 LBB28_118 + 0xc1, 0xe9, 0x06, //0x00006d47 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00006d4a orb $-64, %cl + 0x88, 0x4d, 0xc8, //0x00006d4d movb %cl, $-56(%rbp) + 0x41, 0x80, 0xe7, 0x3f, //0x00006d50 andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00006d54 orb $-128, %r15b + 0x44, 0x88, 0x7d, 0xc9, //0x00006d58 movb %r15b, $-55(%rbp) + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00006d5c movl $2, %edx + 0x41, 0x89, 0xcf, //0x00006d61 movl %ecx, %r15d + 0x4c, 0x89, 0xd3, //0x00006d64 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006d67 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006d6c cmpq %r11, %r14 + 0x0f, 0x82, 0x5e, 0xff, 0xff, 0xff, //0x00006d6f jb LBB28_107 + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x00006d75 jmp LBB28_113 + //0x00006d7a LBB28_119 + 0x48, 0x83, 0xfa, 0x06, //0x00006d7a cmpq $6, %rdx + 0x0f, 0x8c, 0x1f, 0x07, 0x00, 0x00, //0x00006d7e jl LBB28_261 + 0x81, 0xf9, 0xff, 0xdb, 0x00, 0x00, //0x00006d84 cmpl $56319, %ecx + 0x0f, 0x87, 0x13, 0x07, 0x00, 0x00, //0x00006d8a ja LBB28_261 + 0x41, 0x80, 0x3a, 0x5c, //0x00006d90 cmpb $92, (%r10) + 0x0f, 0x85, 0x09, 0x07, 0x00, 0x00, //0x00006d94 jne LBB28_261 + 0x80, 0x7b, 0x07, 0x75, //0x00006d9a cmpb $117, $7(%rbx) + 0x0f, 0x85, 0xff, 0x06, 0x00, 0x00, //0x00006d9e jne LBB28_261 + 0x4c, 0x8d, 0x53, 0x08, //0x00006da4 leaq $8(%rbx), %r10 + 0x8b, 0x53, 0x08, //0x00006da8 movl $8(%rbx), %edx + 0x89, 0xd7, //0x00006dab movl %edx, %edi + 0xf7, 0xd7, //0x00006dad notl %edi + 0x8d, 0xb2, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006daf leal $-808464432(%rdx), %esi + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00006db5 andl $-2139062144, %edi + 0x85, 0xf7, //0x00006dbb testl %esi, %edi + 0x0f, 0x85, 0xd4, 0x06, 0x00, 0x00, //0x00006dbd jne LBB28_260 + 0x8d, 0xb2, 0x19, 0x19, 0x19, 0x19, //0x00006dc3 leal $421075225(%rdx), %esi + 0x09, 0xd6, //0x00006dc9 orl %edx, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00006dcb testl $-2139062144, %esi + 0x0f, 0x85, 0xc0, 0x06, 0x00, 0x00, //0x00006dd1 jne LBB28_260 + 0x89, 0xd6, //0x00006dd7 movl %edx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006dd9 andl $2139062143, %esi + 0x41, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006ddf movl $-1061109568, %r15d + 0x41, 0x29, 0xf7, //0x00006de5 subl %esi, %r15d + 0x44, 0x8d, 0xae, 0x46, 0x46, 0x46, 0x46, //0x00006de8 leal $1179010630(%rsi), %r13d + 0x41, 0x21, 0xff, //0x00006def andl %edi, %r15d + 0x45, 0x85, 0xef, //0x00006df2 testl %r13d, %r15d + 0x0f, 0x85, 0x9c, 0x06, 0x00, 0x00, //0x00006df5 jne LBB28_260 + 0x41, 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006dfb movl $-522133280, %r15d + 0x41, 0x29, 0xf7, //0x00006e01 subl %esi, %r15d + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00006e04 addl $960051513, %esi + 0x44, 0x21, 0xff, //0x00006e0a andl %r15d, %edi + 0x85, 0xf7, //0x00006e0d testl %esi, %edi + 0x0f, 0x85, 0x82, 0x06, 0x00, 0x00, //0x00006e0f jne LBB28_260 + 0x0f, 0xca, //0x00006e15 bswapl %edx + 0x89, 0xd6, //0x00006e17 movl %edx, %esi + 0xc1, 0xee, 0x04, //0x00006e19 shrl $4, %esi + 0xf7, 0xd6, //0x00006e1c notl %esi + 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x00006e1e andl $16843009, %esi + 0x8d, 0x34, 0xf6, //0x00006e24 leal (%rsi,%rsi,8), %esi + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006e27 andl $252645135, %edx + 0x01, 0xf2, //0x00006e2d addl %esi, %edx + 0x89, 0xd6, //0x00006e2f movl %edx, %esi + 0xc1, 0xee, 0x04, //0x00006e31 shrl $4, %esi + 0x09, 0xd6, //0x00006e34 orl %edx, %esi + 0x89, 0xf2, //0x00006e36 movl %esi, %edx + 0x81, 0xe2, 0x00, 0x00, 0xfc, 0x00, //0x00006e38 andl $16515072, %edx + 0x81, 0xfa, 0x00, 0x00, 0xdc, 0x00, //0x00006e3e cmpl $14417920, %edx + 0x0f, 0x85, 0x59, 0x06, 0x00, 0x00, //0x00006e44 jne LBB28_261 + 0x89, 0xf2, //0x00006e4a movl %esi, %edx + 0xc1, 0xea, 0x08, //0x00006e4c shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x00006e4f andl $65280, %edx + 0x40, 0x0f, 0xb6, 0xf6, //0x00006e55 movzbl %sil, %esi + 0x09, 0xd6, //0x00006e59 orl %edx, %esi + 0xc1, 0xe1, 0x0a, //0x00006e5b shll $10, %ecx + 0x8d, 0x8c, 0x31, 0x00, 0x24, 0xa0, 0xfc, //0x00006e5e leal $-56613888(%rcx,%rsi), %ecx + 0x41, 0x89, 0xcf, //0x00006e65 movl %ecx, %r15d + 0x41, 0xc1, 0xef, 0x12, //0x00006e68 shrl $18, %r15d + 0x41, 0x80, 0xcf, 0xf0, //0x00006e6c orb $-16, %r15b + 0x44, 0x88, 0x7d, 0xc8, //0x00006e70 movb %r15b, $-56(%rbp) + 0x89, 0xca, //0x00006e74 movl %ecx, %edx + 0xc1, 0xea, 0x0c, //0x00006e76 shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x00006e79 andb $63, %dl + 0x80, 0xca, 0x80, //0x00006e7c orb $-128, %dl + 0x88, 0x55, 0xc9, //0x00006e7f movb %dl, $-55(%rbp) + 0x89, 0xca, //0x00006e82 movl %ecx, %edx + 0xc1, 0xea, 0x06, //0x00006e84 shrl $6, %edx + 0x80, 0xe2, 0x3f, //0x00006e87 andb $63, %dl + 0x80, 0xca, 0x80, //0x00006e8a orb $-128, %dl + 0x88, 0x55, 0xca, //0x00006e8d movb %dl, $-54(%rbp) + 0x80, 0xe1, 0x3f, //0x00006e90 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00006e93 orb $-128, %cl + 0x88, 0x4d, 0xcb, //0x00006e96 movb %cl, $-53(%rbp) + 0x48, 0x83, 0xc3, 0x0c, //0x00006e99 addq $12, %rbx + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00006e9d movl $4, %edx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006ea2 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006ea7 cmpq %r11, %r14 + 0x0f, 0x82, 0x23, 0xfe, 0xff, 0xff, //0x00006eaa jb LBB28_107 + //0x00006eb0 LBB28_113 + 0x48, 0x8d, 0x55, 0xc8, //0x00006eb0 leaq $-56(%rbp), %rdx + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006eb4 movq $-48(%rbp), %r15 + //0x00006eb8 LBB28_114 + 0x4c, 0x39, 0xd2, //0x00006eb8 cmpq %r10, %rdx + 0x0f, 0x85, 0xd6, 0x02, 0x00, 0x00, //0x00006ebb jne LBB28_183 + //0x00006ec1 LBB28_115 + 0x49, 0x39, 0xd8, //0x00006ec1 cmpq %rbx, %r8 + 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x00006ec4 jbe LBB28_130 + 0x4d, 0x39, 0xde, //0x00006eca cmpq %r11, %r14 + 0x0f, 0x82, 0x72, 0xfc, 0xff, 0xff, //0x00006ecd jb LBB28_89 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00006ed3 jmp LBB28_130 + //0x00006ed8 LBB28_129 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ed8 movq $-48(%rbp), %r15 + //0x00006edc LBB28_130 + 0x49, 0x31, 0xd8, //0x00006edc xorq %rbx, %r8 + 0x4d, 0x31, 0xde, //0x00006edf xorq %r11, %r14 + 0x45, 0x31, 0xd2, //0x00006ee2 xorl %r10d, %r10d + 0x4d, 0x09, 0xc6, //0x00006ee5 orq %r8, %r14 + 0x41, 0x0f, 0x94, 0xc2, //0x00006ee8 sete %r10b + //0x00006eec LBB28_131 + 0x4c, 0x8b, 0x5d, 0xc0, //0x00006eec movq $-64(%rbp), %r11 + 0x49, 0x8b, 0x73, 0x08, //0x00006ef0 movq $8(%r11), %rsi + 0x48, 0x89, 0xc7, //0x00006ef4 movq %rax, %rdi + 0x48, 0x29, 0xf7, //0x00006ef7 subq %rsi, %rdi + 0x0f, 0x82, 0xea, 0xfb, 0xff, 0xff, //0x00006efa jb LBB28_83 + //0x00006f00 .p2align 4, 0x90 + //0x00006f00 LBB28_132 + 0x48, 0x8d, 0x58, 0x01, //0x00006f00 leaq $1(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00006f04 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f07 jae LBB28_136 + 0x41, 0x8a, 0x14, 0x19, //0x00006f0d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00006f11 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006f14 je LBB28_136 + 0x80, 0xfa, 0x20, //0x00006f1a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006f1d je LBB28_136 + 0x80, 0xc2, 0xf7, //0x00006f23 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006f26 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00006f29 ja LBB28_153 + 0x90, //0x00006f2f .p2align 4, 0x90 + //0x00006f30 LBB28_136 + 0x48, 0x8d, 0x58, 0x02, //0x00006f30 leaq $2(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00006f34 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f37 jae LBB28_140 + 0x41, 0x8a, 0x14, 0x19, //0x00006f3d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00006f41 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006f44 je LBB28_140 + 0x80, 0xfa, 0x20, //0x00006f4a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006f4d je LBB28_140 + 0x80, 0xc2, 0xf7, //0x00006f53 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006f56 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00006f59 ja LBB28_153 + 0x90, //0x00006f5f .p2align 4, 0x90 + //0x00006f60 LBB28_140 + 0x48, 0x8d, 0x58, 0x03, //0x00006f60 leaq $3(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00006f64 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f67 jae LBB28_144 + 0x41, 0x8a, 0x14, 0x19, //0x00006f6d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00006f71 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006f74 je LBB28_144 + 0x80, 0xfa, 0x20, //0x00006f7a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006f7d je LBB28_144 + 0x80, 0xc2, 0xf7, //0x00006f83 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006f86 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00006f89 ja LBB28_153 + 0x90, //0x00006f8f .p2align 4, 0x90 + //0x00006f90 LBB28_144 + 0x48, 0x8d, 0x50, 0x04, //0x00006f90 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd6, //0x00006f94 cmpq %rdx, %rsi + 0x0f, 0x86, 0x49, 0x04, 0x00, 0x00, //0x00006f97 jbe LBB28_245 + 0x48, 0x39, 0xd6, //0x00006f9d cmpq %rdx, %rsi + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00006fa0 je LBB28_150 + 0x49, 0x8d, 0x14, 0x31, //0x00006fa6 leaq (%r9,%rsi), %rdx + 0x48, 0x83, 0xc7, 0x04, //0x00006faa addq $4, %rdi + 0x49, 0x8d, 0x5c, 0x01, 0x05, //0x00006fae leaq $5(%r9,%rax), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006fb3 .p2align 4, 0x90 + //0x00006fc0 LBB28_147 + 0x0f, 0xbe, 0x4b, 0xff, //0x00006fc0 movsbl $-1(%rbx), %ecx + 0x83, 0xf9, 0x20, //0x00006fc4 cmpl $32, %ecx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00006fc7 ja LBB28_152 + 0x49, 0x0f, 0xa3, 0xcc, //0x00006fcd btq %rcx, %r12 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00006fd1 jae LBB28_152 + 0x48, 0xff, 0xc3, //0x00006fd7 incq %rbx + 0x48, 0xff, 0xc7, //0x00006fda incq %rdi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00006fdd jne LBB28_147 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00006fe3 jmp LBB28_151 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006fe8 .p2align 4, 0x90 + //0x00006ff0 LBB28_150 + 0x4c, 0x01, 0xca, //0x00006ff0 addq %r9, %rdx + //0x00006ff3 LBB28_151 + 0x4c, 0x29, 0xca, //0x00006ff3 subq %r9, %rdx + 0x48, 0x89, 0xd3, //0x00006ff6 movq %rdx, %rbx + 0x48, 0x39, 0xf3, //0x00006ff9 cmpq %rsi, %rbx + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00006ffc jb LBB28_153 + 0xe9, 0xe5, 0x03, 0x00, 0x00, //0x00007002 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007007 .p2align 4, 0x90 + //0x00007010 LBB28_152 + 0x4c, 0x89, 0xc9, //0x00007010 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00007013 notq %rcx + 0x48, 0x01, 0xcb, //0x00007016 addq %rcx, %rbx + 0x48, 0x39, 0xf3, //0x00007019 cmpq %rsi, %rbx + 0x0f, 0x83, 0xca, 0x03, 0x00, 0x00, //0x0000701c jae LBB28_247 + //0x00007022 LBB28_153 + 0x48, 0x8d, 0x53, 0x01, //0x00007022 leaq $1(%rbx), %rdx + 0x49, 0x89, 0x17, //0x00007026 movq %rdx, (%r15) + 0x41, 0x80, 0x3c, 0x19, 0x3a, //0x00007029 cmpb $58, (%r9,%rbx) + 0x0f, 0x85, 0xb5, 0x03, 0x00, 0x00, //0x0000702e jne LBB28_246 + 0x4d, 0x85, 0xd2, //0x00007034 testq %r10, %r10 + 0x0f, 0x85, 0x66, 0x03, 0x00, 0x00, //0x00007037 jne LBB28_243 + 0x4c, 0x89, 0xdf, //0x0000703d movq %r11, %rdi + 0x4c, 0x89, 0xfe, //0x00007040 movq %r15, %rsi + 0xe8, 0x48, 0xe6, 0xff, 0xff, //0x00007043 callq _skip_one_fast + 0x4c, 0x8b, 0x5d, 0xc0, //0x00007048 movq $-64(%rbp), %r11 + 0x4d, 0x8b, 0x0b, //0x0000704c movq (%r11), %r9 + 0x49, 0x8b, 0x4b, 0x08, //0x0000704f movq $8(%r11), %rcx + 0x49, 0x8b, 0x07, //0x00007053 movq (%r15), %rax + 0x48, 0x89, 0xc6, //0x00007056 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x00007059 subq %rcx, %rsi + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x0000705c jae LBB28_160 + 0x41, 0x8a, 0x14, 0x01, //0x00007062 movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00007066 cmpb $13, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00007069 je LBB28_160 + 0x80, 0xfa, 0x20, //0x0000706f cmpb $32, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007072 je LBB28_160 + 0x80, 0xc2, 0xf7, //0x00007078 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000707b cmpb $1, %dl + 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x0000707e jbe LBB28_160 + 0x48, 0x89, 0xc7, //0x00007084 movq %rax, %rdi + 0xe9, 0x4e, 0xf7, 0xff, 0xff, //0x00007087 jmp LBB28_181 + 0x90, 0x90, 0x90, 0x90, //0x0000708c .p2align 4, 0x90 + //0x00007090 LBB28_160 + 0x48, 0x8d, 0x78, 0x01, //0x00007090 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007094 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007097 jae LBB28_164 + 0x41, 0x8a, 0x14, 0x39, //0x0000709d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000070a1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000070a4 je LBB28_164 + 0x80, 0xfa, 0x20, //0x000070aa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000070ad je LBB28_164 + 0x80, 0xc2, 0xf7, //0x000070b3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000070b6 cmpb $1, %dl + 0x0f, 0x87, 0x1b, 0xf7, 0xff, 0xff, //0x000070b9 ja LBB28_181 + 0x90, //0x000070bf .p2align 4, 0x90 + //0x000070c0 LBB28_164 + 0x48, 0x8d, 0x78, 0x02, //0x000070c0 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000070c4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000070c7 jae LBB28_168 + 0x41, 0x8a, 0x14, 0x39, //0x000070cd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000070d1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000070d4 je LBB28_168 + 0x80, 0xfa, 0x20, //0x000070da cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000070dd je LBB28_168 + 0x80, 0xc2, 0xf7, //0x000070e3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000070e6 cmpb $1, %dl + 0x0f, 0x87, 0xeb, 0xf6, 0xff, 0xff, //0x000070e9 ja LBB28_181 + 0x90, //0x000070ef .p2align 4, 0x90 + //0x000070f0 LBB28_168 + 0x48, 0x8d, 0x78, 0x03, //0x000070f0 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000070f4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000070f7 jae LBB28_172 + 0x41, 0x8a, 0x14, 0x39, //0x000070fd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00007101 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007104 je LBB28_172 + 0x80, 0xfa, 0x20, //0x0000710a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000710d je LBB28_172 + 0x80, 0xc2, 0xf7, //0x00007113 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007116 cmpb $1, %dl + 0x0f, 0x87, 0xbb, 0xf6, 0xff, 0xff, //0x00007119 ja LBB28_181 + 0x90, //0x0000711f .p2align 4, 0x90 + //0x00007120 LBB28_172 + 0x48, 0x8d, 0x50, 0x04, //0x00007120 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x00007124 cmpq %rdx, %rcx + 0x0f, 0x86, 0xb9, 0x02, 0x00, 0x00, //0x00007127 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x0000712d cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007130 je LBB28_178 + 0x49, 0x8d, 0x14, 0x09, //0x00007136 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000713a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000713e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007143 .p2align 4, 0x90 + //0x00007150 LBB28_175 + 0x0f, 0xbe, 0x5f, 0xff, //0x00007150 movsbl $-1(%rdi), %ebx + 0x83, 0xfb, 0x20, //0x00007154 cmpl $32, %ebx + 0x0f, 0x87, 0x6b, 0xf6, 0xff, 0xff, //0x00007157 ja LBB28_180 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000715d btq %rbx, %r12 + 0x0f, 0x83, 0x61, 0xf6, 0xff, 0xff, //0x00007161 jae LBB28_180 + 0x48, 0xff, 0xc7, //0x00007167 incq %rdi + 0x48, 0xff, 0xc6, //0x0000716a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000716d jne LBB28_175 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007173 jmp LBB28_179 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007178 .p2align 4, 0x90 + //0x00007180 LBB28_178 + 0x4c, 0x01, 0xca, //0x00007180 addq %r9, %rdx + //0x00007183 LBB28_179 + 0x4c, 0x29, 0xca, //0x00007183 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x00007186 movq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007189 cmpq %rcx, %rdi + 0x0f, 0x82, 0x48, 0xf6, 0xff, 0xff, //0x0000718c jb LBB28_181 + 0xe9, 0x55, 0x02, 0x00, 0x00, //0x00007192 jmp LBB28_247 + //0x00007197 LBB28_183 + 0x45, 0x31, 0xd2, //0x00007197 xorl %r10d, %r10d + 0xe9, 0x4d, 0xfd, 0xff, 0xff, //0x0000719a jmp LBB28_131 + //0x0000719f LBB28_209 + 0x49, 0x89, 0x17, //0x0000719f movq %rdx, (%r15) + 0x48, 0x89, 0xd0, //0x000071a2 movq %rdx, %rax + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x000071a5 jmp LBB28_214 + //0x000071aa LBB28_29 + 0x4c, 0x89, 0xc8, //0x000071aa movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000071ad notq %rax + 0x48, 0x01, 0xc6, //0x000071b0 addq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x000071b3 cmpq %r8, %rsi + 0x0f, 0x82, 0x16, 0xf4, 0xff, 0xff, //0x000071b6 jb LBB28_28 + 0xe9, 0x6b, 0xf4, 0xff, 0xff, //0x000071bc jmp LBB28_30 + //0x000071c1 LBB28_210 + 0x4c, 0x01, 0xca, //0x000071c1 addq %r9, %rdx + //0x000071c4 LBB28_211 + 0x4c, 0x29, 0xca, //0x000071c4 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x000071c7 movq %rdx, %rdi + 0x4c, 0x39, 0xc7, //0x000071ca cmpq %r8, %rdi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000071cd jb LBB28_213 + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000071d3 jmp LBB28_214 + //0x000071d8 LBB28_212 + 0x4c, 0x89, 0xc9, //0x000071d8 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x000071db notq %rcx + 0x48, 0x01, 0xcf, //0x000071de addq %rcx, %rdi + 0x4c, 0x39, 0xc7, //0x000071e1 cmpq %r8, %rdi + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000071e4 jae LBB28_214 + //0x000071ea LBB28_213 + 0x48, 0x8d, 0x47, 0x01, //0x000071ea leaq $1(%rdi), %rax + 0x49, 0x89, 0x07, //0x000071ee movq %rax, (%r15) + 0x41, 0x80, 0x3c, 0x39, 0x5d, //0x000071f1 cmpb $93, (%r9,%rdi) + 0x0f, 0x84, 0x3d, 0x02, 0x00, 0x00, //0x000071f6 je LBB28_254 + //0x000071fc LBB28_214 + 0x48, 0xff, 0xc8, //0x000071fc decq %rax + 0x49, 0x89, 0x07, //0x000071ff movq %rax, (%r15) + 0x48, 0x89, 0xc2, //0x00007202 movq %rax, %rdx + 0x4d, 0x85, 0xf6, //0x00007205 testq %r14, %r14 + 0x0f, 0x8e, 0x95, 0x01, 0x00, 0x00, //0x00007208 jle LBB28_243 + 0x90, 0x90, //0x0000720e .p2align 4, 0x90 + //0x00007210 LBB28_215 + 0x4c, 0x89, 0xdf, //0x00007210 movq %r11, %rdi + 0x4c, 0x89, 0xfe, //0x00007213 movq %r15, %rsi + 0xe8, 0x75, 0xe4, 0xff, 0xff, //0x00007216 callq _skip_one_fast + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000721b movq $-64(%rbp), %r11 + 0x4d, 0x8b, 0x0b, //0x0000721f movq (%r11), %r9 + 0x49, 0x8b, 0x4b, 0x08, //0x00007222 movq $8(%r11), %rcx + 0x49, 0x8b, 0x07, //0x00007226 movq (%r15), %rax + 0x48, 0x89, 0xc6, //0x00007229 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x0000722c subq %rcx, %rsi + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000722f jae LBB28_220 + 0x41, 0x8a, 0x14, 0x01, //0x00007235 movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00007239 cmpb $13, %dl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000723c je LBB28_220 + 0x80, 0xfa, 0x20, //0x00007242 cmpb $32, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00007245 je LBB28_220 + 0x80, 0xc2, 0xf7, //0x0000724b addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000724e cmpb $1, %dl + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x00007251 jbe LBB28_220 + 0x48, 0x89, 0xc7, //0x00007257 movq %rax, %rdi + 0xe9, 0x23, 0x01, 0x00, 0x00, //0x0000725a jmp LBB28_241 + 0x90, //0x0000725f .p2align 4, 0x90 + //0x00007260 LBB28_220 + 0x48, 0x8d, 0x78, 0x01, //0x00007260 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007264 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007267 jae LBB28_224 + 0x41, 0x8a, 0x14, 0x39, //0x0000726d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00007271 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007274 je LBB28_224 + 0x80, 0xfa, 0x20, //0x0000727a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000727d je LBB28_224 + 0x80, 0xc2, 0xf7, //0x00007283 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007286 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00007289 ja LBB28_241 + 0x90, //0x0000728f .p2align 4, 0x90 + //0x00007290 LBB28_224 + 0x48, 0x8d, 0x78, 0x02, //0x00007290 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007294 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007297 jae LBB28_228 + 0x41, 0x8a, 0x14, 0x39, //0x0000729d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000072a1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072a4 je LBB28_228 + 0x80, 0xfa, 0x20, //0x000072aa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072ad je LBB28_228 + 0x80, 0xc2, 0xf7, //0x000072b3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000072b6 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x000072b9 ja LBB28_241 + 0x90, //0x000072bf .p2align 4, 0x90 + //0x000072c0 LBB28_228 + 0x48, 0x8d, 0x78, 0x03, //0x000072c0 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000072c4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072c7 jae LBB28_232 + 0x41, 0x8a, 0x14, 0x39, //0x000072cd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000072d1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072d4 je LBB28_232 + 0x80, 0xfa, 0x20, //0x000072da cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072dd je LBB28_232 + 0x80, 0xc2, 0xf7, //0x000072e3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000072e6 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000072e9 ja LBB28_241 + 0x90, //0x000072ef .p2align 4, 0x90 + //0x000072f0 LBB28_232 + 0x48, 0x8d, 0x50, 0x04, //0x000072f0 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x000072f4 cmpq %rdx, %rcx + 0x0f, 0x86, 0xe9, 0x00, 0x00, 0x00, //0x000072f7 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x000072fd cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007300 je LBB28_238 + 0x49, 0x8d, 0x14, 0x09, //0x00007306 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000730a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000730e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007313 .p2align 4, 0x90 + //0x00007320 LBB28_235 + 0x0f, 0xbe, 0x5f, 0xff, //0x00007320 movsbl $-1(%rdi), %ebx + 0x83, 0xfb, 0x20, //0x00007324 cmpl $32, %ebx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00007327 ja LBB28_240 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000732d btq %rbx, %r12 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00007331 jae LBB28_240 + 0x48, 0xff, 0xc7, //0x00007337 incq %rdi + 0x48, 0xff, 0xc6, //0x0000733a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000733d jne LBB28_235 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007343 jmp LBB28_239 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007348 .p2align 4, 0x90 + //0x00007350 LBB28_238 + 0x4c, 0x01, 0xca, //0x00007350 addq %r9, %rdx + //0x00007353 LBB28_239 + 0x4c, 0x29, 0xca, //0x00007353 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x00007356 movq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007359 cmpq %rcx, %rdi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000735c jb LBB28_241 + 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00007362 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007367 .p2align 4, 0x90 + //0x00007370 LBB28_240 + 0x4c, 0x89, 0xca, //0x00007370 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x00007373 notq %rdx + 0x48, 0x01, 0xd7, //0x00007376 addq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007379 cmpq %rcx, %rdi + 0x0f, 0x83, 0x6a, 0x00, 0x00, 0x00, //0x0000737c jae LBB28_247 + //0x00007382 LBB28_241 + 0x48, 0x8d, 0x57, 0x01, //0x00007382 leaq $1(%rdi), %rdx + 0x49, 0x89, 0x17, //0x00007386 movq %rdx, (%r15) + 0x41, 0x8a, 0x04, 0x39, //0x00007389 movb (%r9,%rdi), %al + 0x3c, 0x2c, //0x0000738d cmpb $44, %al + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x0000738f jne LBB28_249 + 0x49, 0x83, 0xfe, 0x02, //0x00007395 cmpq $2, %r14 + 0x4d, 0x8d, 0x76, 0xff, //0x00007399 leaq $-1(%r14), %r14 + 0x0f, 0x8d, 0x6d, 0xfe, 0xff, 0xff, //0x0000739d jge LBB28_215 + //0x000073a3 LBB28_243 + 0x48, 0x8b, 0x45, 0xb8, //0x000073a3 movq $-72(%rbp), %rax + 0x48, 0x83, 0xc0, 0x10, //0x000073a7 addq $16, %rax + 0x4c, 0x8b, 0x55, 0xa8, //0x000073ab movq $-88(%rbp), %r10 + 0x48, 0x89, 0x45, 0xb8, //0x000073af movq %rax, $-72(%rbp) + 0x4c, 0x39, 0xd0, //0x000073b3 cmpq %r10, %rax + 0x48, 0x8b, 0x4d, 0xa0, //0x000073b6 movq $-96(%rbp), %rcx + 0x0f, 0x85, 0xde, 0xf0, 0xff, 0xff, //0x000073ba jne LBB28_2 + //0x000073c0 LBB28_244 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000073c0 movl $1, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000073c5 vmovq %rax, %xmm0 + 0xc5, 0xfa, 0x7f, 0x01, //0x000073ca vmovdqu %xmm0, (%rcx) + 0x48, 0x89, 0xcf, //0x000073ce movq %rcx, %rdi + 0x4c, 0x89, 0xde, //0x000073d1 movq %r11, %rsi + 0x4c, 0x89, 0xfa, //0x000073d4 movq %r15, %rdx + 0x31, 0xc9, //0x000073d7 xorl %ecx, %ecx + 0xe8, 0x22, 0xd2, 0xff, 0xff, //0x000073d9 callq _fsm_exec + 0x48, 0x89, 0xc1, //0x000073de movq %rax, %rcx + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000073e1 jmp LBB28_248 + //0x000073e6 LBB28_245 + 0x49, 0x89, 0x17, //0x000073e6 movq %rdx, (%r15) + //0x000073e9 LBB28_246 + 0x48, 0x89, 0xd0, //0x000073e9 movq %rdx, %rax + //0x000073ec LBB28_247 + 0x48, 0xff, 0xc8, //0x000073ec decq %rax + 0x49, 0x89, 0x07, //0x000073ef movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000073f2 movq $-2, %rcx + //0x000073f9 LBB28_248 + 0x48, 0x89, 0xc8, //0x000073f9 movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x38, //0x000073fc addq $56, %rsp + 0x5b, //0x00007400 popq %rbx + 0x41, 0x5c, //0x00007401 popq %r12 + 0x41, 0x5d, //0x00007403 popq %r13 + 0x41, 0x5e, //0x00007405 popq %r14 + 0x41, 0x5f, //0x00007407 popq %r15 + 0x5d, //0x00007409 popq %rbp + 0xc3, //0x0000740a retq + //0x0000740b LBB28_249 + 0x3c, 0x5d, //0x0000740b cmpb $93, %al + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000740d jne LBB28_246 + 0x48, 0x89, 0xd0, //0x00007413 movq %rdx, %rax + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00007416 jmp LBB28_254 + //0x0000741b LBB28_251 + 0x48, 0xff, 0xc8, //0x0000741b decq %rax + 0x49, 0x89, 0x07, //0x0000741e movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xde, 0xff, 0xff, 0xff, //0x00007421 movq $-34, %rcx + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00007428 jmp LBB28_248 + //0x0000742d LBB28_252 + 0x48, 0x89, 0xd8, //0x0000742d movq %rbx, %rax + //0x00007430 LBB28_253 + 0x80, 0xf9, 0x7d, //0x00007430 cmpb $125, %cl + 0x0f, 0x85, 0xb3, 0xff, 0xff, 0xff, //0x00007433 jne LBB28_247 + //0x00007439 LBB28_254 + 0x48, 0xff, 0xc8, //0x00007439 decq %rax + 0x49, 0x89, 0x07, //0x0000743c movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xdf, 0xff, 0xff, 0xff, //0x0000743f movq $-33, %rcx + 0xe9, 0xae, 0xff, 0xff, 0xff, //0x00007446 jmp LBB28_248 + //0x0000744b LBB28_255 + 0x48, 0x8b, 0x45, 0xc0, //0x0000744b movq $-64(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x0000744f movq $8(%rax), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00007453 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00007457 movq %rax, (%rcx) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000745a movq $-1, %rcx + 0xe9, 0x93, 0xff, 0xff, 0xff, //0x00007461 jmp LBB28_248 + //0x00007466 LBB28_256 + 0x48, 0x83, 0xc3, 0x02, //0x00007466 addq $2, %rbx + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000746a movq $-2, %rcx + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00007471 jmp LBB28_259 + //0x00007476 LBB28_257 + 0x48, 0xff, 0xc3, //0x00007476 incq %rbx + 0x48, 0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, //0x00007479 movq $-3, %rcx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00007480 jmp LBB28_259 + //0x00007485 LBB28_258 + 0x48, 0xff, 0xc3, //0x00007485 incq %rbx + //0x00007488 LBB28_259 + 0x48, 0x8b, 0x45, 0xd0, //0x00007488 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xcb, //0x0000748c subq %r9, %rbx + 0x48, 0x89, 0x18, //0x0000748f movq %rbx, (%rax) + 0xe9, 0x62, 0xff, 0xff, 0xff, //0x00007492 jmp LBB28_248 + //0x00007497 LBB28_260 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00007497 movq $-2, %rcx + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000749e jmp LBB28_262 + //0x000074a3 LBB28_261 + 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x000074a3 movq $-4, %rcx + //0x000074aa LBB28_262 + 0x4c, 0x89, 0xd3, //0x000074aa movq %r10, %rbx + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x000074ad jmp LBB28_259 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074b2 .p2align 4, 0x90 + //0x000074c0 _validate_utf8 + 0x55, //0x000074c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000074c1 movq %rsp, %rbp + 0x41, 0x57, //0x000074c4 pushq %r15 + 0x41, 0x56, //0x000074c6 pushq %r14 + 0x41, 0x54, //0x000074c8 pushq %r12 + 0x53, //0x000074ca pushq %rbx + 0x50, //0x000074cb pushq %rax + 0x4c, 0x8b, 0x17, //0x000074cc movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x000074cf movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x000074d3 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x000074d6 addq %r10, %rcx + 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x000074d9 leaq $-3(%r10,%r11), %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000074de jmp LBB29_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074e3 .p2align 4, 0x90 + //0x000074f0 LBB29_19 + 0x48, 0x01, 0xd9, //0x000074f0 addq %rbx, %rcx + //0x000074f3 LBB29_1 + 0x4c, 0x39, 0xc1, //0x000074f3 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x000074f6 jae LBB29_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000074fc movl $1, %ebx + 0x80, 0x39, 0x00, //0x00007501 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007504 jns LBB29_19 + 0x8b, 0x01, //0x0000750a movl (%rcx), %eax + 0x89, 0xc7, //0x0000750c movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000750e andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007514 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000751a jne LBB29_10 + 0x89, 0xc7, //0x00007520 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007522 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007528 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000752e je LBB29_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007534 movl $3, %ebx + 0x85, 0xff, //0x00007539 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000753b jne LBB29_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007541 .p2align 4, 0x90 + //0x00007550 LBB29_10 + 0x89, 0xc7, //0x00007550 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007552 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007558 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000755e jne LBB29_12 + 0x89, 0xc7, //0x00007564 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007566 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x0000756b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000756e jne LBB29_19 + //0x00007574 LBB29_12 + 0x89, 0xc7, //0x00007574 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007576 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x0000757c cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007582 jne LBB29_16 + 0x89, 0xc7, //0x00007588 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x0000758a andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007590 je LBB29_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00007596 movl $4, %ebx + 0xa8, 0x04, //0x0000759b testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x0000759d je LBB29_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x000075a3 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000075a8 je LBB29_19 + //0x000075ae LBB29_16 + 0x48, 0x89, 0xcf, //0x000075ae movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x000075b1 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x000075b4 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000075b7 cmpq $4096, %rbx + 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x000075be jae LBB29_17 + 0x48, 0x63, 0xc7, //0x000075c4 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x000075c7 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x000075cb movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x000075ce movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000075d3 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x000075d8 jmp LBB29_19 + //0x000075dd LBB29_2 + 0x4d, 0x01, 0xd3, //0x000075dd addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x000075e0 cmpq %r11, %rcx + 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x000075e3 jae LBB29_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x000075e9 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x000075ed leaq $-38(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000075f1 jmp LBB29_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000075f6 .p2align 4, 0x90 + //0x00007600 LBB29_5 + 0x48, 0xff, 0xc1, //0x00007600 incq %rcx + 0x4c, 0x39, 0xd9, //0x00007603 cmpq %r11, %rcx + 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00007606 jae LBB29_36 + //0x0000760c LBB29_4 + 0x80, 0x39, 0x00, //0x0000760c cmpb $0, (%rcx) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000760f jns LBB29_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00007615 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00007619 movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x0000761d movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00007620 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00007623 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007627 jb LBB29_21 + 0x44, 0x0f, 0xb6, 0x21, //0x0000762d movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007631 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00007636 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x0000763a leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x0000763e addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00007642 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00007645 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007648 je LBB29_24 + //0x0000764e LBB29_25 + 0x41, 0x0f, 0xb6, 0x07, //0x0000764e movzbl (%r15), %eax + 0x88, 0x07, //0x00007652 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007654 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00007659 movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000765d jmp LBB29_26 + //0x00007662 LBB29_21 + 0x45, 0x31, 0xe4, //0x00007662 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x00007665 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x00007668 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x0000766b movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x0000766e testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007671 jne LBB29_25 + //0x00007677 LBB29_24 + 0x31, 0xff, //0x00007677 xorl %edi, %edi + //0x00007679 LBB29_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x00007679 movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x0000767d shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x00007680 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x00007684 shll $8, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x00007687 movzbl %r12b, %edi + 0x09, 0xdf, //0x0000768b orl %ebx, %edi + 0x09, 0xf8, //0x0000768d orl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x0000768f andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007694 cmpl $8421600, %eax + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00007699 jne LBB29_29 + 0x89, 0xf8, //0x0000769f movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x000076a1 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x000076a6 cmpl $8205, %eax + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000076ab je LBB29_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000076b1 movl $3, %ebx + 0x85, 0xc0, //0x000076b6 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000076b8 jne LBB29_34 + 0x90, 0x90, //0x000076be .p2align 4, 0x90 + //0x000076c0 LBB29_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x000076c0 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000076c4 je LBB29_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000076ca andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000076d0 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000076d5 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000076db jne LBB29_31 + //0x000076e1 LBB29_34 + 0x48, 0x01, 0xd9, //0x000076e1 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x000076e4 cmpq %r11, %rcx + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x000076e7 jb LBB29_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x000076ed jmp LBB29_36 + //0x000076f2 LBB29_31 + 0x48, 0x89, 0xc8, //0x000076f2 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x000076f5 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x000076f8 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x000076fb cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007702 jae LBB29_32 + 0x48, 0x98, //0x00007708 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x0000770a leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x0000770e movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007711 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007716 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x0000771b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x0000771e cmpq %r11, %rcx + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00007721 jb LBB29_4 + //0x00007727 LBB29_36 + 0x4c, 0x29, 0xd1, //0x00007727 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x0000772a movq %rcx, (%rsi) + 0x31, 0xc0, //0x0000772d xorl %eax, %eax + //0x0000772f LBB29_37 + 0x48, 0x83, 0xc4, 0x08, //0x0000772f addq $8, %rsp + 0x5b, //0x00007733 popq %rbx + 0x41, 0x5c, //0x00007734 popq %r12 + 0x41, 0x5e, //0x00007736 popq %r14 + 0x41, 0x5f, //0x00007738 popq %r15 + 0x5d, //0x0000773a popq %rbp + 0xc3, //0x0000773b retq + //0x0000773c LBB29_32 + 0x48, 0x89, 0x06, //0x0000773c movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000773f movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007746 jmp LBB29_37 + //0x0000774b LBB29_17 + 0x48, 0x89, 0x3e, //0x0000774b movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000774e movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007755 jmp LBB29_37 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000775a .p2align 4, 0x90 + //0x00007760 _validate_utf8_fast + 0x55, //0x00007760 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007761 movq %rsp, %rbp + 0x53, //0x00007764 pushq %rbx + 0x50, //0x00007765 pushq %rax + 0x4c, 0x8b, 0x17, //0x00007766 movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x00007769 movq $8(%rdi), %r11 + 0x4b, 0x8d, 0x74, 0x1a, 0xfd, //0x0000776d leaq $-3(%r10,%r11), %rsi + 0x4c, 0x89, 0xd0, //0x00007772 movq %r10, %rax + 0x49, 0x39, 0xf2, //0x00007775 cmpq %rsi, %r10 + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00007778 jae LBB30_14 + 0x4c, 0x89, 0xd0, //0x0000777e movq %r10, %rax + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007781 jmp LBB30_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007786 .p2align 4, 0x90 + //0x00007790 LBB30_2 + 0x48, 0x01, 0xd0, //0x00007790 addq %rdx, %rax + 0x48, 0x39, 0xf0, //0x00007793 cmpq %rsi, %rax + 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00007796 jae LBB30_14 + //0x0000779c LBB30_3 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000779c movl $1, %edx + 0x80, 0x38, 0x00, //0x000077a1 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000077a4 jns LBB30_2 + 0x8b, 0x38, //0x000077aa movl (%rax), %edi + 0x89, 0xf9, //0x000077ac movl %edi, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x000077ae andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000077b4 cmpl $8421600, %ecx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000077ba jne LBB30_7 + 0x89, 0xf9, //0x000077c0 movl %edi, %ecx + 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x000077c2 andl $8207, %ecx + 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x000077c8 cmpl $8205, %ecx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000077ce je LBB30_7 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000077d4 movl $3, %edx + 0x85, 0xc9, //0x000077d9 testl %ecx, %ecx + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000077db jne LBB30_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077e1 .p2align 4, 0x90 + //0x000077f0 LBB30_7 + 0x89, 0xf9, //0x000077f0 movl %edi, %ecx + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000077f2 andl $49376, %ecx + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000077f8 cmpl $32960, %ecx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000077fe jne LBB30_9 + 0x89, 0xf9, //0x00007804 movl %edi, %ecx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00007806 movl $2, %edx + 0x83, 0xe1, 0x1e, //0x0000780b andl $30, %ecx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000780e jne LBB30_2 + //0x00007814 LBB30_9 + 0x89, 0xf9, //0x00007814 movl %edi, %ecx + 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007816 andl $-1061109512, %ecx + 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x0000781c cmpl $-2139062032, %ecx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007822 jne LBB30_13 + 0x89, 0xf9, //0x00007828 movl %edi, %ecx + 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x0000782a andl $12295, %ecx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00007830 je LBB30_13 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00007836 movl $4, %edx + 0x40, 0xf6, 0xc7, 0x04, //0x0000783b testb $4, %dil + 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x0000783f je LBB30_2 + 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x00007845 andl $12291, %edi + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x0000784b je LBB30_2 + //0x00007851 LBB30_13 + 0x48, 0xf7, 0xd0, //0x00007851 notq %rax + 0x4c, 0x01, 0xd0, //0x00007854 addq %r10, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00007857 addq $8, %rsp + 0x5b, //0x0000785b popq %rbx + 0x5d, //0x0000785c popq %rbp + 0xc3, //0x0000785d retq + //0x0000785e LBB30_14 + 0x4d, 0x01, 0xd3, //0x0000785e addq %r10, %r11 + 0x4c, 0x39, 0xd8, //0x00007861 cmpq %r11, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00007864 jae LBB30_30 + 0x4c, 0x8d, 0x45, 0xf4, //0x0000786a leaq $-12(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xf2, //0x0000786e leaq $-14(%rbp), %r9 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00007872 jmp LBB30_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007877 .p2align 4, 0x90 + //0x00007880 LBB30_16 + 0x48, 0xff, 0xc0, //0x00007880 incq %rax + 0x4c, 0x39, 0xd8, //0x00007883 cmpq %r11, %rax + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007886 jae LBB30_30 + //0x0000788c LBB30_17 + 0x80, 0x38, 0x00, //0x0000788c cmpb $0, (%rax) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000788f jns LBB30_16 + 0xc6, 0x45, 0xf4, 0x00, //0x00007895 movb $0, $-12(%rbp) + 0xc6, 0x45, 0xf2, 0x00, //0x00007899 movb $0, $-14(%rbp) + 0x4c, 0x89, 0xda, //0x0000789d movq %r11, %rdx + 0x48, 0x29, 0xc2, //0x000078a0 subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x000078a3 cmpq $2, %rdx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x000078a7 jb LBB30_21 + 0x0f, 0xb6, 0x30, //0x000078ad movzbl (%rax), %esi + 0x0f, 0xb6, 0x78, 0x01, //0x000078b0 movzbl $1(%rax), %edi + 0x40, 0x88, 0x75, 0xf4, //0x000078b4 movb %sil, $-12(%rbp) + 0x48, 0x8d, 0x48, 0x02, //0x000078b8 leaq $2(%rax), %rcx + 0x48, 0x83, 0xc2, 0xfe, //0x000078bc addq $-2, %rdx + 0x4c, 0x89, 0xcb, //0x000078c0 movq %r9, %rbx + 0x48, 0x85, 0xd2, //0x000078c3 testq %rdx, %rdx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000078c6 je LBB30_22 + //0x000078cc LBB30_20 + 0x0f, 0xb6, 0x09, //0x000078cc movzbl (%rcx), %ecx + 0x88, 0x0b, //0x000078cf movb %cl, (%rbx) + 0x0f, 0xb6, 0x75, 0xf4, //0x000078d1 movzbl $-12(%rbp), %esi + 0x0f, 0xb6, 0x4d, 0xf2, //0x000078d5 movzbl $-14(%rbp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000078d9 jmp LBB30_23 + //0x000078de LBB30_21 + 0x31, 0xf6, //0x000078de xorl %esi, %esi + 0x31, 0xff, //0x000078e0 xorl %edi, %edi + 0x4c, 0x89, 0xc3, //0x000078e2 movq %r8, %rbx + 0x48, 0x89, 0xc1, //0x000078e5 movq %rax, %rcx + 0x48, 0x85, 0xd2, //0x000078e8 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x000078eb jne LBB30_20 + //0x000078f1 LBB30_22 + 0x31, 0xc9, //0x000078f1 xorl %ecx, %ecx + //0x000078f3 LBB30_23 + 0x0f, 0xb6, 0xc9, //0x000078f3 movzbl %cl, %ecx + 0xc1, 0xe1, 0x10, //0x000078f6 shll $16, %ecx + 0x40, 0x0f, 0xb6, 0xff, //0x000078f9 movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x000078fd shll $8, %edi + 0x40, 0x0f, 0xb6, 0xd6, //0x00007900 movzbl %sil, %edx + 0x09, 0xfa, //0x00007904 orl %edi, %edx + 0x09, 0xd1, //0x00007906 orl %edx, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x00007908 andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x0000790e cmpl $8421600, %ecx + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007914 jne LBB30_26 + 0x89, 0xd7, //0x0000791a movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x0000791c andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007922 cmpl $8205, %edi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00007928 je LBB30_26 + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000792e movl $3, %ecx + 0x85, 0xff, //0x00007933 testl %edi, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007935 jne LBB30_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000793b .p2align 4, 0x90 + //0x00007940 LBB30_26 + 0x40, 0xf6, 0xc6, 0x1e, //0x00007940 testb $30, %sil + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x00007944 je LBB30_13 + 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x0000794a andl $49376, %edx + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007950 movl $2, %ecx + 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x00007955 cmpl $32960, %edx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x0000795b jne LBB30_13 + //0x00007961 LBB30_28 + 0x48, 0x01, 0xc8, //0x00007961 addq %rcx, %rax + 0x4c, 0x39, 0xd8, //0x00007964 cmpq %r11, %rax + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00007967 jb LBB30_17 + //0x0000796d LBB30_30 + 0x31, 0xc0, //0x0000796d xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x0000796f addq $8, %rsp + 0x5b, //0x00007973 popq %rbx + 0x5d, //0x00007974 popq %rbp + 0xc3, //0x00007975 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007976 .p2align 5, 0x00 + //0x00007980 LCPI31_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007980 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007990 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x000079a0 .p2align 4, 0x90 + //0x000079a0 _f32toa + 0x55, //0x000079a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000079a1 movq %rsp, %rbp + 0x41, 0x57, //0x000079a4 pushq %r15 + 0x41, 0x56, //0x000079a6 pushq %r14 + 0x41, 0x55, //0x000079a8 pushq %r13 + 0x41, 0x54, //0x000079aa pushq %r12 + 0x53, //0x000079ac pushq %rbx + 0xc5, 0xf9, 0x7e, 0xc0, //0x000079ad vmovd %xmm0, %eax + 0x89, 0xc1, //0x000079b1 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x000079b3 shrl $23, %ecx + 0x0f, 0xb6, 0xd9, //0x000079b6 movzbl %cl, %ebx + 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x000079b9 cmpl $255, %ebx + 0x0f, 0x84, 0xff, 0x0c, 0x00, 0x00, //0x000079bf je LBB31_139 + 0xc6, 0x07, 0x2d, //0x000079c5 movb $45, (%rdi) + 0x41, 0x89, 0xc1, //0x000079c8 movl %eax, %r9d + 0x41, 0xc1, 0xe9, 0x1f, //0x000079cb shrl $31, %r9d + 0x4e, 0x8d, 0x04, 0x0f, //0x000079cf leaq (%rdi,%r9), %r8 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x000079d3 testl $2147483647, %eax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x000079d8 je LBB31_14 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x000079de andl $8388607, %eax + 0x85, 0xdb, //0x000079e3 testl %ebx, %ebx + 0x0f, 0x84, 0xe1, 0x0c, 0x00, 0x00, //0x000079e5 je LBB31_140 + 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x000079eb leal $8388608(%rax), %esi + 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x000079f1 leal $-150(%rbx), %r15d + 0x8d, 0x4b, 0x81, //0x000079f8 leal $-127(%rbx), %ecx + 0x83, 0xf9, 0x17, //0x000079fb cmpl $23, %ecx + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x000079fe ja LBB31_5 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007a04 movl $150, %ecx + 0x29, 0xd9, //0x00007a09 subl %ebx, %ecx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00007a0b movq $-1, %rdx + 0x48, 0xd3, 0xe2, //0x00007a12 shlq %cl, %rdx + 0xf7, 0xd2, //0x00007a15 notl %edx + 0x85, 0xf2, //0x00007a17 testl %esi, %edx + 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x00007a19 je LBB31_32 + //0x00007a1f LBB31_5 + 0x41, 0x89, 0xf6, //0x00007a1f movl %esi, %r14d + 0x41, 0x83, 0xe6, 0x01, //0x00007a22 andl $1, %r14d + 0x85, 0xc0, //0x00007a26 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x00007a28 sete %al + 0x83, 0xfb, 0x01, //0x00007a2b cmpl $1, %ebx + 0x0f, 0x97, 0xc1, //0x00007a2e seta %cl + 0x20, 0xc1, //0x00007a31 andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x00007a33 movzbl %cl, %ecx + 0x41, 0x89, 0xf2, //0x00007a36 movl %esi, %r10d + 0x41, 0xc1, 0xe2, 0x02, //0x00007a39 shll $2, %r10d + 0x8d, 0x44, 0xb1, 0xfe, //0x00007a3d leal $-2(%rcx,%rsi,4), %eax + 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x00007a41 imull $1262611, %r15d, %r11d + 0x31, 0xd2, //0x00007a48 xorl %edx, %edx + 0x84, 0xc9, //0x00007a4a testb %cl, %cl + 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x00007a4c movl $524031, %ecx + 0x0f, 0x44, 0xca, //0x00007a51 cmovel %edx, %ecx + 0x41, 0x29, 0xcb, //0x00007a54 subl %ecx, %r11d + 0x41, 0xc1, 0xfb, 0x16, //0x00007a57 sarl $22, %r11d + 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x00007a5b imull $-1741647, %r11d, %ecx + 0xc1, 0xe9, 0x13, //0x00007a62 shrl $19, %ecx + 0x44, 0x01, 0xf9, //0x00007a65 addl %r15d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007a68 movl $31, %edx + 0x44, 0x29, 0xda, //0x00007a6d subl %r11d, %edx + 0x48, 0x63, 0xd2, //0x00007a70 movslq %edx, %rdx + 0x48, 0x8d, 0x1d, 0x96, 0xb7, 0x00, 0x00, //0x00007a73 leaq $46998(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0xfe, 0xc1, //0x00007a7a incb %cl + 0xd3, 0xe0, //0x00007a7c shll %cl, %eax + 0x4c, 0x8b, 0x24, 0xd3, //0x00007a7e movq (%rbx,%rdx,8), %r12 + 0x49, 0xf7, 0xe4, //0x00007a82 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00007a85 shrq $32, %rax + 0x31, 0xdb, //0x00007a89 xorl %ebx, %ebx + 0x83, 0xf8, 0x01, //0x00007a8b cmpl $1, %eax + 0x0f, 0x97, 0xc3, //0x00007a8e seta %bl + 0x41, 0xd3, 0xe2, //0x00007a91 shll %cl, %r10d + 0x09, 0xd3, //0x00007a94 orl %edx, %ebx + 0x4c, 0x89, 0xd0, //0x00007a96 movq %r10, %rax + 0x49, 0xf7, 0xe4, //0x00007a99 mulq %r12 + 0x49, 0x89, 0xd2, //0x00007a9c movq %rdx, %r10 + 0x48, 0xc1, 0xe8, 0x20, //0x00007a9f shrq $32, %rax + 0x45, 0x31, 0xff, //0x00007aa3 xorl %r15d, %r15d + 0x83, 0xf8, 0x01, //0x00007aa6 cmpl $1, %eax + 0x41, 0x0f, 0x97, 0xc7, //0x00007aa9 seta %r15b + 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x00007aad leal $2(,%rsi,4), %eax + 0xd3, 0xe0, //0x00007ab4 shll %cl, %eax + 0x45, 0x09, 0xd7, //0x00007ab6 orl %r10d, %r15d + 0x49, 0xf7, 0xe4, //0x00007ab9 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00007abc shrq $32, %rax + 0x31, 0xc9, //0x00007ac0 xorl %ecx, %ecx + 0x83, 0xf8, 0x01, //0x00007ac2 cmpl $1, %eax + 0x0f, 0x97, 0xc1, //0x00007ac5 seta %cl + 0x09, 0xd1, //0x00007ac8 orl %edx, %ecx + 0x44, 0x01, 0xf3, //0x00007aca addl %r14d, %ebx + 0x44, 0x29, 0xf1, //0x00007acd subl %r14d, %ecx + 0x41, 0x83, 0xff, 0x28, //0x00007ad0 cmpl $40, %r15d + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00007ad4 jb LBB31_12 + 0x44, 0x89, 0xd2, //0x00007ada movl %r10d, %edx + 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007add movl $3435973837, %eax + 0x48, 0x0f, 0xaf, 0xc2, //0x00007ae2 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00007ae6 shrq $37, %rax + 0x41, 0x89, 0xde, //0x00007aea movl %ebx, %r14d + 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x00007aed leaq (,%rax,8), %rsi + 0x48, 0x8d, 0x14, 0xb6, //0x00007af5 leaq (%rsi,%rsi,4), %rdx + 0x4c, 0x39, 0xf2, //0x00007af9 cmpq %r14, %rdx + 0x41, 0x0f, 0x93, 0xc4, //0x00007afc setae %r12b + 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x00007b00 leaq $40(%rsi,%rsi,4), %r14 + 0x89, 0xce, //0x00007b05 movl %ecx, %esi + 0x49, 0x39, 0xf6, //0x00007b07 cmpq %rsi, %r14 + 0x0f, 0x96, 0xc2, //0x00007b0a setbe %dl + 0x41, 0x38, 0xd4, //0x00007b0d cmpb %dl, %r12b + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00007b10 je LBB31_12 + 0x45, 0x31, 0xed, //0x00007b16 xorl %r13d, %r13d + 0x49, 0x39, 0xf6, //0x00007b19 cmpq %rsi, %r14 + 0x41, 0x0f, 0x96, 0xc5, //0x00007b1c setbe %r13b + 0x41, 0x01, 0xc5, //0x00007b20 addl %eax, %r13d + 0x41, 0xff, 0xc3, //0x00007b23 incl %r11d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007b26 cmpl $100000, %r13d + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x00007b2d jae LBB31_18 + //0x00007b33 LBB31_8 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007b33 movl $1, %eax + 0x41, 0x83, 0xfd, 0x0a, //0x00007b38 cmpl $10, %r13d + 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x00007b3c jb LBB31_22 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007b42 movl $2, %eax + 0x41, 0x83, 0xfd, 0x64, //0x00007b47 cmpl $100, %r13d + 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x00007b4b jb LBB31_22 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00007b51 movl $3, %eax + 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x00007b56 cmpl $1000, %r13d + 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x00007b5d jb LBB31_22 + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007b63 cmpl $10000, %r13d + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x00007b6a movl $5, %eax + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x00007b6f jmp LBB31_21 + //0x00007b74 LBB31_12 + 0x4d, 0x89, 0xd6, //0x00007b74 movq %r10, %r14 + 0x49, 0xc1, 0xee, 0x02, //0x00007b77 shrq $2, %r14 + 0x44, 0x89, 0xd6, //0x00007b7b movl %r10d, %esi + 0x83, 0xe6, 0xfc, //0x00007b7e andl $-4, %esi + 0x39, 0xf3, //0x00007b81 cmpl %esi, %ebx + 0x0f, 0x96, 0xc2, //0x00007b83 setbe %dl + 0x8d, 0x5e, 0x04, //0x00007b86 leal $4(%rsi), %ebx + 0x39, 0xcb, //0x00007b89 cmpl %ecx, %ebx + 0x0f, 0x96, 0xc0, //0x00007b8b setbe %al + 0x38, 0xc2, //0x00007b8e cmpb %al, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00007b90 je LBB31_15 + 0x45, 0x31, 0xed, //0x00007b96 xorl %r13d, %r13d + 0x39, 0xcb, //0x00007b99 cmpl %ecx, %ebx + 0x41, 0x0f, 0x96, 0xc5, //0x00007b9b setbe %r13b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00007b9f jmp LBB31_17 + //0x00007ba4 LBB31_14 + 0x41, 0xc6, 0x00, 0x30, //0x00007ba4 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x00007ba8 subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x00007bab incl %r8d + 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x00007bae jmp LBB31_138 + //0x00007bb3 LBB31_15 + 0x83, 0xce, 0x02, //0x00007bb3 orl $2, %esi + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007bb6 movl $1, %r13d + 0x41, 0x39, 0xf7, //0x00007bbc cmpl %esi, %r15d + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007bbf ja LBB31_17 + 0x0f, 0x94, 0xc0, //0x00007bc5 sete %al + 0x41, 0xc0, 0xea, 0x02, //0x00007bc8 shrb $2, %r10b + 0x41, 0x20, 0xc2, //0x00007bcc andb %al, %r10b + 0x45, 0x0f, 0xb6, 0xea, //0x00007bcf movzbl %r10b, %r13d + //0x00007bd3 LBB31_17 + 0x45, 0x01, 0xf5, //0x00007bd3 addl %r14d, %r13d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007bd6 cmpl $100000, %r13d + 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x00007bdd jb LBB31_8 + //0x00007be3 LBB31_18 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00007be3 movl $6, %eax + 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00007be8 cmpl $1000000, %r13d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007bef jb LBB31_22 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00007bf5 movl $7, %eax + 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x00007bfa cmpl $10000000, %r13d + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007c01 jb LBB31_22 + 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x00007c07 cmpl $100000000, %r13d + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00007c0e movl $9, %eax + //0x00007c13 LBB31_21 + 0x83, 0xd8, 0x00, //0x00007c13 sbbl $0, %eax + //0x00007c16 LBB31_22 + 0x46, 0x8d, 0x3c, 0x18, //0x00007c16 leal (%rax,%r11), %r15d + 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x00007c1a leal $5(%rax,%r11), %ecx + 0x83, 0xf9, 0x1b, //0x00007c1f cmpl $27, %ecx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007c22 jb LBB31_26 + 0x89, 0xc0, //0x00007c28 movl %eax, %eax + 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x00007c2a leaq $1(%r8,%rax), %rbx + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007c2f cmpl $10000, %r13d + 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x00007c36 jb LBB31_30 + 0x44, 0x89, 0xe8, //0x00007c3c movl %r13d, %eax + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00007c3f movl $3518437209, %r11d + 0x4c, 0x0f, 0xaf, 0xd8, //0x00007c45 imulq %rax, %r11 + 0x49, 0xc1, 0xeb, 0x2d, //0x00007c49 shrq $45, %r11 + 0x41, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00007c4d imull $-10000, %r11d, %eax + 0x44, 0x01, 0xe8, //0x00007c54 addl %r13d, %eax + 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x00007c57 je LBB31_62 + 0x89, 0xc1, //0x00007c5d movl %eax, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00007c5f imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00007c66 shrq $37, %rcx + 0x6b, 0xd1, 0x64, //0x00007c6a imull $100, %ecx, %edx + 0x29, 0xd0, //0x00007c6d subl %edx, %eax + 0x48, 0x8d, 0x15, 0x1a, 0x42, 0x00, 0x00, //0x00007c6f leaq $16922(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x42, //0x00007c76 movzwl (%rdx,%rax,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x00007c7a movw %ax, $-2(%rbx) + 0x0f, 0xb7, 0x04, 0x4a, //0x00007c7e movzwl (%rdx,%rcx,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x00007c82 movw %ax, $-4(%rbx) + 0x45, 0x31, 0xc9, //0x00007c86 xorl %r9d, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00007c89 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x00007c8d cmpl $100, %r11d + 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00007c91 jae LBB31_64 + //0x00007c97 LBB31_31 + 0x44, 0x89, 0xda, //0x00007c97 movl %r11d, %edx + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00007c9a jmp LBB31_66 + //0x00007c9f LBB31_26 + 0x41, 0x89, 0xc4, //0x00007c9f movl %eax, %r12d + 0x45, 0x85, 0xdb, //0x00007ca2 testl %r11d, %r11d + 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00007ca5 js LBB31_38 + 0x4b, 0x8d, 0x34, 0x20, //0x00007cab leaq (%r8,%r12), %rsi + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007caf cmpl $10000, %r13d + 0x0f, 0x82, 0xa7, 0x02, 0x00, 0x00, //0x00007cb6 jb LBB31_43 + 0x44, 0x89, 0xe8, //0x00007cbc movl %r13d, %eax + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00007cbf movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xc8, //0x00007cc4 imulq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00007cc8 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00007ccc imull $-10000, %ecx, %eax + 0x44, 0x01, 0xe8, //0x00007cd2 addl %r13d, %eax + 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00007cd5 imulq $1374389535, %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007cdc shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00007ce0 imull $100, %edx, %ebx + 0x29, 0xd8, //0x00007ce3 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0xa4, 0x41, 0x00, 0x00, //0x00007ce5 leaq $16804(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x00007cec movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x46, 0xfe, //0x00007cf0 movw %ax, $-2(%rsi) + 0x48, 0x8d, 0x46, 0xfc, //0x00007cf4 leaq $-4(%rsi), %rax + 0x0f, 0xb7, 0x14, 0x53, //0x00007cf8 movzwl (%rbx,%rdx,2), %edx + 0x66, 0x89, 0x56, 0xfc, //0x00007cfc movw %dx, $-4(%rsi) + 0x41, 0x89, 0xcd, //0x00007d00 movl %ecx, %r13d + 0x41, 0x83, 0xfd, 0x64, //0x00007d03 cmpl $100, %r13d + 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x00007d07 jae LBB31_44 + //0x00007d0d LBB31_29 + 0x44, 0x89, 0xe9, //0x00007d0d movl %r13d, %ecx + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00007d10 jmp LBB31_46 + //0x00007d15 LBB31_30 + 0x45, 0x31, 0xc9, //0x00007d15 xorl %r9d, %r9d + 0x48, 0x89, 0xd9, //0x00007d18 movq %rbx, %rcx + 0x45, 0x89, 0xeb, //0x00007d1b movl %r13d, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x00007d1e cmpl $100, %r11d + 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00007d22 jb LBB31_31 + //0x00007d28 LBB31_64 + 0x48, 0xff, 0xc9, //0x00007d28 decq %rcx + 0x4c, 0x8d, 0x15, 0x5e, 0x41, 0x00, 0x00, //0x00007d2b leaq $16734(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007d32 .p2align 4, 0x90 + //0x00007d40 LBB31_65 + 0x44, 0x89, 0xda, //0x00007d40 movl %r11d, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00007d43 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007d4a shrq $37, %rdx + 0x6b, 0xc2, 0x64, //0x00007d4e imull $100, %edx, %eax + 0x44, 0x89, 0xde, //0x00007d51 movl %r11d, %esi + 0x29, 0xc6, //0x00007d54 subl %eax, %esi + 0x41, 0x0f, 0xb7, 0x04, 0x72, //0x00007d56 movzwl (%r10,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xff, //0x00007d5b movw %ax, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00007d5f addq $-2, %rcx + 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00007d63 cmpl $9999, %r11d + 0x41, 0x89, 0xd3, //0x00007d6a movl %edx, %r11d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00007d6d ja LBB31_65 + //0x00007d73 LBB31_66 + 0x49, 0x8d, 0x70, 0x01, //0x00007d73 leaq $1(%r8), %rsi + 0x83, 0xfa, 0x0a, //0x00007d77 cmpl $10, %edx + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00007d7a jb LBB31_68 + 0x89, 0xd0, //0x00007d80 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x07, 0x41, 0x00, 0x00, //0x00007d82 leaq $16647(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00007d89 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00007d8c movb $1(%rcx,%rax,2), %al + 0x41, 0x88, 0x50, 0x01, //0x00007d90 movb %dl, $1(%r8) + 0x41, 0x88, 0x40, 0x02, //0x00007d94 movb %al, $2(%r8) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00007d98 jmp LBB31_69 + //0x00007d9d LBB31_68 + 0x80, 0xc2, 0x30, //0x00007d9d addb $48, %dl + 0x88, 0x16, //0x00007da0 movb %dl, (%rsi) + //0x00007da2 LBB31_69 + 0x4c, 0x29, 0xcb, //0x00007da2 subq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007da5 .p2align 4, 0x90 + //0x00007db0 LBB31_70 + 0x80, 0x7b, 0xff, 0x30, //0x00007db0 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00007db4 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00007db8 je LBB31_70 + 0x41, 0x88, 0x10, //0x00007dbe movb %dl, (%r8) + 0x48, 0x8d, 0x43, 0x01, //0x00007dc1 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00007dc5 movq %rax, %rcx + 0x48, 0x29, 0xf1, //0x00007dc8 subq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00007dcb cmpq $2, %rcx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00007dcf jl LBB31_73 + 0xc6, 0x06, 0x2e, //0x00007dd5 movb $46, (%rsi) + 0x48, 0x89, 0xc3, //0x00007dd8 movq %rax, %rbx + //0x00007ddb LBB31_73 + 0xc6, 0x03, 0x65, //0x00007ddb movb $101, (%rbx) + 0x45, 0x85, 0xff, //0x00007dde testl %r15d, %r15d + 0x0f, 0x8e, 0x41, 0x01, 0x00, 0x00, //0x00007de1 jle LBB31_76 + 0x41, 0xff, 0xcf, //0x00007de7 decl %r15d + 0xc6, 0x43, 0x01, 0x2b, //0x00007dea movb $43, $1(%rbx) + 0x44, 0x89, 0xf8, //0x00007dee movl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00007df1 cmpl $100, %eax + 0x0f, 0x8c, 0x43, 0x01, 0x00, 0x00, //0x00007df4 jl LBB31_77 + //0x00007dfa LBB31_75 + 0x89, 0xc1, //0x00007dfa movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007dfc movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00007e01 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00007e05 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x00007e09 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x00007e0c leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x00007e0f subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x78, 0x40, 0x00, 0x00, //0x00007e11 leaq $16504(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x00007e18 movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x00007e1c movw %cx, $2(%rbx) + 0x0c, 0x30, //0x00007e20 orb $48, %al + 0x88, 0x43, 0x04, //0x00007e22 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x00007e25 addq $5, %rbx + 0x49, 0x89, 0xd8, //0x00007e29 movq %rbx, %r8 + 0xe9, 0x7f, 0x08, 0x00, 0x00, //0x00007e2c jmp LBB31_137 + //0x00007e31 LBB31_32 + 0xd3, 0xee, //0x00007e31 shrl %cl, %esi + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00007e33 cmpl $100000, %esi + 0x0f, 0x82, 0x1a, 0x02, 0x00, 0x00, //0x00007e39 jb LBB31_52 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00007e3f movl $6, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00007e44 cmpl $1000000, %esi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00007e4a jb LBB31_36 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00007e50 movl $7, %eax + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00007e55 cmpl $10000000, %esi + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007e5b jb LBB31_36 + 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00007e61 cmpl $100000000, %esi + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00007e67 movl $9, %eax + 0x48, 0x83, 0xd8, 0x00, //0x00007e6c sbbq $0, %rax + //0x00007e70 LBB31_36 + 0x4c, 0x01, 0xc0, //0x00007e70 addq %r8, %rax + //0x00007e73 LBB31_37 + 0x89, 0xf1, //0x00007e73 movl %esi, %ecx + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00007e75 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00007e7a imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00007e7e shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00007e82 imull $-10000, %edx, %ecx + 0x01, 0xf1, //0x00007e88 addl %esi, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x00007e8a imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00007e91 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00007e95 imull $100, %esi, %ebx + 0x29, 0xd9, //0x00007e98 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0xef, 0x3f, 0x00, 0x00, //0x00007e9a leaq $16367(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00007ea1 movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00007ea5 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x73, //0x00007ea9 movzwl (%rbx,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00007ead movw %cx, $-4(%rax) + 0x49, 0x89, 0xc1, //0x00007eb1 movq %rax, %r9 + 0x48, 0x83, 0xc0, 0xfc, //0x00007eb4 addq $-4, %rax + 0x89, 0xd6, //0x00007eb8 movl %edx, %esi + 0x83, 0xfe, 0x64, //0x00007eba cmpl $100, %esi + 0x0f, 0x83, 0xd5, 0x01, 0x00, 0x00, //0x00007ebd jae LBB31_56 + 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00007ec3 jmp LBB31_58 + //0x00007ec8 LBB31_38 + 0x45, 0x85, 0xff, //0x00007ec8 testl %r15d, %r15d + 0x0f, 0x8f, 0x90, 0x04, 0x00, 0x00, //0x00007ecb jg LBB31_98 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00007ed1 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x00007ed7 addq $2, %r8 + 0x45, 0x85, 0xff, //0x00007edb testl %r15d, %r15d + 0x0f, 0x89, 0x7d, 0x04, 0x00, 0x00, //0x00007ede jns LBB31_98 + 0x31, 0xf6, //0x00007ee4 xorl %esi, %esi + 0x41, 0x83, 0xff, 0x80, //0x00007ee6 cmpl $-128, %r15d + 0x0f, 0x87, 0x5a, 0x04, 0x00, 0x00, //0x00007eea ja LBB31_96 + 0x45, 0x89, 0xfa, //0x00007ef0 movl %r15d, %r10d + 0x41, 0xf7, 0xd2, //0x00007ef3 notl %r10d + 0x49, 0xff, 0xc2, //0x00007ef6 incq %r10 + 0x4c, 0x89, 0xd6, //0x00007ef9 movq %r10, %rsi + 0x48, 0x83, 0xe6, 0x80, //0x00007efc andq $-128, %rsi + 0x48, 0x8d, 0x46, 0x80, //0x00007f00 leaq $-128(%rsi), %rax + 0x48, 0x89, 0xc1, //0x00007f04 movq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00007f07 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x00007f0b incq %rcx + 0x41, 0x89, 0xcb, //0x00007f0e movl %ecx, %r11d + 0x41, 0x83, 0xe3, 0x03, //0x00007f11 andl $3, %r11d + 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00007f15 cmpq $384, %rax + 0x0f, 0x83, 0x38, 0x03, 0x00, 0x00, //0x00007f1b jae LBB31_90 + 0x31, 0xdb, //0x00007f21 xorl %ebx, %ebx + 0xe9, 0xda, 0x03, 0x00, 0x00, //0x00007f23 jmp LBB31_92 + //0x00007f28 LBB31_76 + 0xc6, 0x43, 0x01, 0x2d, //0x00007f28 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007f2c movl $1, %eax + 0x44, 0x29, 0xf8, //0x00007f31 subl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00007f34 cmpl $100, %eax + 0x0f, 0x8d, 0xbd, 0xfe, 0xff, 0xff, //0x00007f37 jge LBB31_75 + //0x00007f3d LBB31_77 + 0x83, 0xf8, 0x0a, //0x00007f3d cmpl $10, %eax + 0x0f, 0x8c, 0x02, 0x01, 0x00, 0x00, //0x00007f40 jl LBB31_79 + 0x48, 0x98, //0x00007f46 cltq + 0x48, 0x8d, 0x0d, 0x41, 0x3f, 0x00, 0x00, //0x00007f48 leaq $16193(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00007f4f movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00007f53 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00007f57 addq $4, %rbx + 0x49, 0x89, 0xd8, //0x00007f5b movq %rbx, %r8 + 0xe9, 0x4d, 0x07, 0x00, 0x00, //0x00007f5e jmp LBB31_137 + //0x00007f63 LBB31_43 + 0x48, 0x89, 0xf0, //0x00007f63 movq %rsi, %rax + 0x41, 0x83, 0xfd, 0x64, //0x00007f66 cmpl $100, %r13d + 0x0f, 0x82, 0x9d, 0xfd, 0xff, 0xff, //0x00007f6a jb LBB31_29 + //0x00007f70 LBB31_44 + 0x48, 0xff, 0xc8, //0x00007f70 decq %rax + 0x4c, 0x8d, 0x15, 0x16, 0x3f, 0x00, 0x00, //0x00007f73 leaq $16150(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f7a .p2align 4, 0x90 + //0x00007f80 LBB31_45 + 0x44, 0x89, 0xe9, //0x00007f80 movl %r13d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00007f83 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00007f8a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x00007f8e imull $100, %ecx, %ebx + 0x44, 0x89, 0xea, //0x00007f91 movl %r13d, %edx + 0x29, 0xda, //0x00007f94 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x52, //0x00007f96 movzwl (%r10,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xff, //0x00007f9b movw %dx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00007f9f addq $-2, %rax + 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00007fa3 cmpl $9999, %r13d + 0x41, 0x89, 0xcd, //0x00007faa movl %ecx, %r13d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00007fad ja LBB31_45 + //0x00007fb3 LBB31_46 + 0x49, 0x63, 0xc7, //0x00007fb3 movslq %r15d, %rax + 0x83, 0xf9, 0x0a, //0x00007fb6 cmpl $10, %ecx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00007fb9 jb LBB31_48 + 0x89, 0xc9, //0x00007fbf movl %ecx, %ecx + 0x48, 0x8d, 0x15, 0xc8, 0x3e, 0x00, 0x00, //0x00007fc1 leaq $16072(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00007fc8 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00007fcc movw %cx, (%r8) + 0x49, 0x01, 0xc0, //0x00007fd0 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00007fd3 cmpq %rax, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00007fd6 jl LBB31_49 + 0xe9, 0xcf, 0x06, 0x00, 0x00, //0x00007fdc jmp LBB31_137 + //0x00007fe1 LBB31_48 + 0x80, 0xc1, 0x30, //0x00007fe1 addb $48, %cl + 0x41, 0x88, 0x08, //0x00007fe4 movb %cl, (%r8) + 0x49, 0x01, 0xc0, //0x00007fe7 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00007fea cmpq %rax, %r12 + 0x0f, 0x8d, 0xbd, 0x06, 0x00, 0x00, //0x00007fed jge LBB31_137 + //0x00007ff3 LBB31_49 + 0x4b, 0x8d, 0x04, 0x21, //0x00007ff3 leaq (%r9,%r12), %rax + 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x00007ff7 leaq $1(%rdi,%rax), %r11 + 0x4d, 0x39, 0xc3, //0x00007ffc cmpq %r8, %r11 + 0x4d, 0x0f, 0x46, 0xd8, //0x00007fff cmovbeq %r8, %r11 + 0x4a, 0x8d, 0x0c, 0x0f, //0x00008003 leaq (%rdi,%r9), %rcx + 0x4c, 0x01, 0xe1, //0x00008007 addq %r12, %rcx + 0x49, 0x29, 0xcb, //0x0000800a subq %rcx, %r11 + 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000800d cmpq $128, %r11 + 0x0f, 0x82, 0x06, 0x02, 0x00, 0x00, //0x00008014 jb LBB31_87 + 0x4d, 0x89, 0xda, //0x0000801a movq %r11, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x0000801d andq $-128, %r10 + 0x49, 0x8d, 0x4a, 0x80, //0x00008021 leaq $-128(%r10), %rcx + 0x48, 0x89, 0xcb, //0x00008025 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00008028 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x0000802c incq %rbx + 0x89, 0xda, //0x0000802f movl %ebx, %edx + 0x83, 0xe2, 0x03, //0x00008031 andl $3, %edx + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x00008034 cmpq $384, %rcx + 0x0f, 0x83, 0xe8, 0x00, 0x00, 0x00, //0x0000803b jae LBB31_80 + 0x31, 0xc0, //0x00008041 xorl %eax, %eax + 0xe9, 0x88, 0x01, 0x00, 0x00, //0x00008043 jmp LBB31_82 + //0x00008048 LBB31_79 + 0x04, 0x30, //0x00008048 addb $48, %al + 0x88, 0x43, 0x02, //0x0000804a movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x0000804d addq $3, %rbx + 0x49, 0x89, 0xd8, //0x00008051 movq %rbx, %r8 + 0xe9, 0x57, 0x06, 0x00, 0x00, //0x00008054 jmp LBB31_137 + //0x00008059 LBB31_52 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008059 movl $1, %r9d + 0x83, 0xfe, 0x0a, //0x0000805f cmpl $10, %esi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00008062 jb LBB31_55 + 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00008068 movl $2, %r9d + 0x83, 0xfe, 0x64, //0x0000806e cmpl $100, %esi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008071 jb LBB31_55 + 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00008077 movl $3, %r9d + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000807d cmpl $1000, %esi + 0x0f, 0x83, 0xab, 0x01, 0x00, 0x00, //0x00008083 jae LBB31_88 + //0x00008089 LBB31_55 + 0x4d, 0x01, 0xc1, //0x00008089 addq %r8, %r9 + 0x4c, 0x89, 0xc8, //0x0000808c movq %r9, %rax + 0x83, 0xfe, 0x64, //0x0000808f cmpl $100, %esi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x00008092 jb LBB31_58 + //0x00008098 LBB31_56 + 0x48, 0xff, 0xc8, //0x00008098 decq %rax + 0x4c, 0x8d, 0x15, 0xee, 0x3d, 0x00, 0x00, //0x0000809b leaq $15854(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000080a2 .p2align 4, 0x90 + //0x000080b0 LBB31_57 + 0x89, 0xf3, //0x000080b0 movl %esi, %ebx + 0x89, 0xf6, //0x000080b2 movl %esi, %esi + 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x000080b4 imulq $1374389535, %rsi, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x000080bb shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x000080bf imull $100, %esi, %ecx + 0x89, 0xda, //0x000080c2 movl %ebx, %edx + 0x29, 0xca, //0x000080c4 subl %ecx, %edx + 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x000080c6 movzwl (%r10,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xff, //0x000080cb movw %cx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000080cf addq $-2, %rax + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000080d3 cmpl $9999, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x000080d9 ja LBB31_57 + //0x000080df LBB31_58 + 0x83, 0xfe, 0x0a, //0x000080df cmpl $10, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000080e2 jb LBB31_60 + 0x89, 0xf0, //0x000080e8 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0x9f, 0x3d, 0x00, 0x00, //0x000080ea leaq $15775(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000080f1 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x000080f5 movw %ax, (%r8) + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000080f9 jmp LBB31_61 + //0x000080fe LBB31_60 + 0x40, 0x80, 0xc6, 0x30, //0x000080fe addb $48, %sil + 0x41, 0x88, 0x30, //0x00008102 movb %sil, (%r8) + //0x00008105 LBB31_61 + 0x41, 0x29, 0xf9, //0x00008105 subl %edi, %r9d + 0x45, 0x89, 0xc8, //0x00008108 movl %r9d, %r8d + 0xe9, 0xa3, 0x05, 0x00, 0x00, //0x0000810b jmp LBB31_138 + //0x00008110 LBB31_62 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00008110 movl $4, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00008116 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x0000811a cmpl $100, %r11d + 0x0f, 0x82, 0x73, 0xfb, 0xff, 0xff, //0x0000811e jb LBB31_31 + 0xe9, 0xff, 0xfb, 0xff, 0xff, //0x00008124 jmp LBB31_64 + //0x00008129 LBB31_80 + 0x48, 0x29, 0xd3, //0x00008129 subq %rdx, %rbx + 0x48, 0x8d, 0x8c, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x0000812c leaq $480(%rdi,%rax), %rcx + 0x31, 0xc0, //0x00008134 xorl %eax, %eax + 0xc5, 0xfd, 0x6f, 0x05, 0x42, 0xf8, 0xff, 0xff, //0x00008136 vmovdqa $-1982(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + 0x90, 0x90, //0x0000813e .p2align 4, 0x90 + //0x00008140 LBB31_81 + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xfe, 0xff, 0xff, //0x00008140 vmovdqu %ymm0, $-480(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xfe, 0xff, 0xff, //0x00008149 vmovdqu %ymm0, $-448(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xfe, 0xff, 0xff, //0x00008152 vmovdqu %ymm0, $-416(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0xfe, 0xff, 0xff, //0x0000815b vmovdqu %ymm0, $-384(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0xfe, 0xff, 0xff, //0x00008164 vmovdqu %ymm0, $-352(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0xfe, 0xff, 0xff, //0x0000816d vmovdqu %ymm0, $-320(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0xfe, 0xff, 0xff, //0x00008176 vmovdqu %ymm0, $-288(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0xff, 0xff, 0xff, //0x0000817f vmovdqu %ymm0, $-256(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x00008188 vmovdqu %ymm0, $-224(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x00008191 vmovdqu %ymm0, $-192(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x0000819a vmovdqu %ymm0, $-160(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x80, //0x000081a3 vmovdqu %ymm0, $-128(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xa0, //0x000081a9 vmovdqu %ymm0, $-96(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xc0, //0x000081af vmovdqu %ymm0, $-64(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xe0, //0x000081b5 vmovdqu %ymm0, $-32(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x000081bb vmovdqu %ymm0, (%rcx,%rax) + 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x000081c0 addq $512, %rax + 0x48, 0x83, 0xc3, 0xfc, //0x000081c6 addq $-4, %rbx + 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000081ca jne LBB31_81 + //0x000081d0 LBB31_82 + 0x48, 0x85, 0xd2, //0x000081d0 testq %rdx, %rdx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x000081d3 je LBB31_85 + 0x4c, 0x01, 0xc8, //0x000081d9 addq %r9, %rax + 0x4c, 0x01, 0xe0, //0x000081dc addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x60, //0x000081df leaq $96(%rdi,%rax), %rax + 0x48, 0xf7, 0xda, //0x000081e4 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x91, 0xf7, 0xff, 0xff, //0x000081e7 vmovdqa $-2159(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + 0x90, //0x000081ef .p2align 4, 0x90 + //0x000081f0 LBB31_84 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x000081f0 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x000081f5 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x000081fa vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x000081ff vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00008203 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00008207 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000820a jne LBB31_84 + //0x00008210 LBB31_85 + 0x4d, 0x39, 0xda, //0x00008210 cmpq %r11, %r10 + 0x0f, 0x84, 0x97, 0x04, 0x00, 0x00, //0x00008213 je LBB31_137 + 0x4c, 0x01, 0xd6, //0x00008219 addq %r10, %rsi + 0x90, 0x90, 0x90, 0x90, //0x0000821c .p2align 4, 0x90 + //0x00008220 LBB31_87 + 0xc6, 0x06, 0x30, //0x00008220 movb $48, (%rsi) + 0x48, 0xff, 0xc6, //0x00008223 incq %rsi + 0x4c, 0x39, 0xc6, //0x00008226 cmpq %r8, %rsi + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00008229 jb LBB31_87 + 0xe9, 0x7c, 0x04, 0x00, 0x00, //0x0000822f jmp LBB31_137 + //0x00008234 LBB31_88 + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008234 cmpl $10000, %esi + 0x4c, 0x89, 0xc0, //0x0000823a movq %r8, %rax + 0x48, 0x83, 0xd8, 0x00, //0x0000823d sbbq $0, %rax + 0x48, 0x83, 0xc0, 0x05, //0x00008241 addq $5, %rax + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008245 cmpl $10000, %esi + 0x0f, 0x83, 0x22, 0xfc, 0xff, 0xff, //0x0000824b jae LBB31_37 + 0x49, 0x89, 0xc1, //0x00008251 movq %rax, %r9 + 0xe9, 0x3f, 0xfe, 0xff, 0xff, //0x00008254 jmp LBB31_56 + //0x00008259 LBB31_90 + 0x49, 0x8d, 0x84, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x00008259 leaq $482(%r9,%rdi), %rax + 0x4d, 0x89, 0xde, //0x00008261 movq %r11, %r14 + 0x49, 0x29, 0xce, //0x00008264 subq %rcx, %r14 + 0x31, 0xdb, //0x00008267 xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x05, 0x0f, 0xf7, 0xff, 0xff, //0x00008269 vmovdqa $-2289(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + //0x00008271 LBB31_91 + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xfe, 0xff, 0xff, //0x00008271 vmovdqu %ymm0, $-480(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xfe, 0xff, 0xff, //0x0000827a vmovdqu %ymm0, $-448(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xfe, 0xff, 0xff, //0x00008283 vmovdqu %ymm0, $-416(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x80, 0xfe, 0xff, 0xff, //0x0000828c vmovdqu %ymm0, $-384(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xa0, 0xfe, 0xff, 0xff, //0x00008295 vmovdqu %ymm0, $-352(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xc0, 0xfe, 0xff, 0xff, //0x0000829e vmovdqu %ymm0, $-320(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xe0, 0xfe, 0xff, 0xff, //0x000082a7 vmovdqu %ymm0, $-288(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x00, 0xff, 0xff, 0xff, //0x000082b0 vmovdqu %ymm0, $-256(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xff, 0xff, 0xff, //0x000082b9 vmovdqu %ymm0, $-224(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xff, 0xff, 0xff, //0x000082c2 vmovdqu %ymm0, $-192(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xff, 0xff, 0xff, //0x000082cb vmovdqu %ymm0, $-160(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0x80, //0x000082d4 vmovdqu %ymm0, $-128(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xa0, //0x000082da vmovdqu %ymm0, $-96(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xc0, //0x000082e0 vmovdqu %ymm0, $-64(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xe0, //0x000082e6 vmovdqu %ymm0, $-32(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x18, //0x000082ec vmovdqu %ymm0, (%rax,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x000082f1 addq $512, %rbx + 0x49, 0x83, 0xc6, 0x04, //0x000082f8 addq $4, %r14 + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x000082fc jne LBB31_91 + //0x00008302 LBB31_92 + 0x4d, 0x85, 0xdb, //0x00008302 testq %r11, %r11 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00008305 je LBB31_95 + 0x4c, 0x01, 0xcb, //0x0000830b addq %r9, %rbx + 0x48, 0x8d, 0x44, 0x1f, 0x62, //0x0000830e leaq $98(%rdi,%rbx), %rax + 0x49, 0xf7, 0xdb, //0x00008313 negq %r11 + 0xc5, 0xfd, 0x6f, 0x05, 0x62, 0xf6, 0xff, 0xff, //0x00008316 vmovdqa $-2462(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + //0x0000831e LBB31_94 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x0000831e vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00008323 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00008328 vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x0000832d vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00008331 subq $-128, %rax + 0x49, 0xff, 0xc3, //0x00008335 incq %r11 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00008338 jne LBB31_94 + //0x0000833e LBB31_95 + 0x49, 0x01, 0xf0, //0x0000833e addq %rsi, %r8 + 0x49, 0x39, 0xf2, //0x00008341 cmpq %rsi, %r10 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00008344 je LBB31_98 + //0x0000834a LBB31_96 + 0x44, 0x89, 0xf8, //0x0000834a movl %r15d, %eax + 0xf7, 0xd8, //0x0000834d negl %eax + 0x90, //0x0000834f .p2align 4, 0x90 + //0x00008350 LBB31_97 + 0x41, 0xc6, 0x00, 0x30, //0x00008350 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00008354 incq %r8 + 0xff, 0xc6, //0x00008357 incl %esi + 0x39, 0xc6, //0x00008359 cmpl %eax, %esi + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000835b jl LBB31_97 + //0x00008361 LBB31_98 + 0x4b, 0x8d, 0x04, 0x20, //0x00008361 leaq (%r8,%r12), %rax + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008365 cmpl $10000, %r13d + 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x0000836c jb LBB31_101 + 0x44, 0x89, 0xe9, //0x00008372 movl %r13d, %ecx + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008375 movl $3518437209, %r10d + 0x4c, 0x0f, 0xaf, 0xd1, //0x0000837b imulq %rcx, %r10 + 0x49, 0xc1, 0xea, 0x2d, //0x0000837f shrq $45, %r10 + 0x41, 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00008383 imull $-10000, %r10d, %ecx + 0x44, 0x01, 0xe9, //0x0000838a addl %r13d, %ecx + 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x0000838d je LBB31_103 + 0x89, 0xca, //0x00008393 movl %ecx, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00008395 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x0000839c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x000083a0 imull $100, %edx, %ebx + 0x29, 0xd9, //0x000083a3 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0xe4, 0x3a, 0x00, 0x00, //0x000083a5 leaq $15076(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x000083ac movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x000083b0 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x53, //0x000083b4 movzwl (%rbx,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x000083b8 movw %cx, $-4(%rax) + 0x45, 0x31, 0xc9, //0x000083bc xorl %r9d, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x000083bf addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x000083c3 cmpl $100, %r10d + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x000083c7 jae LBB31_105 + //0x000083cd LBB31_102 + 0x44, 0x89, 0xd1, //0x000083cd movl %r10d, %ecx + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000083d0 jmp LBB31_107 + //0x000083d5 LBB31_101 + 0x45, 0x31, 0xc9, //0x000083d5 xorl %r9d, %r9d + 0x45, 0x89, 0xea, //0x000083d8 movl %r13d, %r10d + 0x41, 0x83, 0xfa, 0x64, //0x000083db cmpl $100, %r10d + 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x000083df jb LBB31_102 + //0x000083e5 LBB31_105 + 0x48, 0xff, 0xc8, //0x000083e5 decq %rax + 0x48, 0x8d, 0x15, 0xa1, 0x3a, 0x00, 0x00, //0x000083e8 leaq $15009(%rip), %rdx /* _Digits+0(%rip) */ + 0x90, //0x000083ef .p2align 4, 0x90 + //0x000083f0 LBB31_106 + 0x44, 0x89, 0xd1, //0x000083f0 movl %r10d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000083f3 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000083fa shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x000083fe imull $100, %ecx, %ebx + 0x44, 0x89, 0xd6, //0x00008401 movl %r10d, %esi + 0x29, 0xde, //0x00008404 subl %ebx, %esi + 0x0f, 0xb7, 0x34, 0x72, //0x00008406 movzwl (%rdx,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xff, //0x0000840a movw %si, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000840e addq $-2, %rax + 0x41, 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00008412 cmpl $9999, %r10d + 0x41, 0x89, 0xca, //0x00008419 movl %ecx, %r10d + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x0000841c ja LBB31_106 + //0x00008422 LBB31_107 + 0x83, 0xf9, 0x0a, //0x00008422 cmpl $10, %ecx + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00008425 jb LBB31_109 + 0x89, 0xc8, //0x0000842b movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x5c, 0x3a, 0x00, 0x00, //0x0000842d leaq $14940(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008434 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00008438 movw %ax, (%r8) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x0000843c jmp LBB31_110 + //0x00008441 LBB31_109 + 0x80, 0xc1, 0x30, //0x00008441 addb $48, %cl + 0x41, 0x88, 0x08, //0x00008444 movb %cl, (%r8) + //0x00008447 LBB31_110 + 0x4d, 0x29, 0xcc, //0x00008447 subq %r9, %r12 + 0x49, 0x8d, 0x74, 0x24, 0x01, //0x0000844a leaq $1(%r12), %rsi + 0x49, 0x8d, 0x54, 0x24, 0x61, //0x0000844f leaq $97(%r12), %rdx + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00008454 leaq $2(%r12), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008459 .p2align 4, 0x90 + //0x00008460 LBB31_111 + 0x48, 0xff, 0xca, //0x00008460 decq %rdx + 0x48, 0xff, 0xce, //0x00008463 decq %rsi + 0x48, 0xff, 0xc8, //0x00008466 decq %rax + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00008469 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000846f leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00008474 je LBB31_111 + 0x4d, 0x8d, 0x0c, 0x30, //0x0000847a leaq (%r8,%rsi), %r9 + 0x45, 0x85, 0xff, //0x0000847e testl %r15d, %r15d + 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00008481 jle LBB31_116 + 0x44, 0x89, 0xc9, //0x00008487 movl %r9d, %ecx + 0x44, 0x29, 0xc1, //0x0000848a subl %r8d, %ecx + 0x41, 0x39, 0xcf, //0x0000848d cmpl %ecx, %r15d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00008490 jge LBB31_117 + 0x43, 0x8d, 0x0c, 0x07, //0x00008496 leal (%r15,%r8), %ecx + 0x41, 0x29, 0xc9, //0x0000849a subl %ecx, %r9d + 0x49, 0x8d, 0x49, 0xff, //0x0000849d leaq $-1(%r9), %rcx + 0x45, 0x89, 0xca, //0x000084a1 movl %r9d, %r10d + 0x41, 0x83, 0xe2, 0x03, //0x000084a4 andl $3, %r10d + 0x48, 0x83, 0xf9, 0x03, //0x000084a8 cmpq $3, %rcx + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x000084ac jae LBB31_121 + 0x31, 0xc9, //0x000084b2 xorl %ecx, %ecx + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x000084b4 jmp LBB31_124 + //0x000084b9 LBB31_117 + 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x000084b9 jle LBB31_116 + 0x45, 0x01, 0xc7, //0x000084bf addl %r8d, %r15d + 0x45, 0x89, 0xce, //0x000084c2 movl %r9d, %r14d + 0x41, 0xf7, 0xd6, //0x000084c5 notl %r14d + 0x45, 0x01, 0xfe, //0x000084c8 addl %r15d, %r14d + 0x45, 0x31, 0xd2, //0x000084cb xorl %r10d, %r10d + 0x4d, 0x89, 0xcb, //0x000084ce movq %r9, %r11 + 0x41, 0x83, 0xfe, 0x7e, //0x000084d1 cmpl $126, %r14d + 0x0f, 0x86, 0xb4, 0x01, 0x00, 0x00, //0x000084d5 jbe LBB31_135 + 0x49, 0xff, 0xc6, //0x000084db incq %r14 + 0x4d, 0x89, 0xf2, //0x000084de movq %r14, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x000084e1 andq $-128, %r10 + 0x4f, 0x8d, 0x1c, 0x10, //0x000084e5 leaq (%r8,%r10), %r11 + 0x49, 0x8d, 0x5a, 0x80, //0x000084e9 leaq $-128(%r10), %rbx + 0x48, 0x89, 0xd9, //0x000084ed movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x000084f0 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x000084f4 incq %rcx + 0x41, 0x89, 0xcc, //0x000084f7 movl %ecx, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x000084fa andl $3, %r12d + 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x000084fe cmpq $384, %rbx + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x00008505 jae LBB31_129 + 0x31, 0xc9, //0x0000850b xorl %ecx, %ecx + 0xe9, 0x30, 0x01, 0x00, 0x00, //0x0000850d jmp LBB31_131 + //0x00008512 LBB31_116 + 0x4d, 0x89, 0xc8, //0x00008512 movq %r9, %r8 + 0xe9, 0x96, 0x01, 0x00, 0x00, //0x00008515 jmp LBB31_137 + //0x0000851a LBB31_103 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x0000851a movl $4, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x00008520 addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x00008524 cmpl $100, %r10d + 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x00008528 jb LBB31_102 + 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x0000852e jmp LBB31_105 + //0x00008533 LBB31_121 + 0x4d, 0x89, 0xd3, //0x00008533 movq %r10, %r11 + 0x4d, 0x29, 0xcb, //0x00008536 subq %r9, %r11 + 0x31, 0xc9, //0x00008539 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000853b .p2align 4, 0x90 + //0x00008540 LBB31_122 + 0x49, 0x8d, 0x1c, 0x08, //0x00008540 leaq (%r8,%rcx), %rbx + 0x8b, 0x54, 0x1e, 0xfc, //0x00008544 movl $-4(%rsi,%rbx), %edx + 0x89, 0x54, 0x1e, 0xfd, //0x00008548 movl %edx, $-3(%rsi,%rbx) + 0x48, 0x83, 0xc1, 0xfc, //0x0000854c addq $-4, %rcx + 0x49, 0x39, 0xcb, //0x00008550 cmpq %rcx, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008553 jne LBB31_122 + 0x48, 0xf7, 0xd9, //0x00008559 negq %rcx + //0x0000855c LBB31_124 + 0x4d, 0x85, 0xd2, //0x0000855c testq %r10, %r10 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x0000855f je LBB31_127 + 0x49, 0xf7, 0xda, //0x00008565 negq %r10 + 0x4c, 0x89, 0xc2, //0x00008568 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x0000856b subq %rcx, %rdx + 0x31, 0xc9, //0x0000856e xorl %ecx, %ecx + //0x00008570 .p2align 4, 0x90 + //0x00008570 LBB31_126 + 0x48, 0x8d, 0x34, 0x0a, //0x00008570 leaq (%rdx,%rcx), %rsi + 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00008574 movzbl (%r12,%rsi), %ebx + 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00008579 movb %bl, $1(%r12,%rsi) + 0x48, 0xff, 0xc9, //0x0000857e decq %rcx + 0x49, 0x39, 0xca, //0x00008581 cmpq %rcx, %r10 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00008584 jne LBB31_126 + //0x0000858a LBB31_127 + 0x49, 0x63, 0xcf, //0x0000858a movslq %r15d, %rcx + 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x0000858d movb $46, (%r8,%rcx) + 0x49, 0x01, 0xc0, //0x00008592 addq %rax, %r8 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x00008595 jmp LBB31_137 + //0x0000859a LBB31_129 + 0x4c, 0x89, 0xe3, //0x0000859a movq %r12, %rbx + 0x48, 0x29, 0xcb, //0x0000859d subq %rcx, %rbx + 0x31, 0xc9, //0x000085a0 xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0xd6, 0xf3, 0xff, 0xff, //0x000085a2 vmovdqa $-3114(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + //0x000085aa LBB31_130 + 0x49, 0x8d, 0x04, 0x08, //0x000085aa leaq (%r8,%rcx), %rax + 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x000085ae vmovdqu %ymm0, (%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x20, //0x000085b3 vmovdqu %ymm0, $32(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x40, //0x000085b9 vmovdqu %ymm0, $64(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x60, //0x000085bf vmovdqu %ymm0, $96(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x00, 0x00, 0x00, //0x000085c5 vmovdqu %ymm0, $128(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x00, 0x00, 0x00, //0x000085ce vmovdqu %ymm0, $160(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x00, 0x00, 0x00, //0x000085d7 vmovdqu %ymm0, $192(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x00, 0x00, 0x00, //0x000085e0 vmovdqu %ymm0, $224(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0x01, 0x00, 0x00, //0x000085e9 vmovdqu %ymm0, $256(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0x01, 0x00, 0x00, //0x000085f2 vmovdqu %ymm0, $288(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0x01, 0x00, 0x00, //0x000085fb vmovdqu %ymm0, $320(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0x01, 0x00, 0x00, //0x00008604 vmovdqu %ymm0, $352(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x01, 0x00, 0x00, //0x0000860d vmovdqu %ymm0, $384(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x01, 0x00, 0x00, //0x00008616 vmovdqu %ymm0, $416(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x01, 0x00, 0x00, //0x0000861f vmovdqu %ymm0, $448(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x01, 0x00, 0x00, //0x00008628 vmovdqu %ymm0, $480(%rsi,%rax) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00008631 addq $512, %rcx + 0x48, 0x83, 0xc3, 0x04, //0x00008638 addq $4, %rbx + 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x0000863c jne LBB31_130 + //0x00008642 LBB31_131 + 0x49, 0x01, 0xf3, //0x00008642 addq %rsi, %r11 + 0x4d, 0x85, 0xe4, //0x00008645 testq %r12, %r12 + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00008648 je LBB31_134 + 0x49, 0x01, 0xc8, //0x0000864e addq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x00008651 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x00008654 negq %r12 + 0xc5, 0xfd, 0x6f, 0x05, 0x21, 0xf3, 0xff, 0xff, //0x00008657 vmovdqa $-3295(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + //0x0000865f LBB31_133 + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x0000865f vmovdqu %ymm0, $-96(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x00008665 vmovdqu %ymm0, $-64(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x0000866b vmovdqu %ymm0, $-32(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00008671 vmovdqu %ymm0, (%r8) + 0x49, 0x83, 0xe8, 0x80, //0x00008676 subq $-128, %r8 + 0x49, 0xff, 0xc4, //0x0000867a incq %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000867d jne LBB31_133 + //0x00008683 LBB31_134 + 0x4d, 0x89, 0xd8, //0x00008683 movq %r11, %r8 + 0x4d, 0x39, 0xd6, //0x00008686 cmpq %r10, %r14 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00008689 je LBB31_137 + //0x0000868f LBB31_135 + 0x45, 0x29, 0xd7, //0x0000868f subl %r10d, %r15d + 0x45, 0x29, 0xcf, //0x00008692 subl %r9d, %r15d + 0x4d, 0x89, 0xd8, //0x00008695 movq %r11, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008698 .p2align 4, 0x90 + //0x000086a0 LBB31_136 + 0x41, 0xc6, 0x00, 0x30, //0x000086a0 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x000086a4 incq %r8 + 0x41, 0xff, 0xcf, //0x000086a7 decl %r15d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x000086aa jne LBB31_136 + //0x000086b0 LBB31_137 + 0x41, 0x29, 0xf8, //0x000086b0 subl %edi, %r8d + //0x000086b3 LBB31_138 + 0x44, 0x89, 0xc0, //0x000086b3 movl %r8d, %eax + 0x5b, //0x000086b6 popq %rbx + 0x41, 0x5c, //0x000086b7 popq %r12 + 0x41, 0x5d, //0x000086b9 popq %r13 + 0x41, 0x5e, //0x000086bb popq %r14 + 0x41, 0x5f, //0x000086bd popq %r15 + 0x5d, //0x000086bf popq %rbp + 0xc5, 0xf8, 0x77, //0x000086c0 vzeroupper + 0xc3, //0x000086c3 retq + //0x000086c4 LBB31_139 + 0x45, 0x31, 0xc0, //0x000086c4 xorl %r8d, %r8d + 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x000086c7 jmp LBB31_138 + //0x000086cc LBB31_140 + 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x000086cc movl $-149, %r15d + 0x89, 0xc6, //0x000086d2 movl %eax, %esi + 0xe9, 0x46, 0xf3, 0xff, 0xff, //0x000086d4 jmp LBB31_5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000086d9 .p2align 4, 0x00 + //0x000086e0 LCPI32_0 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x000086e0 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' + //0x000086f0 LCPI32_1 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000086f0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00008700 LCPI32_2 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00008700 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + //0x00008710 LCPI32_3 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00008710 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x00008720 LCPI32_4 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00008720 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x00008730 LCPI32_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00008730 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00008740 .p2align 4, 0x90 + //0x00008740 _to_lower + 0x55, //0x00008740 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008741 movq %rsp, %rbp + 0x41, 0x56, //0x00008744 pushq %r14 + 0x53, //0x00008746 pushq %rbx + 0x31, 0xc9, //0x00008747 xorl %ecx, %ecx + 0xc5, 0xf9, 0x6f, 0x05, 0x8f, 0xff, 0xff, 0xff, //0x00008749 vmovdqa $-113(%rip), %xmm0 /* LCPI32_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x97, 0xff, 0xff, 0xff, //0x00008751 vmovdqa $-105(%rip), %xmm1 /* LCPI32_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x9f, 0xff, 0xff, 0xff, //0x00008759 vmovdqa $-97(%rip), %xmm2 /* LCPI32_2+0(%rip) */ + 0x48, 0x89, 0xd3, //0x00008761 movq %rdx, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008764 .p2align 4, 0x90 + //0x00008770 LBB32_1 + 0xc5, 0xfa, 0x6f, 0x1c, 0x0e, //0x00008770 vmovdqu (%rsi,%rcx), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x00008775 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x00008779 vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x0000877d vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x00008781 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00008785 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x0000878a vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x1c, 0x0f, //0x0000878e vmovdqu %xmm3, (%rdi,%rcx) + 0x48, 0x83, 0xc3, 0xf0, //0x00008793 addq $-16, %rbx + 0x48, 0x83, 0xc1, 0x10, //0x00008797 addq $16, %rcx + 0x48, 0x83, 0xfb, 0x0f, //0x0000879b cmpq $15, %rbx + 0x0f, 0x87, 0xcb, 0xff, 0xff, 0xff, //0x0000879f ja LBB32_1 + 0x49, 0x89, 0xd2, //0x000087a5 movq %rdx, %r10 + 0x49, 0x29, 0xca, //0x000087a8 subq %rcx, %r10 + 0x0f, 0x84, 0xe2, 0x01, 0x00, 0x00, //0x000087ab je LBB32_20 + 0x4c, 0x8d, 0x0c, 0x0f, //0x000087b1 leaq (%rdi,%rcx), %r9 + 0x4c, 0x8d, 0x04, 0x0e, //0x000087b5 leaq (%rsi,%rcx), %r8 + 0x48, 0x83, 0xfb, 0x10, //0x000087b9 cmpq $16, %rbx + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x000087bd jb LBB32_14 + 0x49, 0x83, 0xc2, 0x10, //0x000087c3 addq $16, %r10 + 0x48, 0x8d, 0x44, 0x0e, 0xf0, //0x000087c7 leaq $-16(%rsi,%rcx), %rax + 0x4c, 0x01, 0xd0, //0x000087cc addq %r10, %rax + 0x49, 0x39, 0xc1, //0x000087cf cmpq %rax, %r9 + 0x0f, 0x83, 0x2c, 0x00, 0x00, 0x00, //0x000087d2 jae LBB32_6 + 0x48, 0x8d, 0x44, 0x0f, 0xf0, //0x000087d8 leaq $-16(%rdi,%rcx), %rax + 0x4c, 0x01, 0xd0, //0x000087dd addq %r10, %rax + 0x49, 0x39, 0xc0, //0x000087e0 cmpq %rax, %r8 + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x000087e3 jae LBB32_6 + //0x000087e9 LBB32_14 + 0xf6, 0xc3, 0x01, //0x000087e9 testb $1, %bl + 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x000087ec jne LBB32_16 + //0x000087f2 LBB32_15 + 0x48, 0x89, 0xd9, //0x000087f2 movq %rbx, %rcx + 0x48, 0x83, 0xfb, 0x01, //0x000087f5 cmpq $1, %rbx + 0x0f, 0x85, 0x40, 0x01, 0x00, 0x00, //0x000087f9 jne LBB32_18 + 0xe9, 0x8f, 0x01, 0x00, 0x00, //0x000087ff jmp LBB32_20 + //0x00008804 LBB32_6 + 0x49, 0x89, 0xd8, //0x00008804 movq %rbx, %r8 + 0x49, 0x83, 0xe0, 0xf0, //0x00008807 andq $-16, %r8 + 0x49, 0x8d, 0x40, 0xf0, //0x0000880b leaq $-16(%r8), %rax + 0x49, 0x89, 0xc2, //0x0000880f movq %rax, %r10 + 0x49, 0xc1, 0xea, 0x04, //0x00008812 shrq $4, %r10 + 0x4d, 0x8d, 0x4a, 0x01, //0x00008816 leaq $1(%r10), %r9 + 0x48, 0x85, 0xc0, //0x0000881a testq %rax, %rax + 0x0f, 0x84, 0x75, 0x01, 0x00, 0x00, //0x0000881d je LBB32_7 + 0x41, 0x8d, 0x42, 0x01, //0x00008823 leal $1(%r10), %eax + 0x0f, 0xb6, 0xc0, //0x00008827 movzbl %al, %eax + 0x83, 0xe0, 0x01, //0x0000882a andl $1, %eax + 0x49, 0xf7, 0xd2, //0x0000882d notq %r10 + 0x49, 0x01, 0xc2, //0x00008830 addq %rax, %r10 + 0x45, 0x31, 0xdb, //0x00008833 xorl %r11d, %r11d + 0xc5, 0xf9, 0x6f, 0x05, 0xd2, 0xfe, 0xff, 0xff, //0x00008836 vmovdqa $-302(%rip), %xmm0 /* LCPI32_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xda, 0xfe, 0xff, 0xff, //0x0000883e vmovdqa $-294(%rip), %xmm1 /* LCPI32_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xe2, 0xfe, 0xff, 0xff, //0x00008846 vmovdqa $-286(%rip), %xmm2 /* LCPI32_5+0(%rip) */ + 0x90, 0x90, //0x0000884e .p2align 4, 0x90 + //0x00008850 LBB32_9 + 0x4e, 0x8d, 0x34, 0x1e, //0x00008850 leaq (%rsi,%r11), %r14 + 0xc4, 0xa1, 0x7a, 0x6f, 0x1c, 0x31, //0x00008854 vmovdqu (%rcx,%r14), %xmm3 + 0xc5, 0xe1, 0xfc, 0xe0, //0x0000885a vpaddb %xmm0, %xmm3, %xmm4 + 0xc5, 0xd9, 0xda, 0xe9, //0x0000885e vpminub %xmm1, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xe5, //0x00008862 vpcmpeqb %xmm5, %xmm4, %xmm4 + 0xc5, 0xe1, 0xfc, 0xea, //0x00008866 vpaddb %xmm2, %xmm3, %xmm5 + 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x0000886a vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 + 0x4a, 0x8d, 0x04, 0x1f, //0x00008870 leaq (%rdi,%r11), %rax + 0xc5, 0xfa, 0x7f, 0x1c, 0x01, //0x00008874 vmovdqu %xmm3, (%rcx,%rax) + 0xc4, 0xa1, 0x7a, 0x6f, 0x5c, 0x31, 0x10, //0x00008879 vmovdqu $16(%rcx,%r14), %xmm3 + 0xc5, 0xe1, 0xfc, 0xe0, //0x00008880 vpaddb %xmm0, %xmm3, %xmm4 + 0xc5, 0xd9, 0xda, 0xe9, //0x00008884 vpminub %xmm1, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xe5, //0x00008888 vpcmpeqb %xmm5, %xmm4, %xmm4 + 0xc5, 0xe1, 0xfc, 0xea, //0x0000888c vpaddb %xmm2, %xmm3, %xmm5 + 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x00008890 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 + 0xc5, 0xfa, 0x7f, 0x5c, 0x01, 0x10, //0x00008896 vmovdqu %xmm3, $16(%rcx,%rax) + 0x49, 0x83, 0xc3, 0x20, //0x0000889c addq $32, %r11 + 0x49, 0x83, 0xc2, 0x02, //0x000088a0 addq $2, %r10 + 0x0f, 0x85, 0xa6, 0xff, 0xff, 0xff, //0x000088a4 jne LBB32_9 + 0x41, 0xf6, 0xc1, 0x01, //0x000088aa testb $1, %r9b + 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x000088ae je LBB32_12 + //0x000088b4 LBB32_11 + 0x4a, 0x8d, 0x04, 0x1e, //0x000088b4 leaq (%rsi,%r11), %rax + 0xc5, 0xfa, 0x6f, 0x04, 0x01, //0x000088b8 vmovdqu (%rcx,%rax), %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x4b, 0xfe, 0xff, 0xff, //0x000088bd vpaddb $-437(%rip), %xmm0, %xmm1 /* LCPI32_3+0(%rip) */ + 0xc5, 0xf1, 0xda, 0x15, 0x53, 0xfe, 0xff, 0xff, //0x000088c5 vpminub $-429(%rip), %xmm1, %xmm2 /* LCPI32_4+0(%rip) */ + 0xc5, 0xf1, 0x74, 0xca, //0x000088cd vpcmpeqb %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0xfc, 0x15, 0x57, 0xfe, 0xff, 0xff, //0x000088d1 vpaddb $-425(%rip), %xmm0, %xmm2 /* LCPI32_5+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x4c, 0xc2, 0x10, //0x000088d9 vpblendvb %xmm1, %xmm2, %xmm0, %xmm0 + 0x49, 0x01, 0xfb, //0x000088df addq %rdi, %r11 + 0xc4, 0xa1, 0x7a, 0x7f, 0x04, 0x19, //0x000088e2 vmovdqu %xmm0, (%rcx,%r11) + //0x000088e8 LBB32_12 + 0x4c, 0x39, 0xc3, //0x000088e8 cmpq %r8, %rbx + 0x0f, 0x84, 0xa2, 0x00, 0x00, 0x00, //0x000088eb je LBB32_20 + 0x4c, 0x01, 0xc6, //0x000088f1 addq %r8, %rsi + 0x4c, 0x29, 0xc2, //0x000088f4 subq %r8, %rdx + 0x4c, 0x01, 0xc7, //0x000088f7 addq %r8, %rdi + 0x48, 0x01, 0xce, //0x000088fa addq %rcx, %rsi + 0x48, 0x29, 0xca, //0x000088fd subq %rcx, %rdx + 0x48, 0x01, 0xcf, //0x00008900 addq %rcx, %rdi + 0x49, 0x89, 0xf0, //0x00008903 movq %rsi, %r8 + 0x48, 0x89, 0xd3, //0x00008906 movq %rdx, %rbx + 0x49, 0x89, 0xf9, //0x00008909 movq %rdi, %r9 + 0xf6, 0xc3, 0x01, //0x0000890c testb $1, %bl + 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x0000890f je LBB32_15 + //0x00008915 LBB32_16 + 0x41, 0x0f, 0xb6, 0x00, //0x00008915 movzbl (%r8), %eax + 0x8d, 0x48, 0xbf, //0x00008919 leal $-65(%rax), %ecx + 0x8d, 0x50, 0x20, //0x0000891c leal $32(%rax), %edx + 0x80, 0xf9, 0x1a, //0x0000891f cmpb $26, %cl + 0x0f, 0xb6, 0xd2, //0x00008922 movzbl %dl, %edx + 0x0f, 0x43, 0xd0, //0x00008925 cmovael %eax, %edx + 0x48, 0x8d, 0x4b, 0xff, //0x00008928 leaq $-1(%rbx), %rcx + 0x41, 0x88, 0x11, //0x0000892c movb %dl, (%r9) + 0x49, 0xff, 0xc0, //0x0000892f incq %r8 + 0x49, 0xff, 0xc1, //0x00008932 incq %r9 + 0x48, 0x83, 0xfb, 0x01, //0x00008935 cmpq $1, %rbx + 0x0f, 0x84, 0x54, 0x00, 0x00, 0x00, //0x00008939 je LBB32_20 + //0x0000893f LBB32_18 + 0x31, 0xc0, //0x0000893f xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008941 .p2align 4, 0x90 + //0x00008950 LBB32_19 + 0x41, 0x0f, 0xb6, 0x14, 0x00, //0x00008950 movzbl (%r8,%rax), %edx + 0x8d, 0x72, 0xbf, //0x00008955 leal $-65(%rdx), %esi + 0x8d, 0x7a, 0x20, //0x00008958 leal $32(%rdx), %edi + 0x40, 0x80, 0xfe, 0x1a, //0x0000895b cmpb $26, %sil + 0x40, 0x0f, 0xb6, 0xf7, //0x0000895f movzbl %dil, %esi + 0x0f, 0x43, 0xf2, //0x00008963 cmovael %edx, %esi + 0x41, 0x88, 0x34, 0x01, //0x00008966 movb %sil, (%r9,%rax) + 0x41, 0x0f, 0xb6, 0x54, 0x00, 0x01, //0x0000896a movzbl $1(%r8,%rax), %edx + 0x8d, 0x72, 0xbf, //0x00008970 leal $-65(%rdx), %esi + 0x8d, 0x7a, 0x20, //0x00008973 leal $32(%rdx), %edi + 0x40, 0x80, 0xfe, 0x1a, //0x00008976 cmpb $26, %sil + 0x40, 0x0f, 0xb6, 0xf7, //0x0000897a movzbl %dil, %esi + 0x0f, 0x43, 0xf2, //0x0000897e cmovael %edx, %esi + 0x41, 0x88, 0x74, 0x01, 0x01, //0x00008981 movb %sil, $1(%r9,%rax) + 0x48, 0x83, 0xc0, 0x02, //0x00008986 addq $2, %rax + 0x48, 0x39, 0xc1, //0x0000898a cmpq %rax, %rcx + 0x0f, 0x85, 0xbd, 0xff, 0xff, 0xff, //0x0000898d jne LBB32_19 + //0x00008993 LBB32_20 + 0x5b, //0x00008993 popq %rbx + 0x41, 0x5e, //0x00008994 popq %r14 + 0x5d, //0x00008996 popq %rbp + 0xc3, //0x00008997 retq + //0x00008998 LBB32_7 + 0x45, 0x31, 0xdb, //0x00008998 xorl %r11d, %r11d + 0x41, 0xf6, 0xc1, 0x01, //0x0000899b testb $1, %r9b + 0x0f, 0x85, 0x0f, 0xff, 0xff, 0xff, //0x0000899f jne LBB32_11 + 0xe9, 0x3e, 0xff, 0xff, 0xff, //0x000089a5 jmp LBB32_12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000089aa .p2align 4, 0x90 + //0x000089b0 _format_significand + 0x55, //0x000089b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000089b1 movq %rsp, %rbp + 0x41, 0x56, //0x000089b4 pushq %r14 + 0x53, //0x000089b6 pushq %rbx + 0x4c, 0x63, 0xc2, //0x000089b7 movslq %edx, %r8 + 0x49, 0x01, 0xf0, //0x000089ba addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x000089bd movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x000089c0 shrq $32, %rax + 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x000089c4 je LBB33_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000089ca movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x000089d4 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x000089d7 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x000089da shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x000089de imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x000089e4 addl %edi, %ecx + 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, //0x000089e6 je LBB33_3 + 0x89, 0xc8, //0x000089ec movl %ecx, %eax + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x000089ee movl $3518437209, %r9d + 0x49, 0x0f, 0xaf, 0xc1, //0x000089f4 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x000089f8 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x000089fc imull $10000, %eax, %edi + 0x29, 0xf9, //0x00008a02 subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00008a04 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00008a07 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008a0b shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008a0f imull $10000, %edi, %edi + 0x29, 0xf8, //0x00008a15 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00008a17 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00008a1a shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008a1d imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00008a24 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00008a28 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00008a2c subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00008a2e movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00008a32 movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00008a35 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008a38 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00008a3e shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00008a41 imull $100, %edi, %ecx + 0x29, 0xc8, //0x00008a44 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00008a46 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x3f, 0x34, 0x00, 0x00, //0x00008a4a leaq $13375(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008a51 movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008a56 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008a5b movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008a60 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008a65 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008a6a movw %ax, $-6(%r8) + 0x0f, 0xb7, 0x04, 0x79, //0x00008a6f movzwl (%rcx,%rdi,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008a73 movw %ax, $-8(%r8) + 0x45, 0x31, 0xc9, //0x00008a78 xorl %r9d, %r9d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00008a7b jmp LBB33_5 + //0x00008a80 LBB33_1 + 0x45, 0x31, 0xc9, //0x00008a80 xorl %r9d, %r9d + 0x4d, 0x89, 0xc6, //0x00008a83 movq %r8, %r14 + 0x48, 0x89, 0xfa, //0x00008a86 movq %rdi, %rdx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008a89 cmpl $10000, %edx + 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x00008a8f jae LBB33_8 + //0x00008a95 LBB33_7 + 0x89, 0xd7, //0x00008a95 movl %edx, %edi + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x00008a97 jmp LBB33_10 + //0x00008a9c LBB33_3 + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008a9c movl $8, %r9d + //0x00008aa2 LBB33_5 + 0x4d, 0x8d, 0x70, 0xf8, //0x00008aa2 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008aa6 cmpl $10000, %edx + 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x00008aac jb LBB33_7 + //0x00008ab2 LBB33_8 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008ab2 movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0xd1, 0x33, 0x00, 0x00, //0x00008ab8 leaq $13265(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, //0x00008abf .p2align 4, 0x90 + //0x00008ac0 LBB33_9 + 0x89, 0xd7, //0x00008ac0 movl %edx, %edi + 0x49, 0x0f, 0xaf, 0xfa, //0x00008ac2 imulq %r10, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008ac6 shrq $45, %rdi + 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008aca imull $-10000, %edi, %eax + 0x01, 0xd0, //0x00008ad0 addl %edx, %eax + 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008ad2 imulq $1374389535, %rax, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00008ad9 shrq $37, %rbx + 0x6b, 0xcb, 0x64, //0x00008add imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00008ae0 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008ae2 movzwl (%r11,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008ae7 movw %ax, $-2(%r14) + 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008aec movzwl (%r11,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008af1 movw %ax, $-4(%r14) + 0x49, 0x83, 0xc6, 0xfc, //0x00008af6 addq $-4, %r14 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008afa cmpl $99999999, %edx + 0x89, 0xfa, //0x00008b00 movl %edi, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008b02 ja LBB33_9 + //0x00008b08 LBB33_10 + 0x83, 0xff, 0x64, //0x00008b08 cmpl $100, %edi + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008b0b jae LBB33_11 + 0x83, 0xff, 0x0a, //0x00008b11 cmpl $10, %edi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008b14 jb LBB33_14 + //0x00008b1a LBB33_13 + 0x89, 0xf8, //0x00008b1a movl %edi, %eax + 0x48, 0x8d, 0x0d, 0x6d, 0x33, 0x00, 0x00, //0x00008b1c leaq $13165(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008b23 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008b27 movw %ax, $-2(%r14) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008b2c jmp LBB33_15 + //0x00008b31 LBB33_11 + 0x0f, 0xb7, 0xc7, //0x00008b31 movzwl %di, %eax + 0xc1, 0xe8, 0x02, //0x00008b34 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008b37 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00008b3d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00008b40 imull $100, %eax, %ecx + 0x29, 0xcf, //0x00008b43 subl %ecx, %edi + 0x0f, 0xb7, 0xcf, //0x00008b45 movzwl %di, %ecx + 0x48, 0x8d, 0x15, 0x41, 0x33, 0x00, 0x00, //0x00008b48 leaq $13121(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008b4f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008b53 movw %cx, $-2(%r14) + 0x49, 0x83, 0xc6, 0xfe, //0x00008b58 addq $-2, %r14 + 0x89, 0xc7, //0x00008b5c movl %eax, %edi + 0x83, 0xff, 0x0a, //0x00008b5e cmpl $10, %edi + 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008b61 jae LBB33_13 + //0x00008b67 LBB33_14 + 0x40, 0x80, 0xc7, 0x30, //0x00008b67 addb $48, %dil + 0x40, 0x88, 0x3e, //0x00008b6b movb %dil, (%rsi) + //0x00008b6e LBB33_15 + 0x4d, 0x29, 0xc8, //0x00008b6e subq %r9, %r8 + 0x4c, 0x89, 0xc0, //0x00008b71 movq %r8, %rax + 0x5b, //0x00008b74 popq %rbx + 0x41, 0x5e, //0x00008b75 popq %r14 + 0x5d, //0x00008b77 popq %rbp + 0xc3, //0x00008b78 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008b79 .p2align 4, 0x90 + //0x00008b80 _left_shift + 0x55, //0x00008b80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008b81 movq %rsp, %rbp + 0x41, 0x56, //0x00008b84 pushq %r14 + 0x53, //0x00008b86 pushq %rbx + 0x89, 0xf1, //0x00008b87 movl %esi, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x00008b89 imulq $104, %rcx, %rdx + 0x48, 0x8d, 0x35, 0xec, 0x8c, 0x00, 0x00, //0x00008b8d leaq $36076(%rip), %rsi /* _LSHIFT_TAB+0(%rip) */ + 0x44, 0x8b, 0x04, 0x32, //0x00008b94 movl (%rdx,%rsi), %r8d + 0x4c, 0x8b, 0x17, //0x00008b98 movq (%rdi), %r10 + 0x4c, 0x63, 0x4f, 0x10, //0x00008b9b movslq $16(%rdi), %r9 + 0x8a, 0x44, 0x32, 0x04, //0x00008b9f movb $4(%rdx,%rsi), %al + 0x4d, 0x85, 0xc9, //0x00008ba3 testq %r9, %r9 + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00008ba6 je LBB34_6 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x00008bac leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x00008bb1 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008bb3 .p2align 4, 0x90 + //0x00008bc0 LBB34_3 + 0x84, 0xc0, //0x00008bc0 testb %al, %al + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00008bc2 je LBB34_8 + 0x41, 0x38, 0x04, 0x32, //0x00008bc8 cmpb %al, (%r10,%rsi) + 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x00008bcc jne LBB34_5 + 0x0f, 0xb6, 0x04, 0x32, //0x00008bd2 movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x00008bd6 incq %rsi + 0x49, 0x39, 0xf1, //0x00008bd9 cmpq %rsi, %r9 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00008bdc jne LBB34_3 + //0x00008be2 LBB34_6 + 0x84, 0xc0, //0x00008be2 testb %al, %al + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00008be4 je LBB34_8 + //0x00008bea LBB34_7 + 0x41, 0xff, 0xc8, //0x00008bea decl %r8d + //0x00008bed LBB34_8 + 0x45, 0x85, 0xc9, //0x00008bed testl %r9d, %r9d + 0x0f, 0x8e, 0x8c, 0x00, 0x00, 0x00, //0x00008bf0 jle LBB34_23 + 0x43, 0x8d, 0x04, 0x08, //0x00008bf6 leal (%r8,%r9), %eax + 0x4c, 0x63, 0xf0, //0x00008bfa movslq %eax, %r14 + 0x49, 0xff, 0xce, //0x00008bfd decq %r14 + 0x31, 0xd2, //0x00008c00 xorl %edx, %edx + 0x49, 0xbb, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00008c02 movabsq $-3689348814741910323, %r11 + 0x90, 0x90, 0x90, 0x90, //0x00008c0c .p2align 4, 0x90 + //0x00008c10 LBB34_10 + 0x4b, 0x0f, 0xbe, 0x74, 0x0a, 0xff, //0x00008c10 movsbq $-1(%r10,%r9), %rsi + 0x48, 0x83, 0xc6, 0xd0, //0x00008c16 addq $-48, %rsi + 0x48, 0xd3, 0xe6, //0x00008c1a shlq %cl, %rsi + 0x48, 0x01, 0xd6, //0x00008c1d addq %rdx, %rsi + 0x48, 0x89, 0xf0, //0x00008c20 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00008c23 mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00008c26 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008c2a leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008c2e leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xf0, //0x00008c32 movq %rsi, %rax + 0x48, 0x29, 0xd8, //0x00008c35 subq %rbx, %rax + 0x4c, 0x39, 0x77, 0x08, //0x00008c38 cmpq %r14, $8(%rdi) + 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x00008c3c jbe LBB34_16 + 0x04, 0x30, //0x00008c42 addb $48, %al + 0x43, 0x88, 0x04, 0x32, //0x00008c44 movb %al, (%r10,%r14) + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00008c48 jmp LBB34_18 + 0x90, 0x90, 0x90, //0x00008c4d .p2align 4, 0x90 + //0x00008c50 LBB34_16 + 0x48, 0x85, 0xc0, //0x00008c50 testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00008c53 je LBB34_18 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008c59 movl $1, $28(%rdi) + //0x00008c60 LBB34_18 + 0x49, 0x83, 0xf9, 0x02, //0x00008c60 cmpq $2, %r9 + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00008c64 jl LBB34_12 + 0x49, 0xff, 0xc9, //0x00008c6a decq %r9 + 0x4c, 0x8b, 0x17, //0x00008c6d movq (%rdi), %r10 + 0x49, 0xff, 0xce, //0x00008c70 decq %r14 + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00008c73 jmp LBB34_10 + //0x00008c78 LBB34_12 + 0x48, 0x83, 0xfe, 0x0a, //0x00008c78 cmpq $10, %rsi + 0x0f, 0x83, 0x6e, 0x00, 0x00, 0x00, //0x00008c7c jae LBB34_13 + //0x00008c82 LBB34_23 + 0x48, 0x63, 0x4f, 0x10, //0x00008c82 movslq $16(%rdi), %rcx + 0x49, 0x63, 0xc0, //0x00008c86 movslq %r8d, %rax + 0x48, 0x01, 0xc8, //0x00008c89 addq %rcx, %rax + 0x89, 0x47, 0x10, //0x00008c8c movl %eax, $16(%rdi) + 0x48, 0x8b, 0x4f, 0x08, //0x00008c8f movq $8(%rdi), %rcx + 0x48, 0x39, 0xc1, //0x00008c93 cmpq %rax, %rcx + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00008c96 ja LBB34_25 + 0x89, 0x4f, 0x10, //0x00008c9c movl %ecx, $16(%rdi) + 0x89, 0xc8, //0x00008c9f movl %ecx, %eax + //0x00008ca1 LBB34_25 + 0x44, 0x01, 0x47, 0x14, //0x00008ca1 addl %r8d, $20(%rdi) + 0x85, 0xc0, //0x00008ca5 testl %eax, %eax + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00008ca7 jle LBB34_29 + 0x48, 0x8b, 0x0f, //0x00008cad movq (%rdi), %rcx + 0x89, 0xc0, //0x00008cb0 movl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008cb2 .p2align 4, 0x90 + //0x00008cc0 LBB34_27 + 0x80, 0x7c, 0x01, 0xff, 0x30, //0x00008cc0 cmpb $48, $-1(%rcx,%rax) + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00008cc5 jne LBB34_31 + 0x89, 0xc2, //0x00008ccb movl %eax, %edx + 0x48, 0xff, 0xc8, //0x00008ccd decq %rax + 0xff, 0xca, //0x00008cd0 decl %edx + 0x89, 0x57, 0x10, //0x00008cd2 movl %edx, $16(%rdi) + 0x48, 0x8d, 0x50, 0x01, //0x00008cd5 leaq $1(%rax), %rdx + 0x48, 0x83, 0xfa, 0x01, //0x00008cd9 cmpq $1, %rdx + 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00008cdd jg LBB34_27 + //0x00008ce3 LBB34_29 + 0x85, 0xc0, //0x00008ce3 testl %eax, %eax + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00008ce5 je LBB34_30 + //0x00008ceb LBB34_31 + 0x5b, //0x00008ceb popq %rbx + 0x41, 0x5e, //0x00008cec popq %r14 + 0x5d, //0x00008cee popq %rbp + 0xc3, //0x00008cef retq + //0x00008cf0 LBB34_13 + 0x49, 0x63, 0xf6, //0x00008cf0 movslq %r14d, %rsi + 0x48, 0xff, 0xce, //0x00008cf3 decq %rsi + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00008cf6 jmp LBB34_14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008cfb .p2align 4, 0x90 + //0x00008d00 LBB34_15 + 0x04, 0x30, //0x00008d00 addb $48, %al + 0x48, 0x8b, 0x1f, //0x00008d02 movq (%rdi), %rbx + 0x88, 0x04, 0x33, //0x00008d05 movb %al, (%rbx,%rsi) + //0x00008d08 LBB34_22 + 0x48, 0xff, 0xce, //0x00008d08 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00008d0b cmpq $9, %rcx + 0x0f, 0x86, 0x6d, 0xff, 0xff, 0xff, //0x00008d0f jbe LBB34_23 + //0x00008d15 LBB34_14 + 0x48, 0x89, 0xd1, //0x00008d15 movq %rdx, %rcx + 0x48, 0x89, 0xd0, //0x00008d18 movq %rdx, %rax + 0x49, 0xf7, 0xe3, //0x00008d1b mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00008d1e shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008d22 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008d26 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00008d2a movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00008d2d subq %rbx, %rax + 0x48, 0x39, 0x77, 0x08, //0x00008d30 cmpq %rsi, $8(%rdi) + 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00008d34 ja LBB34_15 + 0x48, 0x85, 0xc0, //0x00008d3a testq %rax, %rax + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00008d3d je LBB34_22 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008d43 movl $1, $28(%rdi) + 0xe9, 0xb9, 0xff, 0xff, 0xff, //0x00008d4a jmp LBB34_22 + //0x00008d4f LBB34_30 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00008d4f movl $0, $20(%rdi) + 0x5b, //0x00008d56 popq %rbx + 0x41, 0x5e, //0x00008d57 popq %r14 + 0x5d, //0x00008d59 popq %rbp + 0xc3, //0x00008d5a retq + //0x00008d5b LBB34_5 + 0x0f, 0x8c, 0x89, 0xfe, 0xff, 0xff, //0x00008d5b jl LBB34_7 + 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00008d61 jmp LBB34_8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d66 .p2align 4, 0x90 + //0x00008d70 _right_shift + 0x55, //0x00008d70 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008d71 movq %rsp, %rbp + 0x89, 0xf1, //0x00008d74 movl %esi, %ecx + 0x4c, 0x63, 0x4f, 0x10, //0x00008d76 movslq $16(%rdi), %r9 + 0x31, 0xf6, //0x00008d7a xorl %esi, %esi + 0x31, 0xc0, //0x00008d7c xorl %eax, %eax + 0x90, 0x90, //0x00008d7e .p2align 4, 0x90 + //0x00008d80 LBB35_1 + 0x4c, 0x39, 0xce, //0x00008d80 cmpq %r9, %rsi + 0x0f, 0x8d, 0x27, 0x01, 0x00, 0x00, //0x00008d83 jge LBB35_2 + 0x48, 0x8d, 0x04, 0x80, //0x00008d89 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x17, //0x00008d8d movq (%rdi), %rdx + 0x48, 0x0f, 0xbe, 0x14, 0x32, //0x00008d90 movsbq (%rdx,%rsi), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00008d95 leaq $-48(%rdx,%rax,2), %rax + 0x48, 0xff, 0xc6, //0x00008d9a incq %rsi + 0x48, 0x89, 0xc2, //0x00008d9d movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00008da0 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00008da3 testq %rdx, %rdx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00008da6 je LBB35_1 + //0x00008dac LBB35_6 + 0x8b, 0x57, 0x14, //0x00008dac movl $20(%rdi), %edx + 0x29, 0xf2, //0x00008daf subl %esi, %edx + 0xff, 0xc2, //0x00008db1 incl %edx + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00008db3 movq $-1, %r8 + 0x49, 0xd3, 0xe0, //0x00008dba shlq %cl, %r8 + 0x89, 0x57, 0x14, //0x00008dbd movl %edx, $20(%rdi) + 0x49, 0xf7, 0xd0, //0x00008dc0 notq %r8 + 0x45, 0x31, 0xd2, //0x00008dc3 xorl %r10d, %r10d + 0x44, 0x39, 0xce, //0x00008dc6 cmpl %r9d, %esi + 0x0f, 0x8d, 0x69, 0x00, 0x00, 0x00, //0x00008dc9 jge LBB35_9 + 0x4c, 0x63, 0xce, //0x00008dcf movslq %esi, %r9 + 0x48, 0x8b, 0x37, //0x00008dd2 movq (%rdi), %rsi + 0x45, 0x31, 0xd2, //0x00008dd5 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008dd8 .p2align 4, 0x90 + //0x00008de0 LBB35_8 + 0x48, 0x89, 0xc2, //0x00008de0 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00008de3 shrq %cl, %rdx + 0x4c, 0x21, 0xc0, //0x00008de6 andq %r8, %rax + 0x80, 0xc2, 0x30, //0x00008de9 addb $48, %dl + 0x42, 0x88, 0x14, 0x16, //0x00008dec movb %dl, (%rsi,%r10) + 0x48, 0x8d, 0x04, 0x80, //0x00008df0 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x37, //0x00008df4 movq (%rdi), %rsi + 0x4a, 0x8d, 0x14, 0x0e, //0x00008df7 leaq (%rsi,%r9), %rdx + 0x49, 0x0f, 0xbe, 0x14, 0x12, //0x00008dfb movsbq (%r10,%rdx), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00008e00 leaq $-48(%rdx,%rax,2), %rax + 0x4c, 0x63, 0x5f, 0x10, //0x00008e05 movslq $16(%rdi), %r11 + 0x4b, 0x8d, 0x54, 0x11, 0x01, //0x00008e09 leaq $1(%r9,%r10), %rdx + 0x49, 0xff, 0xc2, //0x00008e0e incq %r10 + 0x4c, 0x39, 0xda, //0x00008e11 cmpq %r11, %rdx + 0x0f, 0x8c, 0xc6, 0xff, 0xff, 0xff, //0x00008e14 jl LBB35_8 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00008e1a jmp LBB35_9 + 0x90, //0x00008e1f .p2align 4, 0x90 + //0x00008e20 LBB35_11 + 0x40, 0x80, 0xc6, 0x30, //0x00008e20 addb $48, %sil + 0x48, 0x8b, 0x17, //0x00008e24 movq (%rdi), %rdx + 0x42, 0x88, 0x34, 0x0a, //0x00008e27 movb %sil, (%rdx,%r9) + 0x41, 0xff, 0xc1, //0x00008e2b incl %r9d + 0x45, 0x89, 0xca, //0x00008e2e movl %r9d, %r10d + //0x00008e31 LBB35_14 + 0x48, 0x01, 0xc0, //0x00008e31 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00008e34 leaq (%rax,%rax,4), %rax + //0x00008e38 LBB35_9 + 0x48, 0x85, 0xc0, //0x00008e38 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x00008e3b je LBB35_15 + 0x48, 0x89, 0xc6, //0x00008e41 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00008e44 shrq %cl, %rsi + 0x4c, 0x21, 0xc0, //0x00008e47 andq %r8, %rax + 0x4d, 0x63, 0xca, //0x00008e4a movslq %r10d, %r9 + 0x4c, 0x39, 0x4f, 0x08, //0x00008e4d cmpq %r9, $8(%rdi) + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00008e51 ja LBB35_11 + 0x48, 0x85, 0xf6, //0x00008e57 testq %rsi, %rsi + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00008e5a je LBB35_14 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008e60 movl $1, $28(%rdi) + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00008e67 jmp LBB35_14 + //0x00008e6c LBB35_15 + 0x44, 0x89, 0x57, 0x10, //0x00008e6c movl %r10d, $16(%rdi) + 0x45, 0x85, 0xd2, //0x00008e70 testl %r10d, %r10d + 0x0f, 0x8e, 0x2c, 0x00, 0x00, 0x00, //0x00008e73 jle LBB35_19 + 0x48, 0x8b, 0x07, //0x00008e79 movq (%rdi), %rax + 0x45, 0x89, 0xd2, //0x00008e7c movl %r10d, %r10d + 0x90, //0x00008e7f .p2align 4, 0x90 + //0x00008e80 LBB35_17 + 0x42, 0x80, 0x7c, 0x10, 0xff, 0x30, //0x00008e80 cmpb $48, $-1(%rax,%r10) + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00008e86 jne LBB35_21 + 0x44, 0x89, 0xd1, //0x00008e8c movl %r10d, %ecx + 0x49, 0xff, 0xca, //0x00008e8f decq %r10 + 0xff, 0xc9, //0x00008e92 decl %ecx + 0x89, 0x4f, 0x10, //0x00008e94 movl %ecx, $16(%rdi) + 0x49, 0x8d, 0x4a, 0x01, //0x00008e97 leaq $1(%r10), %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00008e9b cmpq $1, %rcx + 0x0f, 0x8f, 0xdb, 0xff, 0xff, 0xff, //0x00008e9f jg LBB35_17 + //0x00008ea5 LBB35_19 + 0x45, 0x85, 0xd2, //0x00008ea5 testl %r10d, %r10d + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00008ea8 je LBB35_20 + //0x00008eae LBB35_21 + 0x5d, //0x00008eae popq %rbp + 0xc3, //0x00008eaf retq + //0x00008eb0 LBB35_2 + 0x48, 0x85, 0xc0, //0x00008eb0 testq %rax, %rax + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00008eb3 je LBB35_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008eb9 .p2align 4, 0x90 + 0x48, 0x89, 0xc2, //0x00008ec0 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00008ec3 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00008ec6 testq %rdx, %rdx + 0x0f, 0x85, 0xdd, 0xfe, 0xff, 0xff, //0x00008ec9 jne LBB35_6 + //0x00008ecf LBB35_4 + 0x48, 0x01, 0xc0, //0x00008ecf addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00008ed2 leaq (%rax,%rax,4), %rax + 0xff, 0xc6, //0x00008ed6 incl %esi + 0x48, 0x89, 0xc2, //0x00008ed8 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00008edb shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00008ede testq %rdx, %rdx + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00008ee1 je LBB35_4 + 0xe9, 0xc0, 0xfe, 0xff, 0xff, //0x00008ee7 jmp LBB35_6 + //0x00008eec LBB35_20 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00008eec movl $0, $20(%rdi) + 0x5d, //0x00008ef3 popq %rbp + 0xc3, //0x00008ef4 retq + //0x00008ef5 LBB35_22 + 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00008ef5 movl $0, $16(%rdi) + 0x5d, //0x00008efc popq %rbp + 0xc3, //0x00008efd retq + 0x00, 0x00, //0x00008efe .p2align 4, 0x00 + //0x00008f00 LCPI36_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00008f00 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00008f10 LCPI36_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00008f10 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00008f20 .p2align 4, 0x90 + //0x00008f20 _advance_string_default + 0x55, //0x00008f20 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008f21 movq %rsp, %rbp + 0x41, 0x57, //0x00008f24 pushq %r15 + 0x41, 0x56, //0x00008f26 pushq %r14 + 0x41, 0x55, //0x00008f28 pushq %r13 + 0x41, 0x54, //0x00008f2a pushq %r12 + 0x53, //0x00008f2c pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00008f2d subq $16, %rsp + 0x4c, 0x8b, 0x67, 0x08, //0x00008f31 movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x00008f35 subq %rsi, %r12 + 0x0f, 0x84, 0x79, 0x03, 0x00, 0x00, //0x00008f38 je LBB36_17 + 0x48, 0x8b, 0x07, //0x00008f3e movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x00008f41 movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc6, //0x00008f45 addq %rax, %rsi + 0x48, 0x89, 0x55, 0xc8, //0x00008f48 movq %rdx, $-56(%rbp) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00008f4c movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x00008f53 cmpq $64, %r12 + 0x0f, 0x82, 0xfa, 0x01, 0x00, 0x00, //0x00008f57 jb LBB36_18 + 0x45, 0x89, 0xe1, //0x00008f5d movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00008f60 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00008f64 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00008f6b xorl %r15d, %r15d + 0xc5, 0xf9, 0x6f, 0x05, 0x8a, 0xff, 0xff, 0xff, //0x00008f6e vmovdqa $-118(%rip), %xmm0 /* LCPI36_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x92, 0xff, 0xff, 0xff, //0x00008f76 vmovdqa $-110(%rip), %xmm1 /* LCPI36_1+0(%rip) */ + 0x48, 0x8b, 0x55, 0xd0, //0x00008f7e movq $-48(%rbp), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f82 .p2align 4, 0x90 + //0x00008f90 LBB36_3 + 0xc5, 0xfa, 0x6f, 0x16, //0x00008f90 vmovdqu (%rsi), %xmm2 + 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x00008f94 vmovdqu $16(%rsi), %xmm3 + 0xc5, 0xfa, 0x6f, 0x66, 0x20, //0x00008f99 vmovdqu $32(%rsi), %xmm4 + 0xc5, 0xfa, 0x6f, 0x6e, 0x30, //0x00008f9e vmovdqu $48(%rsi), %xmm5 + 0xc5, 0xe9, 0x74, 0xf0, //0x00008fa3 vpcmpeqb %xmm0, %xmm2, %xmm6 + 0xc5, 0xf9, 0xd7, 0xde, //0x00008fa7 vpmovmskb %xmm6, %ebx + 0xc5, 0xe1, 0x74, 0xf0, //0x00008fab vpcmpeqb %xmm0, %xmm3, %xmm6 + 0xc5, 0xf9, 0xd7, 0xce, //0x00008faf vpmovmskb %xmm6, %ecx + 0xc5, 0xd9, 0x74, 0xf0, //0x00008fb3 vpcmpeqb %xmm0, %xmm4, %xmm6 + 0xc5, 0xf9, 0xd7, 0xc6, //0x00008fb7 vpmovmskb %xmm6, %eax + 0xc5, 0xd1, 0x74, 0xf0, //0x00008fbb vpcmpeqb %xmm0, %xmm5, %xmm6 + 0xc5, 0x79, 0xd7, 0xee, //0x00008fbf vpmovmskb %xmm6, %r13d + 0xc5, 0xe9, 0x74, 0xd1, //0x00008fc3 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00008fc7 vpmovmskb %xmm2, %edi + 0xc5, 0xe1, 0x74, 0xd1, //0x00008fcb vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0x79, 0xd7, 0xd2, //0x00008fcf vpmovmskb %xmm2, %r10d + 0xc5, 0xd9, 0x74, 0xd1, //0x00008fd3 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0x79, 0xd7, 0xda, //0x00008fd7 vpmovmskb %xmm2, %r11d + 0xc5, 0xd1, 0x74, 0xd1, //0x00008fdb vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x00008fdf vpmovmskb %xmm2, %r8d + 0x49, 0xc1, 0xe5, 0x30, //0x00008fe3 shlq $48, %r13 + 0x48, 0xc1, 0xe0, 0x20, //0x00008fe7 shlq $32, %rax + 0x48, 0xc1, 0xe1, 0x10, //0x00008feb shlq $16, %rcx + 0x48, 0x09, 0xcb, //0x00008fef orq %rcx, %rbx + 0x48, 0x09, 0xc3, //0x00008ff2 orq %rax, %rbx + 0x49, 0xc1, 0xe0, 0x30, //0x00008ff5 shlq $48, %r8 + 0x49, 0xc1, 0xe3, 0x20, //0x00008ff9 shlq $32, %r11 + 0x49, 0xc1, 0xe2, 0x10, //0x00008ffd shlq $16, %r10 + 0x4c, 0x09, 0xd7, //0x00009001 orq %r10, %rdi + 0x4c, 0x09, 0xdf, //0x00009004 orq %r11, %rdi + 0x4c, 0x09, 0xc7, //0x00009007 orq %r8, %rdi + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000900a je LBB36_5 + 0x49, 0x83, 0xfe, 0xff, //0x00009010 cmpq $-1, %r14 + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00009014 je LBB36_8 + //0x0000901a LBB36_5 + 0x4c, 0x09, 0xeb, //0x0000901a orq %r13, %rbx + 0x48, 0x89, 0xf8, //0x0000901d movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00009020 orq %r15, %rax + 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x00009023 jne LBB36_9 + //0x00009029 LBB36_6 + 0x48, 0x85, 0xdb, //0x00009029 testq %rbx, %rbx + 0x0f, 0x85, 0x0a, 0x01, 0x00, 0x00, //0x0000902c jne LBB36_15 + //0x00009032 LBB36_7 + 0x48, 0x83, 0xc6, 0x40, //0x00009032 addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x00009036 addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x0000903a cmpq $63, %r12 + 0x0f, 0x87, 0x4c, 0xff, 0xff, 0xff, //0x0000903e ja LBB36_3 + 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x00009044 jmp LBB36_10 + //0x00009049 LBB36_8 + 0x48, 0x89, 0xf0, //0x00009049 movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x0000904c subq %rdx, %rax + 0x4c, 0x0f, 0xbc, 0xf7, //0x0000904f bsfq %rdi, %r14 + 0x49, 0x01, 0xc6, //0x00009053 addq %rax, %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00009056 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x0000905a movq %r14, (%rax) + 0x4c, 0x09, 0xeb, //0x0000905d orq %r13, %rbx + 0x48, 0x89, 0xf8, //0x00009060 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00009063 orq %r15, %rax + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00009066 je LBB36_6 + //0x0000906c LBB36_9 + 0x4c, 0x89, 0xf8, //0x0000906c movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x0000906f notq %rax + 0x48, 0x21, 0xf8, //0x00009072 andq %rdi, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x00009075 leaq (%rax,%rax), %r8 + 0x4d, 0x09, 0xf8, //0x00009079 orq %r15, %r8 + 0x4c, 0x89, 0xc1, //0x0000907c movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x0000907f notq %rcx + 0x48, 0x21, 0xf9, //0x00009082 andq %rdi, %rcx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009085 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xf9, //0x0000908f andq %rdi, %rcx + 0x45, 0x31, 0xff, //0x00009092 xorl %r15d, %r15d + 0x48, 0x01, 0xc1, //0x00009095 addq %rax, %rcx + 0x41, 0x0f, 0x92, 0xc7, //0x00009098 setb %r15b + 0x48, 0x01, 0xc9, //0x0000909c addq %rcx, %rcx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000909f movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc1, //0x000090a9 xorq %rax, %rcx + 0x4c, 0x21, 0xc1, //0x000090ac andq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000090af notq %rcx + 0x48, 0x21, 0xcb, //0x000090b2 andq %rcx, %rbx + 0x48, 0x85, 0xdb, //0x000090b5 testq %rbx, %rbx + 0x0f, 0x84, 0x74, 0xff, 0xff, 0xff, //0x000090b8 je LBB36_7 + 0xe9, 0x79, 0x00, 0x00, 0x00, //0x000090be jmp LBB36_15 + //0x000090c3 LBB36_10 + 0x4d, 0x89, 0xcc, //0x000090c3 movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x000090c6 cmpq $32, %r12 + 0x0f, 0x82, 0x0b, 0x01, 0x00, 0x00, //0x000090ca jb LBB36_22 + //0x000090d0 LBB36_11 + 0xc5, 0xfa, 0x6f, 0x06, //0x000090d0 vmovdqu (%rsi), %xmm0 + 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x000090d4 vmovdqu $16(%rsi), %xmm1 + 0xc5, 0xf9, 0x6f, 0x15, 0x1f, 0xfe, 0xff, 0xff, //0x000090d9 vmovdqa $-481(%rip), %xmm2 /* LCPI36_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x1d, 0x27, 0xfe, 0xff, 0xff, //0x000090e1 vmovdqa $-473(%rip), %xmm3 /* LCPI36_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xe2, //0x000090e9 vpcmpeqb %xmm2, %xmm0, %xmm4 + 0xc5, 0xf9, 0xd7, 0xfc, //0x000090ed vpmovmskb %xmm4, %edi + 0xc5, 0xf1, 0x74, 0xd2, //0x000090f1 vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000090f5 vpmovmskb %xmm2, %ebx + 0xc5, 0xf9, 0x74, 0xc3, //0x000090f9 vpcmpeqb %xmm3, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000090fd vpmovmskb %xmm0, %eax + 0xc5, 0xf1, 0x74, 0xc3, //0x00009101 vpcmpeqb %xmm3, %xmm1, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00009105 vpmovmskb %xmm0, %ecx + 0x48, 0xc1, 0xe3, 0x10, //0x00009109 shlq $16, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x0000910d shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x00009111 orq %rcx, %rax + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00009114 je LBB36_13 + 0x49, 0x83, 0xfe, 0xff, //0x0000911a cmpq $-1, %r14 + 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x0000911e je LBB36_19 + //0x00009124 LBB36_13 + 0x48, 0x09, 0xfb, //0x00009124 orq %rdi, %rbx + 0x48, 0x89, 0xc1, //0x00009127 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x0000912a orq %r15, %rcx + 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x0000912d jne LBB36_20 + //0x00009133 LBB36_14 + 0x48, 0x85, 0xdb, //0x00009133 testq %rbx, %rbx + 0x0f, 0x84, 0x97, 0x00, 0x00, 0x00, //0x00009136 je LBB36_21 + //0x0000913c LBB36_15 + 0x48, 0x0f, 0xbc, 0xc3, //0x0000913c bsfq %rbx, %rax + 0x48, 0x29, 0xd6, //0x00009140 subq %rdx, %rsi + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00009143 leaq $1(%rsi,%rax), %rax + //0x00009148 LBB36_16 + 0x48, 0x83, 0xc4, 0x10, //0x00009148 addq $16, %rsp + 0x5b, //0x0000914c popq %rbx + 0x41, 0x5c, //0x0000914d popq %r12 + 0x41, 0x5d, //0x0000914f popq %r13 + 0x41, 0x5e, //0x00009151 popq %r14 + 0x41, 0x5f, //0x00009153 popq %r15 + 0x5d, //0x00009155 popq %rbp + 0xc3, //0x00009156 retq + //0x00009157 LBB36_18 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00009157 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x0000915e xorl %r15d, %r15d + 0x48, 0x8b, 0x55, 0xd0, //0x00009161 movq $-48(%rbp), %rdx + 0x49, 0x83, 0xfc, 0x20, //0x00009165 cmpq $32, %r12 + 0x0f, 0x83, 0x61, 0xff, 0xff, 0xff, //0x00009169 jae LBB36_11 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000916f jmp LBB36_22 + //0x00009174 LBB36_19 + 0x48, 0x89, 0xf1, //0x00009174 movq %rsi, %rcx + 0x48, 0x29, 0xd1, //0x00009177 subq %rdx, %rcx + 0x4c, 0x0f, 0xbc, 0xf0, //0x0000917a bsfq %rax, %r14 + 0x49, 0x01, 0xce, //0x0000917e addq %rcx, %r14 + 0x48, 0x8b, 0x4d, 0xc8, //0x00009181 movq $-56(%rbp), %rcx + 0x4c, 0x89, 0x31, //0x00009185 movq %r14, (%rcx) + 0x48, 0x09, 0xfb, //0x00009188 orq %rdi, %rbx + 0x48, 0x89, 0xc1, //0x0000918b movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x0000918e orq %r15, %rcx + 0x0f, 0x84, 0x9c, 0xff, 0xff, 0xff, //0x00009191 je LBB36_14 + //0x00009197 LBB36_20 + 0x44, 0x89, 0xf9, //0x00009197 movl %r15d, %ecx + 0xf7, 0xd1, //0x0000919a notl %ecx + 0x21, 0xc1, //0x0000919c andl %eax, %ecx + 0x44, 0x8d, 0x04, 0x09, //0x0000919e leal (%rcx,%rcx), %r8d + 0x45, 0x09, 0xf8, //0x000091a2 orl %r15d, %r8d + 0x44, 0x89, 0xc7, //0x000091a5 movl %r8d, %edi + 0xf7, 0xd7, //0x000091a8 notl %edi + 0x21, 0xc7, //0x000091aa andl %eax, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000091ac andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x000091b2 xorl %r15d, %r15d + 0x01, 0xcf, //0x000091b5 addl %ecx, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x000091b7 setb %r15b + 0x01, 0xff, //0x000091bb addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000091bd xorl $1431655765, %edi + 0x44, 0x21, 0xc7, //0x000091c3 andl %r8d, %edi + 0xf7, 0xd7, //0x000091c6 notl %edi + 0x21, 0xfb, //0x000091c8 andl %edi, %ebx + 0x48, 0x85, 0xdb, //0x000091ca testq %rbx, %rbx + 0x0f, 0x85, 0x69, 0xff, 0xff, 0xff, //0x000091cd jne LBB36_15 + //0x000091d3 LBB36_21 + 0x48, 0x83, 0xc6, 0x20, //0x000091d3 addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x000091d7 addq $-32, %r12 + //0x000091db LBB36_22 + 0x4d, 0x85, 0xff, //0x000091db testq %r15, %r15 + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x000091de jne LBB36_33 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000091e4 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x000091eb testq %r12, %r12 + 0x0f, 0x84, 0x54, 0xff, 0xff, 0xff, //0x000091ee je LBB36_16 + //0x000091f4 LBB36_24 + 0x49, 0x89, 0xd1, //0x000091f4 movq %rdx, %r9 + 0x49, 0xf7, 0xd1, //0x000091f7 notq %r9 + 0x48, 0x8b, 0x4d, 0xc8, //0x000091fa movq $-56(%rbp), %rcx + //0x000091fe LBB36_25 + 0x48, 0x8d, 0x7e, 0x01, //0x000091fe leaq $1(%rsi), %rdi + 0x0f, 0xb6, 0x1e, //0x00009202 movzbl (%rsi), %ebx + 0x80, 0xfb, 0x22, //0x00009205 cmpb $34, %bl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00009208 je LBB36_32 + 0x4d, 0x8d, 0x54, 0x24, 0xff, //0x0000920e leaq $-1(%r12), %r10 + 0x80, 0xfb, 0x5c, //0x00009213 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00009216 je LBB36_28 + 0x4d, 0x89, 0xd4, //0x0000921c movq %r10, %r12 + 0x48, 0x89, 0xfe, //0x0000921f movq %rdi, %rsi + 0x4d, 0x85, 0xd2, //0x00009222 testq %r10, %r10 + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00009225 jne LBB36_25 + 0xe9, 0x18, 0xff, 0xff, 0xff, //0x0000922b jmp LBB36_16 + //0x00009230 LBB36_28 + 0x4d, 0x85, 0xd2, //0x00009230 testq %r10, %r10 + 0x0f, 0x84, 0x0f, 0xff, 0xff, 0xff, //0x00009233 je LBB36_16 + 0x49, 0x83, 0xfe, 0xff, //0x00009239 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000923d jne LBB36_31 + 0x4c, 0x01, 0xcf, //0x00009243 addq %r9, %rdi + 0x48, 0x89, 0x39, //0x00009246 movq %rdi, (%rcx) + 0x49, 0x89, 0xfe, //0x00009249 movq %rdi, %r14 + //0x0000924c LBB36_31 + 0x48, 0x83, 0xc6, 0x02, //0x0000924c addq $2, %rsi + 0x49, 0x83, 0xc4, 0xfe, //0x00009250 addq $-2, %r12 + 0x4d, 0x89, 0xe2, //0x00009254 movq %r12, %r10 + 0x48, 0x8b, 0x55, 0xd0, //0x00009257 movq $-48(%rbp), %rdx + 0x4d, 0x85, 0xd2, //0x0000925b testq %r10, %r10 + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x0000925e jne LBB36_25 + 0xe9, 0xdf, 0xfe, 0xff, 0xff, //0x00009264 jmp LBB36_16 + //0x00009269 LBB36_32 + 0x48, 0x29, 0xd7, //0x00009269 subq %rdx, %rdi + 0x48, 0x89, 0xf8, //0x0000926c movq %rdi, %rax + 0xe9, 0xd4, 0xfe, 0xff, 0xff, //0x0000926f jmp LBB36_16 + //0x00009274 LBB36_33 + 0x4d, 0x85, 0xe4, //0x00009274 testq %r12, %r12 + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00009277 je LBB36_17 + 0x49, 0x83, 0xfe, 0xff, //0x0000927d cmpq $-1, %r14 + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00009281 jne LBB36_36 + 0x4c, 0x8b, 0x75, 0xd0, //0x00009287 movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x0000928b notq %r14 + 0x49, 0x01, 0xf6, //0x0000928e addq %rsi, %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00009291 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x00009295 movq %r14, (%rax) + //0x00009298 LBB36_36 + 0x48, 0xff, 0xc6, //0x00009298 incq %rsi + 0x49, 0xff, 0xcc, //0x0000929b decq %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x0000929e movq $-48(%rbp), %rdx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000092a2 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x000092a9 testq %r12, %r12 + 0x0f, 0x85, 0x42, 0xff, 0xff, 0xff, //0x000092ac jne LBB36_24 + 0xe9, 0x91, 0xfe, 0xff, 0xff, //0x000092b2 jmp LBB36_16 + //0x000092b7 LBB36_17 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000092b7 movq $-1, %rax + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x000092be jmp LBB36_16 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000092c3 .p2align 4, 0x00 + //0x000092d0 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x000092d0 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x000092d8 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x000092e0 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x000092e8 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x000092f0 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x000092f8 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00009300 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00009308 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00009310 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00009318 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00009320 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00009328 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00009330 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00009338 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x00009340 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x00009348 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00009350 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00009358 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00009360 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00009368 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00009370 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00009378 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00009380 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00009388 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00009390 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00009398 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x000093a0 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x000093a8 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x000093b0 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x000093b8 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x000093c0 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x000093c8 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x000093d0 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x000093d8 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x000093e0 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x000093e8 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x000093f0 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x000093f8 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00009400 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00009408 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00009410 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00009418 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00009420 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00009428 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00009430 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00009438 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x00009440 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x00009448 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00009450 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00009458 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00009460 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00009468 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00009470 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00009478 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00009480 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00009488 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00009490 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00009498 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x000094a0 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x000094a8 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x000094b0 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x000094b8 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x000094c0 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x000094c8 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x000094d0 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x000094d8 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x000094e0 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x000094e8 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x000094f0 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x000094f8 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00009500 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00009508 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00009510 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00009518 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00009520 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00009528 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00009530 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00009538 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00009540 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00009548 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00009550 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00009558 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00009560 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00009568 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00009570 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00009578 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00009580 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00009588 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00009590 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00009598 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x000095a0 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x000095a8 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x000095b0 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x000095b8 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x000095c0 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x000095c8 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x000095d0 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x000095d8 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x000095e0 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x000095e8 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x000095f0 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x000095f8 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00009600 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00009608 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00009610 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00009618 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00009620 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00009628 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00009630 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00009638 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00009640 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00009648 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00009650 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00009658 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00009660 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00009668 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00009670 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00009678 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00009680 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00009688 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00009690 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00009698 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x000096a0 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x000096a8 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x000096b0 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x000096b8 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x000096c0 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x000096c8 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x000096d0 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x000096d8 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x000096e0 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x000096e8 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x000096f0 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x000096f8 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00009700 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00009708 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00009710 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00009718 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00009720 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00009728 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00009730 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00009738 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00009740 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00009748 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00009750 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00009758 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00009760 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00009768 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00009770 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00009778 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00009780 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00009788 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00009790 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00009798 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x000097a0 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x000097a8 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x000097b0 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x000097b8 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x000097c0 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x000097c8 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x000097d0 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x000097d8 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x000097e0 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x000097e8 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x000097f0 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x000097f8 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009800 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009808 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009810 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009818 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009820 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009828 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009830 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009838 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00009840 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00009848 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00009850 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00009858 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00009860 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00009868 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00009870 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00009878 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00009880 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00009888 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00009890 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00009898 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x000098a0 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x000098a8 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x000098b0 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x000098b8 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x000098c0 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x000098c8 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x000098d0 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x000098d8 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x000098e0 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x000098e8 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x000098f0 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x000098f8 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00009900 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00009908 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00009910 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00009918 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00009920 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00009928 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00009930 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00009938 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00009940 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00009948 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00009950 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00009958 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00009960 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00009968 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00009970 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00009978 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00009980 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00009988 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00009990 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00009998 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x000099a0 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x000099a8 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x000099b0 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x000099b8 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x000099c0 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x000099c8 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x000099d0 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x000099d8 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x000099e0 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x000099e8 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x000099f0 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x000099f8 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00009a00 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00009a08 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00009a10 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00009a18 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00009a20 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00009a28 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00009a30 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00009a38 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00009a40 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00009a48 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00009a50 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00009a58 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00009a60 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00009a68 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00009a70 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00009a78 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00009a80 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00009a88 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00009a90 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00009a98 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00009aa0 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00009aa8 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00009ab0 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00009ab8 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00009ac0 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00009ac8 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00009ad0 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00009ad8 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00009ae0 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00009ae8 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00009af0 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00009af8 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00009b00 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00009b08 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00009b10 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00009b18 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00009b20 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00009b28 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00009b30 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00009b38 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00009b40 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00009b48 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00009b50 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00009b58 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00009b60 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00009b68 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00009b70 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00009b78 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00009b80 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00009b88 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00009b90 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00009b98 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00009ba0 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00009ba8 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00009bb0 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00009bb8 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00009bc0 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00009bc8 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00009bd0 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00009bd8 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00009be0 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00009be8 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00009bf0 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00009bf8 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00009c00 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00009c08 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00009c10 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00009c18 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00009c20 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00009c28 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00009c30 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00009c38 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00009c40 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00009c48 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00009c50 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00009c58 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00009c60 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00009c68 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00009c70 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00009c78 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00009c80 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00009c88 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00009c90 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00009c98 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00009ca0 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00009ca8 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00009cb0 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00009cb8 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00009cc0 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00009cc8 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00009cd0 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00009cd8 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00009ce0 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00009ce8 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x00009cf0 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x00009cf8 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00009d00 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00009d08 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00009d10 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00009d18 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x00009d20 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x00009d28 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00009d30 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00009d38 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00009d40 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00009d48 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00009d50 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00009d58 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00009d60 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00009d68 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00009d70 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00009d78 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00009d80 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00009d88 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00009d90 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00009d98 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00009da0 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00009da8 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00009db0 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00009db8 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00009dc0 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00009dc8 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00009dd0 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00009dd8 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00009de0 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00009de8 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x00009df0 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x00009df8 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x00009e00 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x00009e08 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x00009e10 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x00009e18 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x00009e20 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x00009e28 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x00009e30 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x00009e38 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x00009e40 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x00009e48 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00009e50 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00009e58 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00009e60 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00009e68 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00009e70 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00009e78 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00009e80 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00009e88 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00009e90 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00009e98 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00009ea0 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00009ea8 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00009eb0 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00009eb8 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00009ec0 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00009ec8 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00009ed0 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00009ed8 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00009ee0 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00009ee8 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x00009ef0 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x00009ef8 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x00009f00 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x00009f08 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x00009f10 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x00009f18 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x00009f20 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x00009f28 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x00009f30 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x00009f38 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x00009f40 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x00009f48 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00009f50 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00009f58 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00009f60 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00009f68 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00009f70 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00009f78 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00009f80 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00009f88 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00009f90 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00009f98 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x00009fa0 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x00009fa8 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x00009fb0 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x00009fb8 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x00009fc0 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x00009fc8 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x00009fd0 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x00009fd8 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x00009fe0 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x00009fe8 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x00009ff0 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x00009ff8 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a000 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a008 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a010 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a018 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a020 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a028 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a030 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a038 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a040 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a048 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a050 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a058 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a060 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a068 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a070 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a078 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a080 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a088 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a090 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a098 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a0a0 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a0a8 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a0b0 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a0b8 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a0c0 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a0c8 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a0d0 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a0d8 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a0e0 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a0e8 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a0f0 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a0f8 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a100 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a108 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a110 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a118 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a120 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a128 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a130 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a138 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a140 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a148 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a150 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a158 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a160 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a168 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a170 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a178 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a180 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a188 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a190 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a198 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a1a0 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a1a8 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a1b0 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a1b8 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a1c0 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a1c8 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a1d0 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a1d8 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a1e0 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a1e8 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a1f0 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a1f8 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a200 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a208 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a210 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a218 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a220 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a228 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a230 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a238 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a240 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a248 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a250 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a258 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a260 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a268 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a270 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a278 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a280 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a288 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a290 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a298 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a2a0 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a2a8 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000a2b0 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000a2b8 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000a2c0 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000a2c8 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000a2d0 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000a2d8 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000a2e0 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000a2e8 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000a2f0 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000a2f8 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000a300 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000a308 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000a310 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000a318 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000a320 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000a328 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000a330 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000a338 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000a340 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000a348 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000a350 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000a358 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000a360 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000a368 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000a370 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000a378 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000a380 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000a388 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000a390 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000a398 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000a3a0 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000a3a8 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000a3b0 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000a3b8 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000a3c0 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000a3c8 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000a3d0 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000a3d8 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000a3e0 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000a3e8 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000a3f0 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000a3f8 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000a400 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000a408 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000a410 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000a418 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000a420 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000a428 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000a430 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000a438 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000a440 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000a448 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000a450 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000a458 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000a460 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000a468 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000a470 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000a478 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000a480 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000a488 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000a490 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000a498 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000a4a0 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000a4a8 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000a4b0 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000a4b8 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000a4c0 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000a4c8 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000a4d0 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000a4d8 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000a4e0 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000a4e8 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000a4f0 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000a4f8 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000a500 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000a508 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000a510 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000a518 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000a520 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000a528 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000a530 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000a538 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000a540 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000a548 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000a550 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000a558 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000a560 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000a568 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000a570 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000a578 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000a580 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000a588 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000a590 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000a598 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000a5a0 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000a5a8 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000a5b0 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000a5b8 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000a5c0 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000a5c8 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000a5d0 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000a5d8 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000a5e0 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000a5e8 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000a5f0 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000a5f8 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000a600 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000a608 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000a610 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000a618 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000a620 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000a628 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000a630 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000a638 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000a640 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000a648 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000a650 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000a658 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000a660 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000a668 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000a670 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000a678 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000a680 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000a688 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000a690 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000a698 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000a6a0 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000a6a8 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000a6b0 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000a6b8 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000a6c0 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000a6c8 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000a6d0 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000a6d8 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000a6e0 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000a6e8 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000a6f0 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000a6f8 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000a700 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000a708 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000a710 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000a718 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000a720 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000a728 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000a730 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000a738 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000a740 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000a748 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000a750 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000a758 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000a760 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000a768 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000a770 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000a778 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000a780 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000a788 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000a790 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000a798 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000a7a0 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000a7a8 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000a7b0 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000a7b8 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000a7c0 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000a7c8 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000a7d0 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000a7d8 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000a7e0 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000a7e8 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000a7f0 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000a7f8 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000a800 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000a808 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000a810 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000a818 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000a820 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000a828 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000a830 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000a838 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000a840 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000a848 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000a850 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000a858 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000a860 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000a868 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000a870 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000a878 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000a880 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a890 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000a898 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a8a0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000a8a8 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a8b0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000a8b8 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a8c0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000a8c8 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a8d0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000a8d8 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a8e0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000a8e8 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a8f0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000a8f8 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a900 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000a908 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a910 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000a918 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a920 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000a928 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a930 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000a938 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a940 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000a948 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a950 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000a958 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a960 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000a968 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a970 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000a978 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a980 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000a988 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a990 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000a998 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9a0 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000a9a8 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9b0 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000a9b8 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9c0 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000a9c8 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9d0 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000a9d8 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9e0 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000a9e8 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9f0 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000a9f8 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa00 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000aa08 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa10 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000aa18 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa20 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000aa28 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa30 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000aa38 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa40 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000aa48 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000aa50 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000aa58 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000aa60 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000aa68 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000aa70 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000aa78 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000aa80 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000aa88 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000aa90 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000aa98 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000aaa0 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000aaa8 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000aab0 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000aab8 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000aac0 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000aac8 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000aad0 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000aad8 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000aae0 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000aae8 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000aaf0 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000aaf8 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000ab00 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000ab08 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000ab10 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000ab18 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000ab20 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000ab28 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000ab30 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000ab38 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000ab40 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000ab48 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000ab50 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000ab58 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000ab60 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000ab68 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000ab70 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000ab78 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000ab80 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000ab88 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000ab90 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000ab98 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000aba0 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000aba8 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000abb0 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000abb8 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000abc0 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000abc8 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000abd0 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000abd8 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000abe0 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000abe8 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000abf0 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000abf8 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000ac00 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000ac08 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000ac10 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000ac18 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000ac20 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000ac28 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000ac30 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000ac38 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000ac40 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000ac48 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000ac50 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000ac58 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000ac60 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000ac68 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000ac70 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000ac78 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000ac80 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000ac88 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000ac90 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000ac98 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000aca0 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000aca8 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000acb0 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000acb8 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000acc0 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000acc8 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000acd0 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000acd8 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000ace0 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000ace8 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000acf0 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000acf8 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000ad00 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000ad08 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000ad10 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000ad18 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000ad20 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000ad28 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000ad30 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000ad38 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000ad40 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000ad48 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000ad50 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000ad58 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000ad60 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000ad68 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000ad70 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000ad78 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000ad80 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000ad88 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000ad90 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000ad98 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000ada0 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000ada8 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000adb0 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000adb8 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000adc0 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000adc8 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000add0 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000add8 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000ade0 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000ade8 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000adf0 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000adf8 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000ae00 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000ae08 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000ae10 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000ae18 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000ae20 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000ae28 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000ae30 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000ae38 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000ae40 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000ae48 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000ae50 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000ae58 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000ae60 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000ae68 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000ae70 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000ae78 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000ae80 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000ae88 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000ae90 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000ae98 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000aea0 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000aea8 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000aeb0 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000aeb8 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000aec0 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000aec8 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000aed0 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000aed8 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000aee0 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000aee8 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000aef0 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000aef8 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000af00 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000af08 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000af10 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000af18 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000af20 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000af28 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000af30 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000af38 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000af40 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000af48 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000af50 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000af58 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000af60 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000af68 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000af70 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000af78 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000af80 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000af88 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000af90 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000af98 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000afa0 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000afa8 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000afb0 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000afb8 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000afc0 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000afc8 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000afd0 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000afd8 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000afe0 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000afe8 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000aff0 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000aff8 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b000 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b008 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b010 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b018 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b020 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b028 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b030 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b038 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b040 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b048 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b050 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b058 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b060 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b068 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b070 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b078 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b080 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b088 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b090 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b098 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b0a0 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b0a8 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b0b0 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b0b8 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b0c0 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b0c8 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b0d0 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b0d8 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b0e0 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b0e8 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b0f0 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b0f8 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b100 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b108 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b110 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b118 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b120 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b128 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b130 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b138 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b140 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b148 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b150 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b158 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b160 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b168 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b170 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b178 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b180 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b188 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b190 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b198 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b1a0 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b1a8 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b1b0 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b1b8 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b1c0 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b1c8 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b1d0 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b1d8 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b1e0 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b1e8 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b1f0 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b1f8 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b200 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b208 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b210 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b218 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b220 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b228 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b230 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b238 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b240 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b248 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b250 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b258 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b260 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b268 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b270 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b278 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b280 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b288 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b290 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b298 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b2a0 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b2a8 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000b2b0 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000b2b8 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000b2c0 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000b2c8 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000b2d0 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000b2d8 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000b2e0 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000b2e8 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000b2f0 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000b2f8 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000b300 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000b308 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000b310 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000b318 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000b320 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000b328 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000b330 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000b338 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000b340 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000b348 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000b350 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000b358 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000b360 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000b368 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000b370 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000b378 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000b380 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000b388 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000b390 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000b398 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000b3a0 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000b3a8 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000b3b0 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000b3b8 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000b3c0 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000b3c8 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000b3d0 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000b3d8 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000b3e0 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000b3e8 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000b3f0 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000b3f8 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000b400 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000b408 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000b410 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000b418 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000b420 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000b428 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000b430 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000b438 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000b440 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000b448 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000b450 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000b458 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000b460 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000b468 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000b470 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000b478 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000b480 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000b488 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000b490 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000b498 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000b4a0 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000b4a8 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000b4b0 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000b4b8 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000b4c0 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000b4c8 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000b4d0 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000b4d8 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000b4e0 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000b4e8 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000b4f0 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000b4f8 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000b500 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000b508 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000b510 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000b518 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000b520 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000b528 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000b530 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000b538 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000b540 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000b548 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000b550 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000b558 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000b560 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000b568 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000b570 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000b578 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000b580 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000b588 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000b590 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000b598 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000b5a0 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000b5a8 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000b5b0 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000b5b8 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000b5c0 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000b5c8 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000b5d0 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000b5d8 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000b5e0 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000b5e8 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000b5f0 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000b5f8 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000b600 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000b608 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000b610 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000b618 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000b620 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000b628 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000b630 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000b638 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000b640 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000b648 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000b650 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000b658 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000b660 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000b668 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000b670 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000b678 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000b680 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000b688 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000b690 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000b698 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000b6a0 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000b6a8 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000b6b0 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000b6b8 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000b6c0 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000b6c8 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000b6d0 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000b6d8 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000b6e0 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000b6e8 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000b6f0 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000b6f8 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000b700 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000b708 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000b710 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000b718 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000b720 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000b728 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000b730 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000b738 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000b740 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000b748 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000b750 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000b758 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000b760 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000b768 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000b770 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000b778 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000b780 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000b788 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000b790 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000b798 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000b7a0 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000b7a8 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000b7b0 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000b7b8 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000b7c0 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000b7c8 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000b7d0 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000b7d8 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000b7e0 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000b7e8 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000b7f0 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000b7f8 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000b800 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000b808 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000b810 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000b818 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000b820 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000b828 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000b830 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000b838 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000b840 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000b848 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000b850 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000b858 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000b860 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000b868 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000b870 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000b878 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000b880 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000b888 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000b890 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000b898 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000b8a0 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000b8a8 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000b8b0 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000b8b8 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000b8c0 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000b8c8 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000b8d0 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000b8d8 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000b8e0 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000b8e8 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000b8f0 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000b8f8 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000b900 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000b908 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000b910 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000b918 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000b920 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000b928 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000b930 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000b938 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000b940 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000b948 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000b950 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000b958 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000b960 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000b968 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000b970 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000b978 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000b980 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000b988 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000b990 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000b998 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000b9a0 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000b9a8 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000b9b0 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000b9b8 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000b9c0 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000b9c8 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000b9d0 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000b9d8 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000b9e0 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000b9e8 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000b9f0 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000b9f8 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000ba00 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000ba08 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000ba10 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000ba18 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000ba20 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000ba28 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000ba30 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000ba38 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000ba40 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000ba48 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000ba50 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000ba58 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000ba60 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000ba68 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000ba70 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000ba78 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000ba80 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000ba88 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000ba90 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000ba98 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000baa0 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000baa8 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000bab0 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000bab8 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000bac0 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000bac8 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000bad0 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000bad8 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000bae0 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000bae8 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000baf0 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000baf8 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000bb00 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000bb08 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000bb10 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000bb18 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000bb20 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000bb28 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000bb30 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000bb38 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000bb40 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000bb48 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000bb50 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000bb58 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000bb60 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000bb68 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000bb70 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000bb78 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000bb80 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000bb88 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000bb90 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000bb98 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000bba0 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000bba8 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000bbb0 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000bbb8 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000bbc0 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000bbc8 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000bbd0 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000bbd8 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000bbe0 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000bbe8 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000bbf0 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000bbf8 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000bc00 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000bc08 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000bc10 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000bc18 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000bc20 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000bc28 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000bc30 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000bc38 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000bc40 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000bc48 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000bc50 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000bc58 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000bc60 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000bc68 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000bc70 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000bc78 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000bc80 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000bc88 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000bc90 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000bc98 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000bca0 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000bca8 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000bcb0 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000bcb8 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000bcc0 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000bcc8 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000bcd0 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000bcd8 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000bce0 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000bce8 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000bcf0 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000bcf8 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000bd00 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000bd08 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000bd10 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000bd18 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000bd20 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000bd28 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000bd30 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000bd38 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000bd40 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000bd48 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000bd50 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000bd58 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000bd60 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000bd68 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000bd70 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000bd78 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000bd80 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000bd88 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000bd90 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000bd98 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000bda0 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000bda8 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000bdb0 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000bdb8 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000bdc0 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000bdc8 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000bdd0 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000bdd8 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000bde0 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000bde8 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000bdf0 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000bdf8 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000be00 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000be08 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000be10 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000be18 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000be20 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000be28 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000be30 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000be38 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000be40 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000be48 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000be50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000be60 .p2align 4, 0x00 + //0x0000be60 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x0000be60 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x0000be64 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x0000be68 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000be6c .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x0000be70 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x0000be74 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x0000be78 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000be7c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x0000be80 .long 26 + //0x0000be84 .p2align 2, 0x00 + //0x0000be84 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000be84 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000be88 .p2align 4, 0x00 + //0x0000be90 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000be90 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000bea0 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000beb0 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000bec0 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000bed0 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000bee0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000bef0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000bf00 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000bf10 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000bf20 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000bf30 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000bf40 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000bf50 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bf58 .p2align 4, 0x00 + //0x0000bf60 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000bf60 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000bf68 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000bf70 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000bf78 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000bf80 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000bf88 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000bf90 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000bf98 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000bfa0 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000bfa8 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000bfb0 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000bfb8 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000bfc0 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000bfc8 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000bfd0 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000bfd8 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000bfe0 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000bfe8 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000bff0 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000bff8 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c000 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c008 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c010 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c018 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c020 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c028 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c030 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c038 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c040 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c048 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c050 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c058 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c060 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c068 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c070 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c078 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c080 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c088 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c090 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c098 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c0a0 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c0a8 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c0b0 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c0b8 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c0c0 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c0c8 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c0d0 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c0d8 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c0e0 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c0e8 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c0f0 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c0f8 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c100 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c108 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c110 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c118 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c120 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c128 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c130 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c138 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c140 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c148 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c150 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c158 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c160 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c168 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c170 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c178 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c180 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c188 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c190 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c198 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c1a0 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c1a8 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c1b0 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c1b8 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c1c0 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c1c8 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c1d0 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c1d8 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c1e0 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c1e8 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c1f0 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c1f8 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c200 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c208 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c210 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c218 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c220 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c228 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c230 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c238 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c240 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c248 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c250 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c258 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c260 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c268 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c270 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c278 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c280 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c288 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c290 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c298 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c2a0 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c2a8 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000c2b0 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000c2b8 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000c2c0 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000c2c8 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000c2d0 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000c2d8 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000c2e0 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000c2e8 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000c2f0 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000c2f8 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000c300 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000c308 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000c310 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000c318 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000c320 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000c328 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000c330 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000c338 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000c340 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000c348 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000c350 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000c358 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000c360 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000c368 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000c370 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000c378 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000c380 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000c388 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000c390 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000c398 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000c3a0 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000c3a8 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000c3b0 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000c3b8 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000c3c0 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000c3c8 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000c3d0 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000c3d8 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000c3e0 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000c3e8 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000c3f0 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000c3f8 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000c400 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000c408 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000c410 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000c418 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000c420 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000c428 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000c430 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000c438 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000c440 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000c448 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000c450 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000c458 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000c460 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000c468 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000c470 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000c478 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000c480 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000c488 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000c490 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000c498 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000c4a0 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000c4a8 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000c4b0 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000c4b8 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000c4c0 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000c4c8 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000c4d0 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000c4d8 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000c4e0 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000c4e8 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000c4f0 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000c4f8 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000c500 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000c508 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000c510 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000c518 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000c520 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000c528 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000c530 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000c538 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000c540 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000c548 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000c550 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000c558 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000c560 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000c568 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000c570 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000c578 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000c580 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000c588 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000c590 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000c598 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000c5a0 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000c5a8 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000c5b0 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000c5b8 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000c5c0 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000c5c8 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000c5d0 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000c5d8 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000c5e0 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000c5e8 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000c5f0 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000c5f8 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000c600 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000c608 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000c610 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000c618 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000c620 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000c628 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000c630 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000c638 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000c640 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000c648 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000c650 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000c658 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000c660 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000c668 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000c670 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000c678 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000c680 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000c688 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000c690 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000c698 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000c6a0 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000c6a8 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000c6b0 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000c6b8 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000c6c0 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000c6c8 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000c6d0 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000c6d8 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000c6e0 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000c6e8 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000c6f0 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000c6f8 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000c700 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000c708 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000c710 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000c718 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000c720 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000c728 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000c730 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000c738 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000c740 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000c748 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000c750 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000c758 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000c760 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000c768 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000c770 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000c778 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000c780 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000c788 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000c790 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000c798 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000c7a0 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000c7a8 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000c7b0 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000c7b8 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000c7c0 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000c7c8 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000c7d0 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000c7d8 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000c7e0 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000c7e8 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000c7f0 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000c7f8 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000c800 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000c808 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000c810 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000c818 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000c820 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000c828 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000c830 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000c838 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000c840 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000c848 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000c850 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000c858 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000c860 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000c868 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000c870 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000c878 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000c880 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000c888 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000c890 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000c898 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000c8a0 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000c8a8 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000c8b0 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000c8b8 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000c8c0 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000c8c8 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000c8d0 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000c8d8 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000c8e0 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000c8e8 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000c8f0 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000c8f8 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000c900 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000c908 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000c910 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000c918 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000c920 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000c928 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000c930 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000c938 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000c940 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000c948 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000c950 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000c958 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000c960 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000c968 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000c970 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000c978 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000c980 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000c988 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000c990 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000c998 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000c9a0 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000c9a8 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000c9b0 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000c9b8 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000c9c0 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000c9c8 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000c9d0 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000c9d8 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000c9e0 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000c9e8 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000c9f0 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000c9f8 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000ca00 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000ca08 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000ca10 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000ca18 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000ca20 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000ca28 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000ca30 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000ca38 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000ca40 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000ca48 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000ca50 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000ca58 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000ca60 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000ca68 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000ca70 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000ca78 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000ca80 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000ca88 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000ca90 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000ca98 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000caa0 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000caa8 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000cab0 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000cab8 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000cac0 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000cac8 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000cad0 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000cad8 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000cae0 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000cae8 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000caf0 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000caf8 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000cb00 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000cb08 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000cb10 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000cb18 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000cb20 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000cb28 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000cb30 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000cb38 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000cb40 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000cb48 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000cb50 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000cb58 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000cb60 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000cb68 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000cb70 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000cb78 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000cb80 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000cb88 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000cb90 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000cb98 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000cba0 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000cba8 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000cbb0 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000cbb8 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000cbc0 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000cbc8 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000cbd0 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000cbd8 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000cbe0 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000cbe8 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000cbf0 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000cbf8 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000cc00 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000cc08 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000cc10 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000cc18 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000cc20 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000cc28 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000cc30 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000cc38 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000cc40 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000cc48 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000cc50 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000cc58 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000cc60 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000cc68 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000cc70 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000cc78 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000cc80 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000cc88 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000cc90 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000cc98 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000cca0 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000cca8 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000ccb0 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000ccb8 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000ccc0 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000ccc8 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000ccd0 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000ccd8 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000cce0 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000cce8 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000ccf0 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000ccf8 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000cd00 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000cd08 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000cd10 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000cd18 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000cd20 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000cd28 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000cd30 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000cd38 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000cd40 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000cd48 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000cd50 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000cd58 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000cd60 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000cd68 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000cd70 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000cd78 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000cd80 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000cd88 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000cd90 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000cd98 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000cda0 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000cda8 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000cdb0 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000cdb8 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000cdc0 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000cdc8 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000cdd0 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000cdd8 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000cde0 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000cde8 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000cdf0 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000cdf8 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000ce00 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000ce08 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000ce10 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000ce18 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000ce20 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000ce28 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000ce30 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000ce38 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000ce40 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000ce48 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000ce50 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000ce58 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000ce60 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000ce68 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000ce70 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000ce78 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000ce80 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000ce88 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000ce90 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000ce98 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000cea0 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000cea8 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000ceb0 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000ceb8 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000cec0 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000cec8 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000ced0 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000ced8 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000cee0 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000cee8 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000cef0 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000cef8 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000cf00 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000cf08 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000cf10 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000cf18 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000cf20 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000cf28 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000cf30 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000cf38 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000cf40 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000cf48 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000cf50 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000cf58 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000cf60 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000cf68 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000cf70 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000cf78 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000cf80 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000cf88 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000cf90 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000cf98 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000cfa0 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000cfa8 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000cfb0 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000cfb8 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000cfc0 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000cfc8 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000cfd0 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000cfd8 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000cfe0 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000cfe8 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000cff0 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000cff8 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d000 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d008 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d010 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d018 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d020 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d028 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d030 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d038 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d040 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d048 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d050 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d058 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d060 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d068 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d070 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d078 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d080 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d088 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d090 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d098 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d0a0 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d0a8 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d0b0 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d0b8 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d0c0 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d0c8 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d0d0 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d0d8 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d0e0 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d0e8 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d0f0 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d0f8 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d100 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d108 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d110 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d118 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d120 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d128 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d130 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d138 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d140 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d148 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d150 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d158 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d160 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d168 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d170 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d178 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d180 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d188 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d190 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d198 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d1a0 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d1b0 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d1c0 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1c8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d1d0 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1d8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d1e0 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1e8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d1f0 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1f8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d200 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d208 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d210 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d218 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d220 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d228 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d230 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d238 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d240 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d248 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d250 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d258 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d260 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d268 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d270 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d278 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d280 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d288 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d290 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d298 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d2a0 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2a8 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000d2b0 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2b8 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000d2c0 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2c8 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000d2d0 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2d8 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000d2e0 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2e8 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000d2f0 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2f8 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000d300 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d308 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000d310 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d318 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000d320 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d328 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000d330 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d338 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000d340 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d348 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000d350 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d358 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000d360 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000d368 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000d370 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000d378 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000d380 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000d388 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000d390 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000d398 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000d3a0 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000d3a8 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000d3b0 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000d3b8 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000d3c0 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000d3c8 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000d3d0 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000d3d8 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000d3e0 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000d3e8 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000d3f0 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000d3f8 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000d400 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000d408 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000d410 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000d418 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000d420 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000d428 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000d430 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000d438 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000d440 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000d448 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000d450 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000d458 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000d460 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000d468 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000d470 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000d478 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000d480 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000d488 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000d490 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000d498 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000d4a0 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000d4a8 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000d4b0 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000d4b8 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000d4c0 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000d4c8 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000d4d0 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000d4d8 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000d4e0 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000d4e8 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000d4f0 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000d4f8 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000d500 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000d508 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000d510 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000d518 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000d520 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000d528 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000d530 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000d538 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000d540 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000d548 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000d550 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000d558 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000d560 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000d568 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000d570 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000d578 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000d580 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000d588 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000d590 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000d598 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000d5a0 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000d5a8 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000d5b0 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000d5b8 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000d5c0 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000d5c8 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000d5d0 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000d5d8 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000d5e0 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000d5e8 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000d5f0 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000d5f8 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000d600 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000d608 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000d610 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000d618 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000d620 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000d628 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000d630 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000d638 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000d640 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000d648 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000d650 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000d658 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000d660 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000d668 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000d670 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000d678 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000d680 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000d688 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000d690 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000d698 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000d6a0 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000d6a8 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000d6b0 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000d6b8 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000d6c0 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000d6c8 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000d6d0 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000d6d8 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000d6e0 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000d6e8 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000d6f0 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000d6f8 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000d700 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000d708 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000d710 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000d718 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000d720 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000d728 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000d730 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000d738 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000d740 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000d748 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000d750 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000d758 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000d760 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000d768 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000d770 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000d778 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000d780 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000d788 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000d790 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000d798 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000d7a0 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000d7a8 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000d7b0 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000d7b8 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000d7c0 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000d7c8 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000d7d0 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000d7d8 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000d7e0 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000d7e8 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000d7f0 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000d7f8 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000d800 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000d808 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000d810 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000d818 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000d820 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000d828 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000d830 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000d838 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000d840 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000d848 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000d850 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000d858 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000d860 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000d868 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000d870 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000d878 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000d880 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000d888 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000d890 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000d898 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000d8a0 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000d8a8 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000d8b0 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000d8b8 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000d8c0 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000d8c8 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000d8d0 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000d8d8 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000d8e0 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000d8e8 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000d8f0 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000d8f8 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000d900 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000d908 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000d910 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000d918 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000d920 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000d928 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000d930 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000d938 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000d940 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000d948 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000d950 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000d958 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000d960 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000d968 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000d970 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000d978 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000d980 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000d988 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000d990 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000d998 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000d9a0 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000d9a8 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000d9b0 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000d9b8 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000d9c0 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000d9c8 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000d9d0 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000d9d8 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000d9e0 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000d9e8 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000d9f0 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000d9f8 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000da00 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000da08 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000da10 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000da18 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000da20 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000da28 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000da30 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000da38 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000da40 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000da48 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000da50 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000da58 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000da60 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000da68 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000da70 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000da78 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000da80 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000da88 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000da90 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000da98 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000daa0 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000daa8 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000dab0 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000dab8 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000dac0 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000dac8 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000dad0 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000dad8 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000dae0 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000dae8 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000daf0 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000daf8 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000db00 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000db08 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000db10 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000db18 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000db20 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000db28 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000db30 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000db38 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000db40 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000db48 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000db50 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000db58 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000db60 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000db68 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000db70 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000db78 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000db80 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000db88 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000db90 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000db98 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000dba0 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000dba8 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000dbb0 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000dbb8 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000dbc0 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000dbc8 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000dbd0 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000dbd8 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000dbe0 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000dbe8 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000dbf0 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000dbf8 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000dc00 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000dc08 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000dc10 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000dc18 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000dc20 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000dc28 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000dc30 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000dc38 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000dc40 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000dc48 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000dc50 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000dc58 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000dc60 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000dc68 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000dc70 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000dc78 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000dc80 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000dc88 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000dc90 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000dc98 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000dca0 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000dca8 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000dcb0 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000dcb8 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000dcc0 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000dcc8 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000dcd0 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000dcd8 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000dce0 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000dce8 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000dcf0 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000dcf8 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000dd00 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000dd08 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000dd10 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000dd18 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000dd20 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000dd28 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000dd30 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000dd38 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000dd40 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000dd48 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000dd50 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000dd58 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000dd60 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000dd68 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000dd70 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000dd78 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000dd80 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000dd88 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000dd90 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000dd98 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000dda0 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000dda8 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000ddb0 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000ddb8 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000ddc0 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000ddc8 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000ddd0 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000ddd8 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000dde0 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000dde8 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000ddf0 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000ddf8 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000de00 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000de08 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000de10 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000de18 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000de20 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000de28 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000de30 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000de38 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000de40 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000de48 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000de50 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000de58 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000de60 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000de68 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000de70 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000de78 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000de80 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000de88 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000de90 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000de98 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000dea0 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000dea8 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000deb0 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000deb8 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000dec0 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000dec8 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000ded0 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000ded8 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000dee0 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000dee8 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000def0 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000def8 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000df00 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000df08 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000df10 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000df18 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000df20 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000df28 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000df30 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000df38 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000df40 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000df48 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000df50 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000df58 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000df60 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000df68 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000df70 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000df78 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000df80 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000df88 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000df90 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000df98 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000dfa0 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000dfa8 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000dfb0 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000dfb8 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000dfc0 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000dfc8 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000dfd0 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000dfd8 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000dfe0 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000dfe8 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000dff0 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000dff8 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e000 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e008 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e010 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e018 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e020 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e028 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e030 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e038 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e040 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e048 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e050 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e058 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e060 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e068 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e070 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e078 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e080 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e088 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e090 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e098 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e0a0 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e0a8 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e0b0 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e0b8 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e0c0 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e0c8 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e0d0 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e0d8 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e0e0 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e0e8 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e0f0 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e0f8 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e100 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e108 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e110 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e118 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e120 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e128 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e130 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e138 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e140 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e148 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e150 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e158 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e160 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e168 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e170 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e178 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e180 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e188 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e190 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e198 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e1a0 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e1a8 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e1b0 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e1b8 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e1c0 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e1c8 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e1d0 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e1d8 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e1e0 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e1e8 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e1f0 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e1f8 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e200 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e208 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e210 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e218 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e220 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e228 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e230 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e238 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e240 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e248 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e250 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e258 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e260 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e268 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e270 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e278 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e280 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e288 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e290 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e298 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e2a0 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e2a8 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000e2b0 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000e2b8 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000e2c0 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000e2c8 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000e2d0 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000e2d8 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000e2e0 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000e2e8 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000e2f0 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000e2f8 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000e300 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000e308 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000e310 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000e318 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000e320 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000e328 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000e330 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000e338 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000e340 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000e348 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000e350 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000e358 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000e360 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000e368 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000e370 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000e378 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000e380 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000e388 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000e390 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000e398 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000e3a0 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000e3a8 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000e3b0 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000e3b8 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000e3c0 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000e3c8 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000e3d0 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000e3d8 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000e3e0 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000e3e8 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000e3f0 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000e3f8 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000e400 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000e408 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000e410 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000e418 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000e420 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000e428 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000e430 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000e438 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000e440 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000e448 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000e450 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000e458 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000e460 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000e468 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000e470 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000e478 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000e480 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000e488 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000e490 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000e498 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000e4a0 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000e4a8 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000e4b0 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000e4b8 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000e4c0 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000e4c8 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000e4d0 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000e4d8 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000e4e0 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000e4e8 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000e4f0 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000e4f8 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000e500 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000e508 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000e510 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000e518 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000e520 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000e528 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000e530 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000e538 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000e540 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000e548 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000e550 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000e558 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000e560 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000e568 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000e570 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000e578 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000e580 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000e588 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000e590 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000e598 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000e5a0 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000e5a8 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000e5b0 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000e5b8 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000e5c0 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000e5c8 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000e5d0 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000e5d8 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000e5e0 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000e5e8 .quad 7784369436827535058 + //0x0000e5f0 .p2align 4, 0x00 + //0x0000e5f0 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000e5f0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000e600 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000e610 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000e620 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000e630 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e640 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e650 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e660 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e670 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + //0x0000e680 .p2align 4, 0x00 + //0x0000e680 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e680 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000e688 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e690 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000e698 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000e6a8 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000e6b8 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000e6c8 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000e6d8 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000e6e8 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000e6f8 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e700 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000e708 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e710 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e718 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e720 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e728 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e730 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000e738 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e740 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000e748 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e750 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e758 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e760 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000e768 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e770 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000e778 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e780 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000e788 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e790 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000e798 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000e7a8 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000e7b8 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000e7c8 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000e7d8 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000e7e8 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000e7f8 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e800 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000e808 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e810 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000e818 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e820 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000e828 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e830 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000e838 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e840 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000e848 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e850 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000e858 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e860 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000e868 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e870 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000e878 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8a0 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8a8 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ead0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec40 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec48 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ece0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ede0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eeb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000f680 .p2align 4, 0x00 + //0x0000f680 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f680 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000f688 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f690 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000f698 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000f6a8 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000f6b8 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000f6c8 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000f6d8 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000f6e8 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000f6f8 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f700 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000f708 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f710 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f718 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f720 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f728 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f730 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000f738 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f740 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000f748 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f750 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f758 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f760 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000f768 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f770 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000f778 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f780 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000f788 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f790 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000f798 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000f7a8 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000f7b8 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000f7c8 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000f7d8 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000f7e8 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000f7f8 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f800 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000f808 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f810 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000f818 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f820 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000f828 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f830 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000f838 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f840 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000f848 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f850 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000f858 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f860 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000f868 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f870 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000f878 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8a0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000f8a8 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc40 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x0000fc48 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000feb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010680 .p2align 4, 0x00 + //0x00010680 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010680 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010690 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106a0 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x000106d0 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106dd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106ed QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106fd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001070d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001071d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001072d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001073d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001074d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001075d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001076d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x0001077d WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' + //0x00010780 .p2align 4, 0x00 + //0x00010780 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x000107a0 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x000107d0 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x000107e0 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x000107f0 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107f6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010806 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010816 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010826 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010836 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010846 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010856 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010866 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010876 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010880 .p2align 4, 0x00 + //0x00010880 __HtmlQuoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00010ae8 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00010c48 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c60 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00010c68 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011300 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00011308 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011310 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00011318 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00011880 .p2align 4, 0x00 + //0x00011880 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118e0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000118e8 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118ec QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001190c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001191c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001192c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001193c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001194c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011950 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011954 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011964 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011974 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011984 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011994 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000119b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000119b8 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119bc QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011a1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011a20 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a24 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011a84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011a88 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a8c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011abc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011acc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011adc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011aec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011af0 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011af4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011b54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011b58 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b5c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011bbc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011bc0 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc4 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011be4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011c24 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011c28 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c2c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011c8c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011c90 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c94 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ca4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ce4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011cf4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011cf8 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cfc QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011d5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011d60 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d64 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011da4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011db4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011dc4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011dc8 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dcc QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ddc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011e2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00011e30 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e34 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011e94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00011e98 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e9c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ebc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011edc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011efc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00011f00 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00011f04 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011f64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00011f68 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00011f6c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011fcc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00011fd0 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00011fd4 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fe4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ff4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012004 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012014 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012024 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012034 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012038 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001203c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001204c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001205c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001206c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001207c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001208c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001209c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000120a0 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000120a4 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012104 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012108 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001210c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001211c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001212c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001213c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001214c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001215c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001216c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012170 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00012174 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012184 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000121d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000121d8 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x000121dc QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121ec QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001220c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001221c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001222c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001223c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012240 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00012244 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012254 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012264 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012284 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012294 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000122a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000122a8 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x000122ac QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122bc QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001230c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012310 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00012314 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012324 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012374 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00012378 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x0001237c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001238c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001239c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000123dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000123e0 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x000123e4 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123f4 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012444 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00012448 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x0001244c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001245c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001246c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001247c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001248c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001249c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000124ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000124b0 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x000124b4 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124c4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012514 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012518 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x0001251c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001252c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001253c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001254c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001255c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001256c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001257c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012580 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00012584 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012594 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000125e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000125e8 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x000125ec QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125fc QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001260c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001261c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001262c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001263c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001264c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012650 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00012654 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012664 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012674 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000126b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000126b8 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x000126bc QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126cc QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001270c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001271c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012720 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00012724 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012734 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012744 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012784 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012788 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x0001278c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001279c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000127ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x000127f0 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x000127f4 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012804 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012814 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012854 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012858 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x0001285c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0001286c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001287c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001288c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001289c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000128bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000128c0 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x000128c4 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000128d4 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012904 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012924 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012928 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x0001292c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x0001293c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001294c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001295c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001296c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001297c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001298c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012990 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00012994 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000129a4 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000129f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000129f8 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x000129fc QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00012a0c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012a60 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00012a64 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00012a74 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ac4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012ac8 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x00012acc QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x00012adc QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012b30 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00012b34 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00012b44 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b54 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012b98 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x00012b9c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x00012bac QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bbc QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012bfc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012c00 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00012c04 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00012c14 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c24 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012c68 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00012c6c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00012c7c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c8c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ccc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012cd0 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00012cd4 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00012ce4 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cf4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012d38 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x00012d3c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x00012d4c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d5c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012da0 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00012da4 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00012db4 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dc4 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012e08 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x00012e0c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x00012e1c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e2c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00012e70 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00012e74 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00012e84 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e94 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ed4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00012ed8 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x00012edc QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x00012eec QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012efc QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00012f40 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00012f44 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00012f54 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f64 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012fa4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00012fa8 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x00012fac QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x00012fbc QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fcc QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001300c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013010 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013014 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013024 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013034 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013074 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013078 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x0001307c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x0001308c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001309c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000130dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x000130e0 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x000130e4 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x000130f4 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013104 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013144 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013148 .p2align 4, 0x00 + //0x00013150 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x00013150 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x00013158 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x00013160 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x00013168 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x00013170 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x00013178 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x00013180 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x00013188 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00013190 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00013198 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x000131a0 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x000131a8 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x000131b0 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x000131b8 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x000131c0 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x000131c8 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x000131d0 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x000131d8 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x000131e0 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x000131e8 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x000131f0 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x000131f8 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013200 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013208 .p2align 4, 0x00 + //0x00013210 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013210 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013218 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013220 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013228 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013230 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013238 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00013240 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00013248 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00013250 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00013258 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00013260 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00013268 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00013270 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00013278 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00013280 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00013288 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00013290 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00013298 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x000132a0 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x000132a8 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x000132b0 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x000132b8 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x000132c0 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000132c8 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x000132d0 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x000132d8 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x000132e0 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x000132e8 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x000132f0 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x000132f8 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00013300 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00013308 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00013310 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00013318 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00013320 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00013328 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00013330 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00013338 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00013340 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00013348 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00013350 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00013358 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00013360 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00013368 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00013370 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00013378 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00013380 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00013388 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00013390 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00013398 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x000133a0 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x000133a8 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x000133b0 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x000133b8 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x000133c0 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x000133c8 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x000133d0 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x000133d8 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x000133e0 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x000133e8 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x000133f0 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x000133f8 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00013400 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00013408 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00013410 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00013418 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00013420 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00013428 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00013430 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00013438 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00013440 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00013448 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00013450 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00013458 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00013460 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00013468 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00013470 .quad -5522047002568494196 +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go index 7ce533f1..1a4ea0ae 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go @@ -1,5 +1,7 @@ // Code generated by Makefile, DO NOT EDIT. +// Code generated by Makefile, DO NOT EDIT. + /* * Copyright 2021 ByteDance Inc. * @@ -22,114 +24,168 @@ import ( `unsafe` `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var ( + __i64toa func(out unsafe.Pointer, val int64) (ret int) + + __u64toa func(out unsafe.Pointer, val uint64) (ret int) + + __f64toa func(out unsafe.Pointer, val float64) (ret int) + + __f32toa func(out unsafe.Pointer, val float32) (ret int) + + __lspace func(sp unsafe.Pointer, nb int, off int) (ret int) + + __quote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer, flags uint64) (ret int) + + __html_escape func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer) (ret int) + + __unquote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep unsafe.Pointer, flags uint64) (ret int) + + __value func(s unsafe.Pointer, n int, p int, v unsafe.Pointer, flags uint64) (ret int) + + __vstring func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer, flags uint64) + + __vnumber func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + + __vsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + + __vunsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + + __skip_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + + __skip_one_fast func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + + __skip_array func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + + __skip_object func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + + __skip_number func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + + __validate_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + + __get_by_path func(s unsafe.Pointer, p unsafe.Pointer, path unsafe.Pointer, m unsafe.Pointer) (ret int) + + __validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + + __validate_utf8_fast func(s unsafe.Pointer) (ret int) + + __fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int) ) //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __i64toa(out *byte, val int64) (ret int) +func i64toa(out *byte, val int64) (ret int) { + return __i64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} + +//go:nosplit +func u64toa(out *byte, val uint64) (ret int) { + return __u64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __u64toa(out *byte, val uint64) (ret int) +func f64toa(out *byte, val float64) (ret int) { + return __f64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __f64toa(out *byte, val float64) (ret int) +func f32toa(out *byte, val float32) (ret int) { + return __f32toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __f32toa(out *byte, val float32) (ret int) +func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { + return __lspace(rt.NoEscape(sp), nb, off) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __lspace(sp unsafe.Pointer, nb int, off int) (ret int) +func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { + return __quote(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(dn)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) +func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { + return __html_escape(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(dn))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) +func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { + return __unquote(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(ep)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) +func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { + return __value(rt.NoEscape(unsafe.Pointer(s)), n, p, rt.NoEscape(unsafe.Pointer(v)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) +func vstring(s *string, p *int, v *types.JsonState, flags uint64) { + __vstring(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vstring(s *string, p *int, v *types.JsonState, flags uint64) +func vnumber(s *string, p *int, v *types.JsonState) { + __vnumber(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vnumber(s *string, p *int, v *types.JsonState) +func vsigned(s *string, p *int, v *types.JsonState) { + __vsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vsigned(s *string, p *int, v *types.JsonState) +func vunsigned(s *string, p *int, v *types.JsonState) { + __vunsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vunsigned(s *string, p *int, v *types.JsonState) +func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +func skip_one_fast(s *string, p *int) (ret int) { + return __skip_one_fast(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_one_fast(s *string, p *int) (ret int) +func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_array(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_object(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +func skip_number(s *string, p *int) (ret int) { + return __skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_number(s *string, p *int) (ret int) +func validate_one(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_one(s *string, p *int, m *types.StateMachine) (ret int) +func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { + return __get_by_path(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(path)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) +func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_utf8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) +func validate_utf8_fast(s *string) (ret int) { + return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_utf8_fast(s *string) (ret int) +func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) { + return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.s b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.s deleted file mode 100644 index 07789ae4..00000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.s +++ /dev/null @@ -1,15972 +0,0 @@ -// +build !noasm !appengine -// Code generated by asm2asm, DO NOT EDIT. - -#include "go_asm.h" -#include "funcdata.h" -#include "textflag.h" - -TEXT ·__native_entry__(SB), NOSPLIT, $0 - NO_LOCAL_POINTERS - LONG $0xf9058d48; WORD $0xffff; BYTE $0xff // leaq $-7(%rip), %rax - LONG $0x24448948; BYTE $0x08 // movq %rax, $8(%rsp) - BYTE $0xc3 // retq - QUAD $0x0000000000000000; QUAD $0x0000000000000000; WORD $0x0000; BYTE $0x00 // .p2align 5, 0x00 - -LCPI0_0: - BYTE $0x20 // .byte 32 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x09 // .byte 9 - BYTE $0x0a // .byte 10 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x0d // .byte 13 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x20 // .byte 32 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x09 // .byte 9 - BYTE $0x0a // .byte 10 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x0d // .byte 13 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - - // .p2align 4, 0x90 -_lspace: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - LONG $0x17048d48 // leaq (%rdi,%rdx), %rax - WORD $0x2948; BYTE $0xd6 // subq %rdx, %rsi - LONG $0x20fe8348 // cmpq $32, %rsi - LONG $0x0037820f; WORD $0x0000 // jb LBB0_5, $55(%rip) - QUAD $0xffffffc3056ffdc5 // vmovdqa $-61(%rip), %ymm0 /* LCPI0_0(%rip) */ - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB0_2: - LONG $0x086ffec5 // vmovdqu (%rax), %ymm1 - LONG $0x007de2c4; BYTE $0xd1 // vpshufb %ymm1, %ymm0, %ymm2 - LONG $0xca74f5c5 // vpcmpeqb %ymm2, %ymm1, %ymm1 - LONG $0xc9d7fdc5 // vpmovmskb %ymm1, %ecx - WORD $0xf983; BYTE $0xff // cmpl $-1, %ecx - LONG $0x005d850f; WORD $0x0000 // jne LBB0_3, $93(%rip) - LONG $0x20c08348 // addq $32, %rax - LONG $0xe0c68348 // addq $-32, %rsi - LONG $0x1ffe8348 // cmpq $31, %rsi - LONG $0xffd4870f; WORD $0xffff // ja LBB0_2, $-44(%rip) - -LBB0_5: - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x003a840f; WORD $0x0000 // je LBB0_12, $58(%rip) - LONG $0x30048d4c // leaq (%rax,%rsi), %r8 - WORD $0xff48; BYTE $0xc0 // incq %rax - QUAD $0x000100002600ba48; WORD $0x0000 // movabsq $4294977024, %rdx - -LBB0_7: - LONG $0xff48be0f // movsbl $-1(%rax), %ecx - WORD $0xf983; BYTE $0x20 // cmpl $32, %ecx - LONG $0x0038870f; WORD $0x0000 // ja LBB0_9, $56(%rip) - LONG $0xcaa30f48 // btq %rcx, %rdx - LONG $0x002e830f; WORD $0x0000 // jae LBB0_9, $46(%rip) - WORD $0xff48; BYTE $0xce // decq %rsi - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0xffda850f; WORD $0xffff // jne LBB0_7, $-38(%rip) - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - -LBB0_12: - WORD $0x2948; BYTE $0xf8 // subq %rdi, %rax - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB0_3: - WORD $0x2948; BYTE $0xf8 // subq %rdi, %rax - WORD $0xd1f7 // notl %ecx - WORD $0x6348; BYTE $0xc9 // movslq %ecx, %rcx - LONG $0xc9bc0f48 // bsfq %rcx, %rcx - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB0_9: - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x0148; BYTE $0xf8 // addq %rdi, %rax - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - QUAD $0x0000000000000000; WORD $0x0000 // .p2align 5, 0x00 - -LCPI1_0: - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - - // .p2align 4, 0x90 -_f64toa: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - LONG $0x7ef9e1c4; BYTE $0xc2 // vmovq %xmm0, %rdx - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - LONG $0x34e8c148 // shrq $52, %rax - LONG $0x0007ff25; BYTE $0x00 // andl $2047, %eax - LONG $0x0007ff3d; BYTE $0x00 // cmpl $2047, %eax - LONG $0x0ade840f; WORD $0x0000 // je LBB1_1, $2782(%rip) - WORD $0x8949; BYTE $0xfe // movq %rdi, %r14 - WORD $0x07c6; BYTE $0x2d // movb $45, (%rdi) - WORD $0x8949; BYTE $0xd4 // movq %rdx, %r12 - LONG $0x3fecc149 // shrq $63, %r12 - LONG $0x273c8d4e // leaq (%rdi,%r12), %r15 - QUAD $0x00000000550c8d48 // leaq (,%rdx,2), %rcx - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x01e3840f; WORD $0x0000 // je LBB1_3, $483(%rip) - QUAD $0xffffffffffffbf48; WORD $0x000f // movabsq $4503599627370495, %rdi - WORD $0x2148; BYTE $0xfa // andq %rdi, %rdx - WORD $0xc085 // testl %eax, %eax - LONG $0x0aae840f; WORD $0x0000 // je LBB1_5, $2734(%rip) - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0x0948; BYTE $0xd7 // orq %rdx, %rdi - LONG $0xfbcd988d; WORD $0xffff // leal $-1075(%rax), %ebx - LONG $0xfc01888d; WORD $0xffff // leal $-1023(%rax), %ecx - WORD $0xf983; BYTE $0x34 // cmpl $52, %ecx - LONG $0x001a870f; WORD $0x0000 // ja LBB1_6, $26(%rip) - WORD $0xd989 // movl %ebx, %ecx - WORD $0xd9f7 // negl %ecx - LONG $0xffc6c748; WORD $0xffff; BYTE $0xff // movq $-1, %rsi - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0xf748; BYTE $0xd6 // notq %rsi - WORD $0x8548; BYTE $0xf7 // testq %rsi, %rdi - LONG $0x0421840f; WORD $0x0000 // je LBB1_11, $1057(%rip) - -LBB1_6: - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - WORD $0x940f; BYTE $0xc1 // sete %cl - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - WORD $0x970f; BYTE $0xc0 // seta %al - WORD $0xc820 // andb %cl, %al - WORD $0xb60f; BYTE $0xc0 // movzbl %al, %eax - LONG $0x4413cb69; WORD $0x0013 // imull $1262611, %ebx, %ecx - WORD $0xd231 // xorl %edx, %edx - WORD $0xc084 // testb %al, %al - LONG $0x0101b941; WORD $0xfff8 // movl $-524031, %r9d - LONG $0xca440f44 // cmovel %edx, %r9d - LONG $0xb8748d48; BYTE $0xfe // leaq $-2(%rax,%rdi,4), %rsi - WORD $0x0141; BYTE $0xc9 // addl %ecx, %r9d - LONG $0x16f9c141 // sarl $22, %r9d - LONG $0xb1c96941; WORD $0xe56c; BYTE $0xff // imull $-1741647, %r9d, %ecx - WORD $0xe9c1; BYTE $0x13 // shrl $19, %ecx - WORD $0xd901 // addl %ebx, %ecx - LONG $0x000124b8; BYTE $0x00 // movl $292, %eax - WORD $0x2944; BYTE $0xc8 // subl %r9d, %eax - LONG $0x04e0c148 // shlq $4, %rax - LONG $0xaa158d48; WORD $0x00c4; BYTE $0x00 // leaq $50346(%rip), %rdx /* _pow10_ceil_sig.g(%rip) */ - LONG $0x101c8b4c // movq (%rax,%rdx), %r11 - LONG $0x106c8b4c; BYTE $0x08 // movq $8(%rax,%rdx), %r13 - WORD $0xc1fe // incb %cl - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe5 // mulq %r13 - WORD $0x8948; BYTE $0xd3 // movq %rdx, %rbx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - QUAD $0x00000000bd348d48 // leaq (,%rdi,4), %rsi - WORD $0x0148; BYTE $0xd8 // addq %rbx, %rax - LONG $0x00d28348 // adcq $0, %rdx - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0x01f88348 // cmpq $1, %rax - WORD $0x970f; BYTE $0xc3 // seta %bl - WORD $0x0948; BYTE $0xd3 // orq %rdx, %rbx - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe5 // mulq %r13 - WORD $0x8949; BYTE $0xd2 // movq %rdx, %r10 - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - QUAD $0x00000002bd348d48 // leaq $2(,%rdi,4), %rsi - WORD $0x014c; BYTE $0xd0 // addq %r10, %rax - LONG $0x00d08349 // adcq $0, %r8 - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - LONG $0x01f88348 // cmpq $1, %rax - LONG $0xc2970f41 // seta %r10b - WORD $0x094d; BYTE $0xc2 // orq %r8, %r10 - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe5 // mulq %r13 - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - LONG $0x00d28348 // adcq $0, %rdx - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x01f88348 // cmpq $1, %rax - WORD $0x970f; BYTE $0xc1 // seta %cl - WORD $0x0948; BYTE $0xd1 // orq %rdx, %rcx - WORD $0xe783; BYTE $0x01 // andl $1, %edi - WORD $0x0148; BYTE $0xfb // addq %rdi, %rbx - WORD $0x2948; BYTE $0xf9 // subq %rdi, %rcx - LONG $0x28fa8349 // cmpq $40, %r10 - LONG $0x003e820f; WORD $0x0000 // jb LBB1_29, $62(%rip) - QUAD $0xcccccccccccdba48; WORD $0xcccc // movabsq $-3689348814741910323, %rdx - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - WORD $0xf748; BYTE $0xe2 // mulq %rdx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - LONG $0x05efc148 // shrq $5, %rdi - QUAD $0x00000000fd048d48 // leaq (,%rdi,8), %rax - LONG $0x80148d48 // leaq (%rax,%rax,4), %rdx - WORD $0x3948; BYTE $0xd3 // cmpq %rdx, %rbx - LONG $0xc6970f40 // seta %sil - LONG $0x80448d48; BYTE $0x28 // leaq $40(%rax,%rax,4), %rax - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - WORD $0x960f; BYTE $0xc2 // setbe %dl - WORD $0x3040; BYTE $0xf2 // xorb %sil, %dl - LONG $0x0130840f; WORD $0x0000 // je LBB1_8, $304(%rip) - -LBB1_29: - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - LONG $0x02e8c148 // shrq $2, %rax - WORD $0x894c; BYTE $0xc2 // movq %r8, %rdx - LONG $0xfce28348 // andq $-4, %rdx - WORD $0x3948; BYTE $0xd3 // cmpq %rdx, %rbx - LONG $0xc7970f40 // seta %dil - LONG $0x04728d48 // leaq $4(%rdx), %rsi - WORD $0x3948; BYTE $0xce // cmpq %rcx, %rsi - WORD $0x960f; BYTE $0xc3 // setbe %bl - WORD $0x3040; BYTE $0xfb // xorb %dil, %bl - LONG $0x0053840f; WORD $0x0000 // je LBB1_30, $83(%rip) - LONG $0x02ca8348 // orq $2, %rdx - LONG $0x000001bf; BYTE $0x00 // movl $1, %edi - WORD $0x3949; BYTE $0xd2 // cmpq %rdx, %r10 - LONG $0x000e870f; WORD $0x0000 // ja LBB1_33, $14(%rip) - WORD $0x940f; BYTE $0xc1 // sete %cl - LONG $0x02e8c041 // shrb $2, %r8b - WORD $0x2041; BYTE $0xc8 // andb %cl, %r8b - LONG $0xf8b60f41 // movzbl %r8b, %edi - -LBB1_33: - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - QUAD $0x0001ffffff80b848; WORD $0x0000 // movabsq $8589934464, %rax - LONG $0xe47f0548; WORD $0x540b // addq $1410065535, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x003a870f; WORD $0x0000 // ja LBB1_35, $58(%rip) - LONG $0x0000eae9; BYTE $0x00 // jmp LBB1_41, $234(%rip) - -LBB1_3: - LONG $0x3007c641 // movb $48, (%r15) - WORD $0x2945; BYTE $0xf7 // subl %r14d, %r15d - WORD $0xff41; BYTE $0xc7 // incl %r15d - WORD $0x8944; BYTE $0xfb // movl %r15d, %ebx - LONG $0x0008a2e9; BYTE $0x00 // jmp LBB1_116, $2210(%rip) - -LBB1_30: - WORD $0x3948; BYTE $0xf1 // cmpq %rsi, %rcx - LONG $0xffd88348 // sbbq $-1, %rax - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - QUAD $0x0001ffffff80b848; WORD $0x0000 // movabsq $8589934464, %rax - LONG $0xe47f0548; WORD $0x540b // addq $1410065535, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x00b5860f; WORD $0x0000 // jbe LBB1_41, $181(%rip) - -LBB1_35: - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0be8c148 // shrq $11, %rax - LONG $0x00000bba; BYTE $0x00 // movl $11, %edx - LONG $0x0edd3d48; WORD $0x02e9 // cmpq $48828125, %rax - LONG $0x0127820f; WORD $0x0000 // jb LBB1_51, $295(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0ce8c148 // shrq $12, %rax - LONG $0x00000cba; BYTE $0x00 // movl $12, %edx - LONG $0x4a513d48; WORD $0x0e8d // cmpq $244140625, %rax - LONG $0x010f820f; WORD $0x0000 // jb LBB1_51, $271(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0de8c148 // shrq $13, %rax - LONG $0x00000dba; BYTE $0x00 // movl $13, %edx - LONG $0x73953d48; WORD $0x48c2 // cmpq $1220703125, %rax - LONG $0x00f7820f; WORD $0x0000 // jb LBB1_51, $247(%rip) - LONG $0x00000eba; BYTE $0x00 // movl $14, %edx - QUAD $0x5af3107a4000b848; WORD $0x0000 // movabsq $100000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x00df820f; WORD $0x0000 // jb LBB1_51, $223(%rip) - LONG $0x00000fba; BYTE $0x00 // movl $15, %edx - QUAD $0x8d7ea4c68000b848; WORD $0x0003 // movabsq $1000000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x00c7820f; WORD $0x0000 // jb LBB1_51, $199(%rip) - QUAD $0x86f26fc10000b848; WORD $0x0023 // movabsq $10000000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x000011ba; BYTE $0x00 // movl $17, %edx - -LBB1_50: - WORD $0xda83; BYTE $0x00 // sbbl $0, %edx - LONG $0x0000ade9; BYTE $0x00 // jmp LBB1_51, $173(%rip) - -LBB1_8: - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0xffdf8348 // sbbq $-1, %rdi - WORD $0xff41; BYTE $0xc1 // incl %r9d - QUAD $0x0001ffffff80b848; WORD $0x0000 // movabsq $8589934464, %rax - LONG $0xe47f0548; WORD $0x540b // addq $1410065535, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0xff4b870f; WORD $0xffff // ja LBB1_35, $-181(%rip) - -LBB1_41: - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - LONG $0x0aff8348 // cmpq $10, %rdi - LONG $0x007b820f; WORD $0x0000 // jb LBB1_51, $123(%rip) - LONG $0x000002ba; BYTE $0x00 // movl $2, %edx - LONG $0x64ff8348 // cmpq $100, %rdi - LONG $0x006c820f; WORD $0x0000 // jb LBB1_51, $108(%rip) - LONG $0x000003ba; BYTE $0x00 // movl $3, %edx - LONG $0xe8ff8148; WORD $0x0003; BYTE $0x00 // cmpq $1000, %rdi - LONG $0x005a820f; WORD $0x0000 // jb LBB1_51, $90(%rip) - LONG $0x000004ba; BYTE $0x00 // movl $4, %edx - LONG $0x10ff8148; WORD $0x0027; BYTE $0x00 // cmpq $10000, %rdi - LONG $0x0048820f; WORD $0x0000 // jb LBB1_51, $72(%rip) - LONG $0x000005ba; BYTE $0x00 // movl $5, %edx - LONG $0xa0ff8148; WORD $0x0186; BYTE $0x00 // cmpq $100000, %rdi - LONG $0x0036820f; WORD $0x0000 // jb LBB1_51, $54(%rip) - LONG $0x000006ba; BYTE $0x00 // movl $6, %edx - LONG $0x40ff8148; WORD $0x0f42; BYTE $0x00 // cmpq $1000000, %rdi - LONG $0x0024820f; WORD $0x0000 // jb LBB1_51, $36(%rip) - LONG $0x000007ba; BYTE $0x00 // movl $7, %edx - LONG $0x80ff8148; WORD $0x9896; BYTE $0x00 // cmpq $10000000, %rdi - LONG $0x0012820f; WORD $0x0000 // jb LBB1_51, $18(%rip) - LONG $0x000008ba; BYTE $0x00 // movl $8, %edx - LONG $0x00ff8148; WORD $0xf5e1; BYTE $0x05 // cmpq $100000000, %rdi - LONG $0x0754830f; WORD $0x0000 // jae LBB1_49, $1876(%rip) - -LBB1_51: - LONG $0x0a2c8d46 // leal (%rdx,%r9), %r13d - LONG $0x0a448d42; BYTE $0x05 // leal $5(%rdx,%r9), %eax - WORD $0xf883; BYTE $0x1b // cmpl $27, %eax - LONG $0x009d820f; WORD $0x0000 // jb LBB1_64, $157(%rip) - LONG $0x01678d4d // leaq $1(%r15), %r12 - WORD $0x894c; BYTE $0xe6 // movq %r12, %rsi - LONG $0x008cafe8; BYTE $0x00 // callq _format_significand, $36015(%rip) - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB1_53: - LONG $0x30ff7b80 // cmpb $48, $-1(%rbx) - LONG $0xff5b8d48 // leaq $-1(%rbx), %rbx - LONG $0xfff2840f; WORD $0xffff // je LBB1_53, $-14(%rip) - LONG $0x01478a41 // movb $1(%r15), %al - WORD $0x8841; BYTE $0x07 // movb %al, (%r15) - LONG $0x01438d48 // leaq $1(%rbx), %rax - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x294c; BYTE $0xe1 // subq %r12, %rcx - LONG $0x02f98348 // cmpq $2, %rcx - LONG $0x00088c0f; WORD $0x0000 // jl LBB1_56, $8(%rip) - LONG $0x2404c641; BYTE $0x2e // movb $46, (%r12) - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - -LBB1_56: - WORD $0x03c6; BYTE $0x65 // movb $101, (%rbx) - LONG $0xff458d41 // leal $-1(%r13), %eax - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x01548e0f; WORD $0x0000 // jle LBB1_57, $340(%rip) - LONG $0x2b0143c6 // movb $43, $1(%rbx) - WORD $0xf883; BYTE $0x64 // cmpl $100, %eax - LONG $0x01568c0f; WORD $0x0000 // jl LBB1_61, $342(%rip) - -LBB1_60: - WORD $0xc189 // movl %eax, %ecx - LONG $0xcccccdba; BYTE $0xcc // movl $3435973837, %edx - LONG $0xd1af0f48 // imulq %rcx, %rdx - LONG $0x23eac148 // shrq $35, %rdx - WORD $0x0c8d; BYTE $0x12 // leal (%rdx,%rdx), %ecx - WORD $0x0c8d; BYTE $0x89 // leal (%rcx,%rcx,4), %ecx - WORD $0xc829 // subl %ecx, %eax - LONG $0x840d8d48; WORD $0x00c0; BYTE $0x00 // leaq $49284(%rip), %rcx /* _Digits(%rip) */ - LONG $0x510cb70f // movzwl (%rcx,%rdx,2), %ecx - LONG $0x024b8966 // movw %cx, $2(%rbx) - WORD $0x300c // orb $48, %al - WORD $0x4388; BYTE $0x04 // movb %al, $4(%rbx) - LONG $0x05c38348 // addq $5, %rbx - LONG $0x00068ee9; BYTE $0x00 // jmp LBB1_115, $1678(%rip) - -LBB1_64: - WORD $0x8545; BYTE $0xc9 // testl %r9d, %r9d - LONG $0x013c880f; WORD $0x0000 // js LBB1_65, $316(%rip) - WORD $0x634d; BYTE $0xed // movslq %r13d, %r13 - LONG $0x2f1c8d4b // leaq (%r15,%r13), %rbx - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0x0006c6e8; BYTE $0x00 // callq _format_integer, $1734(%rip) - WORD $0x3948; BYTE $0xd8 // cmpq %rbx, %rax - LONG $0x066d830f; WORD $0x0000 // jae LBB1_115, $1645(%rip) - WORD $0x014d; BYTE $0xec // addq %r13, %r12 - WORD $0x2949; BYTE $0xc4 // subq %rax, %r12 - WORD $0x014d; BYTE $0xf4 // addq %r14, %r12 - LONG $0x80fc8149; WORD $0x0000; BYTE $0x00 // cmpq $128, %r12 - LONG $0x0317820f; WORD $0x0000 // jb LBB1_114, $791(%rip) - WORD $0x894c; BYTE $0xe1 // movq %r12, %rcx - LONG $0x80e18348 // andq $-128, %rcx - LONG $0x80798d48 // leaq $-128(%rcx), %rdi - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - LONG $0x07eec148 // shrq $7, %rsi - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0xf289 // movl %esi, %edx - WORD $0xe283; BYTE $0x03 // andl $3, %edx - LONG $0x80ff8148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rdi - LONG $0x01fc830f; WORD $0x0000 // jae LBB1_107, $508(%rip) - WORD $0xff31 // xorl %edi, %edi - LONG $0x00029de9; BYTE $0x00 // jmp LBB1_109, $669(%rip) - -LBB1_11: - WORD $0xd348; BYTE $0xef // shrq %cl, %rdi - QUAD $0x0001ffffff80b848; WORD $0x0000 // movabsq $8589934464, %rax - LONG $0xe47f0548; WORD $0x540b // addq $1410065535, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x013f860f; WORD $0x0000 // jbe LBB1_18, $319(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0be8c148 // shrq $11, %rax - LONG $0x00000bba; BYTE $0x00 // movl $11, %edx - LONG $0x0edd3d48; WORD $0x02e9 // cmpq $48828125, %rax - LONG $0x01b1820f; WORD $0x0000 // jb LBB1_28, $433(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0ce8c148 // shrq $12, %rax - LONG $0x00000cba; BYTE $0x00 // movl $12, %edx - LONG $0x4a513d48; WORD $0x0e8d // cmpq $244140625, %rax - LONG $0x0199820f; WORD $0x0000 // jb LBB1_28, $409(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x0de8c148 // shrq $13, %rax - LONG $0x00000dba; BYTE $0x00 // movl $13, %edx - LONG $0x73953d48; WORD $0x48c2 // cmpq $1220703125, %rax - LONG $0x0181820f; WORD $0x0000 // jb LBB1_28, $385(%rip) - LONG $0x00000eba; BYTE $0x00 // movl $14, %edx - QUAD $0x5af3107a4000b848; WORD $0x0000 // movabsq $100000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x0169820f; WORD $0x0000 // jb LBB1_28, $361(%rip) - LONG $0x00000fba; BYTE $0x00 // movl $15, %edx - QUAD $0x8d7ea4c68000b848; WORD $0x0003 // movabsq $1000000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x0151820f; WORD $0x0000 // jb LBB1_28, $337(%rip) - QUAD $0x86f26fc10000b848; WORD $0x0023 // movabsq $10000000000000000, %rax - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x000011ba; BYTE $0x00 // movl $17, %edx - -LBB1_27: - WORD $0xda83; BYTE $0x00 // sbbl $0, %edx - LONG $0x000137e9; BYTE $0x00 // jmp LBB1_28, $311(%rip) - -LBB1_57: - LONG $0x2d0143c6 // movb $45, $1(%rbx) - WORD $0xd8f7 // negl %eax - WORD $0xf883; BYTE $0x64 // cmpl $100, %eax - LONG $0xfeaa8d0f; WORD $0xffff // jge LBB1_60, $-342(%rip) - -LBB1_61: - WORD $0xf883; BYTE $0x0a // cmpl $10, %eax - LONG $0x00878c0f; WORD $0x0000 // jl LBB1_63, $135(%rip) - WORD $0xc089 // movl %eax, %eax - LONG $0x3a0d8d48; WORD $0x00bf; BYTE $0x00 // leaq $48954(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x02438966 // movw %ax, $2(%rbx) - LONG $0x04c38348 // addq $4, %rbx - LONG $0x000549e9; BYTE $0x00 // jmp LBB1_115, $1353(%rip) - -LBB1_65: - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x031f8f0f; WORD $0x0000 // jg LBB1_78, $799(%rip) - LONG $0x07c74166; WORD $0x2e30 // movw $11824, (%r15) - LONG $0x02c78349 // addq $2, %r15 - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x030c890f; WORD $0x0000 // jns LBB1_78, $780(%rip) - WORD $0x8941; BYTE $0xd0 // movl %edx, %r8d - WORD $0xf741; BYTE $0xd0 // notl %r8d - WORD $0x2945; BYTE $0xc8 // subl %r9d, %r8d - WORD $0xc031 // xorl %eax, %eax - LONG $0x7ff88341 // cmpl $127, %r8d - LONG $0x02de820f; WORD $0x0000 // jb LBB1_76, $734(%rip) - WORD $0xff49; BYTE $0xc0 // incq %r8 - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - QUAD $0x0001ffffff80b948; WORD $0x0000 // movabsq $8589934464, %rcx - WORD $0x2148; BYTE $0xc8 // andq %rcx, %rax - LONG $0x80488d48 // leaq $-128(%rax), %rcx - WORD $0x8948; BYTE $0xce // movq %rcx, %rsi - LONG $0x07eec148 // shrq $7, %rsi - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x8941; BYTE $0xf1 // movl %esi, %r9d - LONG $0x03e18341 // andl $3, %r9d - LONG $0x80f98148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rcx - LONG $0x01b7830f; WORD $0x0000 // jae LBB1_70, $439(%rip) - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x00025ae9; BYTE $0x00 // jmp LBB1_72, $602(%rip) - -LBB1_63: - WORD $0x3004 // addb $48, %al - WORD $0x4388; BYTE $0x02 // movb %al, $2(%rbx) - LONG $0x03c38348 // addq $3, %rbx - LONG $0x0004cee9; BYTE $0x00 // jmp LBB1_115, $1230(%rip) - -LBB1_18: - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - LONG $0x0aff8348 // cmpq $10, %rdi - LONG $0x007b820f; WORD $0x0000 // jb LBB1_28, $123(%rip) - LONG $0x000002ba; BYTE $0x00 // movl $2, %edx - LONG $0x64ff8348 // cmpq $100, %rdi - LONG $0x006c820f; WORD $0x0000 // jb LBB1_28, $108(%rip) - LONG $0x000003ba; BYTE $0x00 // movl $3, %edx - LONG $0xe8ff8148; WORD $0x0003; BYTE $0x00 // cmpq $1000, %rdi - LONG $0x005a820f; WORD $0x0000 // jb LBB1_28, $90(%rip) - LONG $0x000004ba; BYTE $0x00 // movl $4, %edx - LONG $0x10ff8148; WORD $0x0027; BYTE $0x00 // cmpq $10000, %rdi - LONG $0x0048820f; WORD $0x0000 // jb LBB1_28, $72(%rip) - LONG $0x000005ba; BYTE $0x00 // movl $5, %edx - LONG $0xa0ff8148; WORD $0x0186; BYTE $0x00 // cmpq $100000, %rdi - LONG $0x0036820f; WORD $0x0000 // jb LBB1_28, $54(%rip) - LONG $0x000006ba; BYTE $0x00 // movl $6, %edx - LONG $0x40ff8148; WORD $0x0f42; BYTE $0x00 // cmpq $1000000, %rdi - LONG $0x0024820f; WORD $0x0000 // jb LBB1_28, $36(%rip) - LONG $0x000007ba; BYTE $0x00 // movl $7, %edx - LONG $0x80ff8148; WORD $0x9896; BYTE $0x00 // cmpq $10000000, %rdi - LONG $0x0012820f; WORD $0x0000 // jb LBB1_28, $18(%rip) - LONG $0x000008ba; BYTE $0x00 // movl $8, %edx - LONG $0x00ff8148; WORD $0xf5e1; BYTE $0x05 // cmpq $100000000, %rdi - LONG $0x0480830f; WORD $0x0000 // jae LBB1_26, $1152(%rip) - -LBB1_28: - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0x00048ce8; BYTE $0x00 // callq _format_integer, $1164(%rip) - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - LONG $0x000434e9; BYTE $0x00 // jmp LBB1_115, $1076(%rip) - -LBB1_107: - LONG $0xfce68348 // andq $-4, %rsi - WORD $0xf748; BYTE $0xde // negq %rsi - WORD $0xff31 // xorl %edi, %edi - QUAD $0xfffff923056ffdc5 // vmovdqa $-1757(%rip), %ymm0 /* LCPI1_0(%rip) */ - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_108: - LONG $0x047ffec5; BYTE $0x38 // vmovdqu %ymm0, (%rax,%rdi) - LONG $0x447ffec5; WORD $0x2038 // vmovdqu %ymm0, $32(%rax,%rdi) - LONG $0x447ffec5; WORD $0x4038 // vmovdqu %ymm0, $64(%rax,%rdi) - LONG $0x447ffec5; WORD $0x6038 // vmovdqu %ymm0, $96(%rax,%rdi) - QUAD $0x00008038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $128(%rax,%rdi) - QUAD $0x0000a038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $160(%rax,%rdi) - QUAD $0x0000c038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $192(%rax,%rdi) - QUAD $0x0000e038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $224(%rax,%rdi) - QUAD $0x00010038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $256(%rax,%rdi) - QUAD $0x00012038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $288(%rax,%rdi) - QUAD $0x00014038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $320(%rax,%rdi) - QUAD $0x00016038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $352(%rax,%rdi) - QUAD $0x00018038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $384(%rax,%rdi) - QUAD $0x0001a038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $416(%rax,%rdi) - QUAD $0x0001c038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $448(%rax,%rdi) - QUAD $0x0001e038847ffec5; BYTE $0x00 // vmovdqu %ymm0, $480(%rax,%rdi) - LONG $0x00c78148; WORD $0x0002; BYTE $0x00 // addq $512, %rdi - LONG $0x04c68348 // addq $4, %rsi - LONG $0xff6c850f; WORD $0xffff // jne LBB1_108, $-148(%rip) - -LBB1_109: - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0033840f; WORD $0x0000 // je LBB1_112, $51(%rip) - LONG $0x07748d48; BYTE $0x60 // leaq $96(%rdi,%rax), %rsi - WORD $0xf748; BYTE $0xda // negq %rdx - QUAD $0xfffff873056ffdc5 // vmovdqa $-1933(%rip), %ymm0 /* LCPI1_0(%rip) */ - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_111: - LONG $0x467ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rsi) - LONG $0x467ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rsi) - LONG $0x467ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rsi) - LONG $0x067ffec5 // vmovdqu %ymm0, (%rsi) - LONG $0x80ee8348 // subq $-128, %rsi - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0xffe0850f; WORD $0xffff // jne LBB1_111, $-32(%rip) - -LBB1_112: - WORD $0x394c; BYTE $0xe1 // cmpq %r12, %rcx - LONG $0x0347840f; WORD $0x0000 // je LBB1_115, $839(%rip) - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - LONG $0x90909090 // .p2align 4, 0x90 - -LBB1_114: - WORD $0x00c6; BYTE $0x30 // movb $48, (%rax) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x3948; BYTE $0xc3 // cmpq %rax, %rbx - LONG $0xfff1850f; WORD $0xffff // jne LBB1_114, $-15(%rip) - LONG $0x00032ce9; BYTE $0x00 // jmp LBB1_115, $812(%rip) - -LBB1_70: - QUAD $0x000001e2349c8d4b // leaq $482(%r12,%r14), %rbx - LONG $0xfce68348 // andq $-4, %rsi - WORD $0xf748; BYTE $0xde // negq %rsi - WORD $0xc931 // xorl %ecx, %ecx - QUAD $0xfffff813056ffdc5 // vmovdqa $-2029(%rip), %ymm0 /* LCPI1_0(%rip) */ - -LBB1_71: - QUAD $0xfffe200b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-480(%rbx,%rcx) - QUAD $0xfffe400b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-448(%rbx,%rcx) - QUAD $0xfffe600b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-416(%rbx,%rcx) - QUAD $0xfffe800b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-384(%rbx,%rcx) - QUAD $0xfffea00b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-352(%rbx,%rcx) - QUAD $0xfffec00b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-320(%rbx,%rcx) - QUAD $0xfffee00b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-288(%rbx,%rcx) - QUAD $0xffff000b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-256(%rbx,%rcx) - QUAD $0xffff200b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-224(%rbx,%rcx) - QUAD $0xffff400b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-192(%rbx,%rcx) - QUAD $0xffff600b847ffec5; BYTE $0xff // vmovdqu %ymm0, $-160(%rbx,%rcx) - LONG $0x447ffec5; WORD $0x800b // vmovdqu %ymm0, $-128(%rbx,%rcx) - LONG $0x447ffec5; WORD $0xa00b // vmovdqu %ymm0, $-96(%rbx,%rcx) - LONG $0x447ffec5; WORD $0xc00b // vmovdqu %ymm0, $-64(%rbx,%rcx) - LONG $0x447ffec5; WORD $0xe00b // vmovdqu %ymm0, $-32(%rbx,%rcx) - LONG $0x047ffec5; BYTE $0x0b // vmovdqu %ymm0, (%rbx,%rcx) - LONG $0x00c18148; WORD $0x0002; BYTE $0x00 // addq $512, %rcx - LONG $0x04c68348 // addq $4, %rsi - LONG $0xff6f850f; WORD $0xffff // jne LBB1_71, $-145(%rip) - -LBB1_72: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x0033840f; WORD $0x0000 // je LBB1_75, $51(%rip) - WORD $0x014c; BYTE $0xe1 // addq %r12, %rcx - LONG $0x0e4c8d49; BYTE $0x62 // leaq $98(%r14,%rcx), %rcx - WORD $0xf749; BYTE $0xd9 // negq %r9 - QUAD $0xfffff766056ffdc5 // vmovdqa $-2202(%rip), %ymm0 /* LCPI1_0(%rip) */ - -LBB1_74: - LONG $0x417ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rcx) - LONG $0x417ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rcx) - LONG $0x417ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rcx) - LONG $0x017ffec5 // vmovdqu %ymm0, (%rcx) - LONG $0x80e98348 // subq $-128, %rcx - WORD $0xff49; BYTE $0xc1 // incq %r9 - LONG $0xffe0850f; WORD $0xffff // jne LBB1_74, $-32(%rip) - -LBB1_75: - WORD $0x0149; BYTE $0xc7 // addq %rax, %r15 - WORD $0x3949; BYTE $0xc0 // cmpq %rax, %r8 - LONG $0x0019840f; WORD $0x0000 // je LBB1_78, $25(%rip) - -LBB1_76: - WORD $0x0144; BYTE $0xe8 // addl %r13d, %eax - WORD $0xd8f7 // negl %eax - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_77: - LONG $0x3007c641 // movb $48, (%r15) - WORD $0xff49; BYTE $0xc7 // incq %r15 - WORD $0xc8ff // decl %eax - LONG $0xfff1850f; WORD $0xffff // jne LBB1_77, $-15(%rip) - -LBB1_78: - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - WORD $0xf8c5; BYTE $0x77 // vzeroupper - LONG $0x0087a6e8; BYTE $0x00 // callq _format_significand, $34726(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB1_79: - LONG $0x30ff7880 // cmpb $48, $-1(%rax) - LONG $0xff408d48 // leaq $-1(%rax), %rax - LONG $0xfff2840f; WORD $0xffff // je LBB1_79, $-14(%rip) - LONG $0x01588d48 // leaq $1(%rax), %rbx - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x01f58e0f; WORD $0x0000 // jle LBB1_115, $501(%rip) - WORD $0xda89 // movl %ebx, %edx - WORD $0x2944; BYTE $0xfa // subl %r15d, %edx - WORD $0x8944; BYTE $0xe9 // movl %r13d, %ecx - WORD $0xd129 // subl %edx, %ecx - LONG $0x00258d0f; WORD $0x0000 // jge LBB1_82, $37(%rip) - WORD $0x2944; BYTE $0xea // subl %r13d, %edx - LONG $0x00c48e0f; WORD $0x0000 // jle LBB1_100, $196(%rip) - WORD $0xd689 // movl %edx, %esi - LONG $0xff568d48 // leaq $-1(%rsi), %rdx - WORD $0xf189 // movl %esi, %ecx - WORD $0xe183; BYTE $0x03 // andl $3, %ecx - LONG $0x03fa8348 // cmpq $3, %rdx - LONG $0x005c830f; WORD $0x0000 // jae LBB1_101, $92(%rip) - WORD $0xd231 // xorl %edx, %edx - LONG $0x000078e9; BYTE $0x00 // jmp LBB1_97, $120(%rip) - -LBB1_82: - LONG $0x01ba8e0f; WORD $0x0000 // jle LBB1_115, $442(%rip) - WORD $0x0145; BYTE $0xfd // addl %r15d, %r13d - WORD $0x8941; BYTE $0xd8 // movl %ebx, %r8d - WORD $0xf741; BYTE $0xd0 // notl %r8d - WORD $0x0145; BYTE $0xe8 // addl %r13d, %r8d - WORD $0xd231 // xorl %edx, %edx - LONG $0x7ef88341 // cmpl $126, %r8d - LONG $0x0192860f; WORD $0x0000 // jbe LBB1_92, $402(%rip) - WORD $0xff49; BYTE $0xc0 // incq %r8 - QUAD $0x0001ffffff80b949; WORD $0x0000 // movabsq $8589934464, %r9 - WORD $0x214d; BYTE $0xc1 // andq %r8, %r9 - LONG $0x80518d49 // leaq $-128(%r9), %rdx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - LONG $0x07efc148 // shrq $7, %rdi - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0xfe89 // movl %edi, %esi - WORD $0xe683; BYTE $0x03 // andl $3, %esi - LONG $0x80fa8148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rdx - LONG $0x006e830f; WORD $0x0000 // jae LBB1_86, $110(%rip) - WORD $0xd231 // xorl %edx, %edx - LONG $0x00010de9; BYTE $0x00 // jmp LBB1_88, $269(%rip) - -LBB1_101: - WORD $0xe683; BYTE $0xfc // andl $-4, %esi - WORD $0xf748; BYTE $0xde // negq %rsi - WORD $0xd231 // xorl %edx, %edx - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_102: - LONG $0xfd107c8b // movl $-3(%rax,%rdx), %edi - LONG $0xfe107c89 // movl %edi, $-2(%rax,%rdx) - LONG $0xfcc28348 // addq $-4, %rdx - WORD $0x3948; BYTE $0xd6 // cmpq %rdx, %rsi - LONG $0xffeb850f; WORD $0xffff // jne LBB1_102, $-21(%rip) - WORD $0xf748; BYTE $0xda // negq %rdx - -LBB1_97: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x0027840f; WORD $0x0000 // je LBB1_100, $39(%rip) - WORD $0xf748; BYTE $0xda // negq %rdx - WORD $0xf748; BYTE $0xd9 // negq %rcx - WORD $0xf631 // xorl %esi, %esi - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB1_99: - LONG $0x323c8d48 // leaq (%rdx,%rsi), %rdi - LONG $0x381cb60f // movzbl (%rax,%rdi), %ebx - LONG $0x01385c88 // movb %bl, $1(%rax,%rdi) - WORD $0xff48; BYTE $0xce // decq %rsi - WORD $0x3948; BYTE $0xf1 // cmpq %rsi, %rcx - LONG $0xffe8850f; WORD $0xffff // jne LBB1_99, $-24(%rip) - -LBB1_100: - WORD $0x6349; BYTE $0xcd // movslq %r13d, %rcx - LONG $0x0f04c641; BYTE $0x2e // movb $46, (%r15,%rcx) - LONG $0x02c08348 // addq $2, %rax - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - LONG $0x000104e9; BYTE $0x00 // jmp LBB1_115, $260(%rip) - -LBB1_86: - LONG $0xfce78348 // andq $-4, %rdi - WORD $0xf748; BYTE $0xdf // negq %rdi - WORD $0xd231 // xorl %edx, %edx - QUAD $0xfffff5f3056ffdc5 // vmovdqa $-2573(%rip), %ymm0 /* LCPI1_0(%rip) */ - -LBB1_87: - LONG $0x447ffec5; WORD $0x0110 // vmovdqu %ymm0, $1(%rax,%rdx) - LONG $0x447ffec5; WORD $0x2110 // vmovdqu %ymm0, $33(%rax,%rdx) - LONG $0x447ffec5; WORD $0x4110 // vmovdqu %ymm0, $65(%rax,%rdx) - LONG $0x447ffec5; WORD $0x6110 // vmovdqu %ymm0, $97(%rax,%rdx) - QUAD $0x00008110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $129(%rax,%rdx) - QUAD $0x0000a110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $161(%rax,%rdx) - QUAD $0x0000c110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $193(%rax,%rdx) - QUAD $0x0000e110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $225(%rax,%rdx) - QUAD $0x00010110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $257(%rax,%rdx) - QUAD $0x00012110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $289(%rax,%rdx) - QUAD $0x00014110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $321(%rax,%rdx) - QUAD $0x00016110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $353(%rax,%rdx) - QUAD $0x00018110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $385(%rax,%rdx) - QUAD $0x0001a110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $417(%rax,%rdx) - QUAD $0x0001c110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $449(%rax,%rdx) - QUAD $0x0001e110847ffec5; BYTE $0x00 // vmovdqu %ymm0, $481(%rax,%rdx) - LONG $0x00c28148; WORD $0x0002; BYTE $0x00 // addq $512, %rdx - LONG $0x04c78348 // addq $4, %rdi - LONG $0xff6b850f; WORD $0xffff // jne LBB1_87, $-149(%rip) - -LBB1_88: - LONG $0x085c8d4a; BYTE $0x01 // leaq $1(%rax,%r9), %rbx - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0030840f; WORD $0x0000 // je LBB1_91, $48(%rip) - LONG $0x10448d48; BYTE $0x61 // leaq $97(%rax,%rdx), %rax - WORD $0xf748; BYTE $0xde // negq %rsi - QUAD $0xfffff540056ffdc5 // vmovdqa $-2752(%rip), %ymm0 /* LCPI1_0(%rip) */ - -LBB1_90: - LONG $0x407ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rax) - LONG $0x407ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rax) - LONG $0x407ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rax) - LONG $0x007ffec5 // vmovdqu %ymm0, (%rax) - LONG $0x80e88348 // subq $-128, %rax - WORD $0xff48; BYTE $0xc6 // incq %rsi - LONG $0xffe0850f; WORD $0xffff // jne LBB1_90, $-32(%rip) - -LBB1_91: - WORD $0x8944; BYTE $0xca // movl %r9d, %edx - WORD $0x394d; BYTE $0xc8 // cmpq %r9, %r8 - LONG $0x0014840f; WORD $0x0000 // je LBB1_115, $20(%rip) - LONG $0x90909090 // .p2align 4, 0x90 - -LBB1_92: - WORD $0x03c6; BYTE $0x30 // movb $48, (%rbx) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0xc2ff // incl %edx - WORD $0xca39 // cmpl %ecx, %edx - LONG $0xfff08c0f; WORD $0xffff // jl LBB1_92, $-16(%rip) - -LBB1_115: - WORD $0x2944; BYTE $0xf3 // subl %r14d, %ebx - -LBB1_116: - WORD $0xd889 // movl %ebx, %eax - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB1_49: - LONG $0x00ff8148; WORD $0x9aca; BYTE $0x3b // cmpq $1000000000, %rdi - LONG $0x00000aba; BYTE $0x00 // movl $10, %edx - LONG $0xfff7e6e9; BYTE $0xff // jmp LBB1_50, $-2074(%rip) - -LBB1_1: - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0xffffd4e9; BYTE $0xff // jmp LBB1_116, $-44(%rip) - -LBB1_5: - LONG $0xfffbcebb; BYTE $0xff // movl $-1074, %ebx - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - LONG $0xfff57ae9; BYTE $0xff // jmp LBB1_6, $-2694(%rip) - -LBB1_26: - LONG $0x00ff8148; WORD $0x9aca; BYTE $0x3b // cmpq $1000000000, %rdi - LONG $0x00000aba; BYTE $0x00 // movl $10, %edx - LONG $0xfffa30e9; BYTE $0xff // jmp LBB1_27, $-1488(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_format_integer: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - BYTE $0x53 // pushq %rbx - WORD $0x8941; BYTE $0xd0 // movl %edx, %r8d - WORD $0x0149; BYTE $0xf0 // addq %rsi, %r8 - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x20e8c148 // shrq $32, %rax - LONG $0x0016850f; WORD $0x0000 // jne LBB2_2, $22(%rip) - WORD $0x894d; BYTE $0xc3 // movq %r8, %r11 - LONG $0x2710ff81; WORD $0x0000 // cmpl $10000, %edi - LONG $0x00c3830f; WORD $0x0000 // jae LBB2_5, $195(%rip) - -LBB2_4: - WORD $0xfa89 // movl %edi, %edx - LONG $0x00011ae9; BYTE $0x00 // jmp LBB2_7, $282(%rip) - -LBB2_2: - QUAD $0x77118461cefdb948; WORD $0xabcc // movabsq $-6067343680855748867, %rcx - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - WORD $0xf748; BYTE $0xe1 // mulq %rcx - LONG $0x1aeac148 // shrq $26, %rdx - LONG $0x1f00ca69; WORD $0xfa0a // imull $-100000000, %edx, %ecx - WORD $0xf901 // addl %edi, %ecx - LONG $0x1759b941; WORD $0xd1b7 // movl $3518437209, %r9d - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - LONG $0xc1af0f49 // imulq %r9, %rax - LONG $0x2de8c148 // shrq $45, %rax - LONG $0x2710f869; WORD $0x0000 // imull $10000, %eax, %edi - WORD $0xf929 // subl %edi, %ecx - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0xf9af0f49 // imulq %r9, %rdi - LONG $0x2defc148 // shrq $45, %rdi - LONG $0x2710ff69; WORD $0x0000 // imull $10000, %edi, %edi - WORD $0xf829 // subl %edi, %eax - WORD $0xb70f; BYTE $0xf9 // movzwl %cx, %edi - WORD $0xefc1; BYTE $0x02 // shrl $2, %edi - LONG $0x7bcf6944; WORD $0x0014; BYTE $0x00 // imull $5243, %edi, %r9d - LONG $0x11e9c141 // shrl $17, %r9d - LONG $0x64f96b41 // imull $100, %r9d, %edi - WORD $0xf929 // subl %edi, %ecx - LONG $0xd1b70f44 // movzwl %cx, %r10d - WORD $0xb70f; BYTE $0xf8 // movzwl %ax, %edi - WORD $0xefc1; BYTE $0x02 // shrl $2, %edi - LONG $0x147bff69; WORD $0x0000 // imull $5243, %edi, %edi - WORD $0xefc1; BYTE $0x11 // shrl $17, %edi - WORD $0xcf6b; BYTE $0x64 // imull $100, %edi, %ecx - WORD $0xc829 // subl %ecx, %eax - LONG $0xd8b70f44 // movzwl %ax, %r11d - LONG $0xe00d8d48; WORD $0x00b8; BYTE $0x00 // leaq $47328(%rip), %rcx /* _Digits(%rip) */ - LONG $0x04b70f42; BYTE $0x51 // movzwl (%rcx,%r10,2), %eax - LONG $0x40894166; BYTE $0xfe // movw %ax, $-2(%r8) - LONG $0x04b70f42; BYTE $0x49 // movzwl (%rcx,%r9,2), %eax - LONG $0x40894166; BYTE $0xfc // movw %ax, $-4(%r8) - LONG $0x04b70f42; BYTE $0x59 // movzwl (%rcx,%r11,2), %eax - LONG $0x40894166; BYTE $0xfa // movw %ax, $-6(%r8) - LONG $0xf8588d4d // leaq $-8(%r8), %r11 - LONG $0x790cb70f // movzwl (%rcx,%rdi,2), %ecx - LONG $0x48894166; BYTE $0xf8 // movw %cx, $-8(%r8) - WORD $0x8948; BYTE $0xd7 // movq %rdx, %rdi - LONG $0x2710ff81; WORD $0x0000 // cmpl $10000, %edi - LONG $0xff3d820f; WORD $0xffff // jb LBB2_4, $-195(%rip) - -LBB2_5: - LONG $0x1759b941; WORD $0xd1b7 // movl $3518437209, %r9d - LONG $0x99158d4c; WORD $0x00b8; BYTE $0x00 // leaq $47257(%rip), %r10 /* _Digits(%rip) */ - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB2_6: - WORD $0xfa89 // movl %edi, %edx - LONG $0xd1af0f49 // imulq %r9, %rdx - LONG $0x2deac148 // shrq $45, %rdx - LONG $0xd8f0ca69; WORD $0xffff // imull $-10000, %edx, %ecx - WORD $0xf901 // addl %edi, %ecx - LONG $0x1fc16948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rax - LONG $0x25e8c148 // shrq $37, %rax - WORD $0xd86b; BYTE $0x64 // imull $100, %eax, %ebx - WORD $0xd929 // subl %ebx, %ecx - LONG $0x0cb70f41; BYTE $0x4a // movzwl (%r10,%rcx,2), %ecx - LONG $0x4b894166; BYTE $0xfe // movw %cx, $-2(%r11) - LONG $0x04b70f41; BYTE $0x42 // movzwl (%r10,%rax,2), %eax - LONG $0x43894166; BYTE $0xfc // movw %ax, $-4(%r11) - LONG $0xfcc38349 // addq $-4, %r11 - LONG $0xe0ffff81; WORD $0x05f5 // cmpl $99999999, %edi - WORD $0xd789 // movl %edx, %edi - LONG $0xffb8870f; WORD $0xffff // ja LBB2_6, $-72(%rip) - -LBB2_7: - WORD $0xfa83; BYTE $0x64 // cmpl $100, %edx - LONG $0x002d820f; WORD $0x0000 // jb LBB2_9, $45(%rip) - WORD $0xb70f; BYTE $0xc2 // movzwl %dx, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx - WORD $0xca29 // subl %ecx, %edx - WORD $0xb70f; BYTE $0xca // movzwl %dx, %ecx - LONG $0x21158d48; WORD $0x00b8; BYTE $0x00 // leaq $47137(%rip), %rdx /* _Digits(%rip) */ - LONG $0x4a0cb70f // movzwl (%rdx,%rcx,2), %ecx - LONG $0x4b894166; BYTE $0xfe // movw %cx, $-2(%r11) - LONG $0xfec38349 // addq $-2, %r11 - WORD $0xc289 // movl %eax, %edx - -LBB2_9: - WORD $0xfa83; BYTE $0x0a // cmpl $10, %edx - LONG $0x0018820f; WORD $0x0000 // jb LBB2_11, $24(%rip) - WORD $0xd089 // movl %edx, %eax - LONG $0x000d8d48; WORD $0x00b8; BYTE $0x00 // leaq $47104(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x43894166; BYTE $0xfe // movw %ax, $-2(%r11) - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB2_11: - WORD $0xc280; BYTE $0x30 // addb $48, %dl - WORD $0x1688 // movb %dl, (%rsi) - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_i64toa: - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0005880f; WORD $0x0000 // js LBB3_1, $5(%rip) - LONG $0x000062e9; BYTE $0x00 // jmp _u64toa, $98(%rip) - -LBB3_1: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x07c6; BYTE $0x2d // movb $45, (%rdi) - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0xf748; BYTE $0xde // negq %rsi - LONG $0x000050e8; BYTE $0x00 // callq _u64toa, $80(%rip) - WORD $0xc0ff // incl %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; LONG $0x00000000 // .p2align 4, 0x00 - -LCPI4_0: - QUAD $0x00000000d1b71759 // .quad 3518437209 - QUAD $0x00000000d1b71759 // .quad 3518437209 - -LCPI4_3: - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - WORD $0x000a // .word 10 - -LCPI4_4: - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - - // .p2align 3, 0x00 -LCPI4_1: - QUAD $0x80003334147b20c5 // .quad -9223315738079846203 - -LCPI4_2: - QUAD $0x8000200008000080 // .quad -9223336852348469120 - - // .p2align 4, 0x90 -_u64toa: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - LONG $0x0ffe8148; WORD $0x0027; BYTE $0x00 // cmpq $9999, %rsi - LONG $0x00a2870f; WORD $0x0000 // ja LBB4_8, $162(%rip) - WORD $0xb70f; BYTE $0xc6 // movzwl %si, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - LONG $0x00148d48 // leaq (%rax,%rax), %rdx - WORD $0xc06b; BYTE $0x64 // imull $100, %eax, %eax - WORD $0xf189 // movl %esi, %ecx - WORD $0xc129 // subl %eax, %ecx - WORD $0xb70f; BYTE $0xc1 // movzwl %cx, %eax - WORD $0x0148; BYTE $0xc0 // addq %rax, %rax - LONG $0x03e8fe81; WORD $0x0000 // cmpl $1000, %esi - LONG $0x0016820f; WORD $0x0000 // jb LBB4_3, $22(%rip) - LONG $0x2c0d8d48; WORD $0x00b7; BYTE $0x00 // leaq $46892(%rip), %rcx /* _Digits(%rip) */ - WORD $0x0c8a; BYTE $0x0a // movb (%rdx,%rcx), %cl - WORD $0x0f88 // movb %cl, (%rdi) - LONG $0x000001b9; BYTE $0x00 // movl $1, %ecx - LONG $0x00000be9; BYTE $0x00 // jmp LBB4_4, $11(%rip) - -LBB4_3: - WORD $0xc931 // xorl %ecx, %ecx - WORD $0xfe83; BYTE $0x64 // cmpl $100, %esi - LONG $0x0045820f; WORD $0x0000 // jb LBB4_5, $69(%rip) - -LBB4_4: - WORD $0xb70f; BYTE $0xd2 // movzwl %dx, %edx - LONG $0x01ca8348 // orq $1, %rdx - LONG $0x04358d48; WORD $0x00b7; BYTE $0x00 // leaq $46852(%rip), %rsi /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x32 // movb (%rdx,%rsi), %dl - WORD $0xce89 // movl %ecx, %esi - WORD $0xc1ff // incl %ecx - WORD $0x1488; BYTE $0x37 // movb %dl, (%rdi,%rsi) - -LBB4_6: - LONG $0xf3158d48; WORD $0x00b6; BYTE $0x00 // leaq $46835(%rip), %rdx /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x10 // movb (%rax,%rdx), %dl - WORD $0xce89 // movl %ecx, %esi - WORD $0xc1ff // incl %ecx - WORD $0x1488; BYTE $0x37 // movb %dl, (%rdi,%rsi) - -LBB4_7: - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - LONG $0x01c88348 // orq $1, %rax - LONG $0xdb158d48; WORD $0x00b6; BYTE $0x00 // leaq $46811(%rip), %rdx /* _Digits(%rip) */ - WORD $0x048a; BYTE $0x10 // movb (%rax,%rdx), %al - WORD $0xca89 // movl %ecx, %edx - WORD $0xc1ff // incl %ecx - WORD $0x0488; BYTE $0x17 // movb %al, (%rdi,%rdx) - WORD $0xc889 // movl %ecx, %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB4_5: - WORD $0xc931 // xorl %ecx, %ecx - WORD $0xfe83; BYTE $0x0a // cmpl $10, %esi - LONG $0xffc8830f; WORD $0xffff // jae LBB4_6, $-56(%rip) - LONG $0xffffd4e9; BYTE $0xff // jmp LBB4_7, $-44(%rip) - -LBB4_8: - LONG $0xfffe8148; WORD $0xf5e0; BYTE $0x05 // cmpq $99999999, %rsi - LONG $0x011e870f; WORD $0x0000 // ja LBB4_16, $286(%rip) - WORD $0xf089 // movl %esi, %eax - LONG $0xb71759ba; BYTE $0xd1 // movl $3518437209, %edx - LONG $0xd0af0f48 // imulq %rax, %rdx - LONG $0x2deac148 // shrq $45, %rdx - LONG $0x10c26944; WORD $0x0027; BYTE $0x00 // imull $10000, %edx, %r8d - WORD $0xf189 // movl %esi, %ecx - WORD $0x2944; BYTE $0xc1 // subl %r8d, %ecx - LONG $0x83d0694c; WORD $0x1bde; BYTE $0x43 // imulq $1125899907, %rax, %r10 - LONG $0x31eac149 // shrq $49, %r10 - LONG $0xfee28341 // andl $-2, %r10d - WORD $0xb70f; BYTE $0xc2 // movzwl %dx, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - WORD $0xc06b; BYTE $0x64 // imull $100, %eax, %eax - WORD $0xc229 // subl %eax, %edx - LONG $0xcab70f44 // movzwl %dx, %r9d - WORD $0x014d; BYTE $0xc9 // addq %r9, %r9 - WORD $0xb70f; BYTE $0xc1 // movzwl %cx, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - LONG $0x00048d4c // leaq (%rax,%rax), %r8 - WORD $0xc06b; BYTE $0x64 // imull $100, %eax, %eax - WORD $0xc129 // subl %eax, %ecx - LONG $0xd9b70f44 // movzwl %cx, %r11d - WORD $0x014d; BYTE $0xdb // addq %r11, %r11 - LONG $0x9680fe81; WORD $0x0098 // cmpl $10000000, %esi - LONG $0x0017820f; WORD $0x0000 // jb LBB4_11, $23(%rip) - LONG $0x39058d48; WORD $0x00b6; BYTE $0x00 // leaq $46649(%rip), %rax /* _Digits(%rip) */ - LONG $0x02048a41 // movb (%r10,%rax), %al - WORD $0x0788 // movb %al, (%rdi) - LONG $0x000001b9; BYTE $0x00 // movl $1, %ecx - LONG $0x00000ee9; BYTE $0x00 // jmp LBB4_12, $14(%rip) - -LBB4_11: - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x4240fe81; WORD $0x000f // cmpl $1000000, %esi - LONG $0x0076820f; WORD $0x0000 // jb LBB4_13, $118(%rip) - -LBB4_12: - WORD $0x8944; BYTE $0xd0 // movl %r10d, %eax - LONG $0x01c88348 // orq $1, %rax - LONG $0x0d358d48; WORD $0x00b6; BYTE $0x00 // leaq $46605(%rip), %rsi /* _Digits(%rip) */ - WORD $0x048a; BYTE $0x30 // movb (%rax,%rsi), %al - WORD $0xce89 // movl %ecx, %esi - WORD $0xc1ff // incl %ecx - WORD $0x0488; BYTE $0x37 // movb %al, (%rdi,%rsi) - -LBB4_14: - LONG $0xfc058d48; WORD $0x00b5; BYTE $0x00 // leaq $46588(%rip), %rax /* _Digits(%rip) */ - LONG $0x01048a41 // movb (%r9,%rax), %al - WORD $0xce89 // movl %ecx, %esi - WORD $0xc1ff // incl %ecx - WORD $0x0488; BYTE $0x37 // movb %al, (%rdi,%rsi) - -LBB4_15: - LONG $0xc1b70f41 // movzwl %r9w, %eax - LONG $0x01c88348 // orq $1, %rax - LONG $0xe2358d48; WORD $0x00b5; BYTE $0x00 // leaq $46562(%rip), %rsi /* _Digits(%rip) */ - WORD $0x048a; BYTE $0x30 // movb (%rax,%rsi), %al - WORD $0xca89 // movl %ecx, %edx - WORD $0x0488; BYTE $0x17 // movb %al, (%rdi,%rdx) - LONG $0x30048a41 // movb (%r8,%rsi), %al - LONG $0x01174488 // movb %al, $1(%rdi,%rdx) - LONG $0xc0b70f41 // movzwl %r8w, %eax - LONG $0x01c88348 // orq $1, %rax - WORD $0x048a; BYTE $0x30 // movb (%rax,%rsi), %al - LONG $0x02174488 // movb %al, $2(%rdi,%rdx) - LONG $0x33048a41 // movb (%r11,%rsi), %al - LONG $0x03174488 // movb %al, $3(%rdi,%rdx) - LONG $0xc3b70f41 // movzwl %r11w, %eax - LONG $0x01c88348 // orq $1, %rax - WORD $0x048a; BYTE $0x30 // movb (%rax,%rsi), %al - WORD $0xc183; BYTE $0x05 // addl $5, %ecx - LONG $0x04174488 // movb %al, $4(%rdi,%rdx) - WORD $0xc889 // movl %ecx, %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB4_13: - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x86a0fe81; WORD $0x0001 // cmpl $100000, %esi - LONG $0xff94830f; WORD $0xffff // jae LBB4_14, $-108(%rip) - LONG $0xffffa1e9; BYTE $0xff // jmp LBB4_15, $-95(%rip) - -LBB4_16: - QUAD $0x86f26fc0ffffb848; WORD $0x0023 // movabsq $9999999999999999, %rax - WORD $0x3948; BYTE $0xc6 // cmpq %rax, %rsi - LONG $0x0107870f; WORD $0x0000 // ja LBB4_18, $263(%rip) - QUAD $0x77118461cefdb948; WORD $0xabcc // movabsq $-6067343680855748867, %rcx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf748; BYTE $0xe1 // mulq %rcx - LONG $0x1aeac148 // shrq $26, %rdx - LONG $0xe100c269; WORD $0x05f5 // imull $100000000, %edx, %eax - WORD $0xc629 // subl %eax, %esi - LONG $0xc26ef9c5 // vmovd %edx, %xmm0 - QUAD $0xfffffda70d6ff9c5 // vmovdqa $-601(%rip), %xmm1 /* LCPI4_0(%rip) */ - LONG $0xd1f4f9c5 // vpmuludq %xmm1, %xmm0, %xmm2 - LONG $0xd273e9c5; BYTE $0x2d // vpsrlq $45, %xmm2, %xmm2 - LONG $0x002710b8; BYTE $0x00 // movl $10000, %eax - LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq %rax, %xmm3 - LONG $0xe3f4e9c5 // vpmuludq %xmm3, %xmm2, %xmm4 - LONG $0xc4faf9c5 // vpsubd %xmm4, %xmm0, %xmm0 - LONG $0xc061e9c5 // vpunpcklwd %xmm0, %xmm2, %xmm0 - LONG $0xf073f9c5; BYTE $0x02 // vpsllq $2, %xmm0, %xmm0 - LONG $0xc070fbc5; BYTE $0x50 // vpshuflw $80, %xmm0, %xmm0 - LONG $0xc070f9c5; BYTE $0x50 // vpshufd $80, %xmm0, %xmm0 - QUAD $0xfffda0155979e2c4; BYTE $0xff // vpbroadcastq $-608(%rip), %xmm2 /* LCPI4_1(%rip) */ - QUAD $0xfffd9f255979e2c4; BYTE $0xff // vpbroadcastq $-609(%rip), %xmm4 /* LCPI4_2(%rip) */ - LONG $0xc2e4f9c5 // vpmulhuw %xmm2, %xmm0, %xmm0 - LONG $0xc4e4f9c5 // vpmulhuw %xmm4, %xmm0, %xmm0 - QUAD $0xfffffd672d6ff9c5 // vmovdqa $-665(%rip), %xmm5 /* LCPI4_3(%rip) */ - LONG $0xf5d5f9c5 // vpmullw %xmm5, %xmm0, %xmm6 - LONG $0xf673c9c5; BYTE $0x10 // vpsllq $16, %xmm6, %xmm6 - LONG $0xc6f9f9c5 // vpsubw %xmm6, %xmm0, %xmm0 - LONG $0xf66ef9c5 // vmovd %esi, %xmm6 - LONG $0xc9f4c9c5 // vpmuludq %xmm1, %xmm6, %xmm1 - LONG $0xd173f1c5; BYTE $0x2d // vpsrlq $45, %xmm1, %xmm1 - LONG $0xdbf4f1c5 // vpmuludq %xmm3, %xmm1, %xmm3 - LONG $0xdbfac9c5 // vpsubd %xmm3, %xmm6, %xmm3 - LONG $0xcb61f1c5 // vpunpcklwd %xmm3, %xmm1, %xmm1 - LONG $0xf173f1c5; BYTE $0x02 // vpsllq $2, %xmm1, %xmm1 - LONG $0xc970fbc5; BYTE $0x50 // vpshuflw $80, %xmm1, %xmm1 - LONG $0xc970f9c5; BYTE $0x50 // vpshufd $80, %xmm1, %xmm1 - LONG $0xcae4f1c5 // vpmulhuw %xmm2, %xmm1, %xmm1 - LONG $0xcce4f1c5 // vpmulhuw %xmm4, %xmm1, %xmm1 - LONG $0xd5d5f1c5 // vpmullw %xmm5, %xmm1, %xmm2 - LONG $0xf273e9c5; BYTE $0x10 // vpsllq $16, %xmm2, %xmm2 - LONG $0xcaf9f1c5 // vpsubw %xmm2, %xmm1, %xmm1 - LONG $0xc167f9c5 // vpackuswb %xmm1, %xmm0, %xmm0 - QUAD $0xfffffd210dfcf9c5 // vpaddb $-735(%rip), %xmm0, %xmm1 /* LCPI4_4(%rip) */ - LONG $0xd2efe9c5 // vpxor %xmm2, %xmm2, %xmm2 - LONG $0xc274f9c5 // vpcmpeqb %xmm2, %xmm0, %xmm0 - LONG $0xc0d7f9c5 // vpmovmskb %xmm0, %eax - LONG $0x0080000d; BYTE $0x00 // orl $32768, %eax - LONG $0xff7fff35; BYTE $0xff // xorl $-32769, %eax - WORD $0xbc0f; BYTE $0xc0 // bsfl %eax, %eax - LONG $0x000010b9; BYTE $0x00 // movl $16, %ecx - WORD $0xc129 // subl %eax, %ecx - LONG $0x04e0c148 // shlq $4, %rax - LONG $0xe6158d48; WORD $0x00db; BYTE $0x00 // leaq $56294(%rip), %rdx /* _VecShiftShuffles(%rip) */ - LONG $0x0071e2c4; WORD $0x1004 // vpshufb (%rax,%rdx), %xmm1, %xmm0 - LONG $0x077ffac5 // vmovdqu %xmm0, (%rdi) - WORD $0xc889 // movl %ecx, %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB4_18: - QUAD $0x652fb1137857b948; WORD $0x39a5 // movabsq $4153837486827862103, %rcx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf748; BYTE $0xe1 // mulq %rcx - LONG $0x33eac148 // shrq $51, %rdx - QUAD $0x86f26fc10000b848; WORD $0x0023 // movabsq $10000000000000000, %rax - LONG $0xc2af0f48 // imulq %rdx, %rax - WORD $0x2948; BYTE $0xc6 // subq %rax, %rsi - WORD $0xfa83; BYTE $0x09 // cmpl $9, %edx - LONG $0x000f870f; WORD $0x0000 // ja LBB4_20, $15(%rip) - WORD $0xc280; BYTE $0x30 // addb $48, %dl - WORD $0x1788 // movb %dl, (%rdi) - LONG $0x000001b9; BYTE $0x00 // movl $1, %ecx - LONG $0x0000bae9; BYTE $0x00 // jmp LBB4_25, $186(%rip) - -LBB4_20: - WORD $0xfa83; BYTE $0x63 // cmpl $99, %edx - LONG $0x001f870f; WORD $0x0000 // ja LBB4_22, $31(%rip) - WORD $0xd089 // movl %edx, %eax - LONG $0x290d8d48; WORD $0x00b4; BYTE $0x00 // leaq $46121(%rip), %rcx /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x41 // movb (%rcx,%rax,2), %dl - LONG $0x0141448a // movb $1(%rcx,%rax,2), %al - WORD $0x1788 // movb %dl, (%rdi) - WORD $0x4788; BYTE $0x01 // movb %al, $1(%rdi) - LONG $0x000002b9; BYTE $0x00 // movl $2, %ecx - LONG $0x000092e9; BYTE $0x00 // jmp LBB4_25, $146(%rip) - -LBB4_22: - WORD $0xd089 // movl %edx, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - LONG $0x03e7fa81; WORD $0x0000 // cmpl $999, %edx - LONG $0x003c870f; WORD $0x0000 // ja LBB4_24, $60(%rip) - WORD $0xc083; BYTE $0x30 // addl $48, %eax - WORD $0x0788 // movb %al, (%rdi) - WORD $0xb70f; BYTE $0xc2 // movzwl %dx, %eax - WORD $0xc189 // movl %eax, %ecx - WORD $0xe9c1; BYTE $0x02 // shrl $2, %ecx - LONG $0x147bc969; WORD $0x0000 // imull $5243, %ecx, %ecx - WORD $0xe9c1; BYTE $0x11 // shrl $17, %ecx - WORD $0xc96b; BYTE $0x64 // imull $100, %ecx, %ecx - WORD $0xc829 // subl %ecx, %eax - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - LONG $0xd40d8d48; WORD $0x00b3; BYTE $0x00 // leaq $46036(%rip), %rcx /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x41 // movb (%rcx,%rax,2), %dl - LONG $0x0141448a // movb $1(%rcx,%rax,2), %al - WORD $0x5788; BYTE $0x01 // movb %dl, $1(%rdi) - WORD $0x4788; BYTE $0x02 // movb %al, $2(%rdi) - LONG $0x000003b9; BYTE $0x00 // movl $3, %ecx - LONG $0x00003ce9; BYTE $0x00 // jmp LBB4_25, $60(%rip) - -LBB4_24: - WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx - WORD $0xca29 // subl %ecx, %edx - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - LONG $0xae058d4c; WORD $0x00b3; BYTE $0x00 // leaq $45998(%rip), %r8 /* _Digits(%rip) */ - LONG $0x400c8a41 // movb (%r8,%rax,2), %cl - LONG $0x40448a41; BYTE $0x01 // movb $1(%r8,%rax,2), %al - WORD $0x0f88 // movb %cl, (%rdi) - WORD $0x4788; BYTE $0x01 // movb %al, $1(%rdi) - WORD $0xb70f; BYTE $0xc2 // movzwl %dx, %eax - LONG $0x400c8a41 // movb (%r8,%rax,2), %cl - WORD $0x0148; BYTE $0xc0 // addq %rax, %rax - WORD $0x4f88; BYTE $0x02 // movb %cl, $2(%rdi) - WORD $0xc883; BYTE $0x01 // orl $1, %eax - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - LONG $0x00048a42 // movb (%rax,%r8), %al - WORD $0x4788; BYTE $0x03 // movb %al, $3(%rdi) - LONG $0x000004b9; BYTE $0x00 // movl $4, %ecx - -LBB4_25: - QUAD $0x77118461cefdba48; WORD $0xabcc // movabsq $-6067343680855748867, %rdx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf748; BYTE $0xe2 // mulq %rdx - LONG $0x1aeac148 // shrq $26, %rdx - LONG $0xc26ef9c5 // vmovd %edx, %xmm0 - QUAD $0xfffffbb10d6ff9c5 // vmovdqa $-1103(%rip), %xmm1 /* LCPI4_0(%rip) */ - LONG $0xd1f4f9c5 // vpmuludq %xmm1, %xmm0, %xmm2 - LONG $0xd273e9c5; BYTE $0x2d // vpsrlq $45, %xmm2, %xmm2 - LONG $0x002710b8; BYTE $0x00 // movl $10000, %eax - LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq %rax, %xmm3 - LONG $0xe3f4e9c5 // vpmuludq %xmm3, %xmm2, %xmm4 - LONG $0xc4faf9c5 // vpsubd %xmm4, %xmm0, %xmm0 - LONG $0xc061e9c5 // vpunpcklwd %xmm0, %xmm2, %xmm0 - LONG $0xf073f9c5; BYTE $0x02 // vpsllq $2, %xmm0, %xmm0 - LONG $0xc070fbc5; BYTE $0x50 // vpshuflw $80, %xmm0, %xmm0 - QUAD $0xfffbaf155979e2c4; BYTE $0xff // vpbroadcastq $-1105(%rip), %xmm2 /* LCPI4_1(%rip) */ - LONG $0xc070f9c5; BYTE $0x50 // vpshufd $80, %xmm0, %xmm0 - LONG $0xc2e4f9c5 // vpmulhuw %xmm2, %xmm0, %xmm0 - QUAD $0xfffba5255979e2c4; BYTE $0xff // vpbroadcastq $-1115(%rip), %xmm4 /* LCPI4_2(%rip) */ - LONG $0xc4e4f9c5 // vpmulhuw %xmm4, %xmm0, %xmm0 - QUAD $0xfffffb712d6ff9c5 // vmovdqa $-1167(%rip), %xmm5 /* LCPI4_3(%rip) */ - LONG $0xf5d5f9c5 // vpmullw %xmm5, %xmm0, %xmm6 - LONG $0xf673c9c5; BYTE $0x10 // vpsllq $16, %xmm6, %xmm6 - LONG $0xc6f9f9c5 // vpsubw %xmm6, %xmm0, %xmm0 - LONG $0xe100c269; WORD $0x05f5 // imull $100000000, %edx, %eax - WORD $0xc629 // subl %eax, %esi - LONG $0xf66ef9c5 // vmovd %esi, %xmm6 - LONG $0xc9f4c9c5 // vpmuludq %xmm1, %xmm6, %xmm1 - LONG $0xd173f1c5; BYTE $0x2d // vpsrlq $45, %xmm1, %xmm1 - LONG $0xdbf4f1c5 // vpmuludq %xmm3, %xmm1, %xmm3 - LONG $0xdbfac9c5 // vpsubd %xmm3, %xmm6, %xmm3 - LONG $0xcb61f1c5 // vpunpcklwd %xmm3, %xmm1, %xmm1 - LONG $0xf173f1c5; BYTE $0x02 // vpsllq $2, %xmm1, %xmm1 - LONG $0xc970fbc5; BYTE $0x50 // vpshuflw $80, %xmm1, %xmm1 - LONG $0xc970f9c5; BYTE $0x50 // vpshufd $80, %xmm1, %xmm1 - LONG $0xcae4f1c5 // vpmulhuw %xmm2, %xmm1, %xmm1 - LONG $0xcce4f1c5 // vpmulhuw %xmm4, %xmm1, %xmm1 - LONG $0xd5d5f1c5 // vpmullw %xmm5, %xmm1, %xmm2 - LONG $0xf273e9c5; BYTE $0x10 // vpsllq $16, %xmm2, %xmm2 - LONG $0xcaf9f1c5 // vpsubw %xmm2, %xmm1, %xmm1 - LONG $0xc167f9c5 // vpackuswb %xmm1, %xmm0, %xmm0 - QUAD $0xfffffb2305fcf9c5 // vpaddb $-1245(%rip), %xmm0, %xmm0 /* LCPI4_4(%rip) */ - WORD $0xc889 // movl %ecx, %eax - LONG $0x047ffac5; BYTE $0x07 // vmovdqu %xmm0, (%rdi,%rax) - WORD $0xc983; BYTE $0x10 // orl $16, %ecx - WORD $0xc889 // movl %ecx, %eax - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - LONG $0x00000000; BYTE $0x00 // .p2align 5, 0x00 - -LCPI5_0: - QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - -LCPI5_1: - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - -LCPI5_2: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - - // .p2align 4, 0x00 -LCPI5_3: - QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - -LCPI5_4: - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - -LCPI5_5: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - - // .p2align 4, 0x90 -_quote: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - WORD $0x8949; BYTE $0xcf // movq %rcx, %r15 - WORD $0x8949; BYTE $0xf2 // movq %rsi, %r10 - WORD $0x8b4c; BYTE $0x09 // movq (%rcx), %r9 - LONG $0x01c0f641 // testb $1, %r8b - LONG $0xde058d48; WORD $0x00d9; BYTE $0x00 // leaq $55774(%rip), %rax /* __SingleQuoteTab(%rip) */ - LONG $0xd7058d4c; WORD $0x00e9; BYTE $0x00 // leaq $59863(%rip), %r8 /* __DoubleQuoteTab(%rip) */ - LONG $0xc0440f4c // cmoveq %rax, %r8 - QUAD $0x00000000f5048d48 // leaq (,%rsi,8), %rax - WORD $0x3949; BYTE $0xc1 // cmpq %rax, %r9 - LONG $0x06e78d0f; WORD $0x0000 // jge LBB5_88, $1767(%rip) - WORD $0x8949; BYTE $0xd4 // movq %rdx, %r12 - WORD $0x8949; BYTE $0xfb // movq %rdi, %r11 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x0a22840f; WORD $0x0000 // je LBB5_120, $2594(%rip) - QUAD $0xffffff1b256ffdc5 // vmovdqa $-229(%rip), %ymm4 /* LCPI5_0(%rip) */ - QUAD $0xffffff332d6ffdc5 // vmovdqa $-205(%rip), %ymm5 /* LCPI5_1(%rip) */ - QUAD $0xffffff4b356ffdc5 // vmovdqa $-181(%rip), %ymm6 /* LCPI5_2(%rip) */ - LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd %ymm8, %ymm8, %ymm8 - WORD $0x8949; BYTE $0xfb // movq %rdi, %r11 - WORD $0x8949; BYTE $0xd4 // movq %rdx, %r12 - LONG $0xd0558948 // movq %rdx, $-48(%rbp) - -LBB5_3: - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - LONG $0x1ffa8349 // cmpq $31, %r10 - WORD $0x9f0f; BYTE $0xc1 // setg %cl - WORD $0x894d; BYTE $0xce // movq %r9, %r14 - WORD $0x894c; BYTE $0xe6 // movq %r12, %rsi - WORD $0x894d; BYTE $0xd7 // movq %r10, %r15 - WORD $0x894d; BYTE $0xdd // movq %r11, %r13 - LONG $0x20f98349 // cmpq $32, %r9 - LONG $0x008c8c0f; WORD $0x0000 // jl LBB5_9, $140(%rip) - LONG $0x20fa8349 // cmpq $32, %r10 - LONG $0x00828c0f; WORD $0x0000 // jl LBB5_9, $130(%rip) - WORD $0x894d; BYTE $0xdd // movq %r11, %r13 - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - WORD $0x894c; BYTE $0xe6 // movq %r12, %rsi - WORD $0x894c; BYTE $0xcb // movq %r9, %rbx - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB5_6: - LONG $0x6f7ec1c4; WORD $0x0045 // vmovdqu (%r13), %ymm0 - LONG $0xc864ddc5 // vpcmpgtb %ymm0, %ymm4, %ymm1 - LONG $0xd574fdc5 // vpcmpeqb %ymm5, %ymm0, %ymm2 - LONG $0xde74fdc5 // vpcmpeqb %ymm6, %ymm0, %ymm3 - LONG $0xd2ebe5c5 // vpor %ymm2, %ymm3, %ymm2 - LONG $0x067ffec5 // vmovdqu %ymm0, (%rsi) - LONG $0x647dc1c4; BYTE $0xc0 // vpcmpgtb %ymm8, %ymm0, %ymm0 - LONG $0xc0dbf5c5 // vpand %ymm0, %ymm1, %ymm0 - LONG $0xc0ebedc5 // vpor %ymm0, %ymm2, %ymm0 - LONG $0xc8d7fdc5 // vpmovmskb %ymm0, %ecx - WORD $0xc985 // testl %ecx, %ecx - LONG $0x01f8850f; WORD $0x0000 // jne LBB5_19, $504(%rip) - LONG $0x20c58349 // addq $32, %r13 - LONG $0x20c68348 // addq $32, %rsi - LONG $0xe0788d4c // leaq $-32(%rax), %r15 - LONG $0xe0738d4c // leaq $-32(%rbx), %r14 - LONG $0x3ff88348 // cmpq $63, %rax - WORD $0x9f0f; BYTE $0xc1 // setg %cl - LONG $0x40f88348 // cmpq $64, %rax - LONG $0x001c8c0f; WORD $0x0000 // jl LBB5_9, $28(%rip) - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - LONG $0x3ffb8348 // cmpq $63, %rbx - WORD $0x894c; BYTE $0xf3 // movq %r14, %rbx - LONG $0xff9c8f0f; WORD $0xffff // jg LBB5_6, $-100(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB5_9: - WORD $0xc984 // testb %cl, %cl - LONG $0x0081840f; WORD $0x0000 // je LBB5_13, $129(%rip) - LONG $0x6f7ec1c4; WORD $0x0045 // vmovdqu (%r13), %ymm0 - LONG $0xc864ddc5 // vpcmpgtb %ymm0, %ymm4, %ymm1 - LONG $0xd574fdc5 // vpcmpeqb %ymm5, %ymm0, %ymm2 - LONG $0xde74fdc5 // vpcmpeqb %ymm6, %ymm0, %ymm3 - LONG $0xd2ebe5c5 // vpor %ymm2, %ymm3, %ymm2 - LONG $0x647dc1c4; BYTE $0xc0 // vpcmpgtb %ymm8, %ymm0, %ymm0 - LONG $0xc0dbf5c5 // vpand %ymm0, %ymm1, %ymm0 - LONG $0xc0ebedc5 // vpor %ymm0, %ymm2, %ymm0 - LONG $0xc0d7fdc5 // vpmovmskb %ymm0, %eax - QUAD $0x000100000000b948; WORD $0x0000 // movabsq $4294967296, %rcx - WORD $0x0948; BYTE $0xc8 // orq %rcx, %rax - LONG $0xc8bc0f48 // bsfq %rax, %rcx - LONG $0x6f7ac1c4; WORD $0x0045 // vmovdqu (%r13), %xmm0 - LONG $0x16f9e3c4; WORD $0x01c0 // vpextrq $1, %xmm0, %rax - LONG $0x7ef9e1c4; BYTE $0xc3 // vmovq %xmm0, %rbx - WORD $0x394c; BYTE $0xf1 // cmpq %r14, %rcx - LONG $0x016d8e0f; WORD $0x0000 // jle LBB5_20, $365(%rip) - LONG $0x10fe8349 // cmpq $16, %r14 - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - LONG $0x01a3820f; WORD $0x0000 // jb LBB5_24, $419(%rip) - WORD $0x8948; BYTE $0x1e // movq %rbx, (%rsi) - LONG $0x08468948 // movq %rax, $8(%rsi) - LONG $0x10458d49 // leaq $16(%r13), %rax - LONG $0x10c68348 // addq $16, %rsi - LONG $0xf04e8d49 // leaq $-16(%r14), %rcx - LONG $0x08f98348 // cmpq $8, %rcx - LONG $0x0196830f; WORD $0x0000 // jae LBB5_25, $406(%rip) - LONG $0x0001a3e9; BYTE $0x00 // jmp LBB5_26, $419(%rip) - -LBB5_13: - WORD $0xf8c5; BYTE $0x77 // vzeroupper - LONG $0x0fff8349 // cmpq $15, %r15 - WORD $0x9f0f; BYTE $0xc1 // setg %cl - LONG $0x10fe8349 // cmpq $16, %r14 - LONG $0x01f88c0f; WORD $0x0000 // jl LBB5_31, $504(%rip) - LONG $0x10ff8349 // cmpq $16, %r15 - QUAD $0xfffffe073d6ff9c5 // vmovdqa $-505(%rip), %xmm7 /* LCPI5_3(%rip) */ - QUAD $0xfffffe0f0d6f79c5 // vmovdqa $-497(%rip), %xmm9 /* LCPI5_4(%rip) */ - QUAD $0xfffffe17156f79c5 // vmovdqa $-489(%rip), %xmm10 /* LCPI5_5(%rip) */ - LONG $0x762141c4; BYTE $0xdb // vpcmpeqd %xmm11, %xmm11, %xmm11 - LONG $0x021e8c0f; WORD $0x0000 // jl LBB5_36, $542(%rip) - QUAD $0xfffffd84256ffdc5 // vmovdqa $-636(%rip), %ymm4 /* LCPI5_0(%rip) */ - QUAD $0xfffffd9c2d6ffdc5 // vmovdqa $-612(%rip), %ymm5 /* LCPI5_1(%rip) */ - QUAD $0xfffffdb4356ffdc5 // vmovdqa $-588(%rip), %ymm6 /* LCPI5_2(%rip) */ - LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd %ymm8, %ymm8, %ymm8 - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB5_16: - LONG $0x6f7ac1c4; WORD $0x0045 // vmovdqu (%r13), %xmm0 - LONG $0xc864c1c5 // vpcmpgtb %xmm0, %xmm7, %xmm1 - LONG $0xd074b1c5 // vpcmpeqb %xmm0, %xmm9, %xmm2 - LONG $0xd874a9c5 // vpcmpeqb %xmm0, %xmm10, %xmm3 - LONG $0xd2ebe1c5 // vpor %xmm2, %xmm3, %xmm2 - LONG $0x067ffac5 // vmovdqu %xmm0, (%rsi) - LONG $0x6479c1c4; BYTE $0xc3 // vpcmpgtb %xmm11, %xmm0, %xmm0 - LONG $0xc0dbf1c5 // vpand %xmm0, %xmm1, %xmm0 - LONG $0xc0ebe9c5 // vpor %xmm0, %xmm2, %xmm0 - LONG $0xc0d7f9c5 // vpmovmskb %xmm0, %eax - WORD $0x8566; BYTE $0xc0 // testw %ax, %ax - LONG $0x00d1850f; WORD $0x0000 // jne LBB5_22, $209(%rip) - LONG $0x10c58349 // addq $16, %r13 - LONG $0x10c68348 // addq $16, %rsi - LONG $0xf0478d49 // leaq $-16(%r15), %rax - LONG $0xf05e8d49 // leaq $-16(%r14), %rbx - LONG $0x1fff8349 // cmpq $31, %r15 - WORD $0x9f0f; BYTE $0xc1 // setg %cl - LONG $0x20ff8349 // cmpq $32, %r15 - LONG $0x00108c0f; WORD $0x0000 // jl LBB5_32, $16(%rip) - WORD $0x8949; BYTE $0xc7 // movq %rax, %r15 - LONG $0x1ffe8349 // cmpq $31, %r14 - WORD $0x8949; BYTE $0xde // movq %rbx, %r14 - LONG $0xff9b8f0f; WORD $0xffff // jg LBB5_16, $-101(%rip) - -LBB5_32: - WORD $0xc984 // testb %cl, %cl - LONG $0x01b0840f; WORD $0x0000 // je LBB5_37, $432(%rip) - -LBB5_33: - LONG $0x6f7ac1c4; WORD $0x0045 // vmovdqu (%r13), %xmm0 - LONG $0xc864c1c5 // vpcmpgtb %xmm0, %xmm7, %xmm1 - LONG $0xd074b1c5 // vpcmpeqb %xmm0, %xmm9, %xmm2 - LONG $0xd874a9c5 // vpcmpeqb %xmm0, %xmm10, %xmm3 - LONG $0xd2ebe1c5 // vpor %xmm2, %xmm3, %xmm2 - LONG $0x6479c1c4; BYTE $0xdb // vpcmpgtb %xmm11, %xmm0, %xmm3 - LONG $0xcbdbf1c5 // vpand %xmm3, %xmm1, %xmm1 - LONG $0xc9ebe9c5 // vpor %xmm1, %xmm2, %xmm1 - LONG $0xc1d7f9c5 // vpmovmskb %xmm1, %eax - LONG $0x0100000d; BYTE $0x00 // orl $65536, %eax - WORD $0xbc0f; BYTE $0xc0 // bsfl %eax, %eax - LONG $0x7ef9e1c4; BYTE $0xc1 // vmovq %xmm0, %rcx - WORD $0x3948; BYTE $0xc3 // cmpq %rax, %rbx - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - LONG $0x02618d0f; WORD $0x0000 // jge LBB5_53, $609(%rip) - LONG $0x08fb8348 // cmpq $8, %rbx - LONG $0x027c820f; WORD $0x0000 // jb LBB5_56, $636(%rip) - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0x08458d49 // leaq $8(%r13), %rax - LONG $0x08c68348 // addq $8, %rsi - LONG $0xf84b8d48 // leaq $-8(%rbx), %rcx - LONG $0x00026ee9; BYTE $0x00 // jmp LBB5_57, $622(%rip) - -LBB5_19: - WORD $0x294d; BYTE $0xdd // subq %r11, %r13 - LONG $0xf1bc0f44 // bsfl %ecx, %r14d - LONG $0x000038e9; BYTE $0x00 // jmp LBB5_23, $56(%rip) - -LBB5_20: - WORD $0xf983; BYTE $0x10 // cmpl $16, %ecx - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - LONG $0x01a3820f; WORD $0x0000 // jb LBB5_42, $419(%rip) - WORD $0x8948; BYTE $0x1e // movq %rbx, (%rsi) - LONG $0x08468948 // movq %rax, $8(%rsi) - LONG $0x10458d49 // leaq $16(%r13), %rax - LONG $0x10c68348 // addq $16, %rsi - LONG $0xf0598d48 // leaq $-16(%rcx), %rbx - LONG $0x08fb8348 // cmpq $8, %rbx - LONG $0x0196830f; WORD $0x0000 // jae LBB5_43, $406(%rip) - LONG $0x0001a3e9; BYTE $0x00 // jmp LBB5_44, $419(%rip) - -LBB5_22: - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - WORD $0x294d; BYTE $0xdd // subq %r11, %r13 - LONG $0xf0bc0f44 // bsfl %eax, %r14d - -LBB5_23: - WORD $0x014d; BYTE $0xee // addq %r13, %r14 - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - LONG $0x0002dfe9; BYTE $0x00 // jmp LBB5_71, $735(%rip) - -LBB5_24: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - WORD $0x894c; BYTE $0xf1 // movq %r14, %rcx - LONG $0x08f98348 // cmpq $8, %rcx - LONG $0x0012820f; WORD $0x0000 // jb LBB5_26, $18(%rip) - -LBB5_25: - WORD $0x8b48; BYTE $0x10 // movq (%rax), %rdx - WORD $0x8948; BYTE $0x16 // movq %rdx, (%rsi) - LONG $0x08c08348 // addq $8, %rax - LONG $0x08c68348 // addq $8, %rsi - LONG $0xf8c18348 // addq $-8, %rcx - -LBB5_26: - LONG $0x04f98348 // cmpq $4, %rcx - LONG $0x00358c0f; WORD $0x0000 // jl LBB5_27, $53(%rip) - WORD $0x108b // movl (%rax), %edx - WORD $0x1689 // movl %edx, (%rsi) - LONG $0x04c08348 // addq $4, %rax - LONG $0x04c68348 // addq $4, %rsi - LONG $0xfcc18348 // addq $-4, %rcx - LONG $0x02f98348 // cmpq $2, %rcx - LONG $0x0025830f; WORD $0x0000 // jae LBB5_50, $37(%rip) - -LBB5_28: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x0004840f; WORD $0x0000 // je LBB5_30, $4(%rip) - -LBB5_29: - WORD $0x008a // movb (%rax), %al - WORD $0x0688 // movb %al, (%rsi) - -LBB5_30: - WORD $0x294d; BYTE $0xde // subq %r11, %r14 - WORD $0x014d; BYTE $0xee // addq %r13, %r14 - WORD $0xf749; BYTE $0xd6 // notq %r14 - LONG $0x00027ee9; BYTE $0x00 // jmp LBB5_71, $638(%rip) - -LBB5_27: - LONG $0x02f98348 // cmpq $2, %rcx - LONG $0xffdb820f; WORD $0xffff // jb LBB5_28, $-37(%rip) - -LBB5_50: - WORD $0xb70f; BYTE $0x10 // movzwl (%rax), %edx - WORD $0x8966; BYTE $0x16 // movw %dx, (%rsi) - LONG $0x02c08348 // addq $2, %rax - LONG $0x02c68348 // addq $2, %rsi - LONG $0xfec18348 // addq $-2, %rcx - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0xffc9850f; WORD $0xffff // jne LBB5_29, $-55(%rip) - LONG $0xffffc8e9; BYTE $0xff // jmp LBB5_30, $-56(%rip) - -LBB5_31: - WORD $0x894c; BYTE $0xf3 // movq %r14, %rbx - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - QUAD $0xfffffbad256ffdc5 // vmovdqa $-1107(%rip), %ymm4 /* LCPI5_0(%rip) */ - QUAD $0xfffffbc52d6ffdc5 // vmovdqa $-1083(%rip), %ymm5 /* LCPI5_1(%rip) */ - QUAD $0xfffffbdd356ffdc5 // vmovdqa $-1059(%rip), %ymm6 /* LCPI5_2(%rip) */ - LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd %ymm8, %ymm8, %ymm8 - QUAD $0xfffffbf03d6ff9c5 // vmovdqa $-1040(%rip), %xmm7 /* LCPI5_3(%rip) */ - QUAD $0xfffffbf80d6f79c5 // vmovdqa $-1032(%rip), %xmm9 /* LCPI5_4(%rip) */ - QUAD $0xfffffc00156f79c5 // vmovdqa $-1024(%rip), %xmm10 /* LCPI5_5(%rip) */ - LONG $0x762141c4; BYTE $0xdb // vpcmpeqd %xmm11, %xmm11, %xmm11 - WORD $0xc984 // testb %cl, %cl - LONG $0x0030840f; WORD $0x0000 // je LBB5_37, $48(%rip) - LONG $0xfffe7be9; BYTE $0xff // jmp LBB5_33, $-389(%rip) - -LBB5_36: - WORD $0x894c; BYTE $0xf3 // movq %r14, %rbx - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - QUAD $0xfffffb60256ffdc5 // vmovdqa $-1184(%rip), %ymm4 /* LCPI5_0(%rip) */ - QUAD $0xfffffb782d6ffdc5 // vmovdqa $-1160(%rip), %ymm5 /* LCPI5_1(%rip) */ - QUAD $0xfffffb90356ffdc5 // vmovdqa $-1136(%rip), %ymm6 /* LCPI5_2(%rip) */ - LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd %ymm8, %ymm8, %ymm8 - WORD $0xc984 // testb %cl, %cl - LONG $0xfe50850f; WORD $0xffff // jne LBB5_33, $-432(%rip) - -LBB5_37: - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - LONG $0xc6358d4c; WORD $0x00d5; BYTE $0x00 // leaq $54726(%rip), %r14 /* __SingleQuoteTab(%rip) */ - LONG $0x01758e0f; WORD $0x0000 // jle LBB5_62, $373(%rip) - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x016c8e0f; WORD $0x0000 // jle LBB5_63, $364(%rip) - LONG $0x90909090 // .p2align 4, 0x90 - -LBB5_39: - LONG $0x55b60f41; BYTE $0x00 // movzbl (%r13), %edx - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - LONG $0x04e1c148 // shlq $4, %rcx - LONG $0x313c834a; BYTE $0x00 // cmpq $0, (%rcx,%r14) - LONG $0x00d4850f; WORD $0x0000 // jne LBB5_55, $212(%rip) - LONG $0xff488d48 // leaq $-1(%rax), %rcx - WORD $0xff49; BYTE $0xc5 // incq %r13 - WORD $0x1688 // movb %dl, (%rsi) - LONG $0x02f88348 // cmpq $2, %rax - LONG $0x013e8c0f; WORD $0x0000 // jl LBB5_63, $318(%rip) - LONG $0xff538d48 // leaq $-1(%rbx), %rdx - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - LONG $0x01fb8348 // cmpq $1, %rbx - WORD $0x8948; BYTE $0xd3 // movq %rdx, %rbx - LONG $0xffbf8f0f; WORD $0xffff // jg LBB5_39, $-65(%rip) - LONG $0x000122e9; BYTE $0x00 // jmp LBB5_63, $290(%rip) - -LBB5_42: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - LONG $0x08fb8348 // cmpq $8, %rbx - LONG $0x0012820f; WORD $0x0000 // jb LBB5_44, $18(%rip) - -LBB5_43: - WORD $0x8b48; BYTE $0x10 // movq (%rax), %rdx - WORD $0x8948; BYTE $0x16 // movq %rdx, (%rsi) - LONG $0x08c08348 // addq $8, %rax - LONG $0x08c68348 // addq $8, %rsi - LONG $0xf8c38348 // addq $-8, %rbx - -LBB5_44: - LONG $0x04fb8348 // cmpq $4, %rbx - LONG $0x00328c0f; WORD $0x0000 // jl LBB5_45, $50(%rip) - WORD $0x108b // movl (%rax), %edx - WORD $0x1689 // movl %edx, (%rsi) - LONG $0x04c08348 // addq $4, %rax - LONG $0x04c68348 // addq $4, %rsi - LONG $0xfcc38348 // addq $-4, %rbx - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0x0022830f; WORD $0x0000 // jae LBB5_52, $34(%rip) - -LBB5_46: - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0004840f; WORD $0x0000 // je LBB5_48, $4(%rip) - -LBB5_47: - WORD $0x008a // movb (%rax), %al - WORD $0x0688 // movb %al, (%rsi) - -LBB5_48: - WORD $0x294d; BYTE $0xdd // subq %r11, %r13 - WORD $0x0149; BYTE $0xcd // addq %rcx, %r13 - LONG $0x000112e9; BYTE $0x00 // jmp LBB5_70, $274(%rip) - -LBB5_45: - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0xffde820f; WORD $0xffff // jb LBB5_46, $-34(%rip) - -LBB5_52: - WORD $0xb70f; BYTE $0x10 // movzwl (%rax), %edx - WORD $0x8966; BYTE $0x16 // movw %dx, (%rsi) - LONG $0x02c08348 // addq $2, %rax - LONG $0x02c68348 // addq $2, %rsi - LONG $0xfec38348 // addq $-2, %rbx - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0xffcc850f; WORD $0xffff // jne LBB5_47, $-52(%rip) - LONG $0xffffcbe9; BYTE $0xff // jmp LBB5_48, $-53(%rip) - -LBB5_53: - WORD $0xf883; BYTE $0x08 // cmpl $8, %eax - LONG $0x00a2820f; WORD $0x0000 // jb LBB5_64, $162(%rip) - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0x084d8d49 // leaq $8(%r13), %rcx - LONG $0x08c68348 // addq $8, %rsi - LONG $0xf8588d48 // leaq $-8(%rax), %rbx - LONG $0x000094e9; BYTE $0x00 // jmp LBB5_65, $148(%rip) - -LBB5_55: - WORD $0x294d; BYTE $0xdd // subq %r11, %r13 - LONG $0x0000c3e9; BYTE $0x00 // jmp LBB5_70, $195(%rip) - -LBB5_56: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - WORD $0x8948; BYTE $0xd9 // movq %rbx, %rcx - -LBB5_57: - LONG $0x04f98348 // cmpq $4, %rcx - LONG $0x00388c0f; WORD $0x0000 // jl LBB5_58, $56(%rip) - WORD $0x108b // movl (%rax), %edx - WORD $0x1689 // movl %edx, (%rsi) - LONG $0x04c08348 // addq $4, %rax - LONG $0x04c68348 // addq $4, %rsi - LONG $0xfcc18348 // addq $-4, %rcx - LONG $0x02f98348 // cmpq $2, %rcx - LONG $0x0028830f; WORD $0x0000 // jae LBB5_85, $40(%rip) - -LBB5_59: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x0004840f; WORD $0x0000 // je LBB5_61, $4(%rip) - -LBB5_60: - WORD $0x008a // movb (%rax), %al - WORD $0x0688 // movb %al, (%rsi) - -LBB5_61: - WORD $0x294c; BYTE $0xdb // subq %r11, %rbx - WORD $0x014c; BYTE $0xeb // addq %r13, %rbx - WORD $0xf748; BYTE $0xd3 // notq %rbx - WORD $0x8949; BYTE $0xde // movq %rbx, %r14 - LONG $0x00007ee9; BYTE $0x00 // jmp LBB5_71, $126(%rip) - -LBB5_58: - LONG $0x02f98348 // cmpq $2, %rcx - LONG $0xffd8820f; WORD $0xffff // jb LBB5_59, $-40(%rip) - -LBB5_85: - WORD $0xb70f; BYTE $0x10 // movzwl (%rax), %edx - WORD $0x8966; BYTE $0x16 // movw %dx, (%rsi) - LONG $0x02c08348 // addq $2, %rax - LONG $0x02c68348 // addq $2, %rsi - LONG $0xfec18348 // addq $-2, %rcx - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0xffc6850f; WORD $0xffff // jne LBB5_60, $-58(%rip) - LONG $0xffffc5e9; BYTE $0xff // jmp LBB5_61, $-59(%rip) - -LBB5_62: - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - -LBB5_63: - WORD $0x294d; BYTE $0xdd // subq %r11, %r13 - WORD $0xf748; BYTE $0xd9 // negq %rcx - WORD $0x194d; BYTE $0xf6 // sbbq %r14, %r14 - WORD $0x314d; BYTE $0xee // xorq %r13, %r14 - LONG $0x000040e9; BYTE $0x00 // jmp LBB5_71, $64(%rip) - -LBB5_64: - WORD $0x894c; BYTE $0xe9 // movq %r13, %rcx - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - -LBB5_65: - LONG $0x04fb8348 // cmpq $4, %rbx - LONG $0x01228c0f; WORD $0x0000 // jl LBB5_66, $290(%rip) - WORD $0x118b // movl (%rcx), %edx - WORD $0x1689 // movl %edx, (%rsi) - LONG $0x04c18348 // addq $4, %rcx - LONG $0x04c68348 // addq $4, %rsi - LONG $0xfcc38348 // addq $-4, %rbx - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0x0112830f; WORD $0x0000 // jae LBB5_87, $274(%rip) - -LBB5_67: - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0004840f; WORD $0x0000 // je LBB5_69, $4(%rip) - -LBB5_68: - WORD $0x098a // movb (%rcx), %cl - WORD $0x0e88 // movb %cl, (%rsi) - -LBB5_69: - WORD $0x294d; BYTE $0xdd // subq %r11, %r13 - WORD $0x0149; BYTE $0xc5 // addq %rax, %r13 - -LBB5_70: - WORD $0x894d; BYTE $0xee // movq %r13, %r14 - -LBB5_71: - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0xd0558b48 // movq $-48(%rbp), %rdx - QUAD $0x000300000001bd49; WORD $0x0000 // movabsq $12884901889, %r13 - LONG $0x0481880f; WORD $0x0000 // js LBB5_124, $1153(%rip) - WORD $0x014d; BYTE $0xf3 // addq %r14, %r11 - WORD $0x014d; BYTE $0xf4 // addq %r14, %r12 - WORD $0x394d; BYTE $0xf2 // cmpq %r14, %r10 - LONG $0x0440840f; WORD $0x0000 // je LBB5_120, $1088(%rip) - WORD $0x294d; BYTE $0xf1 // subq %r14, %r9 - WORD $0x294d; BYTE $0xd6 // subq %r10, %r14 - LONG $0x000015e9; BYTE $0x00 // jmp LBB5_75, $21(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB5_74: - WORD $0xff49; BYTE $0xc3 // incq %r11 - WORD $0x0149; BYTE $0xc4 // addq %rax, %r12 - WORD $0xff49; BYTE $0xc6 // incq %r14 - LONG $0x0420840f; WORD $0x0000 // je LBB5_120, $1056(%rip) - -LBB5_75: - LONG $0x33b60f41 // movzbl (%r11), %esi - LONG $0x04e6c148 // shlq $4, %rsi - LONG $0x301c8b49 // movq (%r8,%rsi), %rbx - WORD $0xdb85 // testl %ebx, %ebx - LONG $0x0084840f; WORD $0x0000 // je LBB5_83, $132(%rip) - WORD $0x6348; BYTE $0xc3 // movslq %ebx, %rax - WORD $0x2949; BYTE $0xc1 // subq %rax, %r9 - LONG $0x040e8c0f; WORD $0x0000 // jl LBB5_121, $1038(%rip) - LONG $0x20e3c148 // shlq $32, %rbx - LONG $0x304c8d49; BYTE $0x08 // leaq $8(%r8,%rsi), %rcx - WORD $0x394c; BYTE $0xeb // cmpq %r13, %rbx - LONG $0x002f8c0f; WORD $0x0000 // jl LBB5_79, $47(%rip) - WORD $0x098b // movl (%rcx), %ecx - LONG $0x240c8941 // movl %ecx, (%r12) - LONG $0x304c8d49; BYTE $0x0c // leaq $12(%r8,%rsi), %rcx - LONG $0x24548d4d; BYTE $0x04 // leaq $4(%r12), %r10 - LONG $0xfc588d48 // leaq $-4(%rax), %rbx - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0x0021830f; WORD $0x0000 // jae LBB5_80, $33(%rip) - LONG $0x00002fe9; BYTE $0x00 // jmp LBB5_81, $47(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB5_79: - WORD $0x894d; BYTE $0xe2 // movq %r12, %r10 - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0x0013820f; WORD $0x0000 // jb LBB5_81, $19(%rip) - -LBB5_80: - WORD $0xb70f; BYTE $0x31 // movzwl (%rcx), %esi - LONG $0x32894166 // movw %si, (%r10) - LONG $0x02c18348 // addq $2, %rcx - LONG $0x02c28349 // addq $2, %r10 - LONG $0xfec38348 // addq $-2, %rbx - -LBB5_81: - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0xff64840f; WORD $0xffff // je LBB5_74, $-156(%rip) - WORD $0xb60f; BYTE $0x09 // movzbl (%rcx), %ecx - WORD $0x8841; BYTE $0x0a // movb %cl, (%r10) - LONG $0xffff59e9; BYTE $0xff // jmp LBB5_74, $-167(%rip) - -LBB5_83: - WORD $0x894d; BYTE $0xf2 // movq %r14, %r10 - WORD $0xf749; BYTE $0xda // negq %r10 - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0xf97e850f; WORD $0xffff // jne LBB5_3, $-1666(%rip) - LONG $0x000374e9; BYTE $0x00 // jmp LBB5_120, $884(%rip) - -LBB5_66: - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0xfeee820f; WORD $0xffff // jb LBB5_67, $-274(%rip) - -LBB5_87: - WORD $0xb70f; BYTE $0x11 // movzwl (%rcx), %edx - WORD $0x8966; BYTE $0x16 // movw %dx, (%rsi) - LONG $0x02c18348 // addq $2, %rcx - LONG $0x02c68348 // addq $2, %rsi - LONG $0xfec38348 // addq $-2, %rbx - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0xfedc850f; WORD $0xffff // jne LBB5_68, $-292(%rip) - LONG $0xfffedbe9; BYTE $0xff // jmp LBB5_69, $-293(%rip) - -LBB5_88: - LONG $0xd40d8d4c; WORD $0x00f2; BYTE $0x00 // leaq $62164(%rip), %r9 /* __EscTab(%rip) */ - QUAD $0xfffff83c156f7dc5 // vmovdqa $-1988(%rip), %ymm10 /* LCPI5_0(%rip) */ - QUAD $0xfffff8540d6f7dc5 // vmovdqa $-1964(%rip), %ymm9 /* LCPI5_1(%rip) */ - QUAD $0xfffff86c1d6f7dc5 // vmovdqa $-1940(%rip), %ymm11 /* LCPI5_2(%rip) */ - LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd %ymm8, %ymm8, %ymm8 - WORD $0x8948; BYTE $0xd3 // movq %rdx, %rbx - WORD $0x894d; BYTE $0xd3 // movq %r10, %r11 - -LBB5_89: - LONG $0x10fb8349 // cmpq $16, %r11 - LONG $0x01278d0f; WORD $0x0000 // jge LBB5_90, $295(%rip) - -LBB5_95: - LONG $0x08fb8349 // cmpq $8, %r11 - LONG $0x00858c0f; WORD $0x0000 // jl LBB5_99, $133(%rip) - -LBB5_96: - WORD $0xb60f; BYTE $0x07 // movzbl (%rdi), %eax - LONG $0x04b60f42; BYTE $0x08 // movzbl (%rax,%r9), %eax - LONG $0x014fb60f // movzbl $1(%rdi), %ecx - LONG $0x0cb60f42; BYTE $0x09 // movzbl (%rcx,%r9), %ecx - WORD $0xc901 // addl %ecx, %ecx - WORD $0xc109 // orl %eax, %ecx - LONG $0x0247b60f // movzbl $2(%rdi), %eax - LONG $0x34b60f42; BYTE $0x08 // movzbl (%rax,%r9), %esi - WORD $0xe6c1; BYTE $0x02 // shll $2, %esi - LONG $0x0347b60f // movzbl $3(%rdi), %eax - LONG $0x04b60f42; BYTE $0x08 // movzbl (%rax,%r9), %eax - WORD $0xe0c1; BYTE $0x03 // shll $3, %eax - WORD $0xf009 // orl %esi, %eax - WORD $0xc809 // orl %ecx, %eax - WORD $0x8b48; BYTE $0x0f // movq (%rdi), %rcx - WORD $0x8948; BYTE $0x0b // movq %rcx, (%rbx) - WORD $0xc084 // testb %al, %al - LONG $0x029b850f; WORD $0x0000 // jne LBB5_117, $667(%rip) - LONG $0x0447b60f // movzbl $4(%rdi), %eax - LONG $0x04b60f42; BYTE $0x08 // movzbl (%rax,%r9), %eax - LONG $0x054fb60f // movzbl $5(%rdi), %ecx - LONG $0x0cb60f42; BYTE $0x09 // movzbl (%rcx,%r9), %ecx - WORD $0xc901 // addl %ecx, %ecx - WORD $0xc109 // orl %eax, %ecx - LONG $0x0647b60f // movzbl $6(%rdi), %eax - LONG $0x34b60f42; BYTE $0x08 // movzbl (%rax,%r9), %esi - WORD $0xe6c1; BYTE $0x02 // shll $2, %esi - LONG $0x0747b60f // movzbl $7(%rdi), %eax - LONG $0x04b60f42; BYTE $0x08 // movzbl (%rax,%r9), %eax - WORD $0xe0c1; BYTE $0x03 // shll $3, %eax - WORD $0xf009 // orl %esi, %eax - WORD $0xc809 // orl %ecx, %eax - WORD $0xc084 // testb %al, %al - LONG $0x026f850f; WORD $0x0000 // jne LBB5_118, $623(%rip) - LONG $0x08c38348 // addq $8, %rbx - LONG $0x08c78348 // addq $8, %rdi - LONG $0xf8c38349 // addq $-8, %r11 - -LBB5_99: - LONG $0x04fb8349 // cmpq $4, %r11 - LONG $0x00498c0f; WORD $0x0000 // jl LBB5_102, $73(%rip) - WORD $0xb60f; BYTE $0x07 // movzbl (%rdi), %eax - LONG $0x04b60f42; BYTE $0x08 // movzbl (%rax,%r9), %eax - LONG $0x014fb60f // movzbl $1(%rdi), %ecx - LONG $0x0cb60f42; BYTE $0x09 // movzbl (%rcx,%r9), %ecx - WORD $0xc901 // addl %ecx, %ecx - WORD $0xc109 // orl %eax, %ecx - LONG $0x0247b60f // movzbl $2(%rdi), %eax - LONG $0x34b60f42; BYTE $0x08 // movzbl (%rax,%r9), %esi - WORD $0xe6c1; BYTE $0x02 // shll $2, %esi - LONG $0x0347b60f // movzbl $3(%rdi), %eax - LONG $0x04b60f42; BYTE $0x08 // movzbl (%rax,%r9), %eax - WORD $0xe0c1; BYTE $0x03 // shll $3, %eax - WORD $0xf009 // orl %esi, %eax - WORD $0xc809 // orl %ecx, %eax - WORD $0x0f8b // movl (%rdi), %ecx - WORD $0x0b89 // movl %ecx, (%rbx) - WORD $0xc084 // testb %al, %al - LONG $0x020e850f; WORD $0x0000 // jne LBB5_117, $526(%rip) - LONG $0x04c38348 // addq $4, %rbx - LONG $0x04c78348 // addq $4, %rdi - LONG $0xfcc38349 // addq $-4, %r11 - -LBB5_102: - WORD $0x854d; BYTE $0xdb // testq %r11, %r11 - LONG $0x02208e0f; WORD $0x0000 // jle LBB5_119, $544(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB5_103: - WORD $0xb60f; BYTE $0x07 // movzbl (%rdi), %eax - LONG $0x083c8042; BYTE $0x00 // cmpb $0, (%rax,%r9) - LONG $0x0194850f; WORD $0x0000 // jne LBB5_114, $404(%rip) - WORD $0xff48; BYTE $0xc7 // incq %rdi - WORD $0x0388 // movb %al, (%rbx) - WORD $0xff48; BYTE $0xc3 // incq %rbx - LONG $0xff438d49 // leaq $-1(%r11), %rax - LONG $0x01fb8349 // cmpq $1, %r11 - WORD $0x8949; BYTE $0xc3 // movq %rax, %r11 - LONG $0xffd98f0f; WORD $0xffff // jg LBB5_103, $-39(%rip) - LONG $0x0001e8e9; BYTE $0x00 // jmp LBB5_119, $488(%rip) - LONG $0x90909090 // .p2align 4, 0x90 - -LBB5_90: - LONG $0x20fb8349 // cmpq $32, %r11 - LONG $0x009f8c0f; WORD $0x0000 // jl LBB5_105, $159(%rip) - LONG $0x204b8d49 // leaq $32(%r11), %rcx - WORD $0xc031 // xorl %eax, %eax - - // .p2align 4, 0x90 -LBB5_92: - LONG $0x046ffec5; BYTE $0x07 // vmovdqu (%rdi,%rax), %ymm0 - LONG $0xc864adc5 // vpcmpgtb %ymm0, %ymm10, %ymm1 - LONG $0xd074b5c5 // vpcmpeqb %ymm0, %ymm9, %ymm2 - LONG $0xd874a5c5 // vpcmpeqb %ymm0, %ymm11, %ymm3 - LONG $0xd2ebe5c5 // vpor %ymm2, %ymm3, %ymm2 - LONG $0x047ffec5; BYTE $0x03 // vmovdqu %ymm0, (%rbx,%rax) - LONG $0x647dc1c4; BYTE $0xc0 // vpcmpgtb %ymm8, %ymm0, %ymm0 - LONG $0xc0dbf5c5 // vpand %ymm0, %ymm1, %ymm0 - LONG $0xc0ebedc5 // vpor %ymm0, %ymm2, %ymm0 - LONG $0xf0d7fdc5 // vpmovmskb %ymm0, %esi - WORD $0xf685 // testl %esi, %esi - LONG $0x011a850f; WORD $0x0000 // jne LBB5_111, $282(%rip) - LONG $0x20c08348 // addq $32, %rax - LONG $0xe0c18348 // addq $-32, %rcx - LONG $0x3ff98348 // cmpq $63, %rcx - LONG $0xffbb8f0f; WORD $0xffff // jg LBB5_92, $-69(%rip) - WORD $0xf8c5; BYTE $0x77 // vzeroupper - LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd %ymm8, %ymm8, %ymm8 - QUAD $0xfffff6cb1d6f7dc5 // vmovdqa $-2357(%rip), %ymm11 /* LCPI5_2(%rip) */ - QUAD $0xfffff6a30d6f7dc5 // vmovdqa $-2397(%rip), %ymm9 /* LCPI5_1(%rip) */ - QUAD $0xfffff67b156f7dc5 // vmovdqa $-2437(%rip), %ymm10 /* LCPI5_0(%rip) */ - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - WORD $0x2949; BYTE $0xc3 // subq %rax, %r11 - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - LONG $0x30f98348 // cmpq $48, %rcx - QUAD $0xfffff6c63d6ff9c5 // vmovdqa $-2362(%rip), %xmm7 /* LCPI5_3(%rip) */ - QUAD $0xfffff6ce2d6ff9c5 // vmovdqa $-2354(%rip), %xmm5 /* LCPI5_4(%rip) */ - QUAD $0xfffff6d6256ff9c5 // vmovdqa $-2346(%rip), %xmm4 /* LCPI5_5(%rip) */ - LONG $0xf676c9c5 // vpcmpeqd %xmm6, %xmm6, %xmm6 - LONG $0x00418d0f; WORD $0x0000 // jge LBB5_106, $65(%rip) - LONG $0xfffe30e9; BYTE $0xff // jmp LBB5_95, $-464(%rip) - -LBB5_105: - WORD $0xf8c5; BYTE $0x77 // vzeroupper - LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd %ymm8, %ymm8, %ymm8 - QUAD $0xfffff6771d6f7dc5 // vmovdqa $-2441(%rip), %ymm11 /* LCPI5_2(%rip) */ - QUAD $0xfffff64f0d6f7dc5 // vmovdqa $-2481(%rip), %ymm9 /* LCPI5_1(%rip) */ - QUAD $0xfffff627156f7dc5 // vmovdqa $-2521(%rip), %ymm10 /* LCPI5_0(%rip) */ - QUAD $0xfffff67f3d6ff9c5 // vmovdqa $-2433(%rip), %xmm7 /* LCPI5_3(%rip) */ - QUAD $0xfffff6872d6ff9c5 // vmovdqa $-2425(%rip), %xmm5 /* LCPI5_4(%rip) */ - QUAD $0xfffff68f256ff9c5 // vmovdqa $-2417(%rip), %xmm4 /* LCPI5_5(%rip) */ - LONG $0xf676c9c5 // vpcmpeqd %xmm6, %xmm6, %xmm6 - -LBB5_106: - LONG $0x000010b9; BYTE $0x00 // movl $16, %ecx - WORD $0xc031 // xorl %eax, %eax - LONG $0x90909090 // .p2align 4, 0x90 - -LBB5_107: - LONG $0x046ffac5; BYTE $0x07 // vmovdqu (%rdi,%rax), %xmm0 - LONG $0xc864c1c5 // vpcmpgtb %xmm0, %xmm7, %xmm1 - LONG $0xd574f9c5 // vpcmpeqb %xmm5, %xmm0, %xmm2 - LONG $0xdc74f9c5 // vpcmpeqb %xmm4, %xmm0, %xmm3 - LONG $0xd2ebe1c5 // vpor %xmm2, %xmm3, %xmm2 - LONG $0x047ffac5; BYTE $0x03 // vmovdqu %xmm0, (%rbx,%rax) - LONG $0xc664f9c5 // vpcmpgtb %xmm6, %xmm0, %xmm0 - LONG $0xc0dbf1c5 // vpand %xmm0, %xmm1, %xmm0 - LONG $0xc0ebe9c5 // vpor %xmm0, %xmm2, %xmm0 - LONG $0xf0d7f9c5 // vpmovmskb %xmm0, %esi - WORD $0x8566; BYTE $0xf6 // testw %si, %si - LONG $0x002f850f; WORD $0x0000 // jne LBB5_110, $47(%rip) - LONG $0x10c08348 // addq $16, %rax - LONG $0x0b748d49; BYTE $0xf0 // leaq $-16(%r11,%rcx), %rsi - LONG $0xf0c18348 // addq $-16, %rcx - LONG $0x1ffe8348 // cmpq $31, %rsi - LONG $0xffb68f0f; WORD $0xffff // jg LBB5_107, $-74(%rip) - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - WORD $0x2949; BYTE $0xc3 // subq %rax, %r11 - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - LONG $0x08fb8349 // cmpq $8, %r11 - LONG $0xfd968d0f; WORD $0xffff // jge LBB5_96, $-618(%rip) - LONG $0xfffe16e9; BYTE $0xff // jmp LBB5_99, $-490(%rip) - -LBB5_110: - WORD $0xb70f; BYTE $0xce // movzwl %si, %ecx - WORD $0xbc0f; BYTE $0xc9 // bsfl %ecx, %ecx - LONG $0x000003e9; BYTE $0x00 // jmp LBB5_112, $3(%rip) - -LBB5_111: - WORD $0xbc0f; BYTE $0xce // bsfl %esi, %ecx - -LBB5_112: - WORD $0x0148; BYTE $0xcf // addq %rcx, %rdi - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - WORD $0x2949; BYTE $0xcb // subq %rcx, %r11 - WORD $0x2949; BYTE $0xc3 // subq %rax, %r11 - WORD $0x0148; BYTE $0xcb // addq %rcx, %rbx - -LBB5_113: - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - -LBB5_114: - WORD $0x078a // movb (%rdi), %al - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB5_115: - WORD $0x8948; BYTE $0xd9 // movq %rbx, %rcx - WORD $0xb60f; BYTE $0xc0 // movzbl %al, %eax - LONG $0x04e0c148 // shlq $4, %rax - LONG $0x001c6349 // movslq (%r8,%rax), %rbx - LONG $0x00448b49; BYTE $0x08 // movq $8(%r8,%rax), %rax - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - WORD $0x0148; BYTE $0xcb // addq %rcx, %rbx - LONG $0x02fb8349 // cmpq $2, %r11 - LONG $0x00418c0f; WORD $0x0000 // jl LBB5_119, $65(%rip) - WORD $0xff49; BYTE $0xcb // decq %r11 - LONG $0x0147b60f // movzbl $1(%rdi), %eax - WORD $0xff48; BYTE $0xc7 // incq %rdi - LONG $0x083c8042; BYTE $0x00 // cmpb $0, (%rax,%r9) - LONG $0xffc8850f; WORD $0xffff // jne LBB5_115, $-56(%rip) - LONG $0xfffd12e9; BYTE $0xff // jmp LBB5_89, $-750(%rip) - -LBB5_117: - WORD $0xbc0f; BYTE $0xc0 // bsfl %eax, %eax - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - WORD $0x2949; BYTE $0xc3 // subq %rax, %r11 - LONG $0xffffa4e9; BYTE $0xff // jmp LBB5_113, $-92(%rip) - -LBB5_118: - WORD $0xbc0f; BYTE $0xc0 // bsfl %eax, %eax - LONG $0x04488d48 // leaq $4(%rax), %rcx - LONG $0x077c8d48; BYTE $0x04 // leaq $4(%rdi,%rax), %rdi - WORD $0x2949; BYTE $0xcb // subq %rcx, %r11 - LONG $0x035c8d48; BYTE $0x04 // leaq $4(%rbx,%rax), %rbx - LONG $0xffff8ee9; BYTE $0xff // jmp LBB5_114, $-114(%rip) - -LBB5_119: - WORD $0x2948; BYTE $0xd3 // subq %rdx, %rbx - WORD $0x8949; BYTE $0x1f // movq %rbx, (%r15) - LONG $0x00001de9; BYTE $0x00 // jmp LBB5_123, $29(%rip) - -LBB5_120: - WORD $0x2949; BYTE $0xd4 // subq %rdx, %r12 - WORD $0x894d; BYTE $0x27 // movq %r12, (%r15) - WORD $0x2949; BYTE $0xfb // subq %rdi, %r11 - LONG $0x00000ce9; BYTE $0x00 // jmp LBB5_122, $12(%rip) - -LBB5_121: - WORD $0x2949; BYTE $0xd4 // subq %rdx, %r12 - WORD $0x894d; BYTE $0x27 // movq %r12, (%r15) - WORD $0xf749; BYTE $0xd3 // notq %r11 - WORD $0x0149; BYTE $0xfb // addq %rdi, %r11 - -LBB5_122: - WORD $0x894d; BYTE $0xda // movq %r11, %r10 - -LBB5_123: - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB5_124: - WORD $0x2949; BYTE $0xd4 // subq %rdx, %r12 - WORD $0x894c; BYTE $0xf0 // movq %r14, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x014c; BYTE $0xe0 // addq %r12, %rax - WORD $0x8949; BYTE $0x07 // movq %rax, (%r15) - WORD $0x294c; BYTE $0xdf // subq %r11, %rdi - WORD $0x014c; BYTE $0xf7 // addq %r14, %rdi - WORD $0x8949; BYTE $0xfa // movq %rdi, %r10 - LONG $0xffffcee9; BYTE $0xff // jmp LBB5_123, $-50(%rip) - QUAD $0x0000000000000000; QUAD $0x0000000000000000; WORD $0x0000 // .p2align 5, 0x00 - -LCPI6_0: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - - // .p2align 4, 0x00 -LCPI6_1: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - - // .p2align 4, 0x90 -_unquote: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x18ec8348 // subq $24, %rsp - WORD $0x8949; BYTE $0xd3 // movq %rdx, %r11 - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0029840f; WORD $0x0000 // je LBB6_2, $41(%rip) - LONG $0xd04d8948 // movq %rcx, $-48(%rbp) - WORD $0x8945; BYTE $0xc2 // movl %r8d, %r10d - LONG $0x01e28341 // andl $1, %r10d - QUAD $0xffffffa00d6ffdc5 // vmovdqa $-96(%rip), %ymm1 /* LCPI6_0(%rip) */ - QUAD $0xffffffb8156ff9c5 // vmovdqa $-72(%rip), %xmm2 /* LCPI6_1(%rip) */ - WORD $0x8949; BYTE $0xf9 // movq %rdi, %r9 - WORD $0x8949; BYTE $0xf5 // movq %rsi, %r13 - WORD $0x894c; BYTE $0xda // movq %r11, %rdx - LONG $0x000056e9; BYTE $0x00 // jmp LBB6_8, $86(%rip) - -LBB6_2: - WORD $0x3145; BYTE $0xed // xorl %r13d, %r13d - WORD $0x894c; BYTE $0xda // movq %r11, %rdx - -LBB6_3: - WORD $0x014c; BYTE $0xea // addq %r13, %rdx - WORD $0x294c; BYTE $0xda // subq %r11, %rdx - -LBB6_4: - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - LONG $0x18c48348 // addq $24, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB6_5: - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - WORD $0x8944; BYTE $0xf8 // movl %r15d, %eax - WORD $0xe8c1; BYTE $0x06 // shrl $6, %eax - WORD $0xc00c // orb $-64, %al - WORD $0x0288 // movb %al, (%rdx) - LONG $0x3fe78041 // andb $63, %r15b - LONG $0x80cf8041 // orb $-128, %r15b - LONG $0x017a8844 // movb %r15b, $1(%rdx) - LONG $0x02c28348 // addq $2, %rdx - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB6_6: - WORD $0x894d; BYTE $0xf5 // movq %r14, %r13 - -LBB6_7: - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - LONG $0x0846840f; WORD $0x0000 // je LBB6_115, $2118(%rip) - -LBB6_8: - LONG $0x5c398041 // cmpb $92, (%r9) - LONG $0x000a850f; WORD $0x0000 // jne LBB6_10, $10(%rip) - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0x000143e9; BYTE $0x00 // jmp LBB6_24, $323(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB6_10: - WORD $0x894d; BYTE $0xef // movq %r13, %r15 - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x894d; BYTE $0xce // movq %r9, %r14 - LONG $0x20fd8349 // cmpq $32, %r13 - LONG $0x00408c0f; WORD $0x0000 // jl LBB6_14, $64(%rip) - WORD $0x894d; BYTE $0xce // movq %r9, %r14 - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x894d; BYTE $0xec // movq %r13, %r12 - LONG $0x90909090 // .p2align 4, 0x90 - -LBB6_12: - LONG $0x6f7ec1c4; BYTE $0x06 // vmovdqu (%r14), %ymm0 - LONG $0x007ffec5 // vmovdqu %ymm0, (%rax) - LONG $0xc174fdc5 // vpcmpeqb %ymm1, %ymm0, %ymm0 - LONG $0xd8d7fdc5 // vpmovmskb %ymm0, %ebx - WORD $0xdb85 // testl %ebx, %ebx - LONG $0x00c1850f; WORD $0x0000 // jne LBB6_22, $193(%rip) - LONG $0x20c68349 // addq $32, %r14 - LONG $0x20c08348 // addq $32, %rax - LONG $0x247c8d4d; BYTE $0xe0 // leaq $-32(%r12), %r15 - LONG $0x3ffc8349 // cmpq $63, %r12 - WORD $0x894d; BYTE $0xfc // movq %r15, %r12 - LONG $0xffcd8f0f; WORD $0xffff // jg LBB6_12, $-51(%rip) - -LBB6_14: - WORD $0xf8c5; BYTE $0x77 // vzeroupper - QUAD $0xfffffee2156ff9c5 // vmovdqa $-286(%rip), %xmm2 /* LCPI6_1(%rip) */ - LONG $0x10ff8349 // cmpq $16, %r15 - LONG $0x003b8c0f; WORD $0x0000 // jl LBB6_17, $59(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB6_15: - LONG $0x6f7ac1c4; BYTE $0x06 // vmovdqu (%r14), %xmm0 - LONG $0x007ffac5 // vmovdqu %xmm0, (%rax) - LONG $0xc274f9c5 // vpcmpeqb %xmm2, %xmm0, %xmm0 - LONG $0xd8d7f9c5 // vpmovmskb %xmm0, %ebx - WORD $0x8566; BYTE $0xdb // testw %bx, %bx - LONG $0x008c850f; WORD $0x0000 // jne LBB6_23, $140(%rip) - LONG $0x10c68349 // addq $16, %r14 - LONG $0x10c08348 // addq $16, %rax - LONG $0xf04f8d49 // leaq $-16(%r15), %rcx - LONG $0x1fff8349 // cmpq $31, %r15 - WORD $0x8949; BYTE $0xcf // movq %rcx, %r15 - LONG $0xffcd8f0f; WORD $0xffff // jg LBB6_15, $-51(%rip) - -LBB6_17: - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0xfef0840f; WORD $0xffff // je LBB6_3, $-272(%rip) - WORD $0xdb31 // xorl %ebx, %ebx - QUAD $0xfffffe6a0d6ffdc5 // vmovdqa $-406(%rip), %ymm1 /* LCPI6_0(%rip) */ - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB6_19: - LONG $0x0cb60f41; BYTE $0x1e // movzbl (%r14,%rbx), %ecx - WORD $0xf980; BYTE $0x5c // cmpb $92, %cl - LONG $0x0014840f; WORD $0x0000 // je LBB6_21, $20(%rip) - WORD $0x0c88; BYTE $0x18 // movb %cl, (%rax,%rbx) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0x3949; BYTE $0xdf // cmpq %rbx, %r15 - LONG $0xffe3850f; WORD $0xffff // jne LBB6_19, $-29(%rip) - LONG $0xfffebae9; BYTE $0xff // jmp LBB6_3, $-326(%rip) - -LBB6_21: - WORD $0x0149; BYTE $0xde // addq %rbx, %r14 - WORD $0x294d; BYTE $0xce // subq %r9, %r14 - WORD $0x894c; BYTE $0xf3 // movq %r14, %rbx - LONG $0xfffb8348 // cmpq $-1, %rbx - LONG $0x004b850f; WORD $0x0000 // jne LBB6_24, $75(%rip) - LONG $0xfffea2e9; BYTE $0xff // jmp LBB6_3, $-350(%rip) - -LBB6_22: - WORD $0x6348; BYTE $0xc3 // movslq %ebx, %rax - WORD $0x294d; BYTE $0xce // subq %r9, %r14 - LONG $0xd8bc0f48 // bsfq %rax, %rbx - WORD $0x014c; BYTE $0xf3 // addq %r14, %rbx - LONG $0xfffb8348 // cmpq $-1, %rbx - LONG $0x002f850f; WORD $0x0000 // jne LBB6_24, $47(%rip) - LONG $0xfffe86e9; BYTE $0xff // jmp LBB6_3, $-378(%rip) - -LBB6_23: - WORD $0xb70f; BYTE $0xc3 // movzwl %bx, %eax - WORD $0x294d; BYTE $0xce // subq %r9, %r14 - LONG $0xd8bc0f48 // bsfq %rax, %rbx - WORD $0x014c; BYTE $0xf3 // addq %r14, %rbx - QUAD $0xfffffdf50d6ffdc5 // vmovdqa $-523(%rip), %ymm1 /* LCPI6_0(%rip) */ - LONG $0xfffb8348 // cmpq $-1, %rbx - LONG $0xfe67840f; WORD $0xffff // je LBB6_3, $-409(%rip) - QUAD $0x9090909090909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB6_24: - LONG $0x02438d48 // leaq $2(%rbx), %rax - WORD $0x2949; BYTE $0xc5 // subq %rax, %r13 - LONG $0x06ed880f; WORD $0x0000 // js LBB6_116, $1773(%rip) - LONG $0x194c8d4d; BYTE $0x02 // leaq $2(%r9,%rbx), %r9 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x03d6850f; WORD $0x0000 // jne LBB6_67, $982(%rip) - -LBB6_26: - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0x41b60f41; BYTE $0xff // movzbl $-1(%r9), %eax - LONG $0xe60d8d48; WORD $0x00ed; BYTE $0x00 // leaq $60902(%rip), %rcx /* __UnquoteTab(%rip) */ - WORD $0x048a; BYTE $0x08 // movb (%rax,%rcx), %al - WORD $0xff3c // cmpb $-1, %al - LONG $0x001b840f; WORD $0x0000 // je LBB6_29, $27(%rip) - WORD $0xc084 // testb %al, %al - LONG $0x058d840f; WORD $0x0000 // je LBB6_98, $1421(%rip) - WORD $0x0288 // movb %al, (%rdx) - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0xfffe5ce9; BYTE $0xff // jmp LBB6_7, $-420(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB6_29: - LONG $0x03fd8349 // cmpq $3, %r13 - LONG $0x06a08e0f; WORD $0x0000 // jle LBB6_116, $1696(%rip) - WORD $0x8b45; BYTE $0x31 // movl (%r9), %r14d - WORD $0x8945; BYTE $0xf7 // movl %r14d, %r15d - WORD $0xf741; BYTE $0xd7 // notl %r15d - LONG $0xd0868d41; WORD $0xcfcf; BYTE $0xcf // leal $-808464432(%r14), %eax - LONG $0x80e78141; WORD $0x8080; BYTE $0x80 // andl $-2139062144, %r15d - WORD $0x8541; BYTE $0xc7 // testl %eax, %r15d - LONG $0x049c850f; WORD $0x0000 // jne LBB6_89, $1180(%rip) - LONG $0x19868d41; WORD $0x1919; BYTE $0x19 // leal $421075225(%r14), %eax - WORD $0x0944; BYTE $0xf0 // orl %r14d, %eax - LONG $0x808080a9; BYTE $0x80 // testl $-2139062144, %eax - LONG $0x0487850f; WORD $0x0000 // jne LBB6_89, $1159(%rip) - WORD $0x8944; BYTE $0xf3 // movl %r14d, %ebx - LONG $0x7f7fe381; WORD $0x7f7f // andl $2139062143, %ebx - LONG $0xc0c0c0b8; BYTE $0xc0 // movl $-1061109568, %eax - WORD $0xd829 // subl %ebx, %eax - LONG $0x46468b8d; WORD $0x4646 // leal $1179010630(%rbx), %ecx - WORD $0x2144; BYTE $0xf8 // andl %r15d, %eax - WORD $0xc885 // testl %ecx, %eax - LONG $0x0466850f; WORD $0x0000 // jne LBB6_89, $1126(%rip) - LONG $0xe0e0e0b8; BYTE $0xe0 // movl $-522133280, %eax - WORD $0xd829 // subl %ebx, %eax - LONG $0x3939c381; WORD $0x3939 // addl $960051513, %ebx - WORD $0x2141; BYTE $0xc7 // andl %eax, %r15d - WORD $0x8541; BYTE $0xdf // testl %ebx, %r15d - LONG $0x044d850f; WORD $0x0000 // jne LBB6_89, $1101(%rip) - WORD $0x0f41; BYTE $0xce // bswapl %r14d - WORD $0x8944; BYTE $0xf0 // movl %r14d, %eax - WORD $0xe8c1; BYTE $0x04 // shrl $4, %eax - WORD $0xd0f7 // notl %eax - LONG $0x01010125; BYTE $0x01 // andl $16843009, %eax - WORD $0x048d; BYTE $0xc0 // leal (%rax,%rax,8), %eax - LONG $0x0fe68141; WORD $0x0f0f; BYTE $0x0f // andl $252645135, %r14d - WORD $0x0141; BYTE $0xc6 // addl %eax, %r14d - WORD $0x8944; BYTE $0xf0 // movl %r14d, %eax - WORD $0xe8c1; BYTE $0x04 // shrl $4, %eax - WORD $0x0944; BYTE $0xf0 // orl %r14d, %eax - LONG $0xf8b60f44 // movzbl %al, %r15d - WORD $0xe8c1; BYTE $0x08 // shrl $8, %eax - LONG $0x00ff0025; BYTE $0x00 // andl $65280, %eax - WORD $0x0941; BYTE $0xc7 // orl %eax, %r15d - LONG $0xfc758d4d // leaq $-4(%r13), %r14 - LONG $0x80ff8141; WORD $0x0000; BYTE $0x00 // cmpl $128, %r15d - LONG $0x032f820f; WORD $0x0000 // jb LBB6_75, $815(%rip) - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x0145850f; WORD $0x0000 // jne LBB6_49, $325(%rip) - -LBB6_36: - LONG $0x00ff8141; WORD $0x0008; BYTE $0x00 // cmpl $2048, %r15d - LONG $0xfd4f820f; WORD $0xffff // jb LBB6_5, $-689(%rip) - WORD $0x8944; BYTE $0xf8 // movl %r15d, %eax - LONG $0xfff80025; BYTE $0xff // andl $-2048, %eax - LONG $0x00d8003d; BYTE $0x00 // cmpl $55296, %eax - LONG $0x0285850f; WORD $0x0000 // jne LBB6_65, $645(%rip) - LONG $0xffff8141; WORD $0x00db; BYTE $0x00 // cmpl $56319, %r15d - LONG $0x0305870f; WORD $0x0000 // ja LBB6_77, $773(%rip) - LONG $0x06fe8349 // cmpq $6, %r14 - LONG $0x02fb8c0f; WORD $0x0000 // jl LBB6_77, $763(%rip) - LONG $0x217c8043; WORD $0x5c04 // cmpb $92, $4(%r9,%r12) - LONG $0x02ef850f; WORD $0x0000 // jne LBB6_77, $751(%rip) - LONG $0x217c8043; WORD $0x7505 // cmpb $117, $5(%r9,%r12) - LONG $0x02e3850f; WORD $0x0000 // jne LBB6_77, $739(%rip) - LONG $0x214c8b43; BYTE $0x06 // movl $6(%r9,%r12), %ecx - WORD $0xcb89 // movl %ecx, %ebx - WORD $0xd3f7 // notl %ebx - LONG $0xcfd0818d; WORD $0xcfcf // leal $-808464432(%rcx), %eax - LONG $0x8080e381; WORD $0x8080 // andl $-2139062144, %ebx - WORD $0x5d89; BYTE $0xcc // movl %ebx, $-52(%rbp) - WORD $0xc385 // testl %eax, %ebx - LONG $0x0464850f; WORD $0x0000 // jne LBB6_100, $1124(%rip) - LONG $0x1919818d; WORD $0x1919 // leal $421075225(%rcx), %eax - WORD $0xc809 // orl %ecx, %eax - LONG $0x808080a9; BYTE $0x80 // testl $-2139062144, %eax - LONG $0x0451850f; WORD $0x0000 // jne LBB6_100, $1105(%rip) - WORD $0xcb89 // movl %ecx, %ebx - LONG $0x7f7fe381; WORD $0x7f7f // andl $2139062143, %ebx - LONG $0xc0c0c0b8; BYTE $0xc0 // movl $-1061109568, %eax - WORD $0xd829 // subl %ebx, %eax - LONG $0xc04d8948 // movq %rcx, $-64(%rbp) - LONG $0x46468b8d; WORD $0x4646 // leal $1179010630(%rbx), %ecx - WORD $0x4523; BYTE $0xcc // andl $-52(%rbp), %eax - WORD $0xc885 // testl %ecx, %eax - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - LONG $0x0429850f; WORD $0x0000 // jne LBB6_100, $1065(%rip) - LONG $0xe0e0e0b8; BYTE $0xe0 // movl $-522133280, %eax - WORD $0xd829 // subl %ebx, %eax - WORD $0x4589; BYTE $0xc8 // movl %eax, $-56(%rbp) - LONG $0x3939c381; WORD $0x3939 // addl $960051513, %ebx - WORD $0x458b; BYTE $0xcc // movl $-52(%rbp), %eax - WORD $0x4523; BYTE $0xc8 // andl $-56(%rbp), %eax - WORD $0xd885 // testl %ebx, %eax - LONG $0x040b850f; WORD $0x0000 // jne LBB6_100, $1035(%rip) - WORD $0xc90f // bswapl %ecx - WORD $0xc889 // movl %ecx, %eax - WORD $0xe8c1; BYTE $0x04 // shrl $4, %eax - WORD $0xd0f7 // notl %eax - LONG $0x01010125; BYTE $0x01 // andl $16843009, %eax - WORD $0x048d; BYTE $0xc0 // leal (%rax,%rax,8), %eax - LONG $0x0f0fe181; WORD $0x0f0f // andl $252645135, %ecx - WORD $0xc101 // addl %eax, %ecx - WORD $0xc889 // movl %ecx, %eax - WORD $0xe8c1; BYTE $0x04 // shrl $4, %eax - WORD $0xc809 // orl %ecx, %eax - WORD $0xc189 // movl %eax, %ecx - WORD $0xe9c1; BYTE $0x08 // shrl $8, %ecx - LONG $0xff00e181; WORD $0x0000 // andl $65280, %ecx - WORD $0xb60f; BYTE $0xd8 // movzbl %al, %ebx - WORD $0xcb09 // orl %ecx, %ebx - LONG $0xfc000025; BYTE $0x00 // andl $16515072, %eax - LONG $0xdc00003d; BYTE $0x00 // cmpl $14417920, %eax - LONG $0x026f840f; WORD $0x0000 // je LBB6_83, $623(%rip) - LONG $0x02c0f641 // testb $2, %r8b - LONG $0x04fa840f; WORD $0x0000 // je LBB6_119, $1274(%rip) - LONG $0xfac68349 // addq $-6, %r14 - LONG $0xef02c766; BYTE $0xbf // movw $-16401, (%rdx) - LONG $0xbd0242c6 // movb $-67, $2(%rdx) - LONG $0x03c28348 // addq $3, %rdx - LONG $0x06c48349 // addq $6, %r12 - WORD $0x8941; BYTE $0xdf // movl %ebx, %r15d - WORD $0xfb83; BYTE $0x7f // cmpl $127, %ebx - LONG $0xfecd870f; WORD $0xffff // ja LBB6_36, $-307(%rip) - LONG $0x000158e9; BYTE $0x00 // jmp LBB6_64, $344(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB6_49: - LONG $0x00ff8141; WORD $0x0008; BYTE $0x00 // cmpl $2048, %r15d - LONG $0xfc0a820f; WORD $0xffff // jb LBB6_5, $-1014(%rip) - WORD $0x8944; BYTE $0xf8 // movl %r15d, %eax - LONG $0xfff80025; BYTE $0xff // andl $-2048, %eax - LONG $0x00d8003d; BYTE $0x00 // cmpl $55296, %eax - LONG $0x0140850f; WORD $0x0000 // jne LBB6_65, $320(%rip) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x04528e0f; WORD $0x0000 // jle LBB6_113, $1106(%rip) - LONG $0x217c8043; WORD $0x5c04 // cmpb $92, $4(%r9,%r12) - LONG $0x01e9850f; WORD $0x0000 // jne LBB6_81, $489(%rip) - LONG $0xffff8141; WORD $0x00db; BYTE $0x00 // cmpl $56319, %r15d - LONG $0x01b5870f; WORD $0x0000 // ja LBB6_78, $437(%rip) - LONG $0x07fe8349 // cmpq $7, %r14 - LONG $0x01ab8c0f; WORD $0x0000 // jl LBB6_78, $427(%rip) - LONG $0x217c8043; WORD $0x5c05 // cmpb $92, $5(%r9,%r12) - LONG $0x019f850f; WORD $0x0000 // jne LBB6_78, $415(%rip) - LONG $0x217c8043; WORD $0x7506 // cmpb $117, $6(%r9,%r12) - LONG $0x0193850f; WORD $0x0000 // jne LBB6_78, $403(%rip) - LONG $0x214c8b43; BYTE $0x07 // movl $7(%r9,%r12), %ecx - WORD $0xcb89 // movl %ecx, %ebx - WORD $0xd3f7 // notl %ebx - LONG $0xcfd0818d; WORD $0xcfcf // leal $-808464432(%rcx), %eax - LONG $0x8080e381; WORD $0x8080 // andl $-2139062144, %ebx - WORD $0x5d89; BYTE $0xcc // movl %ebx, $-52(%rbp) - WORD $0xc385 // testl %eax, %ebx - LONG $0x0314850f; WORD $0x0000 // jne LBB6_101, $788(%rip) - LONG $0x1919818d; WORD $0x1919 // leal $421075225(%rcx), %eax - WORD $0xc809 // orl %ecx, %eax - LONG $0x808080a9; BYTE $0x80 // testl $-2139062144, %eax - LONG $0x0301850f; WORD $0x0000 // jne LBB6_101, $769(%rip) - WORD $0xcb89 // movl %ecx, %ebx - LONG $0x7f7fe381; WORD $0x7f7f // andl $2139062143, %ebx - LONG $0xc0c0c0b8; BYTE $0xc0 // movl $-1061109568, %eax - WORD $0xd829 // subl %ebx, %eax - LONG $0xc04d8948 // movq %rcx, $-64(%rbp) - LONG $0x46468b8d; WORD $0x4646 // leal $1179010630(%rbx), %ecx - WORD $0x4523; BYTE $0xcc // andl $-52(%rbp), %eax - WORD $0xc885 // testl %ecx, %eax - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - LONG $0x02d9850f; WORD $0x0000 // jne LBB6_101, $729(%rip) - LONG $0xe0e0e0b8; BYTE $0xe0 // movl $-522133280, %eax - WORD $0xd829 // subl %ebx, %eax - WORD $0x4589; BYTE $0xc8 // movl %eax, $-56(%rbp) - LONG $0x3939c381; WORD $0x3939 // addl $960051513, %ebx - WORD $0x458b; BYTE $0xcc // movl $-52(%rbp), %eax - WORD $0x4523; BYTE $0xc8 // andl $-56(%rbp), %eax - WORD $0xd885 // testl %ebx, %eax - LONG $0x02bb850f; WORD $0x0000 // jne LBB6_101, $699(%rip) - WORD $0xc90f // bswapl %ecx - WORD $0xc889 // movl %ecx, %eax - WORD $0xe8c1; BYTE $0x04 // shrl $4, %eax - WORD $0xd0f7 // notl %eax - LONG $0x01010125; BYTE $0x01 // andl $16843009, %eax - WORD $0x048d; BYTE $0xc0 // leal (%rax,%rax,8), %eax - LONG $0x0f0fe181; WORD $0x0f0f // andl $252645135, %ecx - WORD $0xc101 // addl %eax, %ecx - WORD $0xc889 // movl %ecx, %eax - WORD $0xe8c1; BYTE $0x04 // shrl $4, %eax - WORD $0xc809 // orl %ecx, %eax - WORD $0xc189 // movl %eax, %ecx - WORD $0xe9c1; BYTE $0x08 // shrl $8, %ecx - LONG $0xff00e181; WORD $0x0000 // andl $65280, %ecx - WORD $0xb60f; BYTE $0xd8 // movzbl %al, %ebx - WORD $0xcb09 // orl %ecx, %ebx - LONG $0xfc000025; BYTE $0x00 // andl $16515072, %eax - LONG $0xdc00003d; BYTE $0x00 // cmpl $14417920, %eax - LONG $0x0126840f; WORD $0x0000 // je LBB6_84, $294(%rip) - LONG $0x02c0f641 // testb $2, %r8b - LONG $0x03aa840f; WORD $0x0000 // je LBB6_120, $938(%rip) - LONG $0xf9c68349 // addq $-7, %r14 - LONG $0xef02c766; BYTE $0xbf // movw $-16401, (%rdx) - LONG $0xbd0242c6 // movb $-67, $2(%rdx) - LONG $0x03c28348 // addq $3, %rdx - LONG $0x07c48349 // addq $7, %r12 - WORD $0x8941; BYTE $0xdf // movl %ebx, %r15d - LONG $0x0080fb81; WORD $0x0000 // cmpl $128, %ebx - LONG $0xfeb5830f; WORD $0xffff // jae LBB6_49, $-331(%rip) - -LBB6_64: - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - WORD $0x8941; BYTE $0xdf // movl %ebx, %r15d - LONG $0x00008ae9; BYTE $0x00 // jmp LBB6_76, $138(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB6_65: - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - WORD $0x8944; BYTE $0xf8 // movl %r15d, %eax - WORD $0xe8c1; BYTE $0x0c // shrl $12, %eax - WORD $0xe00c // orb $-32, %al - WORD $0x0288 // movb %al, (%rdx) - WORD $0x8944; BYTE $0xf8 // movl %r15d, %eax - WORD $0xe8c1; BYTE $0x06 // shrl $6, %eax - WORD $0x3f24 // andb $63, %al - WORD $0x800c // orb $-128, %al - WORD $0x4288; BYTE $0x01 // movb %al, $1(%rdx) - LONG $0x3fe78041 // andb $63, %r15b - LONG $0x80cf8041 // orb $-128, %r15b - LONG $0x027a8844 // movb %r15b, $2(%rdx) - -LBB6_66: - LONG $0x03c28348 // addq $3, %rdx - LONG $0xfffaafe9; BYTE $0xff // jmp LBB6_6, $-1361(%rip) - -LBB6_67: - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x0300840f; WORD $0x0000 // je LBB6_116, $768(%rip) - LONG $0xff798041; BYTE $0x5c // cmpb $92, $-1(%r9) - LONG $0x01de850f; WORD $0x0000 // jne LBB6_99, $478(%rip) - LONG $0x5c398041 // cmpb $92, (%r9) - LONG $0x0024850f; WORD $0x0000 // jne LBB6_74, $36(%rip) - LONG $0x01fd8341 // cmpl $1, %r13d - LONG $0x02e18e0f; WORD $0x0000 // jle LBB6_116, $737(%rip) - LONG $0x01418a41 // movb $1(%r9), %al - WORD $0x223c // cmpb $34, %al - LONG $0x0008840f; WORD $0x0000 // je LBB6_73, $8(%rip) - WORD $0x5c3c // cmpb $92, %al - LONG $0x0295850f; WORD $0x0000 // jne LBB6_111, $661(%rip) - -LBB6_73: - WORD $0xff49; BYTE $0xc1 // incq %r9 - WORD $0xff49; BYTE $0xcd // decq %r13 - -LBB6_74: - WORD $0xff49; BYTE $0xc1 // incq %r9 - WORD $0xff49; BYTE $0xcd // decq %r13 - LONG $0xfffbdde9; BYTE $0xff // jmp LBB6_26, $-1059(%rip) - -LBB6_75: - LONG $0x04c18349 // addq $4, %r9 - -LBB6_76: - WORD $0x8844; BYTE $0x3a // movb %r15b, (%rdx) - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0xfffa53e9; BYTE $0xff // jmp LBB6_6, $-1453(%rip) - -LBB6_77: - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - LONG $0x00000fe9; BYTE $0x00 // jmp LBB6_79, $15(%rip) - -LBB6_78: - LONG $0x214c8d4f; BYTE $0x05 // leaq $5(%r9,%r12), %r9 - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - LONG $0xfbc58349 // addq $-5, %r13 - WORD $0x894d; BYTE $0xee // movq %r13, %r14 - -LBB6_79: - LONG $0x02c0f641 // testb $2, %r8b - LONG $0x02e0840f; WORD $0x0000 // je LBB6_122, $736(%rip) - -LBB6_80: - LONG $0xef02c766; BYTE $0xbf // movw $-16401, (%rdx) - LONG $0xbd0242c6 // movb $-67, $2(%rdx) - LONG $0xffff6ae9; BYTE $0xff // jmp LBB6_66, $-150(%rip) - -LBB6_81: - LONG $0x02c0f641 // testb $2, %r8b - LONG $0x02d5840f; WORD $0x0000 // je LBB6_123, $725(%rip) - LONG $0x214c8d4f; BYTE $0x04 // leaq $4(%r9,%r12), %r9 - LONG $0xffffdee9; BYTE $0xff // jmp LBB6_80, $-34(%rip) - -LBB6_83: - LONG $0x214c8d4f; BYTE $0x0a // leaq $10(%r9,%r12), %r9 - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - LONG $0xf6c58349 // addq $-10, %r13 - LONG $0x00000ce9; BYTE $0x00 // jmp LBB6_85, $12(%rip) - -LBB6_84: - LONG $0x214c8d4f; BYTE $0x0b // leaq $11(%r9,%r12), %r9 - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - LONG $0xf5c58349 // addq $-11, %r13 - -LBB6_85: - LONG $0x0ae7c141 // shll $10, %r15d - QUAD $0xfca024001f9c8d41 // leal $-56613888(%r15,%rbx), %ebx - LONG $0x0000fb81; WORD $0x0011 // cmpl $1114112, %ebx - LONG $0x001c820f; WORD $0x0000 // jb LBB6_88, $28(%rip) - LONG $0x02c0f641 // testb $2, %r8b - LONG $0x023c840f; WORD $0x0000 // je LBB6_117, $572(%rip) - LONG $0xef02c766; BYTE $0xbf // movw $-16401, (%rdx) - LONG $0xbd0242c6 // movb $-67, $2(%rdx) - LONG $0x03c28348 // addq $3, %rdx - LONG $0xfff9c0e9; BYTE $0xff // jmp LBB6_7, $-1600(%rip) - -LBB6_88: - WORD $0xd889 // movl %ebx, %eax - WORD $0xe8c1; BYTE $0x12 // shrl $18, %eax - WORD $0xf00c // orb $-16, %al - WORD $0x0288 // movb %al, (%rdx) - WORD $0xd889 // movl %ebx, %eax - WORD $0xe8c1; BYTE $0x0c // shrl $12, %eax - WORD $0x3f24 // andb $63, %al - WORD $0x800c // orb $-128, %al - WORD $0x4288; BYTE $0x01 // movb %al, $1(%rdx) - WORD $0xd889 // movl %ebx, %eax - WORD $0xe8c1; BYTE $0x06 // shrl $6, %eax - WORD $0x3f24 // andb $63, %al - WORD $0x800c // orb $-128, %al - WORD $0x4288; BYTE $0x02 // movb %al, $2(%rdx) - WORD $0xe380; BYTE $0x3f // andb $63, %bl - WORD $0xcb80; BYTE $0x80 // orb $-128, %bl - WORD $0x5a88; BYTE $0x03 // movb %bl, $3(%rdx) - LONG $0x04c28348 // addq $4, %rdx - LONG $0xfff98de9; BYTE $0xff // jmp LBB6_7, $-1651(%rip) - -LBB6_89: - WORD $0x894c; BYTE $0xc8 // movq %r9, %rax - WORD $0x2948; BYTE $0xf8 // subq %rdi, %rax - LONG $0xd07d8b48 // movq $-48(%rbp), %rdi - WORD $0x8948; BYTE $0x07 // movq %rax, (%rdi) - WORD $0x8a41; BYTE $0x09 // movb (%r9), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0xfec2c748; WORD $0xffff; BYTE $0xff // movq $-2, %rdx - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_91, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xf919870f; WORD $0xffff // ja LBB6_4, $-1767(%rip) - -LBB6_91: - LONG $0x01488d48 // leaq $1(%rax), %rcx - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - LONG $0x01498a41 // movb $1(%r9), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_93, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xf8f2870f; WORD $0xffff // ja LBB6_4, $-1806(%rip) - -LBB6_93: - LONG $0x02488d48 // leaq $2(%rax), %rcx - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - LONG $0x02498a41 // movb $2(%r9), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_95, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xf8cb870f; WORD $0xffff // ja LBB6_4, $-1845(%rip) - -LBB6_95: - LONG $0x03488d48 // leaq $3(%rax), %rcx - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - LONG $0x03498a41 // movb $3(%r9), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_97, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xf8a4870f; WORD $0xffff // ja LBB6_4, $-1884(%rip) - -LBB6_97: - LONG $0x04c08348 // addq $4, %rax - WORD $0x8948; BYTE $0x07 // movq %rax, (%rdi) - LONG $0xfff898e9; BYTE $0xff // jmp LBB6_4, $-1896(%rip) - -LBB6_98: - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x0149; BYTE $0xf9 // addq %rdi, %r9 - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x894c; BYTE $0x08 // movq %r9, (%rax) - LONG $0xfdc2c748; WORD $0xffff; BYTE $0xff // movq $-3, %rdx - LONG $0xfff87fe9; BYTE $0xff // jmp LBB6_4, $-1921(%rip) - -LBB6_99: - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x0149; BYTE $0xf9 // addq %rdi, %r9 - LONG $0x0000dae9; BYTE $0x00 // jmp LBB6_112, $218(%rip) - -LBB6_100: - LONG $0x21748d4b; BYTE $0x04 // leaq $4(%r9,%r12), %rsi - LONG $0x000005e9; BYTE $0x00 // jmp LBB6_102, $5(%rip) - -LBB6_101: - LONG $0x21748d4b; BYTE $0x05 // leaq $5(%r9,%r12), %rsi - -LBB6_102: - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x2948; BYTE $0xf8 // subq %rdi, %rax - LONG $0x02c08348 // addq $2, %rax - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - WORD $0x4e8a; BYTE $0x02 // movb $2(%rsi), %cl - WORD $0x798d; BYTE $0xd0 // leal $-48(%rcx), %edi - LONG $0xfec2c748; WORD $0xffff; BYTE $0xff // movq $-2, %rdx - LONG $0x0aff8040 // cmpb $10, %dil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_104, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xf82e870f; WORD $0xffff // ja LBB6_4, $-2002(%rip) - -LBB6_104: - LONG $0x01488d48 // leaq $1(%rax), %rcx - LONG $0xd07d8b48 // movq $-48(%rbp), %rdi - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - WORD $0x4e8a; BYTE $0x03 // movb $3(%rsi), %cl - WORD $0x798d; BYTE $0xd0 // leal $-48(%rcx), %edi - LONG $0x0aff8040 // cmpb $10, %dil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_106, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xf804870f; WORD $0xffff // ja LBB6_4, $-2044(%rip) - -LBB6_106: - LONG $0x02488d48 // leaq $2(%rax), %rcx - LONG $0xd07d8b48 // movq $-48(%rbp), %rdi - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - WORD $0x4e8a; BYTE $0x04 // movb $4(%rsi), %cl - WORD $0x798d; BYTE $0xd0 // leal $-48(%rcx), %edi - LONG $0x0aff8040 // cmpb $10, %dil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_108, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xf7da870f; WORD $0xffff // ja LBB6_4, $-2086(%rip) - -LBB6_108: - LONG $0x03488d48 // leaq $3(%rax), %rcx - LONG $0xd07d8b48 // movq $-48(%rbp), %rdi - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - WORD $0x4e8a; BYTE $0x05 // movb $5(%rsi), %cl - WORD $0x718d; BYTE $0xd0 // leal $-48(%rcx), %esi - LONG $0x0afe8040 // cmpb $10, %sil - LONG $0x000f820f; WORD $0x0000 // jb LBB6_110, $15(%rip) - WORD $0xe180; BYTE $0xdf // andb $-33, %cl - WORD $0xc180; BYTE $0xbf // addb $-65, %cl - WORD $0xf980; BYTE $0x05 // cmpb $5, %cl - LONG $0xf7b0870f; WORD $0xffff // ja LBB6_4, $-2128(%rip) - -LBB6_110: - LONG $0x04c08348 // addq $4, %rax - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - LONG $0xfff7a0e9; BYTE $0xff // jmp LBB6_4, $-2144(%rip) - -LBB6_111: - WORD $0x2949; BYTE $0xf9 // subq %rdi, %r9 - WORD $0xff49; BYTE $0xc1 // incq %r9 - -LBB6_112: - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x894c; BYTE $0x08 // movq %r9, (%rax) - LONG $0xfec2c748; WORD $0xffff; BYTE $0xff // movq $-2, %rdx - LONG $0xfff787e9; BYTE $0xff // jmp LBB6_4, $-2169(%rip) - -LBB6_113: - LONG $0x02c0f641 // testb $2, %r8b - LONG $0x0015840f; WORD $0x0000 // je LBB6_116, $21(%rip) - LONG $0xef02c766; BYTE $0xbf // movw $-16401, (%rdx) - LONG $0xbd0242c6 // movb $-67, $2(%rdx) - LONG $0x03c28348 // addq $3, %rdx - -LBB6_115: - WORD $0x3145; BYTE $0xed // xorl %r13d, %r13d - LONG $0xfff762e9; BYTE $0xff // jmp LBB6_3, $-2206(%rip) - -LBB6_116: - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x8948; BYTE $0x30 // movq %rsi, (%rax) - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - LONG $0xfff755e9; BYTE $0xff // jmp LBB6_4, $-2219(%rip) - -LBB6_117: - WORD $0x2949; BYTE $0xf9 // subq %rdi, %r9 - LONG $0xfcc18349 // addq $-4, %r9 - -LBB6_118: - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x894c; BYTE $0x08 // movq %r9, (%rax) - LONG $0xfcc2c748; WORD $0xffff; BYTE $0xff // movq $-4, %rdx - LONG $0xfff73be9; BYTE $0xff // jmp LBB6_4, $-2245(%rip) - -LBB6_119: - LONG $0x21448d4b; BYTE $0x0a // leaq $10(%r9,%r12), %rax - LONG $0x000005e9; BYTE $0x00 // jmp LBB6_121, $5(%rip) - -LBB6_120: - LONG $0x21448d4b; BYTE $0x0b // leaq $11(%r9,%r12), %rax - -LBB6_121: - WORD $0x2948; BYTE $0xf8 // subq %rdi, %rax - LONG $0xfcc08348 // addq $-4, %rax - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - LONG $0xfcc2c748; WORD $0xffff; BYTE $0xff // movq $-4, %rdx - LONG $0xfff712e9; BYTE $0xff // jmp LBB6_4, $-2286(%rip) - -LBB6_122: - LONG $0x3a448d49; BYTE $0x04 // leaq $4(%r10,%rdi), %rax - WORD $0x2949; BYTE $0xc1 // subq %rax, %r9 - LONG $0xffffb7e9; BYTE $0xff // jmp LBB6_118, $-73(%rip) - -LBB6_123: - WORD $0x014d; BYTE $0xe1 // addq %r12, %r9 - WORD $0x2949; BYTE $0xf9 // subq %rdi, %r9 - LONG $0xfffface9; BYTE $0xff // jmp LBB6_118, $-84(%rip) - QUAD $0x0000000000000000; QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .p2align 5, 0x00 - -LCPI7_0: - QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - -LCPI7_1: - QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - -LCPI7_2: - QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' - QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' - -LCPI7_3: - QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' - QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' - - // .p2align 4, 0x00 -LCPI7_4: - QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - -LCPI7_5: - QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - -LCPI7_6: - QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' - -LCPI7_7: - QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' - - // .p2align 4, 0x90 -_html_escape: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x18ec8348 // subq $24, %rsp - LONG $0xc04d8948 // movq %rcx, $-64(%rbp) - LONG $0xc8558948 // movq %rdx, $-56(%rbp) - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - LONG $0xd07d8948 // movq %rdi, $-48(%rbp) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x075f8e0f; WORD $0x0000 // jle LBB7_102, $1887(%rip) - WORD $0x8949; BYTE $0xf3 // movq %rsi, %r11 - LONG $0xc0458b48 // movq $-64(%rbp), %rax - WORD $0x8b4c; BYTE $0x08 // movq (%rax), %r9 - QUAD $0xffffff021d6ffdc5 // vmovdqa $-254(%rip), %ymm3 /* LCPI7_0(%rip) */ - QUAD $0xffffff1a256ffdc5 // vmovdqa $-230(%rip), %ymm4 /* LCPI7_1(%rip) */ - QUAD $0xffffff322d6ffdc5 // vmovdqa $-206(%rip), %ymm5 /* LCPI7_2(%rip) */ - QUAD $0xffffff4a356ffdc5 // vmovdqa $-182(%rip), %ymm6 /* LCPI7_3(%rip) */ - LONG $0x733d8d4c; WORD $0x00e6; BYTE $0x00 // leaq $58995(%rip), %r15 /* __HtmlQuoteTab(%rip) */ - QUAD $0x000300000001bf48; WORD $0x0000 // movabsq $12884901889, %rdi - LONG $0xd0658b4c // movq $-48(%rbp), %r12 - LONG $0xc8458b4c // movq $-56(%rbp), %r8 - BYTE $0x90 // .p2align 4, 0x90 - -LBB7_2: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x07318e0f; WORD $0x0000 // jle LBB7_3, $1841(%rip) - LONG $0x1ffb8349 // cmpq $31, %r11 - WORD $0x9f0f; BYTE $0xc1 // setg %cl - WORD $0x894d; BYTE $0xca // movq %r9, %r10 - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - WORD $0x894d; BYTE $0xde // movq %r11, %r14 - WORD $0x894d; BYTE $0xe5 // movq %r12, %r13 - LONG $0x20f98349 // cmpq $32, %r9 - LONG $0x007a8c0f; WORD $0x0000 // jl LBB7_11, $122(%rip) - LONG $0x20fb8349 // cmpq $32, %r11 - LONG $0x00708c0f; WORD $0x0000 // jl LBB7_11, $112(%rip) - WORD $0x894d; BYTE $0xe5 // movq %r12, %r13 - WORD $0x894c; BYTE $0xde // movq %r11, %rsi - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - WORD $0x894c; BYTE $0xc8 // movq %r9, %rax - LONG $0x90909090 // .p2align 4, 0x90 - -LBB7_7: - LONG $0x6f7ec1c4; WORD $0x0045 // vmovdqu (%r13), %ymm0 - LONG $0xcb74fdc5 // vpcmpeqb %ymm3, %ymm0, %ymm1 - LONG $0xd474fdc5 // vpcmpeqb %ymm4, %ymm0, %ymm2 - LONG $0xc9ebedc5 // vpor %ymm1, %ymm2, %ymm1 - LONG $0xd5dbfdc5 // vpand %ymm5, %ymm0, %ymm2 - LONG $0xd674edc5 // vpcmpeqb %ymm6, %ymm2, %ymm2 - LONG $0xcaebf5c5 // vpor %ymm2, %ymm1, %ymm1 - LONG $0x037ffec5 // vmovdqu %ymm0, (%rbx) - LONG $0xc9d7fdc5 // vpmovmskb %ymm1, %ecx - WORD $0xc985 // testl %ecx, %ecx - LONG $0x01a2850f; WORD $0x0000 // jne LBB7_8, $418(%rip) - LONG $0x20c58349 // addq $32, %r13 - LONG $0x20c38348 // addq $32, %rbx - LONG $0xe0768d4c // leaq $-32(%rsi), %r14 - LONG $0xe0508d4c // leaq $-32(%rax), %r10 - LONG $0x3ffe8348 // cmpq $63, %rsi - WORD $0x9f0f; BYTE $0xc1 // setg %cl - LONG $0x40fe8348 // cmpq $64, %rsi - LONG $0x00118c0f; WORD $0x0000 // jl LBB7_11, $17(%rip) - WORD $0x894c; BYTE $0xf6 // movq %r14, %rsi - LONG $0x3ff88348 // cmpq $63, %rax - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - LONG $0xffa18f0f; WORD $0xffff // jg LBB7_7, $-95(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB7_11: - WORD $0xc984 // testb %cl, %cl - LONG $0x0088840f; WORD $0x0000 // je LBB7_37, $136(%rip) - LONG $0x6f7ec1c4; WORD $0x0045 // vmovdqu (%r13), %ymm0 - LONG $0xcb74fdc5 // vpcmpeqb %ymm3, %ymm0, %ymm1 - LONG $0xd474fdc5 // vpcmpeqb %ymm4, %ymm0, %ymm2 - LONG $0xc9ebedc5 // vpor %ymm1, %ymm2, %ymm1 - LONG $0xc5dbfdc5 // vpand %ymm5, %ymm0, %ymm0 - LONG $0xc674fdc5 // vpcmpeqb %ymm6, %ymm0, %ymm0 - LONG $0xc0ebf5c5 // vpor %ymm0, %ymm1, %ymm0 - LONG $0xc0d7fdc5 // vpmovmskb %ymm0, %eax - QUAD $0x000100000000b948; WORD $0x0000 // movabsq $4294967296, %rcx - WORD $0x0948; BYTE $0xc8 // orq %rcx, %rax - LONG $0xc8bc0f48 // bsfq %rax, %rcx - LONG $0x6f7ac1c4; WORD $0x0045 // vmovdqu (%r13), %xmm0 - LONG $0x16f9e3c4; WORD $0x01c0 // vpextrq $1, %xmm0, %rax - LONG $0x7ef9e1c4; BYTE $0xc2 // vmovq %xmm0, %rdx - WORD $0x394c; BYTE $0xd1 // cmpq %r10, %rcx - LONG $0x012a8e0f; WORD $0x0000 // jle LBB7_13, $298(%rip) - LONG $0x10fa8349 // cmpq $16, %r10 - LONG $0x0160820f; WORD $0x0000 // jb LBB7_26, $352(%rip) - WORD $0x8948; BYTE $0x13 // movq %rdx, (%rbx) - LONG $0x08438948 // movq %rax, $8(%rbx) - LONG $0x10458d49 // leaq $16(%r13), %rax - LONG $0x10c38348 // addq $16, %rbx - LONG $0xf0728d49 // leaq $-16(%r10), %rsi - LONG $0x08fe8348 // cmpq $8, %rsi - LONG $0x0153830f; WORD $0x0000 // jae LBB7_29, $339(%rip) - LONG $0x000160e9; BYTE $0x00 // jmp LBB7_30, $352(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB7_37: - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - WORD $0xf8c5; BYTE $0x77 // vzeroupper - LONG $0x0ffe8349 // cmpq $15, %r14 - LONG $0xc79f0f41 // setg %r15b - LONG $0x10fa8349 // cmpq $16, %r10 - LONG $0x01688c0f; WORD $0x0000 // jl LBB7_38, $360(%rip) - LONG $0x10fe8349 // cmpq $16, %r14 - QUAD $0xfffffdfc3d6ff9c5 // vmovdqa $-516(%rip), %xmm7 /* LCPI7_4(%rip) */ - QUAD $0xfffffe04056f79c5 // vmovdqa $-508(%rip), %xmm8 /* LCPI7_5(%rip) */ - QUAD $0xfffffe0c0d6f79c5 // vmovdqa $-500(%rip), %xmm9 /* LCPI7_6(%rip) */ - QUAD $0xfffffe14156f79c5 // vmovdqa $-492(%rip), %xmm10 /* LCPI7_7(%rip) */ - LONG $0x01f08c0f; WORD $0x0000 // jl LBB7_40, $496(%rip) - QUAD $0xfffffd561d6ffdc5 // vmovdqa $-682(%rip), %ymm3 /* LCPI7_0(%rip) */ - QUAD $0xfffffd6e256ffdc5 // vmovdqa $-658(%rip), %ymm4 /* LCPI7_1(%rip) */ - QUAD $0xfffffd862d6ffdc5 // vmovdqa $-634(%rip), %ymm5 /* LCPI7_2(%rip) */ - QUAD $0xfffffd9e356ffdc5 // vmovdqa $-610(%rip), %ymm6 /* LCPI7_3(%rip) */ - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB7_42: - LONG $0x6f7ac1c4; WORD $0x0045 // vmovdqu (%r13), %xmm0 - LONG $0xcf74f9c5 // vpcmpeqb %xmm7, %xmm0, %xmm1 - LONG $0xd074b9c5 // vpcmpeqb %xmm0, %xmm8, %xmm2 - LONG $0xc9ebe9c5 // vpor %xmm1, %xmm2, %xmm1 - LONG $0xd0dbb1c5 // vpand %xmm0, %xmm9, %xmm2 - LONG $0xd274a9c5 // vpcmpeqb %xmm2, %xmm10, %xmm2 - LONG $0xcaebf1c5 // vpor %xmm2, %xmm1, %xmm1 - LONG $0x037ffac5 // vmovdqu %xmm0, (%rbx) - LONG $0xc1d7f9c5 // vpmovmskb %xmm1, %eax - WORD $0x8566; BYTE $0xc0 // testw %ax, %ax - LONG $0x007b850f; WORD $0x0000 // jne LBB7_43, $123(%rip) - LONG $0x10c58349 // addq $16, %r13 - LONG $0x10c38348 // addq $16, %rbx - LONG $0xf0468d49 // leaq $-16(%r14), %rax - LONG $0xf04a8d49 // leaq $-16(%r10), %rcx - LONG $0x1ffe8349 // cmpq $31, %r14 - LONG $0xc79f0f41 // setg %r15b - LONG $0x20fe8349 // cmpq $32, %r14 - LONG $0x01058c0f; WORD $0x0000 // jl LBB7_46, $261(%rip) - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - LONG $0x1ffa8349 // cmpq $31, %r10 - WORD $0x8949; BYTE $0xca // movq %rcx, %r10 - LONG $0xff9f8f0f; WORD $0xffff // jg LBB7_42, $-97(%rip) - LONG $0x0000f0e9; BYTE $0x00 // jmp LBB7_46, $240(%rip) - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB7_8: - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - LONG $0xd1bc0f44 // bsfl %ecx, %r10d - WORD $0x014d; BYTE $0xea // addq %r13, %r10 - LONG $0x00037be9; BYTE $0x00 // jmp LBB7_79, $891(%rip) - -LBB7_13: - WORD $0xf983; BYTE $0x10 // cmpl $16, %ecx - LONG $0x01e3820f; WORD $0x0000 // jb LBB7_14, $483(%rip) - WORD $0x8948; BYTE $0x13 // movq %rdx, (%rbx) - LONG $0x08438948 // movq %rax, $8(%rbx) - LONG $0x10458d49 // leaq $16(%r13), %rax - LONG $0x10c38348 // addq $16, %rbx - LONG $0xf0718d48 // leaq $-16(%rcx), %rsi - LONG $0x08fe8348 // cmpq $8, %rsi - LONG $0x01d6830f; WORD $0x0000 // jae LBB7_17, $470(%rip) - LONG $0x0001e3e9; BYTE $0x00 // jmp LBB7_18, $483(%rip) - -LBB7_43: - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - LONG $0xd0bc0f44 // bsfl %eax, %r10d - WORD $0x014d; BYTE $0xea // addq %r13, %r10 - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - LONG $0x00033be9; BYTE $0x00 // jmp LBB7_79, $827(%rip) - -LBB7_26: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - WORD $0x894c; BYTE $0xd6 // movq %r10, %rsi - LONG $0x08fe8348 // cmpq $8, %rsi - LONG $0x0012820f; WORD $0x0000 // jb LBB7_30, $18(%rip) - -LBB7_29: - WORD $0x8b48; BYTE $0x08 // movq (%rax), %rcx - WORD $0x8948; BYTE $0x0b // movq %rcx, (%rbx) - LONG $0x08c08348 // addq $8, %rax - LONG $0x08c38348 // addq $8, %rbx - LONG $0xf8c68348 // addq $-8, %rsi - -LBB7_30: - LONG $0x04fe8348 // cmpq $4, %rsi - LONG $0x01ce8d0f; WORD $0x0000 // jge LBB7_31, $462(%rip) - LONG $0x02fe8348 // cmpq $2, %rsi - LONG $0x01de830f; WORD $0x0000 // jae LBB7_33, $478(%rip) - -LBB7_34: - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0004840f; WORD $0x0000 // je LBB7_36, $4(%rip) - -LBB7_35: - WORD $0x008a // movb (%rax), %al - WORD $0x0388 // movb %al, (%rbx) - -LBB7_36: - WORD $0x294d; BYTE $0xe2 // subq %r12, %r10 - WORD $0x014d; BYTE $0xea // addq %r13, %r10 - WORD $0xf749; BYTE $0xd2 // notq %r10 - LONG $0x0002eae9; BYTE $0x00 // jmp LBB7_79, $746(%rip) - -LBB7_38: - WORD $0x894c; BYTE $0xd1 // movq %r10, %rcx - WORD $0x894c; BYTE $0xf0 // movq %r14, %rax - QUAD $0xfffffc121d6ffdc5 // vmovdqa $-1006(%rip), %ymm3 /* LCPI7_0(%rip) */ - QUAD $0xfffffc2a256ffdc5 // vmovdqa $-982(%rip), %ymm4 /* LCPI7_1(%rip) */ - QUAD $0xfffffc422d6ffdc5 // vmovdqa $-958(%rip), %ymm5 /* LCPI7_2(%rip) */ - QUAD $0xfffffc5a356ffdc5 // vmovdqa $-934(%rip), %ymm6 /* LCPI7_3(%rip) */ - QUAD $0xfffffc723d6ff9c5 // vmovdqa $-910(%rip), %xmm7 /* LCPI7_4(%rip) */ - QUAD $0xfffffc7a056f79c5 // vmovdqa $-902(%rip), %xmm8 /* LCPI7_5(%rip) */ - QUAD $0xfffffc820d6f79c5 // vmovdqa $-894(%rip), %xmm9 /* LCPI7_6(%rip) */ - QUAD $0xfffffc8a156f79c5 // vmovdqa $-886(%rip), %xmm10 /* LCPI7_7(%rip) */ - -LBB7_46: - WORD $0x8445; BYTE $0xff // testb %r15b, %r15b - LONG $0x0092840f; WORD $0x0000 // je LBB7_47, $146(%rip) - -LBB7_49: - LONG $0x6f7ac1c4; WORD $0x0045 // vmovdqu (%r13), %xmm0 - LONG $0xcf74f9c5 // vpcmpeqb %xmm7, %xmm0, %xmm1 - LONG $0xd074b9c5 // vpcmpeqb %xmm0, %xmm8, %xmm2 - LONG $0xc9ebe9c5 // vpor %xmm1, %xmm2, %xmm1 - LONG $0xd0dbb1c5 // vpand %xmm0, %xmm9, %xmm2 - LONG $0xd274a9c5 // vpcmpeqb %xmm2, %xmm10, %xmm2 - LONG $0xcaebf1c5 // vpor %xmm2, %xmm1, %xmm1 - LONG $0xc1d7f9c5 // vpmovmskb %xmm1, %eax - LONG $0x0100000d; BYTE $0x00 // orl $65536, %eax - WORD $0xbc0f; BYTE $0xf0 // bsfl %eax, %esi - LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq %xmm0, %rax - WORD $0x3948; BYTE $0xf1 // cmpq %rsi, %rcx - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - LONG $0x01938d0f; WORD $0x0000 // jge LBB7_50, $403(%rip) - LONG $0x08f98348 // cmpq $8, %rcx - LONG $0x01b8820f; WORD $0x0000 // jb LBB7_61, $440(%rip) - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - LONG $0x08458d49 // leaq $8(%r13), %rax - LONG $0x08c38348 // addq $8, %rbx - LONG $0xf8718d48 // leaq $-8(%rcx), %rsi - LONG $0x04fe8348 // cmpq $4, %rsi - LONG $0x01af8d0f; WORD $0x0000 // jge LBB7_64, $431(%rip) - LONG $0x0001bae9; BYTE $0x00 // jmp LBB7_65, $442(%rip) - -LBB7_40: - WORD $0x894c; BYTE $0xd1 // movq %r10, %rcx - WORD $0x894c; BYTE $0xf0 // movq %r14, %rax - QUAD $0xfffffb601d6ffdc5 // vmovdqa $-1184(%rip), %ymm3 /* LCPI7_0(%rip) */ - QUAD $0xfffffb78256ffdc5 // vmovdqa $-1160(%rip), %ymm4 /* LCPI7_1(%rip) */ - QUAD $0xfffffb902d6ffdc5 // vmovdqa $-1136(%rip), %ymm5 /* LCPI7_2(%rip) */ - QUAD $0xfffffba8356ffdc5 // vmovdqa $-1112(%rip), %ymm6 /* LCPI7_3(%rip) */ - WORD $0x8445; BYTE $0xff // testb %r15b, %r15b - LONG $0xff6e850f; WORD $0xffff // jne LBB7_49, $-146(%rip) - -LBB7_47: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - WORD $0x8949; BYTE $0xd7 // movq %rdx, %r15 - LONG $0x01a78e0f; WORD $0x0000 // jle LBB7_48, $423(%rip) - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x019e8e0f; WORD $0x0000 // jle LBB7_75, $414(%rip) - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB7_71: - LONG $0x55b60f41; BYTE $0x00 // movzbl (%r13), %edx - LONG $0x3efa8348 // cmpq $62, %rdx - LONG $0x0014870f; WORD $0x0000 // ja LBB7_72, $20(%rip) - QUAD $0x004000000000be48; WORD $0x5000 // movabsq $5764607797912141824, %rsi - LONG $0xd6a30f48 // btq %rdx, %rsi - LONG $0x0121820f; WORD $0x0000 // jb LBB7_77, $289(%rip) - -LBB7_72: - WORD $0xfa80; BYTE $0xe2 // cmpb $-30, %dl - LONG $0x0118840f; WORD $0x0000 // je LBB7_77, $280(%rip) - LONG $0xff708d48 // leaq $-1(%rax), %rsi - WORD $0xff49; BYTE $0xc5 // incq %r13 - WORD $0x1388 // movb %dl, (%rbx) - LONG $0x02f88348 // cmpq $2, %rax - LONG $0x01588c0f; WORD $0x0000 // jl LBB7_75, $344(%rip) - LONG $0xff518d48 // leaq $-1(%rcx), %rdx - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - LONG $0x01f98348 // cmpq $1, %rcx - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - LONG $0xffaa8f0f; WORD $0xffff // jg LBB7_71, $-86(%rip) - LONG $0x00013ce9; BYTE $0x00 // jmp LBB7_75, $316(%rip) - -LBB7_14: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - WORD $0x8948; BYTE $0xce // movq %rcx, %rsi - LONG $0x08fe8348 // cmpq $8, %rsi - LONG $0x0012820f; WORD $0x0000 // jb LBB7_18, $18(%rip) - -LBB7_17: - WORD $0x8b48; BYTE $0x10 // movq (%rax), %rdx - WORD $0x8948; BYTE $0x13 // movq %rdx, (%rbx) - LONG $0x08c08348 // addq $8, %rax - LONG $0x08c38348 // addq $8, %rbx - LONG $0xf8c68348 // addq $-8, %rsi - -LBB7_18: - LONG $0x04fe8348 // cmpq $4, %rsi - LONG $0x005c8d0f; WORD $0x0000 // jge LBB7_19, $92(%rip) - LONG $0x02fe8348 // cmpq $2, %rsi - LONG $0x006c830f; WORD $0x0000 // jae LBB7_21, $108(%rip) - -LBB7_22: - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0004840f; WORD $0x0000 // je LBB7_24, $4(%rip) - -LBB7_23: - WORD $0x008a // movb (%rax), %al - WORD $0x0388 // movb %al, (%rbx) - -LBB7_24: - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - WORD $0x0149; BYTE $0xcd // addq %rcx, %r13 - LONG $0x00013ee9; BYTE $0x00 // jmp LBB7_78, $318(%rip) - -LBB7_31: - WORD $0x088b // movl (%rax), %ecx - WORD $0x0b89 // movl %ecx, (%rbx) - LONG $0x04c08348 // addq $4, %rax - LONG $0x04c38348 // addq $4, %rbx - LONG $0xfcc68348 // addq $-4, %rsi - LONG $0x02fe8348 // cmpq $2, %rsi - LONG $0xfe22820f; WORD $0xffff // jb LBB7_34, $-478(%rip) - -LBB7_33: - WORD $0xb70f; BYTE $0x08 // movzwl (%rax), %ecx - WORD $0x8966; BYTE $0x0b // movw %cx, (%rbx) - LONG $0x02c08348 // addq $2, %rax - LONG $0x02c38348 // addq $2, %rbx - LONG $0xfec68348 // addq $-2, %rsi - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0xfe10850f; WORD $0xffff // jne LBB7_35, $-496(%rip) - LONG $0xfffe0fe9; BYTE $0xff // jmp LBB7_36, $-497(%rip) - -LBB7_19: - WORD $0x108b // movl (%rax), %edx - WORD $0x1389 // movl %edx, (%rbx) - LONG $0x04c08348 // addq $4, %rax - LONG $0x04c38348 // addq $4, %rbx - LONG $0xfcc68348 // addq $-4, %rsi - LONG $0x02fe8348 // cmpq $2, %rsi - LONG $0xff94820f; WORD $0xffff // jb LBB7_22, $-108(%rip) - -LBB7_21: - WORD $0xb70f; BYTE $0x10 // movzwl (%rax), %edx - WORD $0x8966; BYTE $0x13 // movw %dx, (%rbx) - LONG $0x02c08348 // addq $2, %rax - LONG $0x02c38348 // addq $2, %rbx - LONG $0xfec68348 // addq $-2, %rsi - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0xff82850f; WORD $0xffff // jne LBB7_23, $-126(%rip) - LONG $0xffff81e9; BYTE $0xff // jmp LBB7_24, $-127(%rip) - -LBB7_50: - WORD $0xfe83; BYTE $0x08 // cmpl $8, %esi - LONG $0x0082820f; WORD $0x0000 // jb LBB7_51, $130(%rip) - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - LONG $0x08558d4d // leaq $8(%r13), %r10 - LONG $0x08c38348 // addq $8, %rbx - LONG $0xf8468d48 // leaq $-8(%rsi), %rax - LONG $0x04f88348 // cmpq $4, %rax - LONG $0x00798d0f; WORD $0x0000 // jge LBB7_54, $121(%rip) - LONG $0x000085e9; BYTE $0x00 // jmp LBB7_55, $133(%rip) - -LBB7_77: - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - LONG $0x00009be9; BYTE $0x00 // jmp LBB7_78, $155(%rip) - -LBB7_61: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - WORD $0x8948; BYTE $0xce // movq %rcx, %rsi - LONG $0x04fe8348 // cmpq $4, %rsi - LONG $0x00108c0f; WORD $0x0000 // jl LBB7_65, $16(%rip) - -LBB7_64: - WORD $0x108b // movl (%rax), %edx - WORD $0x1389 // movl %edx, (%rbx) - LONG $0x04c08348 // addq $4, %rax - LONG $0x04c38348 // addq $4, %rbx - LONG $0xfcc68348 // addq $-4, %rsi - -LBB7_65: - LONG $0x02fe8348 // cmpq $2, %rsi - LONG $0x013e830f; WORD $0x0000 // jae LBB7_66, $318(%rip) - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x0004840f; WORD $0x0000 // je LBB7_69, $4(%rip) - -LBB7_68: - WORD $0x008a // movb (%rax), %al - WORD $0x0388 // movb %al, (%rbx) - -LBB7_69: - WORD $0x294c; BYTE $0xe1 // subq %r12, %rcx - WORD $0x014c; BYTE $0xe9 // addq %r13, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - WORD $0x8949; BYTE $0xca // movq %rcx, %r10 - LONG $0x000056e9; BYTE $0x00 // jmp LBB7_79, $86(%rip) - -LBB7_48: - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - -LBB7_75: - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - WORD $0xf748; BYTE $0xde // negq %rsi - WORD $0x194d; BYTE $0xd2 // sbbq %r10, %r10 - WORD $0x314d; BYTE $0xea // xorq %r13, %r10 - LONG $0x000042e9; BYTE $0x00 // jmp LBB7_79, $66(%rip) - -LBB7_51: - WORD $0x894d; BYTE $0xea // movq %r13, %r10 - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - LONG $0x04f88348 // cmpq $4, %rax - LONG $0x00118c0f; WORD $0x0000 // jl LBB7_55, $17(%rip) - -LBB7_54: - WORD $0x8b41; BYTE $0x0a // movl (%r10), %ecx - WORD $0x0b89 // movl %ecx, (%rbx) - LONG $0x04c28349 // addq $4, %r10 - LONG $0x04c38348 // addq $4, %rbx - LONG $0xfcc08348 // addq $-4, %rax - -LBB7_55: - LONG $0x02f88348 // cmpq $2, %rax - LONG $0x0101830f; WORD $0x0000 // jae LBB7_56, $257(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0005840f; WORD $0x0000 // je LBB7_59, $5(%rip) - -LBB7_58: - WORD $0x8a41; BYTE $0x02 // movb (%r10), %al - WORD $0x0388 // movb %al, (%rbx) - -LBB7_59: - WORD $0x294d; BYTE $0xe5 // subq %r12, %r13 - WORD $0x0149; BYTE $0xf5 // addq %rsi, %r13 - -LBB7_78: - WORD $0x894d; BYTE $0xea // movq %r13, %r10 - -LBB7_79: - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x0152880f; WORD $0x0000 // js LBB7_80, $338(%rip) - WORD $0x014d; BYTE $0xd4 // addq %r10, %r12 - WORD $0x014d; BYTE $0xd0 // addq %r10, %r8 - WORD $0x294d; BYTE $0xd3 // subq %r10, %r11 - LONG $0x01668e0f; WORD $0x0000 // jle LBB7_82, $358(%rip) - WORD $0x294d; BYTE $0xd1 // subq %r10, %r9 - LONG $0x240c8a41 // movb (%r12), %cl - WORD $0xf980; BYTE $0xe2 // cmpb $-30, %cl - LONG $0x00e3840f; WORD $0x0000 // je LBB7_85, $227(%rip) - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - -LBB7_89: - WORD $0xb60f; BYTE $0xd1 // movzbl %cl, %edx - LONG $0x04e2c148 // shlq $4, %rdx - LONG $0x3a1c8b4a // movq (%rdx,%r15), %rbx - WORD $0x6348; BYTE $0xf3 // movslq %ebx, %rsi - WORD $0x2949; BYTE $0xf1 // subq %rsi, %r9 - LONG $0x01538c0f; WORD $0x0000 // jl LBB7_90, $339(%rip) - LONG $0x20e3c148 // shlq $32, %rbx - LONG $0x3a4c8d4a; BYTE $0x08 // leaq $8(%rdx,%r15), %rcx - WORD $0x3948; BYTE $0xfb // cmpq %rdi, %rbx - LONG $0x00228c0f; WORD $0x0000 // jl LBB7_94, $34(%rip) - WORD $0x098b // movl (%rcx), %ecx - WORD $0x8941; BYTE $0x08 // movl %ecx, (%r8) - LONG $0x3a4c8d4a; BYTE $0x0c // leaq $12(%rdx,%r15), %rcx - LONG $0x04588d49 // leaq $4(%r8), %rbx - LONG $0xfc568d48 // leaq $-4(%rsi), %rdx - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0x0016830f; WORD $0x0000 // jae LBB7_97, $22(%rip) - LONG $0x000029e9; BYTE $0x00 // jmp LBB7_98, $41(%rip) - BYTE $0x90 // .p2align 4, 0x90 - -LBB7_94: - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0x0018820f; WORD $0x0000 // jb LBB7_98, $24(%rip) - -LBB7_97: - WORD $0x8949; BYTE $0xfa // movq %rdi, %r10 - WORD $0xb70f; BYTE $0x39 // movzwl (%rcx), %edi - WORD $0x8966; BYTE $0x3b // movw %di, (%rbx) - WORD $0x894c; BYTE $0xd7 // movq %r10, %rdi - LONG $0x02c18348 // addq $2, %rcx - LONG $0x02c38348 // addq $2, %rbx - LONG $0xfec28348 // addq $-2, %rdx - -LBB7_98: - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0004840f; WORD $0x0000 // je LBB7_100, $4(%rip) - WORD $0x098a // movb (%rcx), %cl - WORD $0x0b88 // movb %cl, (%rbx) - -LBB7_100: - WORD $0x0149; BYTE $0xf0 // addq %rsi, %r8 - -LBB7_101: - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0xff4b8d49 // leaq $-1(%r11), %rcx - WORD $0x8949; BYTE $0xc4 // movq %rax, %r12 - LONG $0x01fb8349 // cmpq $1, %r11 - WORD $0x8949; BYTE $0xcb // movq %rcx, %r11 - LONG $0xf9a18f0f; WORD $0xffff // jg LBB7_2, $-1631(%rip) - LONG $0x0000b7e9; BYTE $0x00 // jmp LBB7_102, $183(%rip) - -LBB7_66: - WORD $0xb70f; BYTE $0x10 // movzwl (%rax), %edx - WORD $0x8966; BYTE $0x13 // movw %dx, (%rbx) - LONG $0x02c08348 // addq $2, %rax - LONG $0x02c38348 // addq $2, %rbx - LONG $0xfec68348 // addq $-2, %rsi - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0xfeb0850f; WORD $0xffff // jne LBB7_68, $-336(%rip) - LONG $0xfffeafe9; BYTE $0xff // jmp LBB7_69, $-337(%rip) - -LBB7_56: - LONG $0x0ab70f41 // movzwl (%r10), %ecx - WORD $0x8966; BYTE $0x0b // movw %cx, (%rbx) - LONG $0x02c28349 // addq $2, %r10 - LONG $0x02c38348 // addq $2, %rbx - LONG $0xfec08348 // addq $-2, %rax - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xfeec850f; WORD $0xffff // jne LBB7_58, $-276(%rip) - LONG $0xfffeece9; BYTE $0xff // jmp LBB7_59, $-276(%rip) - -LBB7_85: - LONG $0x03fb8349 // cmpq $3, %r11 - LONG $0x002b8c0f; WORD $0x0000 // jl LBB7_91, $43(%rip) - LONG $0x247c8041; WORD $0x8001 // cmpb $-128, $1(%r12) - LONG $0x001f850f; WORD $0x0000 // jne LBB7_91, $31(%rip) - LONG $0x244c8a41; BYTE $0x02 // movb $2(%r12), %cl - WORD $0xc889 // movl %ecx, %eax - WORD $0xfe24 // andb $-2, %al - WORD $0xa83c // cmpb $-88, %al - LONG $0x000e850f; WORD $0x0000 // jne LBB7_91, $14(%rip) - LONG $0x24448d49; BYTE $0x02 // leaq $2(%r12), %rax - LONG $0xfec38349 // addq $-2, %r11 - LONG $0xfffeebe9; BYTE $0xff // jmp LBB7_89, $-277(%rip) - -LBB7_91: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x00578e0f; WORD $0x0000 // jle LBB7_3, $87(%rip) - LONG $0xe200c641 // movb $-30, (%r8) - WORD $0xff49; BYTE $0xc0 // incq %r8 - WORD $0xff49; BYTE $0xc9 // decq %r9 - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - LONG $0xffff53e9; BYTE $0xff // jmp LBB7_101, $-173(%rip) - -LBB7_80: - LONG $0xc8452b4c // subq $-56(%rbp), %r8 - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x014c; BYTE $0xc0 // addq %r8, %rax - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x294c; BYTE $0xe0 // subq %r12, %rax - WORD $0x014c; BYTE $0xd0 // addq %r10, %rax - LONG $0x00002ce9; BYTE $0x00 // jmp LBB7_103, $44(%rip) - -LBB7_82: - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - -LBB7_102: - LONG $0xc8452b4c // subq $-56(%rbp), %r8 - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - WORD $0x894c; BYTE $0x01 // movq %r8, (%rcx) - LONG $0xd0452b48 // subq $-48(%rbp), %rax - LONG $0x000015e9; BYTE $0x00 // jmp LBB7_103, $21(%rip) - -LBB7_90: - LONG $0xc8452b4c // subq $-56(%rbp), %r8 - LONG $0xc0458b48 // movq $-64(%rbp), %rax - WORD $0x894c; BYTE $0x00 // movq %r8, (%rax) - -LBB7_3: - WORD $0xf749; BYTE $0xd4 // notq %r12 - LONG $0xd065034c // addq $-48(%rbp), %r12 - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - -LBB7_103: - LONG $0x18c48348 // addq $24, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -_atof_eisel_lemire64: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - LONG $0x015c868d; WORD $0x0000 // leal $348(%rsi), %eax - LONG $0x0002b73d; BYTE $0x00 // cmpl $695, %eax - LONG $0x0115870f; WORD $0x0000 // ja LBB8_1, $277(%rip) - WORD $0x8949; BYTE $0xc8 // movq %rcx, %r8 - WORD $0x8941; BYTE $0xd1 // movl %edx, %r9d - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x000d840f; WORD $0x0000 // je LBB8_4, $13(%rip) - LONG $0xd7bd0f4c // bsrq %rdi, %r10 - LONG $0x3ff28349 // xorq $63, %r10 - LONG $0x000006e9; BYTE $0x00 // jmp LBB8_5, $6(%rip) - -LBB8_4: - LONG $0x0040ba41; WORD $0x0000 // movl $64, %r10d - -LBB8_5: - WORD $0x8944; BYTE $0xd1 // movl %r10d, %ecx - WORD $0xd348; BYTE $0xe7 // shlq %cl, %rdi - WORD $0xc389 // movl %eax, %ebx - LONG $0x04e3c148 // shlq $4, %rbx - LONG $0x01358d4c; WORD $0x0069; BYTE $0x00 // leaq $26881(%rip), %r14 /* _POW10_M128_TAB(%rip) */ - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x3364f74a; BYTE $0x08 // mulq $8(%rbx,%r14) - WORD $0x8949; BYTE $0xc7 // movq %rax, %r15 - WORD $0x8949; BYTE $0xd3 // movq %rdx, %r11 - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - LONG $0x0001ff25; BYTE $0x00 // andl $511, %eax - WORD $0x8948; BYTE $0xf9 // movq %rdi, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - WORD $0x3949; BYTE $0xcf // cmpq %rcx, %r15 - LONG $0x004f860f; WORD $0x0000 // jbe LBB8_11, $79(%rip) - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - LONG $0x0001ff3d; BYTE $0x00 // cmpl $511, %eax - LONG $0x0044850f; WORD $0x0000 // jne LBB8_13, $68(%rip) - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x3324f74a // mulq (%rbx,%r14) - WORD $0x014c; BYTE $0xfa // addq %r15, %rdx - LONG $0x00d38349 // adcq $0, %r11 - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0x001d860f; WORD $0x0000 // jbe LBB8_12, $29(%rip) - LONG $0xfffa8348 // cmpq $-1, %rdx - LONG $0x0013850f; WORD $0x0000 // jne LBB8_12, $19(%rip) - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - LONG $0x0001ff25; BYTE $0x00 // andl $511, %eax - LONG $0x0001ff3d; BYTE $0x00 // cmpl $511, %eax - LONG $0x0079840f; WORD $0x0000 // je LBB8_1, $121(%rip) - -LBB8_12: - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - LONG $0x0001ff25; BYTE $0x00 // andl $511, %eax - LONG $0x000003e9; BYTE $0x00 // jmp LBB8_13, $3(%rip) - -LBB8_11: - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - -LBB8_13: - WORD $0x894c; BYTE $0xdf // movq %r11, %rdi - LONG $0x3fefc148 // shrq $63, %rdi - WORD $0x4f8d; BYTE $0x09 // leal $9(%rdi), %ecx - WORD $0xd349; BYTE $0xeb // shrq %cl, %r11 - WORD $0x0948; BYTE $0xd0 // orq %rdx, %rax - LONG $0x000f850f; WORD $0x0000 // jne LBB8_16, $15(%rip) - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - WORD $0xe083; BYTE $0x03 // andl $3, %eax - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - LONG $0x0044840f; WORD $0x0000 // je LBB8_1, $68(%rip) - -LBB8_16: - LONG $0x526ac669; WORD $0x0003 // imull $217706, %esi, %eax - WORD $0xf8c1; BYTE $0x10 // sarl $16, %eax - LONG $0x00043f05; BYTE $0x00 // addl $1087, %eax - WORD $0x6348; BYTE $0xd0 // movslq %eax, %rdx - WORD $0x8944; BYTE $0xd8 // movl %r11d, %eax - WORD $0xe083; BYTE $0x01 // andl $1, %eax - WORD $0x014c; BYTE $0xd8 // addq %r11, %rax - QUAD $0x000000000000b948; WORD $0x01c0 // movabsq $126100789566373888, %rcx - WORD $0x2148; BYTE $0xc1 // andq %rax, %rcx - WORD $0x294c; BYTE $0xd2 // subq %r10, %rdx - LONG $0x3a548d48; BYTE $0xfe // leaq $-2(%rdx,%rdi), %rdx - LONG $0x01f98348 // cmpq $1, %rcx - LONG $0xffda8348 // sbbq $-1, %rdx - LONG $0xfdfa8148; WORD $0x0007; BYTE $0x00 // cmpq $2045, %rdx - LONG $0x0009860f; WORD $0x0000 // jbe LBB8_18, $9(%rip) - -LBB8_1: - WORD $0xc031 // xorl %eax, %eax - -LBB8_19: - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB8_18: - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0x01f98348 // cmpq $1, %rcx - WORD $0x02b1 // movb $2, %cl - WORD $0xd980; BYTE $0x00 // sbbb $0, %cl - WORD $0xd348; BYTE $0xe8 // shrq %cl, %rax - LONG $0x34e2c148 // shlq $52, %rdx - QUAD $0xffffffffffffb948; WORD $0x000f // movabsq $4503599627370495, %rcx - WORD $0x2148; BYTE $0xc1 // andq %rax, %rcx - WORD $0x0948; BYTE $0xd1 // orq %rdx, %rcx - QUAD $0x000000000000b848; WORD $0x8000 // movabsq $-9223372036854775808, %rax - WORD $0x0948; BYTE $0xc8 // orq %rcx, %rax - LONG $0xfff98341 // cmpl $-1, %r9d - LONG $0xc1450f48 // cmovneq %rcx, %rax - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - WORD $0x01b0 // movb $1, %al - LONG $0xffffb7e9; BYTE $0xff // jmp LBB8_19, $-73(%rip) - QUAD $0x0000000000000000; QUAD $0x0000000000000000; LONG $0x00000000; WORD $0x0000 // .p2align 5, 0x00 - -LCPI9_0: - QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000001 // .quad 1 - QUAD $0x0000000000000001 // .quad 1 - QUAD $0x0000000000000001 // .quad 1 - - // .p2align 3, 0x00 -LCPI9_1: - QUAD $0x0000000000000001 // .quad 1 - -LCPI9_2: - QUAD $0x0000000000002710 // .quad 10000 - -LCPI9_3: - QUAD $0x000000000000000a // .quad 10 - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -_decimal_to_f64: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - WORD $0x8948; BYTE $0xf3 // movq %rsi, %rbx - WORD $0x8949; BYTE $0xff // movq %rdi, %r15 - QUAD $0x000000000000bd49; WORD $0x0010 // movabsq $4503599627370496, %r13 - LONG $0x00107f83 // cmpl $0, $16(%rdi) - LONG $0x002f840f; WORD $0x0000 // je LBB9_4, $47(%rip) - QUAD $0x000000000000be49; WORD $0x7ff0 // movabsq $9218868437227405312, %r14 - LONG $0x14478b41 // movl $20(%r15), %eax - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x0001363d; BYTE $0x00 // cmpl $310, %eax - LONG $0x052b8f0f; WORD $0x0000 // jg LBB9_69, $1323(%rip) - LONG $0xfffeb63d; BYTE $0xff // cmpl $-330, %eax - LONG $0x00138d0f; WORD $0x0000 // jge LBB9_5, $19(%rip) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - LONG $0x000518e9; BYTE $0x00 // jmp LBB9_69, $1304(%rip) - -LBB9_4: - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x00050de9; BYTE $0x00 // jmp LBB9_69, $1293(%rip) - -LBB9_5: - WORD $0xc085 // testl %eax, %eax - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0x005a8e0f; WORD $0x0000 // jle LBB9_12, $90(%rip) - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x98358d4c; WORD $0x0092; BYTE $0x00 // leaq $37528(%rip), %r14 /* _POW_TAB(%rip) */ - LONG $0x00002de9; BYTE $0x00 // jmp LBB9_8, $45(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB9_10: - WORD $0xc089 // movl %eax, %eax - LONG $0x861c8b41 // movl (%r14,%rax,4), %ebx - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0x000a840f; WORD $0x0000 // je LBB9_7, $10(%rip) - -LBB9_11: - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - WORD $0xde89 // movl %ebx, %esi - LONG $0x006225e8; BYTE $0x00 // callq _right_shift, $25125(%rip) - -LBB9_7: - WORD $0x0141; BYTE $0xdc // addl %ebx, %r12d - LONG $0x14478b41 // movl $20(%r15), %eax - WORD $0xc085 // testl %eax, %eax - LONG $0x001e8e0f; WORD $0x0000 // jle LBB9_12, $30(%rip) - -LBB9_8: - WORD $0xf883; BYTE $0x08 // cmpl $8, %eax - LONG $0xffcd8e0f; WORD $0xffff // jle LBB9_10, $-51(%rip) - LONG $0x00001bbb; BYTE $0x00 // movl $27, %ebx - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0xffce850f; WORD $0xffff // jne LBB9_11, $-50(%rip) - LONG $0xffffd3e9; BYTE $0xff // jmp LBB9_7, $-45(%rip) - -LBB9_12: - LONG $0x41358d4c; WORD $0x0092; BYTE $0x00 // leaq $37441(%rip), %r14 /* _POW_TAB(%rip) */ - LONG $0x00002de9; BYTE $0x00 // jmp LBB9_14, $45(%rip) - -LBB9_18: - LONG $0x00001bbb; BYTE $0x00 // movl $27, %ebx - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0x001a840f; WORD $0x0000 // je LBB9_13, $26(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB9_20: - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - WORD $0xde89 // movl %ebx, %esi - LONG $0x005fd6e8; BYTE $0x00 // callq _left_shift, $24534(%rip) - LONG $0x14478b41 // movl $20(%r15), %eax - -LBB9_13: - WORD $0x2941; BYTE $0xdc // subl %ebx, %r12d - -LBB9_14: - WORD $0xc085 // testl %eax, %eax - LONG $0x0017880f; WORD $0x0000 // js LBB9_17, $23(%rip) - LONG $0x0035850f; WORD $0x0000 // jne LBB9_21, $53(%rip) - WORD $0x8b49; BYTE $0x0f // movq (%r15), %rcx - WORD $0x3980; BYTE $0x35 // cmpb $53, (%rcx) - LONG $0x000e8c0f; WORD $0x0000 // jl LBB9_19, $14(%rip) - LONG $0x000024e9; BYTE $0x00 // jmp LBB9_21, $36(%rip) - - // .p2align 4, 0x90 -LBB9_17: - WORD $0xf883; BYTE $0xf8 // cmpl $-8, %eax - LONG $0xffab8c0f; WORD $0xffff // jl LBB9_18, $-85(%rip) - -LBB9_19: - WORD $0xc189 // movl %eax, %ecx - WORD $0xd9f7 // negl %ecx - WORD $0x6348; BYTE $0xc9 // movslq %ecx, %rcx - LONG $0x8e1c8b41 // movl (%r14,%rcx,4), %ebx - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0xffb1850f; WORD $0xffff // jne LBB9_20, $-79(%rip) - LONG $0xffffbae9; BYTE $0xff // jmp LBB9_13, $-70(%rip) - -LBB9_21: - LONG $0x02fc8141; WORD $0xfffc; BYTE $0xff // cmpl $-1022, %r12d - LONG $0x00538f0f; WORD $0x0000 // jg LBB9_27, $83(%rip) - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - LONG $0x0060840f; WORD $0x0000 // je LBB9_29, $96(%rip) - LONG $0xc6fc8141; WORD $0xfffb; BYTE $0xff // cmpl $-1082, %r12d - LONG $0x005e8f0f; WORD $0x0000 // jg LBB9_30, $94(%rip) - LONG $0xc1c48141; WORD $0x0003; BYTE $0x00 // addl $961, %r12d - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB9_25: - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - LONG $0x00003cbe; BYTE $0x00 // movl $60, %esi - LONG $0x006133e8; BYTE $0x00 // callq _right_shift, $24883(%rip) - LONG $0x3cc48341 // addl $60, %r12d - LONG $0x88fc8341 // cmpl $-120, %r12d - LONG $0xffe58c0f; WORD $0xffff // jl LBB9_25, $-27(%rip) - LONG $0x3cc48341 // addl $60, %r12d - LONG $0x00002ee9; BYTE $0x00 // jmp LBB9_31, $46(%rip) - -LBB9_27: - LONG $0x00fc8141; WORD $0x0004; BYTE $0x00 // cmpl $1024, %r12d - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - LONG $0x03838f0f; WORD $0x0000 // jg LBB9_66, $899(%rip) - WORD $0xff41; BYTE $0xcc // decl %r12d - WORD $0x8945; BYTE $0xe6 // movl %r12d, %r14d - LONG $0x000026e9; BYTE $0x00 // jmp LBB9_32, $38(%rip) - -LBB9_29: - LONG $0xfc02be41; WORD $0xffff // movl $-1022, %r14d - LONG $0x000033e9; BYTE $0x00 // jmp LBB9_34, $51(%rip) - -LBB9_30: - LONG $0xfdc48141; WORD $0x0003; BYTE $0x00 // addl $1021, %r12d - -LBB9_31: - WORD $0xf741; BYTE $0xdc // negl %r12d - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - WORD $0x8944; BYTE $0xe6 // movl %r12d, %esi - LONG $0x0060e0e8; BYTE $0x00 // callq _right_shift, $24800(%rip) - LONG $0xfc02be41; WORD $0xffff // movl $-1022, %r14d - -LBB9_32: - LONG $0x107f8341; BYTE $0x00 // cmpl $0, $16(%r15) - LONG $0x000d840f; WORD $0x0000 // je LBB9_34, $13(%rip) - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - LONG $0x000035be; BYTE $0x00 // movl $53, %esi - LONG $0x005ed2e8; BYTE $0x00 // callq _left_shift, $24274(%rip) - -LBB9_34: - LONG $0x14478b41 // movl $20(%r15), %eax - LONG $0xffc4c749; WORD $0xffff; BYTE $0xff // movq $-1, %r12 - WORD $0xf883; BYTE $0x14 // cmpl $20, %eax - LONG $0x033e8f0f; WORD $0x0000 // jg LBB9_68, $830(%rip) - WORD $0xc085 // testl %eax, %eax - LONG $0x00548e0f; WORD $0x0000 // jle LBB9_40, $84(%rip) - LONG $0x10578b41 // movl $16(%r15), %edx - WORD $0xf631 // xorl %esi, %esi - WORD $0xd285 // testl %edx, %edx - WORD $0x480f; BYTE $0xd6 // cmovsl %esi, %edx - LONG $0xff488d4c // leaq $-1(%rax), %r9 - WORD $0x3949; BYTE $0xd1 // cmpq %rdx, %r9 - LONG $0xca430f44 // cmovael %edx, %r9d - LONG $0x01418d45 // leal $1(%r9), %r8d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB9_37: - WORD $0x3948; BYTE $0xf2 // cmpq %rsi, %rdx - LONG $0x002b840f; WORD $0x0000 // je LBB9_41, $43(%rip) - LONG $0xa43c8d4b // leaq (%r12,%r12,4), %rdi - WORD $0x8b49; BYTE $0x0f // movq (%r15), %rcx - LONG $0x0cbe0f48; BYTE $0x31 // movsbq (%rcx,%rsi), %rcx - LONG $0x79648d4c; BYTE $0xd0 // leaq $-48(%rcx,%rdi,2), %r12 - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x3948; BYTE $0xf0 // cmpq %rsi, %rax - LONG $0xffda850f; WORD $0xffff // jne LBB9_37, $-38(%rip) - WORD $0x8945; BYTE $0xc1 // movl %r8d, %r9d - LONG $0x000006e9; BYTE $0x00 // jmp LBB9_41, $6(%rip) - -LBB9_40: - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - -LBB9_41: - WORD $0x3944; BYTE $0xc8 // cmpl %r9d, %eax - LONG $0x02428e0f; WORD $0x0000 // jle LBB9_54, $578(%rip) - WORD $0xc289 // movl %eax, %edx - WORD $0x2944; BYTE $0xca // subl %r9d, %edx - WORD $0xfa83; BYTE $0x10 // cmpl $16, %edx - LONG $0x0220820f; WORD $0x0000 // jb LBB9_52, $544(%rip) - WORD $0x8941; BYTE $0xd0 // movl %edx, %r8d - QUAD $0xfffffd2a056ff9c5 // vmovdqa $-726(%rip), %xmm0 /* LCPI9_0(%rip) */ - LONG $0x22f9c3c4; WORD $0x00c4 // vpinsrq $0, %r12, %xmm0, %xmm0 - LONG $0xf0e08341 // andl $-16, %r8d - QUAD $0xfffd1605027de3c4; WORD $0xf0ff // vpblendd $240, $-746(%rip), %ymm0, %ymm0 /* LCPI9_0(%rip) */ - LONG $0xf0488d41 // leal $-16(%r8), %ecx - WORD $0xcf89 // movl %ecx, %edi - WORD $0xefc1; BYTE $0x04 // shrl $4, %edi - WORD $0xc7ff // incl %edi - WORD $0xfe89 // movl %edi, %esi - WORD $0xe683; BYTE $0x03 // andl $3, %esi - WORD $0xf983; BYTE $0x30 // cmpl $48, %ecx - LONG $0x0016830f; WORD $0x0000 // jae LBB9_45, $22(%rip) - QUAD $0xfffd1415597de2c4; BYTE $0xff // vpbroadcastq $-748(%rip), %ymm2 /* LCPI9_1(%rip) */ - LONG $0xda6ffdc5 // vmovdqa %ymm2, %ymm3 - LONG $0xca6ffdc5 // vmovdqa %ymm2, %ymm1 - LONG $0x000088e9; BYTE $0x00 // jmp LBB9_47, $136(%rip) - -LBB9_45: - WORD $0xe783; BYTE $0xfc // andl $-4, %edi - WORD $0xdff7 // negl %edi - QUAD $0xfffcf915597de2c4; BYTE $0xff // vpbroadcastq $-775(%rip), %ymm2 /* LCPI9_1(%rip) */ - QUAD $0xfffcf825597de2c4; BYTE $0xff // vpbroadcastq $-776(%rip), %ymm4 /* LCPI9_2(%rip) */ - LONG $0xda6ffdc5 // vmovdqa %ymm2, %ymm3 - LONG $0xca6ffdc5 // vmovdqa %ymm2, %ymm1 - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB9_46: - LONG $0xecf4fdc5 // vpmuludq %ymm4, %ymm0, %ymm5 - LONG $0xd073fdc5; BYTE $0x20 // vpsrlq $32, %ymm0, %ymm0 - LONG $0xc4f4fdc5 // vpmuludq %ymm4, %ymm0, %ymm0 - LONG $0xf073fdc5; BYTE $0x20 // vpsllq $32, %ymm0, %ymm0 - LONG $0xc0d4d5c5 // vpaddq %ymm0, %ymm5, %ymm0 - LONG $0xecf4edc5 // vpmuludq %ymm4, %ymm2, %ymm5 - LONG $0xd273edc5; BYTE $0x20 // vpsrlq $32, %ymm2, %ymm2 - LONG $0xd4f4edc5 // vpmuludq %ymm4, %ymm2, %ymm2 - LONG $0xf273edc5; BYTE $0x20 // vpsllq $32, %ymm2, %ymm2 - LONG $0xd2d4d5c5 // vpaddq %ymm2, %ymm5, %ymm2 - LONG $0xecf4e5c5 // vpmuludq %ymm4, %ymm3, %ymm5 - LONG $0xd373e5c5; BYTE $0x20 // vpsrlq $32, %ymm3, %ymm3 - LONG $0xdcf4e5c5 // vpmuludq %ymm4, %ymm3, %ymm3 - LONG $0xf373e5c5; BYTE $0x20 // vpsllq $32, %ymm3, %ymm3 - LONG $0xdbd4d5c5 // vpaddq %ymm3, %ymm5, %ymm3 - LONG $0xecf4f5c5 // vpmuludq %ymm4, %ymm1, %ymm5 - LONG $0xd173f5c5; BYTE $0x20 // vpsrlq $32, %ymm1, %ymm1 - LONG $0xccf4f5c5 // vpmuludq %ymm4, %ymm1, %ymm1 - LONG $0xf173f5c5; BYTE $0x20 // vpsllq $32, %ymm1, %ymm1 - LONG $0xc9d4d5c5 // vpaddq %ymm1, %ymm5, %ymm1 - WORD $0xc783; BYTE $0x04 // addl $4, %edi - LONG $0xff9f850f; WORD $0xffff // jne LBB9_46, $-97(%rip) - -LBB9_47: - WORD $0xf685 // testl %esi, %esi - LONG $0x0077840f; WORD $0x0000 // je LBB9_50, $119(%rip) - WORD $0xdef7 // negl %esi - QUAD $0xfffc7c25597de2c4; BYTE $0xff // vpbroadcastq $-900(%rip), %ymm4 /* LCPI9_3(%rip) */ - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB9_49: - LONG $0xecf4fdc5 // vpmuludq %ymm4, %ymm0, %ymm5 - LONG $0xd073fdc5; BYTE $0x20 // vpsrlq $32, %ymm0, %ymm0 - LONG $0xc4f4fdc5 // vpmuludq %ymm4, %ymm0, %ymm0 - LONG $0xf073fdc5; BYTE $0x20 // vpsllq $32, %ymm0, %ymm0 - LONG $0xc0d4d5c5 // vpaddq %ymm0, %ymm5, %ymm0 - LONG $0xecf4edc5 // vpmuludq %ymm4, %ymm2, %ymm5 - LONG $0xd273edc5; BYTE $0x20 // vpsrlq $32, %ymm2, %ymm2 - LONG $0xd4f4edc5 // vpmuludq %ymm4, %ymm2, %ymm2 - LONG $0xf273edc5; BYTE $0x20 // vpsllq $32, %ymm2, %ymm2 - LONG $0xd2d4d5c5 // vpaddq %ymm2, %ymm5, %ymm2 - LONG $0xecf4e5c5 // vpmuludq %ymm4, %ymm3, %ymm5 - LONG $0xd373e5c5; BYTE $0x20 // vpsrlq $32, %ymm3, %ymm3 - LONG $0xdcf4e5c5 // vpmuludq %ymm4, %ymm3, %ymm3 - LONG $0xf373e5c5; BYTE $0x20 // vpsllq $32, %ymm3, %ymm3 - LONG $0xdbd4d5c5 // vpaddq %ymm3, %ymm5, %ymm3 - LONG $0xecf4f5c5 // vpmuludq %ymm4, %ymm1, %ymm5 - LONG $0xd173f5c5; BYTE $0x20 // vpsrlq $32, %ymm1, %ymm1 - LONG $0xccf4f5c5 // vpmuludq %ymm4, %ymm1, %ymm1 - LONG $0xf173f5c5; BYTE $0x20 // vpsllq $32, %ymm1, %ymm1 - LONG $0xc9d4d5c5 // vpaddq %ymm1, %ymm5, %ymm1 - WORD $0xc6ff // incl %esi - LONG $0xffa0850f; WORD $0xffff // jne LBB9_49, $-96(%rip) - -LBB9_50: - LONG $0xd273ddc5; BYTE $0x20 // vpsrlq $32, %ymm2, %ymm4 - LONG $0xe0f4ddc5 // vpmuludq %ymm0, %ymm4, %ymm4 - LONG $0xd073d5c5; BYTE $0x20 // vpsrlq $32, %ymm0, %ymm5 - LONG $0xedf4edc5 // vpmuludq %ymm5, %ymm2, %ymm5 - LONG $0xe4d4d5c5 // vpaddq %ymm4, %ymm5, %ymm4 - LONG $0xf473ddc5; BYTE $0x20 // vpsllq $32, %ymm4, %ymm4 - LONG $0xc0f4edc5 // vpmuludq %ymm0, %ymm2, %ymm0 - LONG $0xc4d4fdc5 // vpaddq %ymm4, %ymm0, %ymm0 - LONG $0xd373edc5; BYTE $0x20 // vpsrlq $32, %ymm3, %ymm2 - LONG $0xd0f4edc5 // vpmuludq %ymm0, %ymm2, %ymm2 - LONG $0xd073ddc5; BYTE $0x20 // vpsrlq $32, %ymm0, %ymm4 - LONG $0xe4f4e5c5 // vpmuludq %ymm4, %ymm3, %ymm4 - LONG $0xd2d4ddc5 // vpaddq %ymm2, %ymm4, %ymm2 - LONG $0xf273edc5; BYTE $0x20 // vpsllq $32, %ymm2, %ymm2 - LONG $0xc0f4e5c5 // vpmuludq %ymm0, %ymm3, %ymm0 - LONG $0xc2d4fdc5 // vpaddq %ymm2, %ymm0, %ymm0 - LONG $0xd173edc5; BYTE $0x20 // vpsrlq $32, %ymm1, %ymm2 - LONG $0xd0f4edc5 // vpmuludq %ymm0, %ymm2, %ymm2 - LONG $0xd073e5c5; BYTE $0x20 // vpsrlq $32, %ymm0, %ymm3 - LONG $0xdbf4f5c5 // vpmuludq %ymm3, %ymm1, %ymm3 - LONG $0xd2d4e5c5 // vpaddq %ymm2, %ymm3, %ymm2 - LONG $0xf273edc5; BYTE $0x20 // vpsllq $32, %ymm2, %ymm2 - LONG $0xc0f4f5c5 // vpmuludq %ymm0, %ymm1, %ymm0 - LONG $0xc2d4fdc5 // vpaddq %ymm2, %ymm0, %ymm0 - LONG $0x397de3c4; WORD $0x01c1 // vextracti128 $1, %ymm0, %xmm1 - LONG $0xd073e9c5; BYTE $0x20 // vpsrlq $32, %xmm0, %xmm2 - LONG $0xd1f4e9c5 // vpmuludq %xmm1, %xmm2, %xmm2 - LONG $0xd173e1c5; BYTE $0x20 // vpsrlq $32, %xmm1, %xmm3 - LONG $0xdbf4f9c5 // vpmuludq %xmm3, %xmm0, %xmm3 - LONG $0xd2d4e1c5 // vpaddq %xmm2, %xmm3, %xmm2 - LONG $0xf273e9c5; BYTE $0x20 // vpsllq $32, %xmm2, %xmm2 - LONG $0xc1f4f9c5 // vpmuludq %xmm1, %xmm0, %xmm0 - LONG $0xc2d4f9c5 // vpaddq %xmm2, %xmm0, %xmm0 - LONG $0xc870f9c5; BYTE $0x4e // vpshufd $78, %xmm0, %xmm1 - LONG $0xd073e9c5; BYTE $0x20 // vpsrlq $32, %xmm0, %xmm2 - LONG $0xd1f4e9c5 // vpmuludq %xmm1, %xmm2, %xmm2 - LONG $0xd873e1c5; BYTE $0x0c // vpsrldq $12, %xmm0, %xmm3 - LONG $0xdbf4f9c5 // vpmuludq %xmm3, %xmm0, %xmm3 - LONG $0xd2d4e1c5 // vpaddq %xmm2, %xmm3, %xmm2 - LONG $0xf273e9c5; BYTE $0x20 // vpsllq $32, %xmm2, %xmm2 - LONG $0xc1f4f9c5 // vpmuludq %xmm1, %xmm0, %xmm0 - LONG $0xc2d4f9c5 // vpaddq %xmm2, %xmm0, %xmm0 - LONG $0x7ef9c1c4; BYTE $0xc4 // vmovq %xmm0, %r12 - WORD $0x3944; BYTE $0xc2 // cmpl %r8d, %edx - LONG $0x0017840f; WORD $0x0000 // je LBB9_54, $23(%rip) - WORD $0x0145; BYTE $0xc1 // addl %r8d, %r9d - -LBB9_52: - WORD $0xc289 // movl %eax, %edx - WORD $0x2944; BYTE $0xca // subl %r9d, %edx - - // .p2align 4, 0x90 -LBB9_53: - WORD $0x014d; BYTE $0xe4 // addq %r12, %r12 - LONG $0xa4248d4f // leaq (%r12,%r12,4), %r12 - WORD $0xcaff // decl %edx - LONG $0xfff1850f; WORD $0xffff // jne LBB9_53, $-15(%rip) - -LBB9_54: - WORD $0xc085 // testl %eax, %eax - LONG $0x0049880f; WORD $0x0000 // js LBB9_62, $73(%rip) - LONG $0x10778b41 // movl $16(%r15), %esi - WORD $0xc639 // cmpl %eax, %esi - LONG $0x003d8e0f; WORD $0x0000 // jle LBB9_62, $61(%rip) - WORD $0x8b49; BYTE $0x17 // movq (%r15), %rdx - WORD $0x0c8a; BYTE $0x02 // movb (%rdx,%rax), %cl - WORD $0x788d; BYTE $0x01 // leal $1(%rax), %edi - WORD $0xf739 // cmpl %esi, %edi - LONG $0x00c1850f; WORD $0x0000 // jne LBB9_63, $193(%rip) - WORD $0xf980; BYTE $0x35 // cmpb $53, %cl - LONG $0x00b8850f; WORD $0x0000 // jne LBB9_63, $184(%rip) - LONG $0x1c7f8341; BYTE $0x00 // cmpl $0, $28(%r15) - WORD $0x950f; BYTE $0xc1 // setne %cl - LONG $0x0017850f; WORD $0x0000 // jne LBB9_64, $23(%rip) - WORD $0xc085 // testl %eax, %eax - LONG $0x000f8e0f; WORD $0x0000 // jle LBB9_64, $15(%rip) - WORD $0xc8ff // decl %eax - WORD $0x0c8a; BYTE $0x02 // movb (%rdx,%rax), %cl - WORD $0xe180; BYTE $0x01 // andb $1, %cl - LONG $0x000002e9; BYTE $0x00 // jmp LBB9_64, $2(%rip) - -LBB9_62: - WORD $0xc931 // xorl %ecx, %ecx - -LBB9_64: - WORD $0xb60f; BYTE $0xc1 // movzbl %cl, %eax - WORD $0x0149; BYTE $0xc4 // addq %rax, %r12 - QUAD $0x000000000000b848; WORD $0x0020 // movabsq $9007199254740992, %rax - WORD $0x3949; BYTE $0xc4 // cmpq %rax, %r12 - LONG $0x0025850f; WORD $0x0000 // jne LBB9_68, $37(%rip) - LONG $0xfefe8141; WORD $0x0003; BYTE $0x00 // cmpl $1022, %r14d - LONG $0x00128e0f; WORD $0x0000 // jle LBB9_67, $18(%rip) - -LBB9_66: - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - QUAD $0x000000000000be49; WORD $0x7ff0 // movabsq $9218868437227405312, %r14 - LONG $0x000025e9; BYTE $0x00 // jmp LBB9_69, $37(%rip) - -LBB9_67: - WORD $0xff41; BYTE $0xc6 // incl %r14d - WORD $0x894d; BYTE $0xec // movq %r13, %r12 - -LBB9_68: - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - WORD $0x214c; BYTE $0xe8 // andq %r13, %rax - LONG $0xffc68141; WORD $0x0003; BYTE $0x00 // addl $1023, %r14d - LONG $0xffe68141; WORD $0x0007; BYTE $0x00 // andl $2047, %r14d - LONG $0x34e6c149 // shlq $52, %r14 - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xf0440f4c // cmoveq %rax, %r14 - -LBB9_69: - WORD $0xff49; BYTE $0xcd // decq %r13 - WORD $0x214d; BYTE $0xe5 // andq %r12, %r13 - WORD $0x094d; BYTE $0xf5 // orq %r14, %r13 - QUAD $0x000000000000b848; WORD $0x8000 // movabsq $-9223372036854775808, %rax - WORD $0x094c; BYTE $0xe8 // orq %r13, %rax - LONG $0x187f8341; BYTE $0x00 // cmpl $0, $24(%r15) - LONG $0xc5440f49 // cmoveq %r13, %rax - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - WORD $0xc031 // xorl %eax, %eax - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB9_63: - WORD $0xf980; BYTE $0x34 // cmpb $52, %cl - WORD $0x9f0f; BYTE $0xc1 // setg %cl - LONG $0xffff62e9; BYTE $0xff // jmp LBB9_64, $-158(%rip) - - // .p2align 4, 0x90 -_atof_native: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - LONG $0x30ec8348 // subq $48, %rsp - QUAD $0x00000000d845c748 // movq $0, $-40(%rbp) - LONG $0xe0558948 // movq %rdx, $-32(%rbp) - LONG $0xe84d8948 // movq %rcx, $-24(%rbp) - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x0044840f; WORD $0x0000 // je LBB10_5, $68(%rip) - WORD $0x02c6; BYTE $0x00 // movb $0, (%rdx) - LONG $0x01f98348 // cmpq $1, %rcx - LONG $0x0037840f; WORD $0x0000 // je LBB10_5, $55(%rip) - LONG $0x000142c6 // movb $0, $1(%rdx) - LONG $0xe87d8348; BYTE $0x03 // cmpq $3, $-24(%rbp) - LONG $0x0028820f; WORD $0x0000 // jb LBB10_5, $40(%rip) - LONG $0x000002b8; BYTE $0x00 // movl $2, %eax - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB10_4: - LONG $0xe04d8b48 // movq $-32(%rbp), %rcx - LONG $0x000104c6 // movb $0, (%rcx,%rax) - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0xe8453948 // cmpq %rax, $-24(%rbp) - LONG $0xffeb870f; WORD $0xffff // ja LBB10_4, $-21(%rip) - -LBB10_5: - LONG $0xc057f8c5 // vxorps %xmm0, %xmm0, %xmm0 - LONG $0x4511f8c5; BYTE $0xf0 // vmovups %xmm0, $-16(%rbp) - WORD $0x3f80; BYTE $0x2d // cmpb $45, (%rdi) - LONG $0x0021850f; WORD $0x0000 // jne LBB10_8, $33(%rip) - LONG $0x01f845c7; WORD $0x0000; BYTE $0x00 // movl $1, $-8(%rbp) - LONG $0x000001b8; BYTE $0x00 // movl $1, %eax - WORD $0x3948; BYTE $0xf0 // cmpq %rsi, %rax - LONG $0x00178c0f; WORD $0x0000 // jl LBB10_9, $23(%rip) - -LBB10_7: - LONG $0x00f445c7; WORD $0x0000; BYTE $0x00 // movl $0, $-12(%rbp) - LONG $0x0001a1e9; BYTE $0x00 // jmp LBB10_39, $417(%rip) - -LBB10_8: - WORD $0xc031 // xorl %eax, %eax - WORD $0x3948; BYTE $0xf0 // cmpq %rsi, %rax - LONG $0xffe98d0f; WORD $0xffff // jge LBB10_7, $-23(%rip) - -LBB10_9: - WORD $0xb341; BYTE $0x01 // movb $1, %r11b - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - LONG $0x00001fe9; BYTE $0x00 // jmp LBB10_13, $31(%rip) - -LBB10_21: - LONG $0x01fc45c7; WORD $0x0000; BYTE $0x00 // movl $1, $-4(%rbp) - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB10_12: - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x3948; BYTE $0xf0 // cmpq %rsi, %rax - LONG $0xc39c0f41 // setl %r11b - WORD $0x3948; BYTE $0xc6 // cmpq %rax, %rsi - LONG $0x0090840f; WORD $0x0000 // je LBB10_23, $144(%rip) - -LBB10_13: - LONG $0x070cb60f // movzbl (%rdi,%rax), %ecx - WORD $0x518d; BYTE $0xd0 // leal $-48(%rcx), %edx - WORD $0xfa80; BYTE $0x09 // cmpb $9, %dl - LONG $0x002d870f; WORD $0x0000 // ja LBB10_18, $45(%rip) - WORD $0xf980; BYTE $0x30 // cmpb $48, %cl - LONG $0x0044850f; WORD $0x0000 // jne LBB10_20, $68(%rip) - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x0063840f; WORD $0x0000 // je LBB10_22, $99(%rip) - WORD $0x634d; BYTE $0xd9 // movslq %r9d, %r11 - LONG $0xe85d394c // cmpq %r11, $-24(%rbp) - LONG $0x003b870f; WORD $0x0000 // ja LBB10_10, $59(%rip) - LONG $0x000049e9; BYTE $0x00 // jmp LBB10_11, $73(%rip) - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB10_18: - WORD $0xf980; BYTE $0x2e // cmpb $46, %cl - LONG $0x009b850f; WORD $0x0000 // jne LBB10_30, $155(%rip) - LONG $0xf4558944 // movl %r10d, $-12(%rbp) - LONG $0x0001b841; WORD $0x0000 // movl $1, %r8d - LONG $0xffff98e9; BYTE $0xff // jmp LBB10_12, $-104(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB10_20: - WORD $0x634d; BYTE $0xda // movslq %r10d, %r11 - LONG $0xe85d394c // cmpq %r11, $-24(%rbp) - LONG $0xff77860f; WORD $0xffff // jbe LBB10_21, $-137(%rip) - -LBB10_10: - LONG $0xe0558b48 // movq $-32(%rbp), %rdx - LONG $0x1a0c8842 // movb %cl, (%rdx,%r11) - LONG $0xf04d8b44 // movl $-16(%rbp), %r9d - WORD $0xff41; BYTE $0xc1 // incl %r9d - LONG $0xf04d8944 // movl %r9d, $-16(%rbp) - -LBB10_11: - WORD $0x8945; BYTE $0xca // movl %r9d, %r10d - LONG $0xffff68e9; BYTE $0xff // jmp LBB10_12, $-152(%rip) - -LBB10_22: - WORD $0x4dff; BYTE $0xf4 // decl $-12(%rbp) - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - LONG $0xffff5de9; BYTE $0xff // jmp LBB10_12, $-163(%rip) - -LBB10_23: - WORD $0xf189 // movl %esi, %ecx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0x0004850f; WORD $0x0000 // jne LBB10_25, $4(%rip) - -LBB10_24: - LONG $0xf44d8944 // movl %r9d, $-12(%rbp) - -LBB10_25: - LONG $0x01c3f641 // testb $1, %r11b - LONG $0x00ba840f; WORD $0x0000 // je LBB10_39, $186(%rip) - WORD $0x0c8a; BYTE $0x0f // movb (%rdi,%rcx), %cl - WORD $0xc980; BYTE $0x20 // orb $32, %cl - WORD $0xf980; BYTE $0x65 // cmpb $101, %cl - LONG $0x00ab850f; WORD $0x0000 // jne LBB10_39, $171(%rip) - WORD $0xc289 // movl %eax, %edx - LONG $0x01174c8a // movb $1(%rdi,%rdx), %cl - WORD $0xf980; BYTE $0x2d // cmpb $45, %cl - LONG $0x0028840f; WORD $0x0000 // je LBB10_31, $40(%rip) - LONG $0x0001b841; WORD $0x0000 // movl $1, %r8d - WORD $0xf980; BYTE $0x2b // cmpb $43, %cl - LONG $0x0038850f; WORD $0x0000 // jne LBB10_33, $56(%rip) - WORD $0xc083; BYTE $0x02 // addl $2, %eax - LONG $0x00001ae9; BYTE $0x00 // jmp LBB10_32, $26(%rip) - -LBB10_30: - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0xffb5850f; WORD $0xffff // jne LBB10_25, $-75(%rip) - LONG $0xfffface9; BYTE $0xff // jmp LBB10_24, $-84(%rip) - -LBB10_31: - WORD $0xc083; BYTE $0x02 // addl $2, %eax - LONG $0xffffb841; WORD $0xffff // movl $-1, %r8d - -LBB10_32: - WORD $0xc289 // movl %eax, %edx - WORD $0x6348; BYTE $0xd2 // movslq %edx, %rdx - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x3948; BYTE $0xf2 // cmpq %rsi, %rdx - LONG $0x00178c0f; WORD $0x0000 // jl LBB10_34, $23(%rip) - LONG $0x00004de9; BYTE $0x00 // jmp LBB10_38, $77(%rip) - -LBB10_33: - WORD $0xff48; BYTE $0xc2 // incq %rdx - WORD $0x6348; BYTE $0xd2 // movslq %edx, %rdx - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x3948; BYTE $0xf2 // cmpq %rsi, %rdx - LONG $0x003b8d0f; WORD $0x0000 // jge LBB10_38, $59(%rip) - -LBB10_34: - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB10_35: - LONG $0x0ff98141; WORD $0x0027; BYTE $0x00 // cmpl $9999, %r9d - LONG $0x00248f0f; WORD $0x0000 // jg LBB10_38, $36(%rip) - LONG $0x170cb60f // movzbl (%rdi,%rdx), %ecx - WORD $0x418d; BYTE $0xd0 // leal $-48(%rcx), %eax - WORD $0x093c // cmpb $9, %al - LONG $0x0015870f; WORD $0x0000 // ja LBB10_38, $21(%rip) - LONG $0x89048d43 // leal (%r9,%r9,4), %eax - LONG $0x414c8d44; BYTE $0xd0 // leal $-48(%rcx,%rax,2), %r9d - WORD $0xff48; BYTE $0xc2 // incq %rdx - WORD $0x3948; BYTE $0xd6 // cmpq %rdx, %rsi - LONG $0xffcf850f; WORD $0xffff // jne LBB10_35, $-49(%rip) - -LBB10_38: - LONG $0xc8af0f45 // imull %r8d, %r9d - LONG $0xf44d0144 // addl %r9d, $-12(%rbp) - -LBB10_39: - LONG $0xe07d8d48 // leaq $-32(%rbp), %rdi - LONG $0xd8758d48 // leaq $-40(%rbp), %rsi - LONG $0xfff80ae8; BYTE $0xff // callq _decimal_to_f64, $-2038(%rip) - LONG $0x4510fbc5; BYTE $0xd8 // vmovsd $-40(%rbp), %xmm0 - LONG $0x30c48348 // addq $48, %rsp - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_value: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x28ec8348 // subq $40, %rsp - WORD $0x894d; BYTE $0xc4 // movq %r8, %r12 - WORD $0x8949; BYTE $0xce // movq %rcx, %r14 - WORD $0x8948; BYTE $0xf3 // movq %rsi, %rbx - WORD $0x8949; BYTE $0xff // movq %rdi, %r15 - LONG $0xd0558948 // movq %rdx, $-48(%rbp) - LONG $0xb07d8948 // movq %rdi, $-80(%rbp) - LONG $0xb8758948 // movq %rsi, $-72(%rbp) - LONG $0xd0558d48 // leaq $-48(%rbp), %rdx - LONG $0x0005dee8; BYTE $0x00 // callq _advance_ns, $1502(%rip) - WORD $0xbe0f; BYTE $0xc0 // movsbl %al, %eax - WORD $0xf883; BYTE $0x7d // cmpl $125, %eax - LONG $0x00c3870f; WORD $0x0000 // ja LBB11_11, $195(%rip) - LONG $0xa70d8d48; WORD $0x0003; BYTE $0x00 // leaq $935(%rip), %rcx /* LJTI11_0(%rip) */ - LONG $0x81046348 // movslq (%rcx,%rax,4), %rax - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - JMP AX - -LBB11_2: - LONG $0xc875894c // movq %r14, $-56(%rbp) - LONG $0xd0758b4c // movq $-48(%rbp), %r14 - LONG $0xff6e8d4d // leaq $-1(%r14), %r13 - LONG $0xd06d894c // movq %r13, $-48(%rbp) - LONG $0x02c4f641 // testb $2, %r12b - LONG $0x001a850f; WORD $0x0000 // jne LBB11_4, $26(%rip) - LONG $0xb07d8d48 // leaq $-80(%rbp), %rdi - LONG $0xd0758d48 // leaq $-48(%rbp), %rsi - LONG $0xc8558b48 // movq $-56(%rbp), %rdx - LONG $0x000c87e8; BYTE $0x00 // callq _vnumber, $3207(%rip) - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - LONG $0x000355e9; BYTE $0x00 // jmp LBB11_58, $853(%rip) - -LBB11_4: - WORD $0xc031 // xorl %eax, %eax - LONG $0x2f3c8043; BYTE $0x2d // cmpb $45, (%r15,%r13) - LONG $0x2f248d4f // leaq (%r15,%r13), %r12 - WORD $0x940f; BYTE $0xc0 // sete %al - WORD $0x0149; BYTE $0xc4 // addq %rax, %r12 - WORD $0x2948; BYTE $0xc3 // subq %rax, %rbx - LONG $0x030a840f; WORD $0x0000 // je LBB11_53, $778(%rip) - WORD $0x3949; BYTE $0xdd // cmpq %rbx, %r13 - LONG $0x000e830f; WORD $0x0000 // jae LBB11_7, $14(%rip) - LONG $0x24048a41 // movb (%r12), %al - WORD $0xd004 // addb $-48, %al - WORD $0x0a3c // cmpb $10, %al - LONG $0x030c830f; WORD $0x0000 // jae LBB11_55, $780(%rip) - -LBB11_7: - WORD $0x894c; BYTE $0xe7 // movq %r12, %rdi - WORD $0x8948; BYTE $0xde // movq %rbx, %rsi - LONG $0x001fa2e8; BYTE $0x00 // callq _do_skip_number, $8098(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x02f2880f; WORD $0x0000 // js LBB11_54, $754(%rip) - WORD $0x0149; BYTE $0xc4 // addq %rax, %r12 - WORD $0x894c; BYTE $0xe3 // movq %r12, %rbx - WORD $0x294c; BYTE $0xfb // subq %r15, %rbx - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x02f38e0f; WORD $0x0000 // jle LBB11_57, $755(%rip) - LONG $0xc8458b48 // movq $-56(%rbp), %rax - LONG $0x0800c748; WORD $0x0000; BYTE $0x00 // movq $8, (%rax) - LONG $0x1868894c // movq %r13, $24(%rax) - LONG $0x0002e6e9; BYTE $0x00 // jmp LBB11_58, $742(%rip) - -LBB11_10: - LONG $0x0106c749; WORD $0x0000; BYTE $0x00 // movq $1, (%r14) - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - LONG $0x0002d6e9; BYTE $0x00 // jmp LBB11_58, $726(%rip) - -LBB11_11: - LONG $0xfe06c749; WORD $0xffff; BYTE $0xff // movq $-2, (%r14) - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - WORD $0xff48; BYTE $0xcb // decq %rbx - LONG $0x0002c3e9; BYTE $0x00 // jmp LBB11_58, $707(%rip) - -LBB11_12: - QUAD $0xffffffffc045c748 // movq $-1, $-64(%rbp) - LONG $0xd07d8b4c // movq $-48(%rbp), %r15 - LONG $0xb07d8d48 // leaq $-80(%rbp), %rdi - LONG $0xc0558d48 // leaq $-64(%rbp), %rdx - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - WORD $0x894c; BYTE $0xe1 // movq %r12, %rcx - LONG $0x00077de8; BYTE $0x00 // callq _advance_string, $1917(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x025e880f; WORD $0x0000 // js LBB11_47, $606(%rip) - LONG $0xd0458948 // movq %rax, $-48(%rbp) - LONG $0x107e894d // movq %r15, $16(%r14) - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - LONG $0xd14c0f48 // cmovlq %rcx, %rdx - LONG $0x18568949 // movq %rdx, $24(%r14) - LONG $0x000007b9; BYTE $0x00 // movl $7, %ecx - WORD $0x8949; BYTE $0x0e // movq %rcx, (%r14) - WORD $0x8948; BYTE $0xc3 // movq %rax, %rbx - LONG $0x00026de9; BYTE $0x00 // jmp LBB11_58, $621(%rip) - -LBB11_14: - WORD $0x8545; BYTE $0xe4 // testl %r12d, %r12d - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x00000bb9; BYTE $0x00 // movl $11, %ecx - LONG $0x0000e8e9; BYTE $0x00 // jmp LBB11_28, $232(%rip) - -LBB11_15: - WORD $0x8545; BYTE $0xe4 // testl %r12d, %r12d - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x00000ab9; BYTE $0x00 // movl $10, %ecx - LONG $0x0000d4e9; BYTE $0x00 // jmp LBB11_28, $212(%rip) - -LBB11_16: - LONG $0x0506c749; WORD $0x0000; BYTE $0x00 // movq $5, (%r14) - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - LONG $0x000235e9; BYTE $0x00 // jmp LBB11_58, $565(%rip) - -LBB11_17: - WORD $0x8545; BYTE $0xe4 // testl %r12d, %r12d - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x00000cb9; BYTE $0x00 // movl $12, %ecx - LONG $0x0000b0e9; BYTE $0x00 // jmp LBB11_28, $176(%rip) - -LBB11_18: - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - LONG $0xfc438d48 // leaq $-4(%rbx), %rax - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0x006d870f; WORD $0x0000 // ja LBB11_22, $109(%rip) - LONG $0x0f148b41 // movl (%r15,%rcx), %edx - LONG $0x6c61fa81; WORD $0x6573 // cmpl $1702063201, %edx - LONG $0x00cc850f; WORD $0x0000 // jne LBB11_31, $204(%rip) - LONG $0x04c18348 // addq $4, %rcx - LONG $0xd04d8948 // movq %rcx, $-48(%rbp) - LONG $0x000004b8; BYTE $0x00 // movl $4, %eax - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0x0001e8e9; BYTE $0x00 // jmp LBB11_58, $488(%rip) - -LBB11_21: - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - LONG $0xfd438d48 // leaq $-3(%rbx), %rax - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0x0034870f; WORD $0x0000 // ja LBB11_22, $52(%rip) - LONG $0x0f548b41; BYTE $0xff // movl $-1(%r15,%rcx), %edx - LONG $0x756efa81; WORD $0x6c6c // cmpl $1819047278, %edx - LONG $0x00d1850f; WORD $0x0000 // jne LBB11_35, $209(%rip) - LONG $0x03c18348 // addq $3, %rcx - LONG $0xd04d8948 // movq %rcx, $-48(%rbp) - LONG $0x000002b8; BYTE $0x00 // movl $2, %eax - LONG $0x000165e9; BYTE $0x00 // jmp LBB11_50, $357(%rip) - -LBB11_23: - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - LONG $0xfd438d48 // leaq $-3(%rbx), %rax - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0x004c860f; WORD $0x0000 // jbe LBB11_24, $76(%rip) - -LBB11_22: - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0x000190e9; BYTE $0x00 // jmp LBB11_58, $400(%rip) - -LBB11_26: - LONG $0x0606c749; WORD $0x0000; BYTE $0x00 // movq $6, (%r14) - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - LONG $0x000180e9; BYTE $0x00 // jmp LBB11_58, $384(%rip) - -LBB11_27: - WORD $0x8545; BYTE $0xe4 // testl %r12d, %r12d - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x00000db9; BYTE $0x00 // movl $13, %ecx - -LBB11_28: - LONG $0xc8490f48 // cmovnsq %rax, %rcx - WORD $0x8949; BYTE $0x0e // movq %rcx, (%r14) - LONG $0x1ffcc141 // sarl $31, %r12d - WORD $0xf741; BYTE $0xd4 // notl %r12d - WORD $0x6349; BYTE $0xdc // movslq %r12d, %rbx - LONG $0xd05d0348 // addq $-48(%rbp), %rbx - LONG $0x000157e9; BYTE $0x00 // jmp LBB11_58, $343(%rip) - -LBB11_24: - LONG $0x0f548b41; BYTE $0xff // movl $-1(%r15,%rcx), %edx - LONG $0x7274fa81; WORD $0x6575 // cmpl $1702195828, %edx - LONG $0x0097850f; WORD $0x0000 // jne LBB11_39, $151(%rip) - LONG $0x03c18348 // addq $3, %rcx - LONG $0xd04d8948 // movq %rcx, $-48(%rbp) - LONG $0x000003b8; BYTE $0x00 // movl $3, %eax - LONG $0x0000e5e9; BYTE $0x00 // jmp LBB11_50, $229(%rip) - -LBB11_31: - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - WORD $0xfa80; BYTE $0x61 // cmpb $97, %dl - LONG $0x00bb850f; WORD $0x0000 // jne LBB11_43, $187(%rip) - LONG $0x0f7c8041; WORD $0x6c01 // cmpb $108, $1(%r15,%rcx) - LONG $0x00ba850f; WORD $0x0000 // jne LBB11_44, $186(%rip) - LONG $0x0f7c8041; WORD $0x7302 // cmpb $115, $2(%r15,%rcx) - LONG $0x00c8850f; WORD $0x0000 // jne LBB11_45, $200(%rip) - LONG $0x03598d48 // leaq $3(%rcx), %rbx - LONG $0x04518d48 // leaq $4(%rcx), %rdx - LONG $0x0f7c8041; WORD $0x6503 // cmpb $101, $3(%r15,%rcx) - LONG $0xda440f48 // cmoveq %rdx, %rbx - LONG $0x0000b8e9; BYTE $0x00 // jmp LBB11_47, $184(%rip) - -LBB11_35: - LONG $0xff598d48 // leaq $-1(%rcx), %rbx - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - WORD $0xfa80; BYTE $0x6e // cmpb $110, %dl - LONG $0x0091850f; WORD $0x0000 // jne LBB11_51, $145(%rip) - LONG $0x0f3c8041; BYTE $0x75 // cmpb $117, (%r15,%rcx) - LONG $0x007f850f; WORD $0x0000 // jne LBB11_49, $127(%rip) - LONG $0x0f7c8041; WORD $0x6c01 // cmpb $108, $1(%r15,%rcx) - LONG $0x0070850f; WORD $0x0000 // jne LBB11_48, $112(%rip) - LONG $0x0f7c8041; WORD $0x6c02 // cmpb $108, $2(%r15,%rcx) - LONG $0x03518d48 // leaq $3(%rcx), %rdx - LONG $0x02498d48 // leaq $2(%rcx), %rcx - LONG $0xca440f48 // cmoveq %rdx, %rcx - LONG $0x00005ce9; BYTE $0x00 // jmp LBB11_49, $92(%rip) - -LBB11_39: - LONG $0xff598d48 // leaq $-1(%rcx), %rbx - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - WORD $0xfa80; BYTE $0x74 // cmpb $116, %dl - LONG $0x004b850f; WORD $0x0000 // jne LBB11_51, $75(%rip) - LONG $0x0f3c8041; BYTE $0x72 // cmpb $114, (%r15,%rcx) - LONG $0x0039850f; WORD $0x0000 // jne LBB11_49, $57(%rip) - LONG $0x0f7c8041; WORD $0x7501 // cmpb $117, $1(%r15,%rcx) - LONG $0x002a850f; WORD $0x0000 // jne LBB11_48, $42(%rip) - LONG $0x0f7c8041; WORD $0x6502 // cmpb $101, $2(%r15,%rcx) - LONG $0x03518d48 // leaq $3(%rcx), %rdx - LONG $0x02498d48 // leaq $2(%rcx), %rcx - LONG $0xca440f48 // cmoveq %rdx, %rcx - LONG $0x000016e9; BYTE $0x00 // jmp LBB11_49, $22(%rip) - -LBB11_43: - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0x00005ee9; BYTE $0x00 // jmp LBB11_58, $94(%rip) - -LBB11_44: - WORD $0xff48; BYTE $0xc1 // incq %rcx - LONG $0x000016e9; BYTE $0x00 // jmp LBB11_46, $22(%rip) - -LBB11_48: - WORD $0xff48; BYTE $0xc1 // incq %rcx - -LBB11_49: - LONG $0xd04d8948 // movq %rcx, $-48(%rbp) - -LBB11_50: - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - -LBB11_51: - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0x000044e9; BYTE $0x00 // jmp LBB11_58, $68(%rip) - -LBB11_45: - LONG $0x02c18348 // addq $2, %rcx - -LBB11_46: - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - -LBB11_47: - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0x000031e9; BYTE $0x00 // jmp LBB11_58, $49(%rip) - -LBB11_53: - WORD $0x294d; BYTE $0xfc // subq %r15, %r12 - LONG $0xd065894c // movq %r12, $-48(%rbp) - LONG $0xffc5c749; WORD $0xffff; BYTE $0xff // movq $-1, %r13 - LONG $0x000014e9; BYTE $0x00 // jmp LBB11_56, $20(%rip) - -LBB11_54: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0149; BYTE $0xc4 // addq %rax, %r12 - -LBB11_55: - WORD $0x294d; BYTE $0xfc // subq %r15, %r12 - LONG $0xd065894c // movq %r12, $-48(%rbp) - LONG $0xfec5c749; WORD $0xffff; BYTE $0xff // movq $-2, %r13 - -LBB11_56: - WORD $0x894c; BYTE $0xe3 // movq %r12, %rbx - -LBB11_57: - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x894c; BYTE $0x28 // movq %r13, (%rax) - -LBB11_58: - WORD $0x8948; BYTE $0xd8 // movq %rbx, %rax - LONG $0x28c48348 // addq $40, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - WORD $0x9090; BYTE $0x90 // .p2align 2, 0x90 - - // .set L11_0_set_10, LBB11_10-LJTI11_0 - // .set L11_0_set_11, LBB11_11-LJTI11_0 - // .set L11_0_set_12, LBB11_12-LJTI11_0 - // .set L11_0_set_14, LBB11_14-LJTI11_0 - // .set L11_0_set_2, LBB11_2-LJTI11_0 - // .set L11_0_set_15, LBB11_15-LJTI11_0 - // .set L11_0_set_16, LBB11_16-LJTI11_0 - // .set L11_0_set_17, LBB11_17-LJTI11_0 - // .set L11_0_set_18, LBB11_18-LJTI11_0 - // .set L11_0_set_21, LBB11_21-LJTI11_0 - // .set L11_0_set_23, LBB11_23-LJTI11_0 - // .set L11_0_set_26, LBB11_26-LJTI11_0 - // .set L11_0_set_27, LBB11_27-LJTI11_0 -LJTI11_0: - LONG $0xfffffd05 // .long L11_0_set_10 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd28 // .long L11_0_set_12 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd7e // .long L11_0_set_14 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffc62 // .long L11_0_set_2 - LONG $0xfffffd92 // .long L11_0_set_15 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffda6 // .long L11_0_set_16 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffdb6 // .long L11_0_set_17 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffdca // .long L11_0_set_18 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffe03 // .long L11_0_set_21 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffe37 // .long L11_0_set_23 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffe5b // .long L11_0_set_26 - LONG $0xfffffd15 // .long L11_0_set_11 - LONG $0xfffffe6b // .long L11_0_set_27 - QUAD $0x0000000000000000; LONG $0x00000000 // .p2align 5, 0x00 - -LCPI12_0: - BYTE $0x20 // .byte 32 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x09 // .byte 9 - BYTE $0x0a // .byte 10 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x0d // .byte 13 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x20 // .byte 32 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x09 // .byte 9 - BYTE $0x0a // .byte 10 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x0d // .byte 13 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - - // .p2align 4, 0x90 -_advance_ns: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x8b4c; BYTE $0x02 // movq (%rdx), %r8 - WORD $0x3949; BYTE $0xf0 // cmpq %rsi, %r8 - LONG $0x0026830f; WORD $0x0000 // jae LBB12_6, $38(%rip) - LONG $0x07048a42 // movb (%rdi,%r8), %al - WORD $0x0d3c // cmpb $13, %al - LONG $0x001a840f; WORD $0x0000 // je LBB12_6, $26(%rip) - WORD $0x203c // cmpb $32, %al - LONG $0x0012840f; WORD $0x0000 // je LBB12_6, $18(%rip) - WORD $0xf704 // addb $-9, %al - WORD $0x013c // cmpb $1, %al - LONG $0x0008860f; WORD $0x0000 // jbe LBB12_6, $8(%rip) - WORD $0x894d; BYTE $0xc2 // movq %r8, %r10 - LONG $0x00015be9; BYTE $0x00 // jmp LBB12_5, $347(%rip) - -LBB12_6: - LONG $0x01508d4d // leaq $1(%r8), %r10 - WORD $0x3949; BYTE $0xf2 // cmpq %rsi, %r10 - LONG $0x0022830f; WORD $0x0000 // jae LBB12_10, $34(%rip) - LONG $0x170c8a42 // movb (%rdi,%r10), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x0015840f; WORD $0x0000 // je LBB12_10, $21(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x000c840f; WORD $0x0000 // je LBB12_10, $12(%rip) - WORD $0xc180; BYTE $0xf7 // addb $-9, %cl - WORD $0xf980; BYTE $0x01 // cmpb $1, %cl - LONG $0x012c870f; WORD $0x0000 // ja LBB12_5, $300(%rip) - -LBB12_10: - LONG $0x02508d4d // leaq $2(%r8), %r10 - WORD $0x3949; BYTE $0xf2 // cmpq %rsi, %r10 - LONG $0x0022830f; WORD $0x0000 // jae LBB12_14, $34(%rip) - LONG $0x170c8a42 // movb (%rdi,%r10), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x0015840f; WORD $0x0000 // je LBB12_14, $21(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x000c840f; WORD $0x0000 // je LBB12_14, $12(%rip) - WORD $0xc180; BYTE $0xf7 // addb $-9, %cl - WORD $0xf980; BYTE $0x01 // cmpb $1, %cl - LONG $0x00fd870f; WORD $0x0000 // ja LBB12_5, $253(%rip) - -LBB12_14: - LONG $0x03508d4d // leaq $3(%r8), %r10 - WORD $0x3949; BYTE $0xf2 // cmpq %rsi, %r10 - LONG $0x0022830f; WORD $0x0000 // jae LBB12_18, $34(%rip) - LONG $0x170c8a42 // movb (%rdi,%r10), %cl - WORD $0xf980; BYTE $0x0d // cmpb $13, %cl - LONG $0x0015840f; WORD $0x0000 // je LBB12_18, $21(%rip) - WORD $0xf980; BYTE $0x20 // cmpb $32, %cl - LONG $0x000c840f; WORD $0x0000 // je LBB12_18, $12(%rip) - WORD $0xc180; BYTE $0xf7 // addb $-9, %cl - WORD $0xf980; BYTE $0x01 // cmpb $1, %cl - LONG $0x00ce870f; WORD $0x0000 // ja LBB12_5, $206(%rip) - -LBB12_18: - LONG $0x04c08349 // addq $4, %r8 - WORD $0x3949; BYTE $0xf0 // cmpq %rsi, %r8 - LONG $0x00a2830f; WORD $0x0000 // jae LBB12_19, $162(%rip) - LONG $0x07148d4e // leaq (%rdi,%r8), %r10 - WORD $0x8948; BYTE $0xf1 // movq %rsi, %rcx - WORD $0x294c; BYTE $0xc1 // subq %r8, %rcx - LONG $0x20f98348 // cmpq $32, %rcx - LONG $0x0039820f; WORD $0x0000 // jb LBB12_25, $57(%rip) - QUAD $0xfffffef4056ffdc5 // vmovdqa $-268(%rip), %ymm0 /* LCPI12_0(%rip) */ - LONG $0x90909090 // .p2align 4, 0x90 - -LBB12_22: - LONG $0x6f7ec1c4; BYTE $0x0a // vmovdqu (%r10), %ymm1 - LONG $0x007de2c4; BYTE $0xd1 // vpshufb %ymm1, %ymm0, %ymm2 - LONG $0xca74f5c5 // vpcmpeqb %ymm2, %ymm1, %ymm1 - LONG $0xc1d7fdc5 // vpmovmskb %ymm1, %eax - WORD $0xf883; BYTE $0xff // cmpl $-1, %eax - LONG $0x006f850f; WORD $0x0000 // jne LBB12_23, $111(%rip) - LONG $0x20c28349 // addq $32, %r10 - LONG $0xe0c18348 // addq $-32, %rcx - LONG $0x1ff98348 // cmpq $31, %rcx - LONG $0xffd3870f; WORD $0xffff // ja LBB12_22, $-45(%rip) - -LBB12_25: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x003b840f; WORD $0x0000 // je LBB12_32, $59(%rip) - LONG $0x0a048d4d // leaq (%r10,%rcx), %r8 - WORD $0xff49; BYTE $0xc2 // incq %r10 - QUAD $0x000100002600b949; WORD $0x0000 // movabsq $4294977024, %r9 - -LBB12_27: - LONG $0x42be0f41; BYTE $0xff // movsbl $-1(%r10), %eax - WORD $0xf883; BYTE $0x20 // cmpl $32, %eax - LONG $0x005f870f; WORD $0x0000 // ja LBB12_29, $95(%rip) - LONG $0xc1a30f49 // btq %rax, %r9 - LONG $0x0055830f; WORD $0x0000 // jae LBB12_29, $85(%rip) - WORD $0xff48; BYTE $0xc9 // decq %rcx - WORD $0xff49; BYTE $0xc2 // incq %r10 - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0xffd9850f; WORD $0xffff // jne LBB12_27, $-39(%rip) - WORD $0x894d; BYTE $0xc2 // movq %r8, %r10 - -LBB12_32: - WORD $0x2949; BYTE $0xfa // subq %rdi, %r10 - WORD $0x3949; BYTE $0xf2 // cmpq %rsi, %r10 - LONG $0x0024820f; WORD $0x0000 // jb LBB12_5, $36(%rip) - LONG $0x000044e9; BYTE $0x00 // jmp LBB12_34, $68(%rip) - -LBB12_19: - WORD $0x894c; BYTE $0x02 // movq %r8, (%rdx) - LONG $0x00003ce9; BYTE $0x00 // jmp LBB12_34, $60(%rip) - -LBB12_23: - WORD $0x2949; BYTE $0xfa // subq %rdi, %r10 - WORD $0xd0f7 // notl %eax - WORD $0x9848 // cltq - LONG $0xc0bc0f48 // bsfq %rax, %rax - WORD $0x0149; BYTE $0xc2 // addq %rax, %r10 - WORD $0x3949; BYTE $0xf2 // cmpq %rsi, %r10 - LONG $0x0025830f; WORD $0x0000 // jae LBB12_34, $37(%rip) - -LBB12_5: - LONG $0x01428d49 // leaq $1(%r10), %rax - WORD $0x8948; BYTE $0x02 // movq %rax, (%rdx) - LONG $0x17048a42 // movb (%rdi,%r10), %al - WORD $0xbe0f; BYTE $0xc0 // movsbl %al, %eax - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB12_29: - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0149; BYTE $0xc2 // addq %rax, %r10 - WORD $0x3949; BYTE $0xf2 // cmpq %rsi, %r10 - LONG $0xffdb820f; WORD $0xffff // jb LBB12_5, $-37(%rip) - -LBB12_34: - WORD $0xc031 // xorl %eax, %eax - WORD $0xbe0f; BYTE $0xc0 // movsbl %al, %eax - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - - // .p2align 4, 0x90 -_vstring: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x10ec8348 // subq $16, %rsp - WORD $0x8949; BYTE $0xd6 // movq %rdx, %r14 - WORD $0x8948; BYTE $0xf3 // movq %rsi, %rbx - WORD $0x8949; BYTE $0xff // movq %rdi, %r15 - QUAD $0xffffffffd845c748 // movq $-1, $-40(%rbp) - WORD $0x8b4c; BYTE $0x26 // movq (%rsi), %r12 - LONG $0xd8558d48 // leaq $-40(%rbp), %rdx - WORD $0x894c; BYTE $0xe6 // movq %r12, %rsi - LONG $0x0000b1e8; BYTE $0x00 // callq _advance_string, $177(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0027880f; WORD $0x0000 // js LBB13_1, $39(%rip) - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - LONG $0x1066894d // movq %r12, $16(%r14) - LONG $0xd84d8b48 // movq $-40(%rbp), %rcx - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xc14c0f48 // cmovlq %rcx, %rax - LONG $0x18468949 // movq %rax, $24(%r14) - LONG $0x000007b8; BYTE $0x00 // movl $7, %eax - LONG $0x000007e9; BYTE $0x00 // jmp LBB13_3, $7(%rip) - -LBB13_1: - LONG $0x084f8b49 // movq $8(%r15), %rcx - WORD $0x8948; BYTE $0x0b // movq %rcx, (%rbx) - -LBB13_3: - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0x10c48348 // addq $16, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; WORD $0x0000 // .p2align 5, 0x00 - -LCPI14_0: - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - -LCPI14_1: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - -LCPI14_2: - QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - - // .p2align 4, 0x90 -_advance_string: - WORD $0xc1f6; BYTE $0x20 // testb $32, %cl - LONG $0x0005850f; WORD $0x0000 // jne LBB14_2, $5(%rip) - LONG $0x0053f2e9; BYTE $0x00 // jmp _advance_string_default, $21490(%rip) - -LBB14_2: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - LONG $0x087f8b4c // movq $8(%rdi), %r15 - WORD $0x2949; BYTE $0xf7 // subq %rsi, %r15 - LONG $0x03d6840f; WORD $0x0000 // je LBB14_21, $982(%rip) - WORD $0x8b4c; BYTE $0x1f // movq (%rdi), %r11 - WORD $0x014c; BYTE $0xde // addq %r11, %rsi - LONG $0xff02c748; WORD $0xffff; BYTE $0xff // movq $-1, (%rdx) - LONG $0x40ff8349 // cmpq $64, %r15 - LONG $0x01b4820f; WORD $0x0000 // jb LBB14_22, $436(%rip) - QUAD $0xffffffffd045c748 // movq $-1, $-48(%rbp) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - QUAD $0xffffff4d056ffdc5 // vmovdqa $-179(%rip), %ymm0 /* LCPI14_0(%rip) */ - QUAD $0xffffff650d6ffdc5 // vmovdqa $-155(%rip), %ymm1 /* LCPI14_1(%rip) */ - QUAD $0xffffff7d156ffdc5 // vmovdqa $-131(%rip), %ymm2 /* LCPI14_2(%rip) */ - LONG $0xdb76e5c5 // vpcmpeqd %ymm3, %ymm3, %ymm3 - QUAD $0xaaaaaaaaaaaab949; WORD $0xaaaa // movabsq $-6148914691236517206, %r9 - QUAD $0x555555555555ba49; WORD $0x5555 // movabsq $6148914691236517205, %r10 - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB14_5: - LONG $0x266ffec5 // vmovdqu (%rsi), %ymm4 - LONG $0x6e6ffec5; BYTE $0x20 // vmovdqu $32(%rsi), %ymm5 - LONG $0xf074ddc5 // vpcmpeqb %ymm0, %ymm4, %ymm6 - LONG $0xeed77dc5 // vpmovmskb %ymm6, %r13d - LONG $0xf074d5c5 // vpcmpeqb %ymm0, %ymm5, %ymm6 - LONG $0xc6d7fdc5 // vpmovmskb %ymm6, %eax - LONG $0xf174ddc5 // vpcmpeqb %ymm1, %ymm4, %ymm6 - LONG $0xced7fdc5 // vpmovmskb %ymm6, %ecx - LONG $0xf174d5c5 // vpcmpeqb %ymm1, %ymm5, %ymm6 - LONG $0xfed7fdc5 // vpmovmskb %ymm6, %edi - LONG $0xf464edc5 // vpcmpgtb %ymm4, %ymm2, %ymm6 - LONG $0xe364ddc5 // vpcmpgtb %ymm3, %ymm4, %ymm4 - LONG $0xe4dbcdc5 // vpand %ymm4, %ymm6, %ymm4 - LONG $0xe4d77dc5 // vpmovmskb %ymm4, %r12d - LONG $0xe564edc5 // vpcmpgtb %ymm5, %ymm2, %ymm4 - LONG $0xeb64d5c5 // vpcmpgtb %ymm3, %ymm5, %ymm5 - LONG $0xe5dbddc5 // vpand %ymm5, %ymm4, %ymm4 - LONG $0xdcd7fdc5 // vpmovmskb %ymm4, %ebx - LONG $0x20e0c148 // shlq $32, %rax - WORD $0x0949; BYTE $0xc5 // orq %rax, %r13 - LONG $0x20e7c148 // shlq $32, %rdi - LONG $0x20e3c148 // shlq $32, %rbx - WORD $0x0948; BYTE $0xf9 // orq %rdi, %rcx - LONG $0x0038850f; WORD $0x0000 // jne LBB14_10, $56(%rip) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x004e850f; WORD $0x0000 // jne LBB14_12, $78(%rip) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x094c; BYTE $0xe3 // orq %r12, %rbx - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - LONG $0x0080850f; WORD $0x0000 // jne LBB14_13, $128(%rip) - -LBB14_8: - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x00ce850f; WORD $0x0000 // jne LBB14_19, $206(%rip) - LONG $0x40c68348 // addq $64, %rsi - LONG $0xc0c78349 // addq $-64, %r15 - LONG $0x3fff8349 // cmpq $63, %r15 - LONG $0xff6c870f; WORD $0xffff // ja LBB14_5, $-148(%rip) - LONG $0x0000e6e9; BYTE $0x00 // jmp LBB14_23, $230(%rip) - -LBB14_10: - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x0014850f; WORD $0x0000 // jne LBB14_12, $20(%rip) - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x294c; BYTE $0xd8 // subq %r11, %rax - LONG $0xf9bc0f48 // bsfq %rcx, %rdi - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - LONG $0xd07d8948 // movq %rdi, $-48(%rbp) - WORD $0x8948; BYTE $0x3a // movq %rdi, (%rdx) - -LBB14_12: - WORD $0x894c; BYTE $0xf0 // movq %r14, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x2148; BYTE $0xc8 // andq %rcx, %rax - LONG $0x00048d4c // leaq (%rax,%rax), %r8 - WORD $0x094d; BYTE $0xf0 // orq %r14, %r8 - WORD $0x894c; BYTE $0xc7 // movq %r8, %rdi - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x2148; BYTE $0xcf // andq %rcx, %rdi - WORD $0x214c; BYTE $0xcf // andq %r9, %rdi - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x0148; BYTE $0xc7 // addq %rax, %rdi - LONG $0xc6920f41 // setb %r14b - WORD $0x0148; BYTE $0xff // addq %rdi, %rdi - WORD $0x314c; BYTE $0xd7 // xorq %r10, %rdi - WORD $0x214c; BYTE $0xc7 // andq %r8, %rdi - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x2149; BYTE $0xfd // andq %rdi, %r13 - WORD $0x094c; BYTE $0xe3 // orq %r12, %rbx - WORD $0x854d; BYTE $0xed // testq %r13, %r13 - LONG $0xff80840f; WORD $0xffff // je LBB14_8, $-128(%rip) - -LBB14_13: - LONG $0xc5bc0f49 // bsfq %r13, %rax - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0027840f; WORD $0x0000 // je LBB14_17, $39(%rip) - LONG $0xcbbc0f48 // bsfq %rbx, %rcx - WORD $0x294c; BYTE $0xde // subq %r11, %rsi - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0x0028820f; WORD $0x0000 // jb LBB14_18, $40(%rip) - -LBB14_15: - LONG $0x06448d48; BYTE $0x01 // leaq $1(%rsi,%rax), %rax - -LBB14_16: - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB14_17: - LONG $0x000040b9; BYTE $0x00 // movl $64, %ecx - WORD $0x294c; BYTE $0xde // subq %r11, %rsi - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0xffd8830f; WORD $0xffff // jae LBB14_15, $-40(%rip) - -LBB14_18: - WORD $0x0148; BYTE $0xf1 // addq %rsi, %rcx - WORD $0x8948; BYTE $0x0a // movq %rcx, (%rdx) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xffffcbe9; BYTE $0xff // jmp LBB14_16, $-53(%rip) - -LBB14_19: - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0xffb9850f; WORD $0xffff // jne LBB14_16, $-71(%rip) - LONG $0xcbbc0f48 // bsfq %rbx, %rcx - WORD $0x294c; BYTE $0xde // subq %r11, %rsi - WORD $0x0148; BYTE $0xce // addq %rcx, %rsi - WORD $0x8948; BYTE $0x32 // movq %rsi, (%rdx) - LONG $0xffffa7e9; BYTE $0xff // jmp LBB14_16, $-89(%rip) - -LBB14_22: - QUAD $0xffffffffd045c748 // movq $-1, $-48(%rbp) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - -LBB14_23: - LONG $0x20ff8349 // cmpq $32, %r15 - LONG $0x009e820f; WORD $0x0000 // jb LBB14_33, $158(%rip) - LONG $0x066ffec5 // vmovdqu (%rsi), %ymm0 - QUAD $0xfffffd8b0d74fdc5 // vpcmpeqb $-629(%rip), %ymm0, %ymm1 /* LCPI14_0(%rip) */ - LONG $0xf9d7fdc5 // vpmovmskb %ymm1, %edi - QUAD $0xfffffd9f0d74fdc5 // vpcmpeqb $-609(%rip), %ymm0, %ymm1 /* LCPI14_1(%rip) */ - LONG $0xc1d7fdc5 // vpmovmskb %ymm1, %eax - QUAD $0xfffffdb30d6ffdc5 // vmovdqa $-589(%rip), %ymm1 /* LCPI14_2(%rip) */ - LONG $0xc864f5c5 // vpcmpgtb %ymm0, %ymm1, %ymm1 - LONG $0xd276edc5 // vpcmpeqd %ymm2, %ymm2, %ymm2 - LONG $0xc264fdc5 // vpcmpgtb %ymm2, %ymm0, %ymm0 - LONG $0xc0dbf5c5 // vpand %ymm0, %ymm1, %ymm0 - LONG $0xc8d77dc5 // vpmovmskb %ymm0, %r9d - WORD $0xc085 // testl %eax, %eax - LONG $0x00f3850f; WORD $0x0000 // jne LBB14_44, $243(%rip) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x0109850f; WORD $0x0000 // jne LBB14_46, $265(%rip) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - LONG $0x000040b8; BYTE $0x00 // movl $64, %eax - LONG $0x000040b9; BYTE $0x00 // movl $64, %ecx - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x0004840f; WORD $0x0000 // je LBB14_28, $4(%rip) - -LBB14_27: - LONG $0xcfbc0f48 // bsfq %rdi, %rcx - -LBB14_28: - LONG $0xd9bc0f49 // bsfq %r9, %rbx - WORD $0x8545; BYTE $0xc9 // testl %r9d, %r9d - LONG $0xc3450f48 // cmovneq %rbx, %rax - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x0016840f; WORD $0x0000 // je LBB14_31, $22(%rip) - WORD $0x294c; BYTE $0xde // subq %r11, %rsi - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0x0117820f; WORD $0x0000 // jb LBB14_47, $279(%rip) - LONG $0x0e448d48; BYTE $0x01 // leaq $1(%rsi,%rcx), %rax - LONG $0xffff05e9; BYTE $0xff // jmp LBB14_16, $-251(%rip) - -LBB14_31: - WORD $0x8545; BYTE $0xc9 // testl %r9d, %r9d - LONG $0x0116850f; WORD $0x0000 // jne LBB14_48, $278(%rip) - LONG $0x20c68348 // addq $32, %rsi - LONG $0xe0c78349 // addq $-32, %r15 - -LBB14_33: - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x0110850f; WORD $0x0000 // jne LBB14_49, $272(%rip) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0xfedb840f; WORD $0xffff // je LBB14_16, $-293(%rip) - -LBB14_35: - WORD $0xb60f; BYTE $0x0e // movzbl (%rsi), %ecx - WORD $0xf980; BYTE $0x22 // cmpb $34, %cl - LONG $0x0062840f; WORD $0x0000 // je LBB14_43, $98(%rip) - WORD $0xf980; BYTE $0x5c // cmpb $92, %cl - LONG $0x0026840f; WORD $0x0000 // je LBB14_40, $38(%rip) - WORD $0xf980; BYTE $0x1f // cmpb $31, %cl - LONG $0x012d860f; WORD $0x0000 // jbe LBB14_53, $301(%rip) - LONG $0xffc1c748; WORD $0xffff; BYTE $0xff // movq $-1, %rcx - LONG $0x000001bf; BYTE $0x00 // movl $1, %edi - -LBB14_39: - WORD $0x0148; BYTE $0xfe // addq %rdi, %rsi - WORD $0x0149; BYTE $0xcf // addq %rcx, %r15 - LONG $0xffca850f; WORD $0xffff // jne LBB14_35, $-54(%rip) - LONG $0xfffea0e9; BYTE $0xff // jmp LBB14_16, $-352(%rip) - -LBB14_40: - LONG $0x01ff8349 // cmpq $1, %r15 - LONG $0xfe96840f; WORD $0xffff // je LBB14_16, $-362(%rip) - LONG $0xfec1c748; WORD $0xffff; BYTE $0xff // movq $-2, %rcx - LONG $0x000002bf; BYTE $0x00 // movl $2, %edi - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0xffce850f; WORD $0xffff // jne LBB14_39, $-50(%rip) - WORD $0x8948; BYTE $0xf3 // movq %rsi, %rbx - WORD $0x294c; BYTE $0xdb // subq %r11, %rbx - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - WORD $0x8948; BYTE $0x1a // movq %rbx, (%rdx) - LONG $0xffffbce9; BYTE $0xff // jmp LBB14_39, $-68(%rip) - -LBB14_43: - WORD $0x294c; BYTE $0xde // subq %r11, %rsi - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - LONG $0xfffe5fe9; BYTE $0xff // jmp LBB14_16, $-417(%rip) - -LBB14_44: - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x0014850f; WORD $0x0000 // jne LBB14_46, $20(%rip) - WORD $0x8948; BYTE $0xf1 // movq %rsi, %rcx - WORD $0x294c; BYTE $0xd9 // subq %r11, %rcx - LONG $0xd8bc0f48 // bsfq %rax, %rbx - WORD $0x0148; BYTE $0xcb // addq %rcx, %rbx - LONG $0xd05d8948 // movq %rbx, $-48(%rbp) - WORD $0x8948; BYTE $0x1a // movq %rbx, (%rdx) - -LBB14_46: - WORD $0x8944; BYTE $0xf1 // movl %r14d, %ecx - WORD $0xd1f7 // notl %ecx - WORD $0xc121 // andl %eax, %ecx - WORD $0x1c8d; BYTE $0x09 // leal (%rcx,%rcx), %ebx - LONG $0x4e048d45 // leal (%r14,%rcx,2), %r8d - WORD $0xd3f7 // notl %ebx - WORD $0xc321 // andl %eax, %ebx - LONG $0xaaaae381; WORD $0xaaaa // andl $-1431655766, %ebx - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0xcb01 // addl %ecx, %ebx - LONG $0xc6920f41 // setb %r14b - WORD $0xdb01 // addl %ebx, %ebx - LONG $0x5555f381; WORD $0x5555 // xorl $1431655765, %ebx - WORD $0x2144; BYTE $0xc3 // andl %r8d, %ebx - WORD $0xd3f7 // notl %ebx - WORD $0xdf21 // andl %ebx, %edi - LONG $0x000040b8; BYTE $0x00 // movl $64, %eax - LONG $0x000040b9; BYTE $0x00 // movl $64, %ecx - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0xfeca850f; WORD $0xffff // jne LBB14_27, $-310(%rip) - LONG $0xfffec9e9; BYTE $0xff // jmp LBB14_28, $-311(%rip) - -LBB14_47: - WORD $0x0148; BYTE $0xf0 // addq %rsi, %rax - WORD $0x8948; BYTE $0x02 // movq %rax, (%rdx) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xfffde6e9; BYTE $0xff // jmp LBB14_16, $-538(%rip) - -LBB14_48: - WORD $0x294c; BYTE $0xde // subq %r11, %rsi - WORD $0x0148; BYTE $0xde // addq %rbx, %rsi - LONG $0x00004ee9; BYTE $0x00 // jmp LBB14_54, $78(%rip) - -LBB14_49: - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0x0036840f; WORD $0x0000 // je LBB14_21, $54(%rip) - LONG $0xd07d8348; BYTE $0xff // cmpq $-1, $-48(%rbp) - LONG $0x0010850f; WORD $0x0000 // jne LBB14_52, $16(%rip) - WORD $0x894c; BYTE $0xd8 // movq %r11, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0148; BYTE $0xf0 // addq %rsi, %rax - LONG $0xd0458948 // movq %rax, $-48(%rbp) - WORD $0x8948; BYTE $0x02 // movq %rax, (%rdx) - -LBB14_52: - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0xff49; BYTE $0xcf // decq %r15 - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0xfec6850f; WORD $0xffff // jne LBB14_35, $-314(%rip) - LONG $0xfffd9ce9; BYTE $0xff // jmp LBB14_16, $-612(%rip) - -LBB14_21: - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xfffd90e9; BYTE $0xff // jmp LBB14_16, $-624(%rip) - -LBB14_53: - WORD $0x294c; BYTE $0xde // subq %r11, %rsi - -LBB14_54: - WORD $0x8948; BYTE $0x32 // movq %rsi, (%rdx) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xfffd7ee9; BYTE $0xff // jmp LBB14_16, $-642(%rip) - WORD $0x0000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI15_0: - LONG $0x43300000 // .long 1127219200 - LONG $0x45300000 // .long 1160773632 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - -LCPI15_1: - QUAD $0x4330000000000000 // .quad 0x4330000000000000 - QUAD $0x4530000000000000 // .quad 0x4530000000000000 - - // .p2align 3, 0x00 -LCPI15_2: - QUAD $0x430c6bf526340000 // .quad 0x430c6bf526340000 - -LCPI15_3: - QUAD $0xc30c6bf526340000 // .quad 0xc30c6bf526340000 - - // .p2align 4, 0x90 -_vnumber: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x38ec8348 // subq $56, %rsp - WORD $0x8949; BYTE $0xd6 // movq %rdx, %r14 - QUAD $0x00000000c845c748 // movq $0, $-56(%rbp) - WORD $0x8b48; BYTE $0x06 // movq (%rsi), %rax - WORD $0x8b4c; BYTE $0x3f // movq (%rdi), %r15 - LONG $0x086f8b4c // movq $8(%rdi), %r13 - LONG $0x205a8b48 // movq $32(%rdx), %rbx - LONG $0x285a8b4c // movq $40(%rdx), %r11 - LONG $0x0902c748; WORD $0x0000; BYTE $0x00 // movq $9, (%rdx) - LONG $0xc057f9c5 // vxorpd %xmm0, %xmm0, %xmm0 - LONG $0x4211f9c5; BYTE $0x08 // vmovupd %xmm0, $8(%rdx) - WORD $0x8b48; BYTE $0x0e // movq (%rsi), %rcx - LONG $0x184a8948 // movq %rcx, $24(%rdx) - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0045830f; WORD $0x0000 // jae LBB15_6, $69(%rip) - LONG $0x073c8a41 // movb (%r15,%rax), %dil - LONG $0x0001ba41; WORD $0x0000 // movl $1, %r10d - LONG $0x2dff8040 // cmpb $45, %dil - LONG $0x0016850f; WORD $0x0000 // jne LBB15_4, $22(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0025830f; WORD $0x0000 // jae LBB15_6, $37(%rip) - LONG $0x073c8a41 // movb (%r15,%rax), %dil - LONG $0xffffba41; WORD $0xffff // movl $-1, %r10d - -LBB15_4: - WORD $0x4f8d; BYTE $0xd0 // leal $-48(%rdi), %ecx - WORD $0xf980; BYTE $0x0a // cmpb $10, %cl - LONG $0x0028820f; WORD $0x0000 // jb LBB15_9, $40(%rip) - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xfe06c749; WORD $0xffff; BYTE $0xff // movq $-2, (%r14) - LONG $0x00000ae9; BYTE $0x00 // jmp LBB15_8, $10(%rip) - -LBB15_6: - WORD $0x894c; BYTE $0x2e // movq %r13, (%rsi) - -LBB15_7: - LONG $0xff06c749; WORD $0xffff; BYTE $0xff // movq $-1, (%r14) - -LBB15_8: - LONG $0x38c48348 // addq $56, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB15_9: - LONG $0x30ff8040 // cmpb $48, %dil - LONG $0x0035850f; WORD $0x0000 // jne LBB15_13, $53(%rip) - LONG $0x01488d4c // leaq $1(%rax), %r9 - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x00bf830f; WORD $0x0000 // jae LBB15_22, $191(%rip) - LONG $0x0f148a43 // movb (%r15,%r9), %dl - WORD $0xc280; BYTE $0xd2 // addb $-46, %dl - WORD $0xfa80; BYTE $0x37 // cmpb $55, %dl - LONG $0x00af870f; WORD $0x0000 // ja LBB15_22, $175(%rip) - LONG $0xc2b60f44 // movzbl %dl, %r8d - QUAD $0x000000800001ba48; WORD $0x0080 // movabsq $36028797027352577, %rdx - LONG $0xc2a30f4c // btq %r8, %rdx - LONG $0x0097830f; WORD $0x0000 // jae LBB15_22, $151(%rip) - -LBB15_13: - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0xa05d8948 // movq %rbx, $-96(%rbp) - LONG $0xc0558944 // movl %r10d, $-64(%rbp) - LONG $0xd0758948 // movq %rsi, $-48(%rbp) - LONG $0x0075830f; WORD $0x0000 // jae LBB15_21, $117(%rip) - WORD $0xf980; BYTE $0x09 // cmpb $9, %cl - LONG $0x0081870f; WORD $0x0000 // ja LBB15_23, $129(%rip) - LONG $0xffd0b841; WORD $0xffff // movl $4294967248, %r8d - LONG $0xff4d8d4d // leaq $-1(%r13), %r9 - WORD $0xc931 // xorl %ecx, %ecx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB15_16: - LONG $0x12fa8341 // cmpl $18, %r10d - LONG $0x00268f0f; WORD $0x0000 // jg LBB15_18, $38(%rip) - LONG $0xa4148d4b // leaq (%r12,%r12,4), %rdx - LONG $0xffbe0f40 // movsbl %dil, %edi - WORD $0x0144; BYTE $0xc7 // addl %r8d, %edi - LONG $0x57248d4c // leaq (%rdi,%rdx,2), %r12 - WORD $0xff41; BYTE $0xc2 // incl %r10d - LONG $0x000011e9; BYTE $0x00 // jmp LBB15_19, $17(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB15_18: - WORD $0xc1ff // incl %ecx - -LBB15_19: - WORD $0x3949; BYTE $0xc1 // cmpq %rax, %r9 - LONG $0x0079840f; WORD $0x0000 // je LBB15_28, $121(%rip) - LONG $0x7cb60f41; WORD $0x0107 // movzbl $1(%r15,%rax), %edi - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x578d; BYTE $0xd0 // leal $-48(%rdi), %edx - WORD $0xfa80; BYTE $0x0a // cmpb $10, %dl - LONG $0xffb0820f; WORD $0xffff // jb LBB15_16, $-80(%rip) - LONG $0x00001de9; BYTE $0x00 // jmp LBB15_24, $29(%rip) - -LBB15_21: - WORD $0xc931 // xorl %ecx, %ecx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - LONG $0x000055e9; BYTE $0x00 // jmp LBB15_29, $85(%rip) - -LBB15_22: - WORD $0x894c; BYTE $0x0e // movq %r9, (%rsi) - LONG $0xffff13e9; BYTE $0xff // jmp LBB15_8, $-237(%rip) - -LBB15_23: - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0xc931 // xorl %ecx, %ecx - -LBB15_24: - WORD $0xd231 // xorl %edx, %edx - WORD $0xc985 // testl %ecx, %ecx - WORD $0x9f0f; BYTE $0xc2 // setg %dl - WORD $0x5589; BYTE $0xc4 // movl %edx, $-60(%rbp) - WORD $0xb041; BYTE $0x01 // movb $1, %r8b - LONG $0x2eff8040 // cmpb $46, %dil - LONG $0x003b850f; WORD $0x0000 // jne LBB15_30, $59(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - LONG $0x0806c749; WORD $0x0000; BYTE $0x00 // movq $8, (%r14) - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0268830f; WORD $0x0000 // jae LBB15_68, $616(%rip) - LONG $0x07148a41 // movb (%r15,%rax), %dl - WORD $0xc280; BYTE $0xd0 // addb $-48, %dl - WORD $0xfa80; BYTE $0x0a // cmpb $10, %dl - LONG $0x0401830f; WORD $0x0000 // jae LBB15_91, $1025(%rip) - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - LONG $0x000010e9; BYTE $0x00 // jmp LBB15_30, $16(%rip) - -LBB15_28: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - -LBB15_29: - WORD $0xd231 // xorl %edx, %edx - WORD $0xc985 // testl %ecx, %ecx - WORD $0x9f0f; BYTE $0xc2 // setg %dl - WORD $0x5589; BYTE $0xc4 // movl %edx, $-60(%rbp) - WORD $0xb041; BYTE $0x01 // movb $1, %r8b - -LBB15_30: - WORD $0xc985 // testl %ecx, %ecx - LONG $0x0056850f; WORD $0x0000 // jne LBB15_39, $86(%rip) - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x004d850f; WORD $0x0000 // jne LBB15_39, $77(%rip) - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x003c830f; WORD $0x0000 // jae LBB15_37, $60(%rip) - WORD $0xc689 // movl %eax, %esi - WORD $0x2944; BYTE $0xee // subl %r13d, %esi - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0xc931 // xorl %ecx, %ecx - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB15_34: - LONG $0x073c8041; BYTE $0x30 // cmpb $48, (%r15,%rax) - LONG $0x0024850f; WORD $0x0000 // jne LBB15_38, $36(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0xc9ff // decl %ecx - WORD $0x3949; BYTE $0xc5 // cmpq %rax, %r13 - LONG $0xffe7850f; WORD $0xffff // jne LBB15_34, $-25(%rip) - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0x8445; BYTE $0xc0 // testb %r8b, %r8b - LONG $0x0122850f; WORD $0x0000 // jne LBB15_58, $290(%rip) - LONG $0x000152e9; BYTE $0x00 // jmp LBB15_62, $338(%rip) - -LBB15_37: - WORD $0xc931 // xorl %ecx, %ecx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - -LBB15_38: - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - -LBB15_39: - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0051830f; WORD $0x0000 // jae LBB15_45, $81(%rip) - LONG $0x12fa8341 // cmpl $18, %r10d - LONG $0x00478f0f; WORD $0x0000 // jg LBB15_45, $71(%rip) - LONG $0xffd0b941; WORD $0xffff // movl $4294967248, %r9d - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB15_42: - LONG $0x14b60f41; BYTE $0x07 // movzbl (%r15,%rax), %edx - WORD $0x7a8d; BYTE $0xd0 // leal $-48(%rdx), %edi - LONG $0x09ff8040 // cmpb $9, %dil - LONG $0x002a870f; WORD $0x0000 // ja LBB15_45, $42(%rip) - LONG $0xa43c8d4b // leaq (%r12,%r12,4), %rdi - WORD $0x0144; BYTE $0xca // addl %r9d, %edx - LONG $0x7a248d4c // leaq (%rdx,%rdi,2), %r12 - WORD $0xc9ff // decl %ecx - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0011830f; WORD $0x0000 // jae LBB15_45, $17(%rip) - LONG $0x01528d41 // leal $1(%r10), %edx - LONG $0x12fa8341 // cmpl $18, %r10d - WORD $0x8941; BYTE $0xd2 // movl %edx, %r10d - LONG $0xffc48c0f; WORD $0xffff // jl LBB15_42, $-60(%rip) - -LBB15_45: - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x00a4830f; WORD $0x0000 // jae LBB15_57, $164(%rip) - LONG $0x07348a41 // movb (%r15,%rax), %sil - WORD $0x568d; BYTE $0xd0 // leal $-48(%rsi), %edx - WORD $0xfa80; BYTE $0x09 // cmpb $9, %dl - LONG $0x0030870f; WORD $0x0000 // ja LBB15_51, $48(%rip) - LONG $0xff7d8d49 // leaq $-1(%r13), %rdi - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB15_48: - WORD $0x3948; BYTE $0xc7 // cmpq %rax, %rdi - LONG $0x0167840f; WORD $0x0000 // je LBB15_69, $359(%rip) - LONG $0x74b60f41; WORD $0x0107 // movzbl $1(%r15,%rax), %esi - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x568d; BYTE $0xd0 // leal $-48(%rsi), %edx - WORD $0xfa80; BYTE $0x09 // cmpb $9, %dl - LONG $0xffe2860f; WORD $0xffff // jbe LBB15_48, $-30(%rip) - LONG $0x01c445c7; WORD $0x0000; BYTE $0x00 // movl $1, $-60(%rbp) - -LBB15_51: - LONG $0x20ce8040 // orb $32, %sil - LONG $0x65fe8040 // cmpb $101, %sil - LONG $0x0056850f; WORD $0x0000 // jne LBB15_57, $86(%rip) - LONG $0x01788d48 // leaq $1(%rax), %rdi - LONG $0x0806c749; WORD $0x0000; BYTE $0x00 // movq $8, (%r14) - WORD $0x394c; BYTE $0xef // cmpq %r13, %rdi - LONG $0x011d830f; WORD $0x0000 // jae LBB15_68, $285(%rip) - LONG $0x3f348a41 // movb (%r15,%rdi), %sil - LONG $0x2dfe8040 // cmpb $45, %sil - LONG $0x0010840f; WORD $0x0000 // je LBB15_55, $16(%rip) - LONG $0x0001b841; WORD $0x0000 // movl $1, %r8d - LONG $0x2bfe8040 // cmpb $43, %sil - LONG $0x0298850f; WORD $0x0000 // jne LBB15_89, $664(%rip) - -LBB15_55: - LONG $0x02c08348 // addq $2, %rax - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x00f2830f; WORD $0x0000 // jae LBB15_68, $242(%rip) - WORD $0xd231 // xorl %edx, %edx - LONG $0x2bfe8040 // cmpb $43, %sil - WORD $0x940f; BYTE $0xc2 // sete %dl - LONG $0x12448d44; BYTE $0xff // leal $-1(%rdx,%rdx), %r8d - LONG $0x07348a41 // movb (%r15,%rax), %sil - LONG $0x000277e9; BYTE $0x00 // jmp LBB15_90, $631(%rip) - -LBB15_57: - WORD $0xce89 // movl %ecx, %esi - WORD $0x8949; BYTE $0xc5 // movq %rax, %r13 - WORD $0x8445; BYTE $0xc0 // testb %r8b, %r8b - LONG $0x0035840f; WORD $0x0000 // je LBB15_62, $53(%rip) - -LBB15_58: - WORD $0xf685 // testl %esi, %esi - LONG $0x0026850f; WORD $0x0000 // jne LBB15_61, $38(%rip) - QUAD $0x000000000000b848; WORD $0x8000 // movabsq $-9223372036854775808, %rax - LONG $0xc04d6348 // movslq $-64(%rbp), %rcx - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x00f2890f; WORD $0x0000 // jns LBB15_72, $242(%rip) - WORD $0x894c; BYTE $0xe2 // movq %r12, %rdx - WORD $0x2148; BYTE $0xca // andq %rcx, %rdx - WORD $0x3948; BYTE $0xc2 // cmpq %rax, %rdx - LONG $0x00e3840f; WORD $0x0000 // je LBB15_72, $227(%rip) - -LBB15_61: - LONG $0x0806c749; WORD $0x0000; BYTE $0x00 // movq $8, (%r14) - -LBB15_62: - QUAD $0x00000000b845c748 // movq $0, $-72(%rbp) - LONG $0x6ef9c1c4; BYTE $0xc4 // vmovq %r12, %xmm0 - QUAD $0xfffffc2f0562f9c5 // vpunpckldq $-977(%rip), %xmm0, %xmm0 /* LCPI15_0(%rip) */ - QUAD $0xfffffc37055cf9c5 // vsubpd $-969(%rip), %xmm0, %xmm0 /* LCPI15_1(%rip) */ - LONG $0x0579e3c4; WORD $0x01c8 // vpermilpd $1, %xmm0, %xmm1 - LONG $0xc058f3c5 // vaddsd %xmm0, %xmm1, %xmm0 - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - LONG $0x34e8c148 // shrq $52, %rax - LONG $0x011f850f; WORD $0x0000 // jne LBB15_77, $287(%rip) - LONG $0x7ef9e1c4; BYTE $0xc1 // vmovq %xmm0, %rcx - WORD $0x458b; BYTE $0xc0 // movl $-64(%rbp), %eax - WORD $0xe8c1; BYTE $0x1f // shrl $31, %eax - LONG $0x3fe0c148 // shlq $63, %rax - WORD $0x0948; BYTE $0xc8 // orq %rcx, %rax - LONG $0xc8458948 // movq %rax, $-56(%rbp) - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x019f840f; WORD $0x0000 // je LBB15_85, $415(%rip) - WORD $0xf685 // testl %esi, %esi - LONG $0x0197840f; WORD $0x0000 // je LBB15_85, $407(%rip) - LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq %rax, %xmm0 - WORD $0x468d; BYTE $0xff // leal $-1(%rsi), %eax - WORD $0xf883; BYTE $0x24 // cmpl $36, %eax - LONG $0x004a870f; WORD $0x0000 // ja LBB15_70, $74(%rip) - WORD $0xfe83; BYTE $0x17 // cmpl $23, %esi - LONG $0x00a48c0f; WORD $0x0000 // jl LBB15_73, $164(%rip) - WORD $0x468d; BYTE $0xea // leal $-22(%rsi), %eax - LONG $0xe00d8d48; WORD $0x00ec; BYTE $0x00 // leaq $60640(%rip), %rcx /* _P10_TAB(%rip) */ - LONG $0x0459fbc5; BYTE $0xc1 // vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - LONG $0x000016b8; BYTE $0x00 // movl $22, %eax - LONG $0x000088e9; BYTE $0x00 // jmp LBB15_74, $136(%rip) - -LBB15_68: - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x894c; BYTE $0x28 // movq %r13, (%rax) - LONG $0xfffc66e9; BYTE $0xff // jmp LBB15_7, $-922(%rip) - -LBB15_69: - LONG $0x01c445c7; WORD $0x0000; BYTE $0x00 // movl $1, $-60(%rbp) - WORD $0xce89 // movl %ecx, %esi - WORD $0x8445; BYTE $0xc0 // testb %r8b, %r8b - LONG $0xff15850f; WORD $0xffff // jne LBB15_58, $-235(%rip) - LONG $0xffff45e9; BYTE $0xff // jmp LBB15_62, $-187(%rip) - -LBB15_70: - WORD $0xfe83; BYTE $0xea // cmpl $-22, %esi - LONG $0x0094820f; WORD $0x0000 // jb LBB15_77, $148(%rip) - WORD $0xdef7 // negl %esi - LONG $0x97058d48; WORD $0x00ec; BYTE $0x00 // leaq $60567(%rip), %rax /* _P10_TAB(%rip) */ - LONG $0x045efbc5; BYTE $0xf0 // vdivsd (%rax,%rsi,8), %xmm0, %xmm0 - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - LONG $0x0000dee9; BYTE $0x00 // jmp LBB15_81, $222(%rip) - -LBB15_72: - LONG $0x6ef9c1c4; BYTE $0xc4 // vmovq %r12, %xmm0 - LONG $0xe1af0f4c // imulq %rcx, %r12 - QUAD $0xfffffb570562f9c5 // vpunpckldq $-1193(%rip), %xmm0, %xmm0 /* LCPI15_0(%rip) */ - QUAD $0xfffffb5f055cf9c5 // vsubpd $-1185(%rip), %xmm0, %xmm0 /* LCPI15_1(%rip) */ - LONG $0x1066894d // movq %r12, $16(%r14) - LONG $0x0579e3c4; WORD $0x01c8 // vpermilpd $1, %xmm0, %xmm1 - LONG $0xc058f3c5 // vaddsd %xmm0, %xmm1, %xmm0 - WORD $0x2148; BYTE $0xc8 // andq %rcx, %rax - LONG $0x7ef9e1c4; BYTE $0xc1 // vmovq %xmm0, %rcx - WORD $0x0948; BYTE $0xc1 // orq %rax, %rcx - LONG $0x084e8949 // movq %rcx, $8(%r14) - LONG $0xd0458b48 // movq $-48(%rbp), %rax - WORD $0x894c; BYTE $0x28 // movq %r13, (%rax) - LONG $0xfffbf3e9; BYTE $0xff // jmp LBB15_8, $-1037(%rip) - -LBB15_73: - WORD $0xf089 // movl %esi, %eax - -LBB15_74: - QUAD $0xfffffb3c052ef9c5 // vucomisd $-1220(%rip), %xmm0 /* LCPI15_2(%rip) */ - LONG $0x002a870f; WORD $0x0000 // ja LBB15_77, $42(%rip) - QUAD $0xfffffb360d10fbc5 // vmovsd $-1226(%rip), %xmm1 /* LCPI15_3(%rip) */ - LONG $0xc82ef9c5 // vucomisd %xmm0, %xmm1 - LONG $0x0018870f; WORD $0x0000 // ja LBB15_77, $24(%rip) - WORD $0xc089 // movl %eax, %eax - LONG $0x1b0d8d48; WORD $0x00ec; BYTE $0x00 // leaq $60443(%rip), %rcx /* _P10_TAB(%rip) */ - LONG $0x0459fbc5; BYTE $0xc1 // vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - LONG $0x000062e9; BYTE $0x00 // jmp LBB15_81, $98(%rip) - -LBB15_77: - LONG $0xa85d894c // movq %r11, $-88(%rbp) - LONG $0xc84d8d48 // leaq $-56(%rbp), %rcx - WORD $0x894c; BYTE $0xe7 // movq %r12, %rdi - WORD $0x5d8b; BYTE $0xc0 // movl $-64(%rbp), %ebx - WORD $0xda89 // movl %ebx, %edx - LONG $0xb0758948 // movq %rsi, $-80(%rbp) - LONG $0xffe423e8; BYTE $0xff // callq _atof_eisel_lemire64, $-7133(%rip) - WORD $0xc084 // testb %al, %al - LONG $0x004b840f; WORD $0x0000 // je LBB15_83, $75(%rip) - LONG $0xb0758b48 // movq $-80(%rbp), %rsi - LONG $0x00c47d83 // cmpl $0, $-60(%rbp) - LONG $0x006c840f; WORD $0x0000 // je LBB15_84, $108(%rip) - WORD $0xff49; BYTE $0xc4 // incq %r12 - LONG $0xb84d8d48 // leaq $-72(%rbp), %rcx - WORD $0x894c; BYTE $0xe7 // movq %r12, %rdi - WORD $0xda89 // movl %ebx, %edx - LONG $0xffe3fce8; BYTE $0xff // callq _atof_eisel_lemire64, $-7172(%rip) - WORD $0xc084 // testb %al, %al - LONG $0x0024840f; WORD $0x0000 // je LBB15_83, $36(%rip) - LONG $0x4d10fbc5; BYTE $0xb8 // vmovsd $-72(%rbp), %xmm1 - LONG $0x4510fbc5; BYTE $0xc8 // vmovsd $-56(%rbp), %xmm0 - LONG $0xc82ef9c5 // vucomisd %xmm0, %xmm1 - LONG $0x0010850f; WORD $0x0000 // jne LBB15_83, $16(%rip) - LONG $0x000a8a0f; WORD $0x0000 // jp LBB15_83, $10(%rip) - -LBB15_81: - LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq %xmm0, %rax - LONG $0x000033e9; BYTE $0x00 // jmp LBB15_85, $51(%rip) - -LBB15_83: - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - WORD $0x8b48; BYTE $0x03 // movq (%rbx), %rax - WORD $0x0149; BYTE $0xc7 // addq %rax, %r15 - WORD $0x894c; BYTE $0xee // movq %r13, %rsi - WORD $0x2948; BYTE $0xc6 // subq %rax, %rsi - WORD $0x894c; BYTE $0xff // movq %r15, %rdi - LONG $0xa0558b48 // movq $-96(%rbp), %rdx - LONG $0xa84d8b48 // movq $-88(%rbp), %rcx - LONG $0xffeb30e8; BYTE $0xff // callq _atof_native, $-5328(%rip) - LONG $0x4511fbc5; BYTE $0xc8 // vmovsd %xmm0, $-56(%rbp) - LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq %xmm0, %rax - LONG $0x000008e9; BYTE $0x00 // jmp LBB15_86, $8(%rip) - -LBB15_84: - LONG $0xc8458b48 // movq $-56(%rbp), %rax - -LBB15_85: - LONG $0xd05d8b48 // movq $-48(%rbp), %rbx - -LBB15_86: - QUAD $0x000000000000b948; WORD $0x8000 // movabsq $-9223372036854775808, %rcx - WORD $0xff48; BYTE $0xc9 // decq %rcx - WORD $0x2148; BYTE $0xc1 // andq %rax, %rcx - QUAD $0x000000000000ba48; WORD $0x7ff0 // movabsq $9218868437227405312, %rdx - WORD $0x3948; BYTE $0xd1 // cmpq %rdx, %rcx - LONG $0x0007850f; WORD $0x0000 // jne LBB15_88, $7(%rip) - LONG $0xf806c749; WORD $0xffff; BYTE $0xff // movq $-8, (%r14) - -LBB15_88: - LONG $0x08468949 // movq %rax, $8(%r14) - WORD $0x894c; BYTE $0x2b // movq %r13, (%rbx) - LONG $0xfffae0e9; BYTE $0xff // jmp LBB15_8, $-1312(%rip) - -LBB15_89: - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - -LBB15_90: - WORD $0x7e8d; BYTE $0xd0 // leal $-48(%rsi), %edi - LONG $0x09ff8040 // cmpb $9, %dil - LONG $0x0013860f; WORD $0x0000 // jbe LBB15_92, $19(%rip) - -LBB15_91: - LONG $0xd04d8b48 // movq $-48(%rbp), %rcx - WORD $0x8948; BYTE $0x01 // movq %rax, (%rcx) - LONG $0xfe06c749; WORD $0xffff; BYTE $0xff // movq $-2, (%r14) - LONG $0xfffabde9; BYTE $0xff // jmp LBB15_8, $-1347(%rip) - -LBB15_92: - WORD $0x394c; BYTE $0xe8 // cmpq %r13, %rax - LONG $0x0049830f; WORD $0x0000 // jae LBB15_98, $73(%rip) - LONG $0x09ff8040 // cmpb $9, %dil - LONG $0x003f870f; WORD $0x0000 // ja LBB15_98, $63(%rip) - LONG $0xff4d8d4d // leaq $-1(%r13), %r9 - WORD $0xff31 // xorl %edi, %edi - -LBB15_95: - WORD $0xfa89 // movl %edi, %edx - LONG $0x2710ff81; WORD $0x0000 // cmpl $10000, %edi - WORD $0x3c8d; BYTE $0x92 // leal (%rdx,%rdx,4), %edi - LONG $0xf6b60f40 // movzbl %sil, %esi - LONG $0xd07e7c8d // leal $-48(%rsi,%rdi,2), %edi - WORD $0x4d0f; BYTE $0xfa // cmovgel %edx, %edi - WORD $0x3949; BYTE $0xc1 // cmpq %rax, %r9 - LONG $0x0021840f; WORD $0x0000 // je LBB15_99, $33(%rip) - LONG $0x74b60f41; WORD $0x0107 // movzbl $1(%r15,%rax), %esi - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x568d; BYTE $0xd0 // leal $-48(%rsi), %edx - WORD $0xfa80; BYTE $0x0a // cmpb $10, %dl - LONG $0xffcc820f; WORD $0xffff // jb LBB15_95, $-52(%rip) - LONG $0x00000ae9; BYTE $0x00 // jmp LBB15_100, $10(%rip) - -LBB15_98: - WORD $0xff31 // xorl %edi, %edi - LONG $0x000003e9; BYTE $0x00 // jmp LBB15_100, $3(%rip) - -LBB15_99: - WORD $0x894c; BYTE $0xe8 // movq %r13, %rax - -LBB15_100: - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - LONG $0xf0af0f41 // imull %r8d, %esi - WORD $0xce01 // addl %ecx, %esi - WORD $0x8949; BYTE $0xc5 // movq %rax, %r13 - LONG $0xfffd3fe9; BYTE $0xff // jmp LBB15_62, $-705(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_vsigned: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - BYTE $0x53 // pushq %rbx - WORD $0x8b48; BYTE $0x06 // movq (%rsi), %rax - WORD $0x8b4c; BYTE $0x0f // movq (%rdi), %r9 - LONG $0x085f8b4c // movq $8(%rdi), %r11 - LONG $0x0902c748; WORD $0x0000; BYTE $0x00 // movq $9, (%rdx) - LONG $0xc057f8c5 // vxorps %xmm0, %xmm0, %xmm0 - LONG $0x4211f8c5; BYTE $0x08 // vmovups %xmm0, $8(%rdx) - WORD $0x8b48; BYTE $0x0e // movq (%rsi), %rcx - LONG $0x184a8948 // movq %rcx, $24(%rdx) - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x0044830f; WORD $0x0000 // jae LBB16_1, $68(%rip) - LONG $0x010c8a41 // movb (%r9,%rax), %cl - LONG $0x0001b841; WORD $0x0000 // movl $1, %r8d - WORD $0xf980; BYTE $0x2d // cmpb $45, %cl - LONG $0x0017850f; WORD $0x0000 // jne LBB16_5, $23(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x0025830f; WORD $0x0000 // jae LBB16_1, $37(%rip) - LONG $0x010c8a41 // movb (%r9,%rax), %cl - LONG $0xffc0c749; WORD $0xffff; BYTE $0xff // movq $-1, %r8 - -LBB16_5: - WORD $0x798d; BYTE $0xd0 // leal $-48(%rcx), %edi - LONG $0x0aff8040 // cmpb $10, %dil - LONG $0x001a820f; WORD $0x0000 // jb LBB16_7, $26(%rip) - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xfe02c748; WORD $0xffff; BYTE $0xff // movq $-2, (%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_1: - WORD $0x894c; BYTE $0x1e // movq %r11, (%rsi) - LONG $0xff02c748; WORD $0xffff; BYTE $0xff // movq $-1, (%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_7: - WORD $0xf980; BYTE $0x30 // cmpb $48, %cl - LONG $0x0035850f; WORD $0x0000 // jne LBB16_12, $53(%rip) - LONG $0x01788d48 // leaq $1(%rax), %rdi - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x0081830f; WORD $0x0000 // jae LBB16_11, $129(%rip) - LONG $0x390c8a41 // movb (%r9,%rdi), %cl - WORD $0xc180; BYTE $0xd2 // addb $-46, %cl - WORD $0xf980; BYTE $0x37 // cmpb $55, %cl - LONG $0x0071870f; WORD $0x0000 // ja LBB16_11, $113(%rip) - LONG $0xd1b60f44 // movzbl %cl, %r10d - QUAD $0x000000800001b948; WORD $0x0080 // movabsq $36028797027352577, %rcx - LONG $0xd1a30f4c // btq %r10, %rcx - LONG $0x0059830f; WORD $0x0000 // jae LBB16_11, $89(%rip) - -LBB16_12: - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - WORD $0x894d; BYTE $0xda // movq %r11, %r10 - LONG $0xd0470f4c // cmovaq %rax, %r10 - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB16_13: - WORD $0x3949; BYTE $0xc2 // cmpq %rax, %r10 - LONG $0x007f840f; WORD $0x0000 // je LBB16_23, $127(%rip) - LONG $0x3cbe0f49; BYTE $0x01 // movsbq (%r9,%rax), %rdi - WORD $0x5f8d; BYTE $0xd0 // leal $-48(%rdi), %ebx - WORD $0xfb80; BYTE $0x09 // cmpb $9, %bl - LONG $0x0033870f; WORD $0x0000 // ja LBB16_18, $51(%rip) - LONG $0x0ac96b48 // imulq $10, %rcx, %rcx - LONG $0x0013800f; WORD $0x0000 // jo LBB16_17, $19(%rip) - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0xc783; BYTE $0xd0 // addl $-48, %edi - LONG $0xf8af0f49 // imulq %r8, %rdi - WORD $0x0148; BYTE $0xf9 // addq %rdi, %rcx - LONG $0xffc9810f; WORD $0xffff // jno LBB16_13, $-55(%rip) - -LBB16_17: - WORD $0xff48; BYTE $0xc8 // decq %rax - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xfb02c748; WORD $0xffff; BYTE $0xff // movq $-5, (%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_11: - WORD $0x8948; BYTE $0x3e // movq %rdi, (%rsi) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_18: - WORD $0x394c; BYTE $0xd8 // cmpq %r11, %rax - LONG $0x002f830f; WORD $0x0000 // jae LBB16_22, $47(%rip) - LONG $0x013c8a41 // movb (%r9,%rax), %dil - LONG $0x2eff8040 // cmpb $46, %dil - LONG $0x0014840f; WORD $0x0000 // je LBB16_25, $20(%rip) - LONG $0x45ff8040 // cmpb $69, %dil - LONG $0x000a840f; WORD $0x0000 // je LBB16_25, $10(%rip) - LONG $0x65ff8040 // cmpb $101, %dil - LONG $0x000d850f; WORD $0x0000 // jne LBB16_22, $13(%rip) - -LBB16_25: - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xfa02c748; WORD $0xffff; BYTE $0xff // movq $-6, (%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB16_22: - WORD $0x8949; BYTE $0xc2 // movq %rax, %r10 - -LBB16_23: - WORD $0x894c; BYTE $0x16 // movq %r10, (%rsi) - LONG $0x104a8948 // movq %rcx, $16(%rdx) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_vunsigned: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - BYTE $0x53 // pushq %rbx - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - WORD $0x8b48; BYTE $0x0e // movq (%rsi), %rcx - WORD $0x8b4c; BYTE $0x0f // movq (%rdi), %r9 - LONG $0x085f8b4c // movq $8(%rdi), %r11 - LONG $0x0902c748; WORD $0x0000; BYTE $0x00 // movq $9, (%rdx) - LONG $0xc057f8c5 // vxorps %xmm0, %xmm0, %xmm0 - LONG $0x4211f8c5; BYTE $0x08 // vmovups %xmm0, $8(%rdx) - WORD $0x8b48; BYTE $0x06 // movq (%rsi), %rax - LONG $0x18428948 // movq %rax, $24(%rdx) - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0x0019830f; WORD $0x0000 // jae LBB17_1, $25(%rip) - LONG $0x09048a41 // movb (%r9,%rcx), %al - WORD $0x2d3c // cmpb $45, %al - LONG $0x001a850f; WORD $0x0000 // jne LBB17_4, $26(%rip) - -LBB17_3: - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0xfa00c749; WORD $0xffff; BYTE $0xff // movq $-6, (%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB17_1: - WORD $0x894c; BYTE $0x1e // movq %r11, (%rsi) - LONG $0xff00c749; WORD $0xffff; BYTE $0xff // movq $-1, (%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB17_4: - WORD $0x508d; BYTE $0xd0 // leal $-48(%rax), %edx - WORD $0xfa80; BYTE $0x0a // cmpb $10, %dl - LONG $0x000d820f; WORD $0x0000 // jb LBB17_6, $13(%rip) - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0xfe00c749; WORD $0xffff; BYTE $0xff // movq $-2, (%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB17_6: - WORD $0x303c // cmpb $48, %al - LONG $0x0026850f; WORD $0x0000 // jne LBB17_7, $38(%rip) - LONG $0x09448a41; BYTE $0x01 // movb $1(%r9,%rcx), %al - WORD $0xd204 // addb $-46, %al - WORD $0x373c // cmpb $55, %al - LONG $0x00b6870f; WORD $0x0000 // ja LBB17_16, $182(%rip) - WORD $0xb60f; BYTE $0xc0 // movzbl %al, %eax - QUAD $0x000000800001ba48; WORD $0x0080 // movabsq $36028797027352577, %rdx - LONG $0xc2a30f48 // btq %rax, %rdx - LONG $0x009f830f; WORD $0x0000 // jae LBB17_16, $159(%rip) - -LBB17_7: - WORD $0xc031 // xorl %eax, %eax - LONG $0x000aba41; WORD $0x0000 // movl $10, %r10d - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB17_8: - WORD $0x3949; BYTE $0xcb // cmpq %rcx, %r11 - LONG $0x007b840f; WORD $0x0000 // je LBB17_22, $123(%rip) - LONG $0x3cbe0f41; BYTE $0x09 // movsbl (%r9,%rcx), %edi - WORD $0x578d; BYTE $0xd0 // leal $-48(%rdi), %edx - WORD $0xfa80; BYTE $0x09 // cmpb $9, %dl - LONG $0x003f870f; WORD $0x0000 // ja LBB17_17, $63(%rip) - WORD $0xf749; BYTE $0xe2 // mulq %r10 - LONG $0x0026800f; WORD $0x0000 // jo LBB17_13, $38(%rip) - WORD $0xff48; BYTE $0xc1 // incq %rcx - WORD $0xc783; BYTE $0xd0 // addl $-48, %edi - WORD $0xdb31 // xorl %ebx, %ebx - WORD $0x0148; BYTE $0xf8 // addq %rdi, %rax - WORD $0x920f; BYTE $0xc3 // setb %bl - WORD $0x8948; BYTE $0xda // movq %rbx, %rdx - WORD $0xf748; BYTE $0xda // negq %rdx - WORD $0x3148; BYTE $0xd3 // xorq %rdx, %rbx - LONG $0x0009850f; WORD $0x0000 // jne LBB17_13, $9(%rip) - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xffb7890f; WORD $0xffff // jns LBB17_8, $-73(%rip) - -LBB17_13: - WORD $0xff48; BYTE $0xc9 // decq %rcx - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - LONG $0xfb00c749; WORD $0xffff; BYTE $0xff // movq $-5, (%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB17_17: - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0x001f830f; WORD $0x0000 // jae LBB17_21, $31(%rip) - LONG $0x09148a41 // movb (%r9,%rcx), %dl - WORD $0xfa80; BYTE $0x2e // cmpb $46, %dl - LONG $0xff1f840f; WORD $0xffff // je LBB17_3, $-225(%rip) - WORD $0xfa80; BYTE $0x45 // cmpb $69, %dl - LONG $0xff16840f; WORD $0xffff // je LBB17_3, $-234(%rip) - WORD $0xfa80; BYTE $0x65 // cmpb $101, %dl - LONG $0xff0d840f; WORD $0xffff // je LBB17_3, $-243(%rip) - -LBB17_21: - WORD $0x8949; BYTE $0xcb // movq %rcx, %r11 - -LBB17_22: - WORD $0x894c; BYTE $0x1e // movq %r11, (%rsi) - LONG $0x10408949 // movq %rax, $16(%r8) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB17_16: - WORD $0xff48; BYTE $0xc1 // incq %rcx - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI18_0: - QUAD $0x0000000000000001 // .quad 1 - QUAD $0x0000000000000005 // .quad 5 - - // .p2align 4, 0x90 -_skip_array: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - QUAD $0xffffffdb0528f8c5 // vmovaps $-37(%rip), %xmm0 /* LCPI18_0(%rip) */ - LONG $0x0011f8c5 // vmovups %xmm0, (%rax) - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - BYTE $0x5d // popq %rbp - LONG $0x00000ee9; BYTE $0x00 // jmp _fsm_exec, $14(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_fsm_exec: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x28ec8348 // subq $40, %rsp - LONG $0xb84d8948 // movq %rcx, $-72(%rbp) - LONG $0x003f8348 // cmpq $0, (%rdi) - LONG $0x0407840f; WORD $0x0000 // je LBB19_2, $1031(%rip) - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - WORD $0x8949; BYTE $0xfd // movq %rdi, %r13 - LONG $0xc8758948 // movq %rsi, $-56(%rbp) - LONG $0x08468d48 // leaq $8(%rsi), %rax - LONG $0xc0458948 // movq %rax, $-64(%rbp) - LONG $0xffc4c749; WORD $0xffff; BYTE $0xff // movq $-1, %r12 - LONG $0x000023e9; BYTE $0x00 // jmp LBB19_4, $35(%rip) - -LBB19_3: - LONG $0x03488d48 // leaq $3(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x04498e0f; WORD $0x0000 // jle LBB19_62, $1097(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB19_39: - LONG $0x00558b49 // movq (%r13), %rdx - WORD $0x894d; BYTE $0xe6 // movq %r12, %r14 - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0415840f; WORD $0x0000 // je LBB19_65, $1045(%rip) - -LBB19_4: - LONG $0xc8758b4c // movq $-56(%rbp), %r14 - WORD $0x8b49; BYTE $0x3e // movq (%r14), %rdi - LONG $0x08768b49 // movq $8(%r14), %rsi - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - WORD $0x894c; BYTE $0xc2 // movq %r8, %rdx - LONG $0xffef4ae8; BYTE $0xff // callq _advance_ns, $-4278(%rip) - WORD $0xc084 // testb %al, %al - LONG $0x03a8840f; WORD $0x0000 // je LBB19_2, $936(%rip) - LONG $0x004d8b49 // movq (%r13), %rcx - LONG $0xcd7c8b41; BYTE $0x00 // movl (%r13,%rcx,8), %edi - LONG $0xfffc8349 // cmpq $-1, %r12 - WORD $0x8949; BYTE $0xd8 // movq %rbx, %r8 - LONG $0x0006850f; WORD $0x0000 // jne LBB19_7, $6(%rip) - WORD $0x8b4d; BYTE $0x20 // movq (%r8), %r12 - WORD $0xff49; BYTE $0xcc // decq %r12 - -LBB19_7: - WORD $0xbe0f; BYTE $0xf0 // movsbl %al, %esi - LONG $0xff518d48 // leaq $-1(%rcx), %rdx - WORD $0xcfff // decl %edi - WORD $0xff83; BYTE $0x05 // cmpl $5, %edi - LONG $0x0037870f; WORD $0x0000 // ja LBB19_12, $55(%rip) - LONG $0xf91d8d48; WORD $0x0004; BYTE $0x00 // leaq $1273(%rip), %rbx /* LJTI19_0(%rip) */ - LONG $0xbb3c6348 // movslq (%rbx,%rdi,4), %rdi - WORD $0x0148; BYTE $0xdf // addq %rbx, %rdi - JMP DI - -LBB19_9: - WORD $0xfe83; BYTE $0x2c // cmpl $44, %esi - LONG $0x0173840f; WORD $0x0000 // je LBB19_31, $371(%rip) - WORD $0xfe83; BYTE $0x5d // cmpl $93, %esi - LONG $0x03a0850f; WORD $0x0000 // jne LBB19_64, $928(%rip) - LONG $0x00558949 // movq %rdx, (%r13) - WORD $0x894d; BYTE $0xe6 // movq %r12, %r14 - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xff82850f; WORD $0xffff // jne LBB19_4, $-126(%rip) - LONG $0x000392e9; BYTE $0x00 // jmp LBB19_65, $914(%rip) - -LBB19_12: - LONG $0x00558949 // movq %rdx, (%r13) - WORD $0xfe83; BYTE $0x7b // cmpl $123, %esi - LONG $0x00ea860f; WORD $0x0000 // jbe LBB19_28, $234(%rip) - LONG $0x000379e9; BYTE $0x00 // jmp LBB19_64, $889(%rip) - -LBB19_13: - WORD $0xfe83; BYTE $0x2c // cmpl $44, %esi - LONG $0x015d840f; WORD $0x0000 // je LBB19_33, $349(%rip) - WORD $0xfe83; BYTE $0x7d // cmpl $125, %esi - LONG $0x0367850f; WORD $0x0000 // jne LBB19_64, $871(%rip) - LONG $0x00558949 // movq %rdx, (%r13) - WORD $0x894d; BYTE $0xe6 // movq %r12, %r14 - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xff49850f; WORD $0xffff // jne LBB19_4, $-183(%rip) - LONG $0x000359e9; BYTE $0x00 // jmp LBB19_65, $857(%rip) - -LBB19_16: - WORD $0x223c // cmpb $34, %al - LONG $0x034a850f; WORD $0x0000 // jne LBB19_64, $842(%rip) - QUAD $0x00000400cd44c749; BYTE $0x00 // movq $4, (%r13,%rcx,8) - QUAD $0xffffffffd045c748 // movq $-1, $-48(%rbp) - WORD $0x8b4d; BYTE $0x38 // movq (%r8), %r15 - WORD $0x894c; BYTE $0xf7 // movq %r14, %rdi - -LBB19_18: - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0xd0558d48 // leaq $-48(%rbp), %rdx - LONG $0xb84d8b48 // movq $-72(%rbp), %rcx - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - LONG $0xfff112e8; BYTE $0xff // callq _advance_string, $-3822(%rip) - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x02e4880f; WORD $0x0000 // js LBB19_55, $740(%rip) - WORD $0x894c; BYTE $0x33 // movq %r14, (%rbx) - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - WORD $0x8949; BYTE $0xd8 // movq %rbx, %r8 - LONG $0xfee78f0f; WORD $0xffff // jg LBB19_39, $-281(%rip) - LONG $0x0002e8e9; BYTE $0x00 // jmp LBB19_56, $744(%rip) - -LBB19_20: - WORD $0x3a3c // cmpb $58, %al - LONG $0x02f8850f; WORD $0x0000 // jne LBB19_64, $760(%rip) - QUAD $0x00000000cd44c749; BYTE $0x00 // movq $0, (%r13,%rcx,8) - LONG $0xfffecce9; BYTE $0xff // jmp LBB19_39, $-308(%rip) - -LBB19_22: - WORD $0x5d3c // cmpb $93, %al - LONG $0x003c850f; WORD $0x0000 // jne LBB19_27, $60(%rip) - LONG $0x00558949 // movq %rdx, (%r13) - WORD $0x894d; BYTE $0xe6 // movq %r12, %r14 - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xfec4850f; WORD $0xffff // jne LBB19_4, $-316(%rip) - LONG $0x0002d4e9; BYTE $0x00 // jmp LBB19_65, $724(%rip) - -LBB19_24: - WORD $0xfe83; BYTE $0x22 // cmpl $34, %esi - LONG $0x00d4840f; WORD $0x0000 // je LBB19_35, $212(%rip) - WORD $0xfe83; BYTE $0x7d // cmpl $125, %esi - LONG $0x02bb850f; WORD $0x0000 // jne LBB19_64, $699(%rip) - LONG $0x00558949 // movq %rdx, (%r13) - WORD $0x894d; BYTE $0xe6 // movq %r12, %r14 - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xfe9d850f; WORD $0xffff // jne LBB19_4, $-355(%rip) - LONG $0x0002ade9; BYTE $0x00 // jmp LBB19_65, $685(%rip) - -LBB19_27: - QUAD $0x00000100cd44c749; BYTE $0x00 // movq $1, (%r13,%rcx,8) - WORD $0xfe83; BYTE $0x7b // cmpl $123, %esi - LONG $0x0294870f; WORD $0x0000 // ja LBB19_64, $660(%rip) - -LBB19_28: - WORD $0xf089 // movl %esi, %eax - LONG $0xe10d8d48; WORD $0x0003; BYTE $0x00 // leaq $993(%rip), %rcx /* LJTI19_1(%rip) */ - LONG $0x81046348 // movslq (%rcx,%rax,4), %rax - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - LONG $0xffc6c749; WORD $0xffff; BYTE $0xff // movq $-1, %r14 - JMP AX - -LBB19_29: - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - WORD $0x8b4d; BYTE $0x38 // movq (%r8), %r15 - LONG $0xff778d4d // leaq $-1(%r15), %r14 - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x8b48; BYTE $0x38 // movq (%rax), %rdi - WORD $0x014c; BYTE $0xf7 // addq %r14, %rdi - LONG $0x08708b48 // movq $8(%rax), %rsi - WORD $0x294c; BYTE $0xf6 // subq %r14, %rsi - LONG $0x0007fde8; BYTE $0x00 // callq _do_skip_number, $2045(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0245880f; WORD $0x0000 // js LBB19_57, $581(%rip) - WORD $0x8b48; BYTE $0x0b // movq (%rbx), %rcx - LONG $0x08448d48; BYTE $0xff // leaq $-1(%rax,%rcx), %rax - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - WORD $0x8949; BYTE $0xd8 // movq %rbx, %r8 - LONG $0xfe1d8f0f; WORD $0xffff // jg LBB19_39, $-483(%rip) - LONG $0x00023de9; BYTE $0x00 // jmp LBB19_65, $573(%rip) - -LBB19_31: - LONG $0xfff98148; WORD $0x000f; BYTE $0x00 // cmpq $4095, %rcx - LONG $0x01ed8f0f; WORD $0x0000 // jg LBB19_58, $493(%rip) - LONG $0x01418d48 // leaq $1(%rcx), %rax - LONG $0x00458949 // movq %rax, (%r13) - QUAD $0x00000008cd44c749; BYTE $0x00 // movq $0, $8(%r13,%rcx,8) - LONG $0xfffdf5e9; BYTE $0xff // jmp LBB19_39, $-523(%rip) - -LBB19_33: - LONG $0xfff98148; WORD $0x000f; BYTE $0x00 // cmpq $4095, %rcx - LONG $0x01ca8f0f; WORD $0x0000 // jg LBB19_58, $458(%rip) - LONG $0x01418d48 // leaq $1(%rcx), %rax - LONG $0x00458949 // movq %rax, (%r13) - QUAD $0x00000308cd44c749; BYTE $0x00 // movq $3, $8(%r13,%rcx,8) - LONG $0xfffdd2e9; BYTE $0xff // jmp LBB19_39, $-558(%rip) - -LBB19_35: - QUAD $0x00000200cd44c749; BYTE $0x00 // movq $2, (%r13,%rcx,8) - QUAD $0xffffffffd045c748 // movq $-1, $-48(%rbp) - WORD $0x8b4d; BYTE $0x38 // movq (%r8), %r15 - WORD $0x894c; BYTE $0xf7 // movq %r14, %rdi - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0xd0558d48 // leaq $-48(%rbp), %rdx - LONG $0xb84d8b48 // movq $-72(%rbp), %rcx - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - LONG $0xffefb8e8; BYTE $0xff // callq _advance_string, $-4168(%rip) - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x018a880f; WORD $0x0000 // js LBB19_55, $394(%rip) - WORD $0x894c; BYTE $0x33 // movq %r14, (%rbx) - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0x01968e0f; WORD $0x0000 // jle LBB19_56, $406(%rip) - LONG $0x00458b49 // movq (%r13), %rax - LONG $0x0fff3d48; WORD $0x0000 // cmpq $4095, %rax - LONG $0x01628f0f; WORD $0x0000 // jg LBB19_58, $354(%rip) - WORD $0x8949; BYTE $0xd8 // movq %rbx, %r8 - LONG $0x01488d48 // leaq $1(%rax), %rcx - LONG $0x004d8949 // movq %rcx, (%r13) - QUAD $0x00000408c544c749; BYTE $0x00 // movq $4, $8(%r13,%rax,8) - LONG $0xfffd67e9; BYTE $0xff // jmp LBB19_39, $-665(%rip) - -LBB19_40: - QUAD $0xffffffffd045c748 // movq $-1, $-48(%rbp) - WORD $0x8b4d; BYTE $0x38 // movq (%r8), %r15 - LONG $0xc87d8b48 // movq $-56(%rbp), %rdi - LONG $0xfffe3ee9; BYTE $0xff // jmp LBB19_18, $-450(%rip) - -LBB19_41: - WORD $0x8b4d; BYTE $0x30 // movq (%r8), %r14 - LONG $0xc8458b48 // movq $-56(%rbp), %rax - WORD $0x8b48; BYTE $0x38 // movq (%rax), %rdi - WORD $0x014c; BYTE $0xf7 // addq %r14, %rdi - LONG $0x08708b48 // movq $8(%rax), %rsi - WORD $0x294c; BYTE $0xf6 // subq %r14, %rsi - WORD $0x894c; BYTE $0xc3 // movq %r8, %rbx - LONG $0x0006f7e8; BYTE $0x00 // callq _do_skip_number, $1783(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x017f880f; WORD $0x0000 // js LBB19_63, $383(%rip) - WORD $0x0148; BYTE $0x03 // addq %rax, (%rbx) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - WORD $0x8949; BYTE $0xd8 // movq %rbx, %r8 - LONG $0xfd1f8f0f; WORD $0xffff // jg LBB19_39, $-737(%rip) - LONG $0x000176e9; BYTE $0x00 // jmp LBB19_68, $374(%rip) - -LBB19_43: - LONG $0x00458b49 // movq (%r13), %rax - LONG $0x0fff3d48; WORD $0x0000 // cmpq $4095, %rax - LONG $0x00ec8f0f; WORD $0x0000 // jg LBB19_58, $236(%rip) - LONG $0x01488d48 // leaq $1(%rax), %rcx - LONG $0x004d8949 // movq %rcx, (%r13) - QUAD $0x00000508c544c749; BYTE $0x00 // movq $5, $8(%r13,%rax,8) - LONG $0xfffcf4e9; BYTE $0xff // jmp LBB19_39, $-780(%rip) - -LBB19_45: - WORD $0x8b49; BYTE $0x00 // movq (%r8), %rax - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - WORD $0x8b48; BYTE $0x09 // movq (%rcx), %rcx - LONG $0xfc518d48 // leaq $-4(%rcx), %rdx - WORD $0x3948; BYTE $0xd0 // cmpq %rdx, %rax - LONG $0x0114870f; WORD $0x0000 // ja LBB19_61, $276(%rip) - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8b48; BYTE $0x09 // movq (%rcx), %rcx - WORD $0x148b; BYTE $0x01 // movl (%rcx,%rax), %edx - LONG $0x6c61fa81; WORD $0x6573 // cmpl $1702063201, %edx - LONG $0x01d0850f; WORD $0x0000 // jne LBB19_78, $464(%rip) - LONG $0x04488d48 // leaq $4(%rax), %rcx - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xfcb78f0f; WORD $0xffff // jg LBB19_39, $-841(%rip) - LONG $0x0000f8e9; BYTE $0x00 // jmp LBB19_62, $248(%rip) - -LBB19_48: - WORD $0x8b49; BYTE $0x00 // movq (%r8), %rax - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - WORD $0x8b48; BYTE $0x09 // movq (%rcx), %rcx - LONG $0xfd518d48 // leaq $-3(%rcx), %rdx - WORD $0x3948; BYTE $0xd0 // cmpq %rdx, %rax - LONG $0x00d2870f; WORD $0x0000 // ja LBB19_61, $210(%rip) - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8b48; BYTE $0x09 // movq (%rcx), %rcx - QUAD $0x6c6c756eff017c81 // cmpl $1819047278, $-1(%rcx,%rax) - LONG $0xfc73840f; WORD $0xffff // je LBB19_3, $-909(%rip) - LONG $0x0000e5e9; BYTE $0x00 // jmp LBB19_69, $229(%rip) - -LBB19_50: - WORD $0x8b49; BYTE $0x00 // movq (%r8), %rax - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - WORD $0x8b48; BYTE $0x09 // movq (%rcx), %rcx - LONG $0xfd518d48 // leaq $-3(%rcx), %rdx - WORD $0x3948; BYTE $0xd0 // cmpq %rdx, %rax - LONG $0x00a1870f; WORD $0x0000 // ja LBB19_61, $161(%rip) - LONG $0xc84d8b48 // movq $-56(%rbp), %rcx - WORD $0x8b48; BYTE $0x09 // movq (%rcx), %rcx - QUAD $0x65757274ff017c81 // cmpl $1702195828, $-1(%rcx,%rax) - LONG $0xfc42840f; WORD $0xffff // je LBB19_3, $-958(%rip) - LONG $0x000103e9; BYTE $0x00 // jmp LBB19_73, $259(%rip) - -LBB19_52: - LONG $0x00458b49 // movq (%r13), %rax - LONG $0x0fff3d48; WORD $0x0000 // cmpq $4095, %rax - LONG $0x00228f0f; WORD $0x0000 // jg LBB19_58, $34(%rip) - LONG $0x01488d48 // leaq $1(%rax), %rcx - LONG $0x004d8949 // movq %rcx, (%r13) - QUAD $0x00000608c544c749; BYTE $0x00 // movq $6, $8(%r13,%rax,8) - LONG $0xfffc2ae9; BYTE $0xff // jmp LBB19_39, $-982(%rip) - -LBB19_2: - LONG $0xffc6c749; WORD $0xffff; BYTE $0xff // movq $-1, %r14 - LONG $0x000043e9; BYTE $0x00 // jmp LBB19_65, $67(%rip) - -LBB19_58: - LONG $0xf9c6c749; WORD $0xffff; BYTE $0xff // movq $-7, %r14 - LONG $0x000037e9; BYTE $0x00 // jmp LBB19_65, $55(%rip) - -LBB19_55: - LONG $0xfffe8349 // cmpq $-1, %r14 - LONG $0xd0458d48 // leaq $-48(%rbp), %rax - LONG $0x45440f48; BYTE $0xc0 // cmoveq $-64(%rbp), %rax - WORD $0x8b48; BYTE $0x00 // movq (%rax), %rax - WORD $0x8948; BYTE $0x03 // movq %rax, (%rbx) - LONG $0x00001fe9; BYTE $0x00 // jmp LBB19_65, $31(%rip) - -LBB19_56: - WORD $0xff49; BYTE $0xcf // decq %r15 - WORD $0x894d; BYTE $0xfe // movq %r15, %r14 - LONG $0x000014e9; BYTE $0x00 // jmp LBB19_65, $20(%rip) - -LBB19_57: - WORD $0x8b48; BYTE $0x0b // movq (%rbx), %rcx - WORD $0x2948; BYTE $0xc1 // subq %rax, %rcx - LONG $0xfec18348 // addq $-2, %rcx - WORD $0x8948; BYTE $0x0b // movq %rcx, (%rbx) - -LBB19_64: - LONG $0xfec6c749; WORD $0xffff; BYTE $0xff // movq $-2, %r14 - -LBB19_65: - WORD $0x894c; BYTE $0xf0 // movq %r14, %rax - LONG $0x28c48348 // addq $40, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB19_61: - WORD $0x8949; BYTE $0x08 // movq %rcx, (%r8) - LONG $0xffc6c749; WORD $0xffff; BYTE $0xff // movq $-1, %r14 - LONG $0xffffdfe9; BYTE $0xff // jmp LBB19_65, $-33(%rip) - -LBB19_62: - WORD $0xff48; BYTE $0xc8 // decq %rax - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - LONG $0xffffd4e9; BYTE $0xff // jmp LBB19_65, $-44(%rip) - -LBB19_63: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0148; BYTE $0x03 // addq %rax, (%rbx) - LONG $0xffffc2e9; BYTE $0xff // jmp LBB19_64, $-62(%rip) - -LBB19_68: - WORD $0xff49; BYTE $0xce // decq %r14 - LONG $0xffffc1e9; BYTE $0xff // jmp LBB19_65, $-63(%rip) - -LBB19_69: - LONG $0xff508d48 // leaq $-1(%rax), %rdx - WORD $0x8949; BYTE $0x10 // movq %rdx, (%r8) - LONG $0xfec6c749; WORD $0xffff; BYTE $0xff // movq $-2, %r14 - LONG $0xff017c80; BYTE $0x6e // cmpb $110, $-1(%rcx,%rax) - LONG $0xffa8850f; WORD $0xffff // jne LBB19_65, $-88(%rip) - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0x75013c80 // cmpb $117, (%rcx,%rax) - LONG $0xff9b850f; WORD $0xffff // jne LBB19_65, $-101(%rip) - LONG $0x01508d48 // leaq $1(%rax), %rdx - WORD $0x8949; BYTE $0x10 // movq %rdx, (%r8) - LONG $0x01017c80; BYTE $0x6c // cmpb $108, $1(%rcx,%rax) - LONG $0xff89850f; WORD $0xffff // jne LBB19_65, $-119(%rip) - LONG $0x02508d48 // leaq $2(%rax), %rdx - WORD $0x8949; BYTE $0x10 // movq %rdx, (%r8) - LONG $0x02017c80; BYTE $0x6c // cmpb $108, $2(%rcx,%rax) - LONG $0xff77850f; WORD $0xffff // jne LBB19_65, $-137(%rip) - LONG $0x00004ae9; BYTE $0x00 // jmp LBB19_77, $74(%rip) - -LBB19_73: - LONG $0xff508d48 // leaq $-1(%rax), %rdx - WORD $0x8949; BYTE $0x10 // movq %rdx, (%r8) - LONG $0xfec6c749; WORD $0xffff; BYTE $0xff // movq $-2, %r14 - LONG $0xff017c80; BYTE $0x74 // cmpb $116, $-1(%rcx,%rax) - LONG $0xff59850f; WORD $0xffff // jne LBB19_65, $-167(%rip) - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0x72013c80 // cmpb $114, (%rcx,%rax) - LONG $0xff4c850f; WORD $0xffff // jne LBB19_65, $-180(%rip) - LONG $0x01508d48 // leaq $1(%rax), %rdx - WORD $0x8949; BYTE $0x10 // movq %rdx, (%r8) - LONG $0x01017c80; BYTE $0x75 // cmpb $117, $1(%rcx,%rax) - LONG $0xff3a850f; WORD $0xffff // jne LBB19_65, $-198(%rip) - LONG $0x02508d48 // leaq $2(%rax), %rdx - WORD $0x8949; BYTE $0x10 // movq %rdx, (%r8) - LONG $0x02017c80; BYTE $0x65 // cmpb $101, $2(%rcx,%rax) - LONG $0xff28850f; WORD $0xffff // jne LBB19_65, $-216(%rip) - -LBB19_77: - LONG $0x03c08348 // addq $3, %rax - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0xffff1ce9; BYTE $0xff // jmp LBB19_65, $-228(%rip) - -LBB19_78: - LONG $0xfec6c749; WORD $0xffff; BYTE $0xff // movq $-2, %r14 - WORD $0xfa80; BYTE $0x61 // cmpb $97, %dl - LONG $0xff0c850f; WORD $0xffff // jne LBB19_65, $-244(%rip) - LONG $0x01508d48 // leaq $1(%rax), %rdx - WORD $0x8949; BYTE $0x10 // movq %rdx, (%r8) - LONG $0x01017c80; BYTE $0x6c // cmpb $108, $1(%rcx,%rax) - LONG $0xfefa850f; WORD $0xffff // jne LBB19_65, $-262(%rip) - LONG $0x02508d48 // leaq $2(%rax), %rdx - WORD $0x8949; BYTE $0x10 // movq %rdx, (%r8) - LONG $0x02017c80; BYTE $0x73 // cmpb $115, $2(%rcx,%rax) - LONG $0xfee8850f; WORD $0xffff // jne LBB19_65, $-280(%rip) - LONG $0x03508d48 // leaq $3(%rax), %rdx - WORD $0x8949; BYTE $0x10 // movq %rdx, (%r8) - LONG $0x03017c80; BYTE $0x65 // cmpb $101, $3(%rcx,%rax) - LONG $0xfed6850f; WORD $0xffff // jne LBB19_65, $-298(%rip) - LONG $0x04c08348 // addq $4, %rax - WORD $0x8949; BYTE $0x00 // movq %rax, (%r8) - LONG $0xfffecae9; BYTE $0xff // jmp LBB19_65, $-310(%rip) - BYTE $0x90 // .p2align 2, 0x90 - - // .set L19_0_set_9, LBB19_9-LJTI19_0 - // .set L19_0_set_13, LBB19_13-LJTI19_0 - // .set L19_0_set_16, LBB19_16-LJTI19_0 - // .set L19_0_set_20, LBB19_20-LJTI19_0 - // .set L19_0_set_22, LBB19_22-LJTI19_0 - // .set L19_0_set_24, LBB19_24-LJTI19_0 -LJTI19_0: - LONG $0xfffffb10 // .long L19_0_set_9 - LONG $0xfffffb49 // .long L19_0_set_13 - LONG $0xfffffb70 // .long L19_0_set_16 - LONG $0xfffffbc2 // .long L19_0_set_20 - LONG $0xfffffbd8 // .long L19_0_set_22 - LONG $0xfffffbf5 // .long L19_0_set_24 - - // .set L19_1_set_65, LBB19_65-LJTI19_1 - // .set L19_1_set_64, LBB19_64-LJTI19_1 - // .set L19_1_set_40, LBB19_40-LJTI19_1 - // .set L19_1_set_41, LBB19_41-LJTI19_1 - // .set L19_1_set_29, LBB19_29-LJTI19_1 - // .set L19_1_set_43, LBB19_43-LJTI19_1 - // .set L19_1_set_45, LBB19_45-LJTI19_1 - // .set L19_1_set_48, LBB19_48-LJTI19_1 - // .set L19_1_set_50, LBB19_50-LJTI19_1 - // .set L19_1_set_52, LBB19_52-LJTI19_1 -LJTI19_1: - LONG $0xfffffeb1 // .long L19_1_set_65 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffd25 // .long L19_1_set_40 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffd39 // .long L19_1_set_41 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffc2f // .long L19_1_set_29 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffd72 // .long L19_1_set_43 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffd98 // .long L19_1_set_45 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffdda // .long L19_1_set_48 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffe0b // .long L19_1_set_50 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffeaa // .long L19_1_set_64 - LONG $0xfffffe3c // .long L19_1_set_52 - QUAD $0x0000000000000000; LONG $0x00000000 // .p2align 4, 0x00 - -LCPI20_0: - QUAD $0x0000000000000001 // .quad 1 - QUAD $0x0000000000000006 // .quad 6 - - // .p2align 4, 0x90 -_skip_object: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - QUAD $0xffffffdb0528f8c5 // vmovaps $-37(%rip), %xmm0 /* LCPI20_0(%rip) */ - LONG $0x0011f8c5 // vmovups %xmm0, (%rax) - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - BYTE $0x5d // popq %rbp - LONG $0xfff80ee9; BYTE $0xff // jmp _fsm_exec, $-2034(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -_skip_string: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x10ec8348 // subq $16, %rsp - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8949; BYTE $0xff // movq %rdi, %r15 - QUAD $0xffffffffd845c748 // movq $-1, $-40(%rbp) - WORD $0x8b48; BYTE $0x1e // movq (%rsi), %rbx - LONG $0xd8658d4c // leaq $-40(%rbp), %r12 - WORD $0x8948; BYTE $0xde // movq %rbx, %rsi - WORD $0x894c; BYTE $0xe2 // movq %r12, %rdx - LONG $0xffea2ee8; BYTE $0xff // callq _advance_string, $-5586(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x000e880f; WORD $0x0000 // js LBB21_1, $14(%rip) - WORD $0xff48; BYTE $0xcb // decq %rbx - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x8948; BYTE $0xd8 // movq %rbx, %rax - LONG $0x000010e9; BYTE $0x00 // jmp LBB21_3, $16(%rip) - -LBB21_1: - LONG $0x08c78349 // addq $8, %r15 - LONG $0xfff88348 // cmpq $-1, %rax - LONG $0xe7440f4d // cmoveq %r15, %r12 - LONG $0x240c8b49 // movq (%r12), %rcx - -LBB21_3: - WORD $0x8949; BYTE $0x0e // movq %rcx, (%r14) - LONG $0x10c48348 // addq $16, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_skip_negative: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8b48; BYTE $0x1e // movq (%rsi), %rbx - WORD $0x8b48; BYTE $0x07 // movq (%rdi), %rax - WORD $0x0148; BYTE $0xd8 // addq %rbx, %rax - LONG $0x08778b48 // movq $8(%rdi), %rsi - WORD $0x2948; BYTE $0xde // subq %rbx, %rsi - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0x00017ee8; BYTE $0x00 // callq _do_skip_number, $382(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x000b880f; WORD $0x0000 // js LBB22_1, $11(%rip) - WORD $0x0149; BYTE $0x06 // addq %rax, (%r14) - WORD $0xff48; BYTE $0xcb // decq %rbx - LONG $0x00000de9; BYTE $0x00 // jmp LBB22_3, $13(%rip) - -LBB22_1: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0149; BYTE $0x06 // addq %rax, (%r14) - LONG $0xfec3c748; WORD $0xffff; BYTE $0xff // movq $-2, %rbx - -LBB22_3: - WORD $0x8948; BYTE $0xd8 // movq %rbx, %rax - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - LONG $0x00000000; BYTE $0x00 // .p2align 5, 0x00 - -LCPI23_0: - QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - -LCPI23_1: - QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - -LCPI23_2: - QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - -LCPI23_3: - QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - -LCPI23_4: - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - -LCPI23_5: - QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - -LCPI23_6: - QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' - QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' - - // .p2align 4, 0x00 -LCPI23_7: - QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - -LCPI23_8: - QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - -LCPI23_9: - QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - -LCPI23_10: - QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - -LCPI23_11: - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - -LCPI23_12: - QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - -LCPI23_13: - QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' - - // .p2align 4, 0x90 -_do_skip_number: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x03a8840f; WORD $0x0000 // je LBB23_52, $936(%rip) - WORD $0x3f80; BYTE $0x30 // cmpb $48, (%rdi) - LONG $0x0033850f; WORD $0x0000 // jne LBB23_5, $51(%rip) - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - LONG $0x01fe8348 // cmpq $1, %rsi - LONG $0x047c840f; WORD $0x0000 // je LBB23_71, $1148(%rip) - WORD $0x478a; BYTE $0x01 // movb $1(%rdi), %al - WORD $0xd204 // addb $-46, %al - WORD $0x373c // cmpb $55, %al - LONG $0x046f870f; WORD $0x0000 // ja LBB23_71, $1135(%rip) - WORD $0xb60f; BYTE $0xc0 // movzbl %al, %eax - QUAD $0x000000800001b948; WORD $0x0080 // movabsq $36028797027352577, %rcx - LONG $0xc1a30f48 // btq %rax, %rcx - LONG $0x0458830f; WORD $0x0000 // jae LBB23_71, $1112(%rip) - -LBB23_5: - LONG $0xffc1c749; WORD $0xffff; BYTE $0xff // movq $-1, %r9 - LONG $0x20fe8348 // cmpq $32, %rsi - LONG $0x0474820f; WORD $0x0000 // jb LBB23_74, $1140(%rip) - QUAD $0xfffffe49056ffdc5 // vmovdqa $-439(%rip), %ymm0 /* LCPI23_0(%rip) */ - QUAD $0xfffffe610d6ffdc5 // vmovdqa $-415(%rip), %ymm1 /* LCPI23_1(%rip) */ - QUAD $0xfffffe79156ffdc5 // vmovdqa $-391(%rip), %ymm2 /* LCPI23_2(%rip) */ - QUAD $0xfffffe911d6ffdc5 // vmovdqa $-367(%rip), %ymm3 /* LCPI23_3(%rip) */ - QUAD $0xfffffea9256ffdc5 // vmovdqa $-343(%rip), %ymm4 /* LCPI23_4(%rip) */ - QUAD $0xfffffec12d6ffdc5 // vmovdqa $-319(%rip), %ymm5 /* LCPI23_5(%rip) */ - QUAD $0xfffffed9356ffdc5 // vmovdqa $-295(%rip), %ymm6 /* LCPI23_6(%rip) */ - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xffc0c749; WORD $0xffff; BYTE $0xff // movq $-1, %r8 - WORD $0x8949; BYTE $0xfa // movq %rdi, %r10 - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB23_7: - LONG $0x6f7ec1c4; BYTE $0x3a // vmovdqu (%r10), %ymm7 - LONG $0xc06445c5 // vpcmpgtb %ymm0, %ymm7, %ymm8 - LONG $0xcf6475c5 // vpcmpgtb %ymm7, %ymm1, %ymm9 - LONG $0xdb3541c4; BYTE $0xc0 // vpand %ymm8, %ymm9, %ymm8 - LONG $0xca7445c5 // vpcmpeqb %ymm2, %ymm7, %ymm9 - LONG $0xd37445c5 // vpcmpeqb %ymm3, %ymm7, %ymm10 - LONG $0xeb2d41c4; BYTE $0xc9 // vpor %ymm9, %ymm10, %ymm9 - LONG $0xd4db45c5 // vpand %ymm4, %ymm7, %ymm10 - LONG $0xd6742dc5 // vpcmpeqb %ymm6, %ymm10, %ymm10 - LONG $0xfd74c5c5 // vpcmpeqb %ymm5, %ymm7, %ymm7 - LONG $0xd7d7fdc5 // vpmovmskb %ymm7, %edx - LONG $0xd77d41c4; BYTE $0xf2 // vpmovmskb %ymm10, %r14d - LONG $0xd77d41c4; BYTE $0xd9 // vpmovmskb %ymm9, %r11d - LONG $0xffebbdc5 // vpor %ymm7, %ymm8, %ymm7 - LONG $0xeb2d41c4; BYTE $0xc1 // vpor %ymm9, %ymm10, %ymm8 - LONG $0xffebbdc5 // vpor %ymm7, %ymm8, %ymm7 - LONG $0xcfd7fdc5 // vpmovmskb %ymm7, %ecx - WORD $0xf748; BYTE $0xd1 // notq %rcx - LONG $0xc9bc0f48 // bsfq %rcx, %rcx - WORD $0xf983; BYTE $0x20 // cmpl $32, %ecx - LONG $0x0014840f; WORD $0x0000 // je LBB23_9, $20(%rip) - LONG $0xffffffbb; BYTE $0xff // movl $-1, %ebx - WORD $0xe3d3 // shll %cl, %ebx - WORD $0xd3f7 // notl %ebx - WORD $0xda21 // andl %ebx, %edx - WORD $0x2141; BYTE $0xde // andl %ebx, %r14d - WORD $0x2144; BYTE $0xdb // andl %r11d, %ebx - WORD $0x8941; BYTE $0xdb // movl %ebx, %r11d - -LBB23_9: - WORD $0x5a8d; BYTE $0xff // leal $-1(%rdx), %ebx - WORD $0xd321 // andl %edx, %ebx - LONG $0x0371850f; WORD $0x0000 // jne LBB23_69, $881(%rip) - LONG $0xff5e8d41 // leal $-1(%r14), %ebx - WORD $0x2144; BYTE $0xf3 // andl %r14d, %ebx - LONG $0x0364850f; WORD $0x0000 // jne LBB23_69, $868(%rip) - LONG $0xff5b8d41 // leal $-1(%r11), %ebx - WORD $0x2144; BYTE $0xdb // andl %r11d, %ebx - LONG $0x0357850f; WORD $0x0000 // jne LBB23_69, $855(%rip) - WORD $0xd285 // testl %edx, %edx - LONG $0x0019840f; WORD $0x0000 // je LBB23_15, $25(%rip) - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - WORD $0xbc0f; BYTE $0xd2 // bsfl %edx, %edx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0xfff88349 // cmpq $-1, %r8 - LONG $0x0342850f; WORD $0x0000 // jne LBB23_70, $834(%rip) - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - -LBB23_15: - WORD $0x8545; BYTE $0xf6 // testl %r14d, %r14d - LONG $0x001a840f; WORD $0x0000 // je LBB23_18, $26(%rip) - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - LONG $0xd6bc0f41 // bsfl %r14d, %edx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0xfff88348 // cmpq $-1, %rax - LONG $0x031f850f; WORD $0x0000 // jne LBB23_70, $799(%rip) - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - -LBB23_18: - WORD $0x8545; BYTE $0xdb // testl %r11d, %r11d - LONG $0x001a840f; WORD $0x0000 // je LBB23_21, $26(%rip) - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - LONG $0xd3bc0f41 // bsfl %r11d, %edx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0xfff98349 // cmpq $-1, %r9 - LONG $0x02fc850f; WORD $0x0000 // jne LBB23_70, $764(%rip) - WORD $0x8949; BYTE $0xd1 // movq %rdx, %r9 - -LBB23_21: - WORD $0xf983; BYTE $0x20 // cmpl $32, %ecx - LONG $0x0213850f; WORD $0x0000 // jne LBB23_53, $531(%rip) - LONG $0x20c28349 // addq $32, %r10 - LONG $0xe0c68348 // addq $-32, %rsi - LONG $0x1ffe8348 // cmpq $31, %rsi - LONG $0xfeeb870f; WORD $0xffff // ja LBB23_7, $-277(%rip) - WORD $0xf8c5; BYTE $0x77 // vzeroupper - LONG $0x10fe8348 // cmpq $16, %rsi - LONG $0x014f820f; WORD $0x0000 // jb LBB23_41, $335(%rip) - -LBB23_24: - QUAD $0xfffffdb6056f79c5 // vmovdqa $-586(%rip), %xmm8 /* LCPI23_7(%rip) */ - QUAD $0xfffffdbe0d6f79c5 // vmovdqa $-578(%rip), %xmm9 /* LCPI23_8(%rip) */ - QUAD $0xfffffdc6156f79c5 // vmovdqa $-570(%rip), %xmm10 /* LCPI23_9(%rip) */ - QUAD $0xfffffdce1d6f79c5 // vmovdqa $-562(%rip), %xmm11 /* LCPI23_10(%rip) */ - QUAD $0xfffffdd6256ff9c5 // vmovdqa $-554(%rip), %xmm4 /* LCPI23_11(%rip) */ - QUAD $0xfffffdde2d6ff9c5 // vmovdqa $-546(%rip), %xmm5 /* LCPI23_12(%rip) */ - QUAD $0xfffffde6356ff9c5 // vmovdqa $-538(%rip), %xmm6 /* LCPI23_13(%rip) */ - LONG $0xffffbb41; WORD $0xffff // movl $4294967295, %r11d - - // .p2align 4, 0x90 -LBB23_25: - LONG $0x6f7ac1c4; BYTE $0x3a // vmovdqu (%r10), %xmm7 - LONG $0x6441c1c4; BYTE $0xc0 // vpcmpgtb %xmm8, %xmm7, %xmm0 - LONG $0xcf64b1c5 // vpcmpgtb %xmm7, %xmm9, %xmm1 - LONG $0xc1dbf9c5 // vpand %xmm1, %xmm0, %xmm0 - LONG $0xcf74a9c5 // vpcmpeqb %xmm7, %xmm10, %xmm1 - LONG $0xd774a1c5 // vpcmpeqb %xmm7, %xmm11, %xmm2 - LONG $0xc9ebe9c5 // vpor %xmm1, %xmm2, %xmm1 - LONG $0xd4dbc1c5 // vpand %xmm4, %xmm7, %xmm2 - LONG $0xd674e9c5 // vpcmpeqb %xmm6, %xmm2, %xmm2 - LONG $0xfd74c1c5 // vpcmpeqb %xmm5, %xmm7, %xmm7 - LONG $0xdfebe9c5 // vpor %xmm7, %xmm2, %xmm3 - LONG $0xc0ebf1c5 // vpor %xmm0, %xmm1, %xmm0 - LONG $0xc0ebe1c5 // vpor %xmm0, %xmm3, %xmm0 - LONG $0xd7d7f9c5 // vpmovmskb %xmm7, %edx - LONG $0xfad779c5 // vpmovmskb %xmm2, %r15d - LONG $0xf1d779c5 // vpmovmskb %xmm1, %r14d - LONG $0xc8d7f9c5 // vpmovmskb %xmm0, %ecx - WORD $0x314c; BYTE $0xd9 // xorq %r11, %rcx - LONG $0xc9bc0f48 // bsfq %rcx, %rcx - WORD $0xf983; BYTE $0x10 // cmpl $16, %ecx - LONG $0x0014840f; WORD $0x0000 // je LBB23_27, $20(%rip) - LONG $0xffffffbb; BYTE $0xff // movl $-1, %ebx - WORD $0xe3d3 // shll %cl, %ebx - WORD $0xd3f7 // notl %ebx - WORD $0xda21 // andl %ebx, %edx - WORD $0x2141; BYTE $0xdf // andl %ebx, %r15d - WORD $0x2144; BYTE $0xf3 // andl %r14d, %ebx - WORD $0x8941; BYTE $0xde // movl %ebx, %r14d - -LBB23_27: - WORD $0x5a8d; BYTE $0xff // leal $-1(%rdx), %ebx - WORD $0xd321 // andl %edx, %ebx - LONG $0x0215850f; WORD $0x0000 // jne LBB23_69, $533(%rip) - LONG $0xff5f8d41 // leal $-1(%r15), %ebx - WORD $0x2144; BYTE $0xfb // andl %r15d, %ebx - LONG $0x0208850f; WORD $0x0000 // jne LBB23_69, $520(%rip) - LONG $0xff5e8d41 // leal $-1(%r14), %ebx - WORD $0x2144; BYTE $0xf3 // andl %r14d, %ebx - LONG $0x01fb850f; WORD $0x0000 // jne LBB23_69, $507(%rip) - WORD $0xd285 // testl %edx, %edx - LONG $0x0019840f; WORD $0x0000 // je LBB23_33, $25(%rip) - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - WORD $0xbc0f; BYTE $0xd2 // bsfl %edx, %edx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0xfff88349 // cmpq $-1, %r8 - LONG $0x01e6850f; WORD $0x0000 // jne LBB23_70, $486(%rip) - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - -LBB23_33: - WORD $0x8545; BYTE $0xff // testl %r15d, %r15d - LONG $0x001a840f; WORD $0x0000 // je LBB23_36, $26(%rip) - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - LONG $0xd7bc0f41 // bsfl %r15d, %edx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0xfff88348 // cmpq $-1, %rax - LONG $0x01c3850f; WORD $0x0000 // jne LBB23_70, $451(%rip) - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - -LBB23_36: - WORD $0x8545; BYTE $0xf6 // testl %r14d, %r14d - LONG $0x001a840f; WORD $0x0000 // je LBB23_39, $26(%rip) - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - LONG $0xd6bc0f41 // bsfl %r14d, %edx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - LONG $0xfff98349 // cmpq $-1, %r9 - LONG $0x01a0850f; WORD $0x0000 // jne LBB23_70, $416(%rip) - WORD $0x8949; BYTE $0xd1 // movq %rdx, %r9 - -LBB23_39: - WORD $0xf983; BYTE $0x10 // cmpl $16, %ecx - LONG $0x00d2850f; WORD $0x0000 // jne LBB23_54, $210(%rip) - LONG $0x10c28349 // addq $16, %r10 - LONG $0xf0c68348 // addq $-16, %rsi - LONG $0x0ffe8348 // cmpq $15, %rsi - LONG $0xfeef870f; WORD $0xffff // ja LBB23_25, $-273(%rip) - -LBB23_41: - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0x00ba840f; WORD $0x0000 // je LBB23_55, $186(%rip) - LONG $0x321c8d4d // leaq (%r10,%rsi), %r11 - LONG $0xbf1d8d48; WORD $0x0001; BYTE $0x00 // leaq $447(%rip), %rbx /* LJTI23_0(%rip) */ - LONG $0x000012e9; BYTE $0x00 // jmp LBB23_44, $18(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB23_43: - WORD $0x8949; BYTE $0xca // movq %rcx, %r10 - WORD $0xff48; BYTE $0xce // decq %rsi - LONG $0x0167840f; WORD $0x0000 // je LBB23_73, $359(%rip) - -LBB23_44: - LONG $0x12be0f41 // movsbl (%r10), %edx - WORD $0xc283; BYTE $0xd5 // addl $-43, %edx - WORD $0xfa83; BYTE $0x3a // cmpl $58, %edx - LONG $0x0088870f; WORD $0x0000 // ja LBB23_55, $136(%rip) - LONG $0x014a8d49 // leaq $1(%r10), %rcx - LONG $0x93146348 // movslq (%rbx,%rdx,4), %rdx - WORD $0x0148; BYTE $0xda // addq %rbx, %rdx - JMP DX - -LBB23_46: - WORD $0x8948; BYTE $0xca // movq %rcx, %rdx - WORD $0x2948; BYTE $0xfa // subq %rdi, %rdx - LONG $0xfff98349 // cmpq $-1, %r9 - LONG $0x0152850f; WORD $0x0000 // jne LBB23_77, $338(%rip) - WORD $0xff48; BYTE $0xca // decq %rdx - WORD $0x8949; BYTE $0xd1 // movq %rdx, %r9 - LONG $0xffffbce9; BYTE $0xff // jmp LBB23_43, $-68(%rip) - -LBB23_48: - WORD $0x8948; BYTE $0xca // movq %rcx, %rdx - WORD $0x2948; BYTE $0xfa // subq %rdi, %rdx - LONG $0xfff88348 // cmpq $-1, %rax - LONG $0x0137850f; WORD $0x0000 // jne LBB23_77, $311(%rip) - WORD $0xff48; BYTE $0xca // decq %rdx - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - LONG $0xffffa1e9; BYTE $0xff // jmp LBB23_43, $-95(%rip) - -LBB23_50: - WORD $0x8948; BYTE $0xca // movq %rcx, %rdx - WORD $0x2948; BYTE $0xfa // subq %rdi, %rdx - LONG $0xfff88349 // cmpq $-1, %r8 - LONG $0x011c850f; WORD $0x0000 // jne LBB23_77, $284(%rip) - WORD $0xff48; BYTE $0xca // decq %rdx - WORD $0x8949; BYTE $0xd0 // movq %rdx, %r8 - LONG $0xffff86e9; BYTE $0xff // jmp LBB23_43, $-122(%rip) - -LBB23_52: - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0x0000e3e9; BYTE $0x00 // jmp LBB23_72, $227(%rip) - -LBB23_53: - WORD $0x0149; BYTE $0xca // addq %rcx, %r10 - WORD $0xf8c5; BYTE $0x77 // vzeroupper - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0018850f; WORD $0x0000 // jne LBB23_56, $24(%rip) - LONG $0x0000c5e9; BYTE $0x00 // jmp LBB23_71, $197(%rip) - -LBB23_54: - WORD $0x0149; BYTE $0xca // addq %rcx, %r10 - -LBB23_55: - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x00b2840f; WORD $0x0000 // je LBB23_71, $178(%rip) - -LBB23_56: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x00a9840f; WORD $0x0000 // je LBB23_71, $169(%rip) - WORD $0x854d; BYTE $0xc0 // testq %r8, %r8 - LONG $0x00a0840f; WORD $0x0000 // je LBB23_71, $160(%rip) - WORD $0x2949; BYTE $0xfa // subq %rdi, %r10 - LONG $0xff4a8d49 // leaq $-1(%r10), %rcx - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0x0036840f; WORD $0x0000 // je LBB23_64, $54(%rip) - WORD $0x3949; BYTE $0xc8 // cmpq %rcx, %r8 - LONG $0x002d840f; WORD $0x0000 // je LBB23_64, $45(%rip) - WORD $0x3949; BYTE $0xc9 // cmpq %rcx, %r9 - LONG $0x0024840f; WORD $0x0000 // je LBB23_64, $36(%rip) - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x00298e0f; WORD $0x0000 // jle LBB23_65, $41(%rip) - LONG $0xff498d49 // leaq $-1(%r9), %rcx - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0x001c840f; WORD $0x0000 // je LBB23_65, $28(%rip) - WORD $0xf749; BYTE $0xd1 // notq %r9 - WORD $0x894c; BYTE $0xca // movq %r9, %rdx - WORD $0x894c; BYTE $0xc8 // movq %r9, %rax - LONG $0x00005de9; BYTE $0x00 // jmp LBB23_72, $93(%rip) - -LBB23_64: - WORD $0xf749; BYTE $0xda // negq %r10 - WORD $0x894c; BYTE $0xd2 // movq %r10, %rdx - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - LONG $0x00004fe9; BYTE $0x00 // jmp LBB23_72, $79(%rip) - -LBB23_65: - WORD $0x894c; BYTE $0xc1 // movq %r8, %rcx - WORD $0x0948; BYTE $0xc1 // orq %rax, %rcx - WORD $0x3949; BYTE $0xc0 // cmpq %rax, %r8 - LONG $0x00178c0f; WORD $0x0000 // jl LBB23_68, $23(%rip) - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x000e880f; WORD $0x0000 // js LBB23_68, $14(%rip) - WORD $0xf749; BYTE $0xd0 // notq %r8 - WORD $0x894c; BYTE $0xc2 // movq %r8, %rdx - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - LONG $0x000029e9; BYTE $0x00 // jmp LBB23_72, $41(%rip) - -LBB23_68: - LONG $0xff508d48 // leaq $-1(%rax), %rdx - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - WORD $0xf748; BYTE $0xd0 // notq %rax - LONG $0xc2480f49 // cmovsq %r10, %rax - WORD $0x3949; BYTE $0xd0 // cmpq %rdx, %r8 - LONG $0xc2450f49 // cmovneq %r10, %rax - LONG $0x00000fe9; BYTE $0x00 // jmp LBB23_72, $15(%rip) - -LBB23_69: - WORD $0x2949; BYTE $0xfa // subq %rdi, %r10 - WORD $0xbc0f; BYTE $0xd3 // bsfl %ebx, %edx - WORD $0x014c; BYTE $0xd2 // addq %r10, %rdx - -LBB23_70: - WORD $0xf748; BYTE $0xd2 // notq %rdx - -LBB23_71: - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - -LBB23_72: - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB23_73: - WORD $0x894d; BYTE $0xda // movq %r11, %r10 - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xff2e850f; WORD $0xffff // jne LBB23_56, $-210(%rip) - LONG $0xffffdbe9; BYTE $0xff // jmp LBB23_71, $-37(%rip) - -LBB23_77: - WORD $0xf748; BYTE $0xda // negq %rdx - LONG $0xffffd3e9; BYTE $0xff // jmp LBB23_71, $-45(%rip) - -LBB23_74: - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xffc0c749; WORD $0xffff; BYTE $0xff // movq $-1, %r8 - WORD $0x8949; BYTE $0xfa // movq %rdi, %r10 - LONG $0x10fe8348 // cmpq $16, %rsi - LONG $0xfce4830f; WORD $0xffff // jae LBB23_24, $-796(%rip) - LONG $0xfffe2ee9; BYTE $0xff // jmp LBB23_41, $-466(%rip) - BYTE $0x90 // .p2align 2, 0x90 - - // .set L23_0_set_46, LBB23_46-LJTI23_0 - // .set L23_0_set_55, LBB23_55-LJTI23_0 - // .set L23_0_set_50, LBB23_50-LJTI23_0 - // .set L23_0_set_43, LBB23_43-LJTI23_0 - // .set L23_0_set_48, LBB23_48-LJTI23_0 -LJTI23_0: - LONG $0xfffffe75 // .long L23_0_set_46 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffe75 // .long L23_0_set_46 - LONG $0xfffffeab // .long L23_0_set_50 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffe4c // .long L23_0_set_43 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffe90 // .long L23_0_set_48 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffef0 // .long L23_0_set_55 - LONG $0xfffffe90 // .long L23_0_set_48 - - // .p2align 4, 0x90 -_skip_positive: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8b48; BYTE $0x1e // movq (%rsi), %rbx - WORD $0xff48; BYTE $0xcb // decq %rbx - WORD $0x8b48; BYTE $0x07 // movq (%rdi), %rax - WORD $0x0148; BYTE $0xd8 // addq %rbx, %rax - LONG $0x08778b48 // movq $8(%rdi), %rsi - WORD $0x2948; BYTE $0xde // subq %rbx, %rsi - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0xfff9fbe8; BYTE $0xff // callq _do_skip_number, $-1541(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x000d880f; WORD $0x0000 // js LBB24_1, $13(%rip) - WORD $0x8b49; BYTE $0x0e // movq (%r14), %rcx - LONG $0x084c8d48; BYTE $0xff // leaq $-1(%rax,%rcx), %rcx - LONG $0x000011e9; BYTE $0x00 // jmp LBB24_3, $17(%rip) - -LBB24_1: - WORD $0x8b49; BYTE $0x0e // movq (%r14), %rcx - WORD $0x2948; BYTE $0xc1 // subq %rax, %rcx - LONG $0xfec18348 // addq $-2, %rcx - LONG $0xfec3c748; WORD $0xffff; BYTE $0xff // movq $-2, %rbx - -LBB24_3: - WORD $0x8949; BYTE $0x0e // movq %rcx, (%r14) - WORD $0x8948; BYTE $0xd8 // movq %rbx, %rax - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x9090909090909090; BYTE $0x90 // .p2align 4, 0x90 - -_skip_number: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8b4c; BYTE $0x27 // movq (%rdi), %r12 - LONG $0x08778b48 // movq $8(%rdi), %rsi - WORD $0x8b4d; BYTE $0x3e // movq (%r14), %r15 - WORD $0xc031 // xorl %eax, %eax - LONG $0x3c3c8043; BYTE $0x2d // cmpb $45, (%r12,%r15) - LONG $0x3c1c8d4b // leaq (%r12,%r15), %rbx - WORD $0x940f; BYTE $0xc0 // sete %al - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - WORD $0x2948; BYTE $0xc6 // subq %rax, %rsi - LONG $0x003b840f; WORD $0x0000 // je LBB25_6, $59(%rip) - WORD $0x3949; BYTE $0xf7 // cmpq %rsi, %r15 - LONG $0x000c830f; WORD $0x0000 // jae LBB25_3, $12(%rip) - WORD $0x038a // movb (%rbx), %al - WORD $0xd004 // addb $-48, %al - WORD $0x093c // cmpb $9, %al - LONG $0x0038870f; WORD $0x0000 // ja LBB25_8, $56(%rip) - -LBB25_3: - WORD $0x8948; BYTE $0xdf // movq %rbx, %rdi - LONG $0xfff971e8; BYTE $0xff // callq _do_skip_number, $-1679(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0021880f; WORD $0x0000 // js LBB25_7, $33(%rip) - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - -LBB25_5: - WORD $0x294c; BYTE $0xe3 // subq %r12, %rbx - WORD $0x8949; BYTE $0x1e // movq %rbx, (%r14) - WORD $0x894c; BYTE $0xf8 // movq %r15, %rax - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB25_6: - LONG $0xffc7c749; WORD $0xffff; BYTE $0xff // movq $-1, %r15 - LONG $0xffffe2e9; BYTE $0xff // jmp LBB25_5, $-30(%rip) - -LBB25_7: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x0148; BYTE $0xc3 // addq %rax, %rbx - -LBB25_8: - LONG $0xfec7c749; WORD $0xffff; BYTE $0xff // movq $-2, %r15 - LONG $0xffffd0e9; BYTE $0xff // jmp LBB25_5, $-48(%rip) - LONG $0x00000000; BYTE $0x00 // .p2align 4, 0x00 - -LCPI26_0: - LONG $0x00000001 // .long 1 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - - // .p2align 4, 0x90 -_skip_one: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - QUAD $0xffffffdb0528f8c5 // vmovaps $-37(%rip), %xmm0 /* LCPI26_0(%rip) */ - LONG $0x0011f8c5 // vmovups %xmm0, (%rax) - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - BYTE $0x5d // popq %rbp - LONG $0xffeeeee9; BYTE $0xff // jmp _fsm_exec, $-4370(%rip) - QUAD $0x0000000000000000; LONG $0x00000000; WORD $0x0000 // .p2align 4, 0x00 - -LCPI27_0: - LONG $0x00000001 // .long 1 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - - // .p2align 4, 0x90 -_validate_one: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - QUAD $0xffffffdb0528f8c5 // vmovaps $-37(%rip), %xmm0 /* LCPI27_0(%rip) */ - LONG $0x0011f8c5 // vmovups %xmm0, (%rax) - LONG $0x000020b9; BYTE $0x00 // movl $32, %ecx - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - BYTE $0x5d // popq %rbp - LONG $0xffeea9e9; BYTE $0xff // jmp _fsm_exec, $-4439(%rip) - QUAD $0x0000000000000000; BYTE $0x00 // .p2align 5, 0x00 - -LCPI28_0: - QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - -LCPI28_1: - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - -LCPI28_2: - QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - -LCPI28_6: - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - -LCPI28_7: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - -LCPI28_8: - QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - -LCPI28_9: - QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - -LCPI28_10: - QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - - // .p2align 4, 0x00 -LCPI28_3: - QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - -LCPI28_4: - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - -LCPI28_5: - QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - - // .p2align 4, 0x90 -_skip_one_fast: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0xe0e48348 // andq $-32, %rsp - LONG $0x80ec8148; WORD $0x0000; BYTE $0x00 // subq $128, %rsp - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8949; BYTE $0xff // movq %rdi, %r15 - WORD $0x8b48; BYTE $0x3f // movq (%rdi), %rdi - LONG $0x08778b49 // movq $8(%r15), %rsi - WORD $0x894c; BYTE $0xf2 // movq %r14, %rdx - LONG $0xffdd03e8; BYTE $0xff // callq _advance_ns, $-8957(%rip) - WORD $0x8b49; BYTE $0x16 // movq (%r14), %rdx - LONG $0xff628d4c // leaq $-1(%rdx), %r12 - WORD $0xbe0f; BYTE $0xc8 // movsbl %al, %ecx - WORD $0xf983; BYTE $0x7b // cmpl $123, %ecx - LONG $0x015d870f; WORD $0x0000 // ja LBB28_23, $349(%rip) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xc6358d48; WORD $0x0008; BYTE $0x00 // leaq $2246(%rip), %rsi /* LJTI28_0(%rip) */ - LONG $0x8e0c6348 // movslq (%rsi,%rcx,4), %rcx - WORD $0x0148; BYTE $0xf1 // addq %rsi, %rcx - JMP CX - -LBB28_2: - WORD $0x8b49; BYTE $0x07 // movq (%r15), %rax - LONG $0x084f8b49 // movq $8(%r15), %rcx - WORD $0x2948; BYTE $0xd1 // subq %rdx, %rcx - WORD $0x0148; BYTE $0xc2 // addq %rax, %rdx - LONG $0x20f98348 // cmpq $32, %rcx - LONG $0x0054820f; WORD $0x0000 // jb LBB28_6, $84(%rip) - QUAD $0xfffffe5a056ffdc5 // vmovdqa $-422(%rip), %ymm0 /* LCPI28_0(%rip) */ - QUAD $0xfffffe720d6ffdc5 // vmovdqa $-398(%rip), %ymm1 /* LCPI28_1(%rip) */ - QUAD $0xfffffe8a156ffdc5 // vmovdqa $-374(%rip), %ymm2 /* LCPI28_2(%rip) */ - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB28_4: - LONG $0x1a6ffec5 // vmovdqu (%rdx), %ymm3 - LONG $0xe074e5c5 // vpcmpeqb %ymm0, %ymm3, %ymm4 - LONG $0xd9dbe5c5 // vpand %ymm1, %ymm3, %ymm3 - LONG $0xda74e5c5 // vpcmpeqb %ymm2, %ymm3, %ymm3 - LONG $0xdcebe5c5 // vpor %ymm4, %ymm3, %ymm3 - LONG $0xf3d7fdc5 // vpmovmskb %ymm3, %esi - WORD $0xf685 // testl %esi, %esi - LONG $0x00b5850f; WORD $0x0000 // jne LBB28_17, $181(%rip) - LONG $0x20c28348 // addq $32, %rdx - LONG $0xe0c18348 // addq $-32, %rcx - LONG $0x1ff98348 // cmpq $31, %rcx - LONG $0xffce870f; WORD $0xffff // ja LBB28_4, $-50(%rip) - -LBB28_6: - LONG $0x10f98348 // cmpq $16, %rcx - LONG $0x0057820f; WORD $0x0000 // jb LBB28_10, $87(%rip) - QUAD $0xfffffefc056ff9c5 // vmovdqa $-260(%rip), %xmm0 /* LCPI28_3(%rip) */ - QUAD $0xffffff040d6ff9c5 // vmovdqa $-252(%rip), %xmm1 /* LCPI28_4(%rip) */ - QUAD $0xffffff0c156ff9c5 // vmovdqa $-244(%rip), %xmm2 /* LCPI28_5(%rip) */ - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB28_8: - LONG $0x1a6ffac5 // vmovdqu (%rdx), %xmm3 - LONG $0xe074e1c5 // vpcmpeqb %xmm0, %xmm3, %xmm4 - LONG $0xd9dbe1c5 // vpand %xmm1, %xmm3, %xmm3 - LONG $0xda74e1c5 // vpcmpeqb %xmm2, %xmm3, %xmm3 - LONG $0xdcebe1c5 // vpor %xmm4, %xmm3, %xmm3 - LONG $0xf3d7f9c5 // vpmovmskb %xmm3, %esi - WORD $0x8566; BYTE $0xf6 // testw %si, %si - LONG $0x0751850f; WORD $0x0000 // jne LBB28_86, $1873(%rip) - LONG $0x10c28348 // addq $16, %rdx - LONG $0xf0c18348 // addq $-16, %rcx - LONG $0x0ff98348 // cmpq $15, %rcx - LONG $0xffcd870f; WORD $0xffff // ja LBB28_8, $-51(%rip) - -LBB28_10: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x075b840f; WORD $0x0000 // je LBB28_87, $1883(%rip) - LONG $0x0a348d48 // leaq (%rdx,%rcx), %rsi - -LBB28_12: - WORD $0xb60f; BYTE $0x1a // movzbl (%rdx), %ebx - WORD $0xfb80; BYTE $0x2c // cmpb $44, %bl - LONG $0x074b840f; WORD $0x0000 // je LBB28_87, $1867(%rip) - WORD $0xfb80; BYTE $0x7d // cmpb $125, %bl - LONG $0x0742840f; WORD $0x0000 // je LBB28_87, $1858(%rip) - WORD $0xfb80; BYTE $0x5d // cmpb $93, %bl - LONG $0x0739840f; WORD $0x0000 // je LBB28_87, $1849(%rip) - WORD $0xff48; BYTE $0xc2 // incq %rdx - WORD $0xff48; BYTE $0xc9 // decq %rcx - LONG $0xffd6850f; WORD $0xffff // jne LBB28_12, $-42(%rip) - WORD $0x8948; BYTE $0xf2 // movq %rsi, %rdx - WORD $0x2948; BYTE $0xc2 // subq %rax, %rdx - LONG $0x00000de9; BYTE $0x00 // jmp LBB28_19, $13(%rip) - -LBB28_17: - WORD $0x6348; BYTE $0xce // movslq %esi, %rcx - -LBB28_18: - LONG $0xc9bc0f48 // bsfq %rcx, %rcx - WORD $0x2948; BYTE $0xc2 // subq %rax, %rdx - WORD $0x0148; BYTE $0xca // addq %rcx, %rdx - -LBB28_19: - WORD $0x8949; BYTE $0x16 // movq %rdx, (%r14) - -LBB28_20: - WORD $0x894c; BYTE $0xe0 // movq %r12, %rax - -LBB28_21: - LONG $0xd8658d48 // leaq $-40(%rbp), %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB28_22: - LONG $0x03c28348 // addq $3, %rdx - LONG $0x08573b49 // cmpq $8(%r15), %rdx - LONG $0xffda860f; WORD $0xffff // jbe LBB28_19, $-38(%rip) - LONG $0xffffdbe9; BYTE $0xff // jmp LBB28_21, $-37(%rip) - -LBB28_23: - WORD $0x894d; BYTE $0x26 // movq %r12, (%r14) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0xffffcce9; BYTE $0xff // jmp LBB28_21, $-52(%rip) - -LBB28_24: - WORD $0x8b49; BYTE $0x0f // movq (%r15), %rcx - LONG $0x085f8b4d // movq $8(%r15), %r11 - LONG $0x244c8948; BYTE $0x18 // movq %rcx, $24(%rsp) - LONG $0x113c8d4c // leaq (%rcx,%rdx), %r15 - WORD $0x2949; BYTE $0xd3 // subq %rdx, %r11 - LONG $0x20fb8349 // cmpq $32, %r11 - LONG $0x06b08c0f; WORD $0x0000 // jl LBB28_33, $1712(%rip) - LONG $0x000020bb; BYTE $0x00 // movl $32, %ebx - LONG $0xffffb941; WORD $0xffff // movl $4294967295, %r9d - WORD $0xd231 // xorl %edx, %edx - QUAD $0xfffffd52056ffdc5 // vmovdqa $-686(%rip), %ymm0 /* LCPI28_6(%rip) */ - QUAD $0xfffffd6a0d6ffdc5 // vmovdqa $-662(%rip), %ymm1 /* LCPI28_7(%rip) */ - LONG $0xab918d45; WORD $0xaaaa; BYTE $0xaa // leal $-1431655765(%r9), %r10d - WORD $0xff31 // xorl %edi, %edi - LONG $0x000061e9; BYTE $0x00 // jmp LBB28_26, $97(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB28_29: - WORD $0xfe89 // movl %edi, %esi - WORD $0x3144; BYTE $0xce // xorl %r9d, %esi - WORD $0xce21 // andl %ecx, %esi - LONG $0x36048d44 // leal (%rsi,%rsi), %r8d - WORD $0x0941; BYTE $0xf8 // orl %edi, %r8d - WORD $0x8944; BYTE $0xc1 // movl %r8d, %ecx - WORD $0x3144; BYTE $0xd1 // xorl %r10d, %ecx - WORD $0xf121 // andl %esi, %ecx - LONG $0xaaaae181; WORD $0xaaaa // andl $-1431655766, %ecx - WORD $0xff31 // xorl %edi, %edi - WORD $0xf101 // addl %esi, %ecx - LONG $0xc7920f40 // setb %dil - WORD $0xc901 // addl %ecx, %ecx - LONG $0x5555f181; WORD $0x5555 // xorl $1431655765, %ecx - WORD $0x2144; BYTE $0xc1 // andl %r8d, %ecx - WORD $0x3144; BYTE $0xc9 // xorl %r9d, %ecx - WORD $0x2141; BYTE $0xcd // andl %ecx, %r13d - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0x0049850f; WORD $0x0000 // jne LBB28_84, $73(%rip) - -LBB28_30: - LONG $0x20c28348 // addq $32, %rdx - LONG $0x1b4c8d49; BYTE $0xe0 // leaq $-32(%r11,%rbx), %rcx - LONG $0xe0c38348 // addq $-32, %rbx - LONG $0x3ff98348 // cmpq $63, %rcx - LONG $0x06158e0f; WORD $0x0000 // jle LBB28_31, $1557(%rip) - -LBB28_26: - LONG $0x6f7ec1c4; WORD $0x1714 // vmovdqu (%r15,%rdx), %ymm2 - LONG $0xd874edc5 // vpcmpeqb %ymm0, %ymm2, %ymm3 - LONG $0xebd77dc5 // vpmovmskb %ymm3, %r13d - LONG $0xd174edc5 // vpcmpeqb %ymm1, %ymm2, %ymm2 - LONG $0xcad7fdc5 // vpmovmskb %ymm2, %ecx - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0xff8c850f; WORD $0xffff // jne LBB28_29, $-116(%rip) - WORD $0xc985 // testl %ecx, %ecx - LONG $0xff84850f; WORD $0xffff // jne LBB28_29, $-124(%rip) - WORD $0xff31 // xorl %edi, %edi - WORD $0x8545; BYTE $0xed // testl %r13d, %r13d - LONG $0xffb7840f; WORD $0xffff // je LBB28_30, $-73(%rip) - -LBB28_84: - LONG $0xc5bc0f49 // bsfq %r13, %rax - WORD $0x0149; BYTE $0xc7 // addq %rax, %r15 - WORD $0x0149; BYTE $0xd7 // addq %rdx, %r15 - -LBB28_85: - LONG $0x247c2b4c; BYTE $0x18 // subq $24(%rsp), %r15 - WORD $0xff49; BYTE $0xc7 // incq %r15 - WORD $0x894d; BYTE $0x3e // movq %r15, (%r14) - LONG $0xfffed4e9; BYTE $0xff // jmp LBB28_20, $-300(%rip) - -LBB28_34: - LONG $0x084f8b49 // movq $8(%r15), %rcx - WORD $0x2948; BYTE $0xd1 // subq %rdx, %rcx - WORD $0x0349; BYTE $0x17 // addq (%r15), %rdx - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - QUAD $0xfffffc9a056ffdc5 // vmovdqa $-870(%rip), %ymm0 /* LCPI28_7(%rip) */ - QUAD $0xfffffc720d6ffdc5 // vmovdqa $-910(%rip), %ymm1 /* LCPI28_6(%rip) */ - LONG $0xd276e9c5 // vpcmpeqd %xmm2, %xmm2, %xmm2 - QUAD $0xfffffce61d6ffdc5 // vmovdqa $-794(%rip), %ymm3 /* LCPI28_10(%rip) */ - QUAD $0xfffffc3e256ffdc5 // vmovdqa $-962(%rip), %ymm4 /* LCPI28_2(%rip) */ - LONG $0x573041c4; BYTE $0xc9 // vxorps %xmm9, %xmm9, %xmm9 - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - WORD $0xf631 // xorl %esi, %esi - LONG $0x00001ce9; BYTE $0x00 // jmp LBB28_36, $28(%rip) - -LBB28_35: - LONG $0x3ffdc149 // sarq $63, %r13 - LONG $0xb80f49f3; BYTE $0xcb // popcntq %r11, %rcx - WORD $0x0149; BYTE $0xc8 // addq %rcx, %r8 - LONG $0x40c28348 // addq $64, %rdx - LONG $0x244c8b48; BYTE $0x18 // movq $24(%rsp), %rcx - LONG $0xc0c18348 // addq $-64, %rcx - WORD $0x894d; BYTE $0xe9 // movq %r13, %r9 - -LBB28_36: - LONG $0x40f98348 // cmpq $64, %rcx - LONG $0x244c8948; BYTE $0x18 // movq %rcx, $24(%rsp) - LONG $0x012d8c0f; WORD $0x0000 // jl LBB28_43, $301(%rip) - -LBB28_37: - LONG $0x3a6ffec5 // vmovdqu (%rdx), %ymm7 - LONG $0x726ffec5; BYTE $0x20 // vmovdqu $32(%rdx), %ymm6 - LONG $0xc07445c5 // vpcmpeqb %ymm0, %ymm7, %ymm8 - LONG $0xd77dc1c4; BYTE $0xc8 // vpmovmskb %ymm8, %ecx - LONG $0xc0744dc5 // vpcmpeqb %ymm0, %ymm6, %ymm8 - LONG $0xd77dc1c4; BYTE $0xf8 // vpmovmskb %ymm8, %edi - LONG $0x20e7c148 // shlq $32, %rdi - WORD $0x0948; BYTE $0xf9 // orq %rdi, %rcx - WORD $0x8948; BYTE $0xcf // movq %rcx, %rdi - WORD $0x094c; BYTE $0xd7 // orq %r10, %rdi - LONG $0x004b840f; WORD $0x0000 // je LBB28_39, $75(%rip) - WORD $0x894c; BYTE $0xd7 // movq %r10, %rdi - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x2148; BYTE $0xcf // andq %rcx, %rdi - LONG $0x3f2c8d4c // leaq (%rdi,%rdi), %r13 - WORD $0x094d; BYTE $0xd5 // orq %r10, %r13 - WORD $0x894d; BYTE $0xea // movq %r13, %r10 - QUAD $0xaaaaaaaaaaaabb48; WORD $0xaaaa // movabsq $-6148914691236517206, %rbx - WORD $0x3149; BYTE $0xda // xorq %rbx, %r10 - WORD $0x2148; BYTE $0xd9 // andq %rbx, %rcx - WORD $0x214c; BYTE $0xd1 // andq %r10, %rcx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x0148; BYTE $0xf9 // addq %rdi, %rcx - LONG $0xc2920f41 // setb %r10b - WORD $0x0148; BYTE $0xc9 // addq %rcx, %rcx - QUAD $0x555555555555bf48; WORD $0x5555 // movabsq $6148914691236517205, %rdi - WORD $0x3148; BYTE $0xf9 // xorq %rdi, %rcx - WORD $0x214c; BYTE $0xe9 // andq %r13, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - LONG $0x00000ae9; BYTE $0x00 // jmp LBB28_40, $10(%rip) - -LBB28_39: - LONG $0xffc1c748; WORD $0xffff; BYTE $0xff // movq $-1, %rcx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - -LBB28_40: - LONG $0xc1744dc5 // vpcmpeqb %ymm1, %ymm6, %ymm8 - LONG $0xd77dc1c4; BYTE $0xf8 // vpmovmskb %ymm8, %edi - LONG $0x20e7c148 // shlq $32, %rdi - LONG $0xc17445c5 // vpcmpeqb %ymm1, %ymm7, %ymm8 - LONG $0xd77dc1c4; BYTE $0xd8 // vpmovmskb %ymm8, %ebx - WORD $0x0948; BYTE $0xfb // orq %rdi, %rbx - WORD $0x2148; BYTE $0xcb // andq %rcx, %rbx - LONG $0x6ef9e1c4; BYTE $0xeb // vmovq %rbx, %xmm5 - LONG $0x4451e3c4; WORD $0x00ea // vpclmulqdq $0, %xmm2, %xmm5, %xmm5 - LONG $0x7ef9c1c4; BYTE $0xed // vmovq %xmm5, %r13 - WORD $0x314d; BYTE $0xcd // xorq %r9, %r13 - LONG $0xeb74c5c5 // vpcmpeqb %ymm3, %ymm7, %ymm5 - LONG $0xddd77dc5 // vpmovmskb %ymm5, %r11d - LONG $0xeb74cdc5 // vpcmpeqb %ymm3, %ymm6, %ymm5 - LONG $0xfdd7fdc5 // vpmovmskb %ymm5, %edi - LONG $0x20e7c148 // shlq $32, %rdi - WORD $0x0949; BYTE $0xfb // orq %rdi, %r11 - WORD $0x894d; BYTE $0xe9 // movq %r13, %r9 - WORD $0xf749; BYTE $0xd1 // notq %r9 - WORD $0x214d; BYTE $0xcb // andq %r9, %r11 - LONG $0xec74c5c5 // vpcmpeqb %ymm4, %ymm7, %ymm5 - LONG $0xfdd7fdc5 // vpmovmskb %ymm5, %edi - LONG $0xec74cdc5 // vpcmpeqb %ymm4, %ymm6, %ymm5 - LONG $0xddd7fdc5 // vpmovmskb %ymm5, %ebx - LONG $0x20e3c148 // shlq $32, %rbx - WORD $0x0948; BYTE $0xdf // orq %rbx, %rdi - WORD $0x214c; BYTE $0xcf // andq %r9, %rdi - LONG $0xfee3840f; WORD $0xffff // je LBB28_35, $-285(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB28_41: - LONG $0xff4f8d48 // leaq $-1(%rdi), %rcx - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - WORD $0x214c; BYTE $0xdb // andq %r11, %rbx - LONG $0xb80f48f3; BYTE $0xdb // popcntq %rbx, %rbx - WORD $0x014c; BYTE $0xc3 // addq %r8, %rbx - WORD $0x3948; BYTE $0xf3 // cmpq %rsi, %rbx - LONG $0x0404860f; WORD $0x0000 // jbe LBB28_83, $1028(%rip) - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x2148; BYTE $0xcf // andq %rcx, %rdi - LONG $0xffd9850f; WORD $0xffff // jne LBB28_41, $-39(%rip) - LONG $0xfffea8e9; BYTE $0xff // jmp LBB28_35, $-344(%rip) - -LBB28_43: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x044a8e0f; WORD $0x0000 // jle LBB28_88, $1098(%rip) - LONG $0x4c297cc5; WORD $0x4024 // vmovaps %ymm9, $64(%rsp) - LONG $0x4c297cc5; WORD $0x2024 // vmovaps %ymm9, $32(%rsp) - WORD $0xd189 // movl %edx, %ecx - LONG $0x0fffe181; WORD $0x0000 // andl $4095, %ecx - LONG $0x0fc1f981; WORD $0x0000 // cmpl $4033, %ecx - LONG $0xfeaa820f; WORD $0xffff // jb LBB28_37, $-342(%rip) - LONG $0x247c8348; WORD $0x2018 // cmpq $32, $24(%rsp) - LONG $0x0021820f; WORD $0x0000 // jb LBB28_47, $33(%rip) - LONG $0x2a10fcc5 // vmovups (%rdx), %ymm5 - LONG $0x6c29fcc5; WORD $0x2024 // vmovaps %ymm5, $32(%rsp) - LONG $0x20c28348 // addq $32, %rdx - LONG $0x244c8b48; BYTE $0x18 // movq $24(%rsp), %rcx - LONG $0xe0598d48 // leaq $-32(%rcx), %rbx - LONG $0x247c8d48; BYTE $0x40 // leaq $64(%rsp), %rdi - LONG $0x00000ae9; BYTE $0x00 // jmp LBB28_48, $10(%rip) - -LBB28_47: - LONG $0x247c8d48; BYTE $0x20 // leaq $32(%rsp), %rdi - LONG $0x245c8b48; BYTE $0x18 // movq $24(%rsp), %rbx - -LBB28_48: - LONG $0x10fb8348 // cmpq $16, %rbx - LONG $0x0058820f; WORD $0x0000 // jb LBB28_49, $88(%rip) - LONG $0x2a10f8c5 // vmovups (%rdx), %xmm5 - LONG $0x2f11f8c5 // vmovups %xmm5, (%rdi) - LONG $0x10c28348 // addq $16, %rdx - LONG $0x10c78348 // addq $16, %rdi - LONG $0xf0c38348 // addq $-16, %rbx - LONG $0x08fb8348 // cmpq $8, %rbx - LONG $0x0044830f; WORD $0x0000 // jae LBB28_54, $68(%rip) - -LBB28_50: - LONG $0x04fb8348 // cmpq $4, %rbx - LONG $0x00568c0f; WORD $0x0000 // jl LBB28_51, $86(%rip) - -LBB28_55: - WORD $0x0a8b // movl (%rdx), %ecx - WORD $0x0f89 // movl %ecx, (%rdi) - LONG $0x04c28348 // addq $4, %rdx - LONG $0x04c78348 // addq $4, %rdi - LONG $0xfcc38348 // addq $-4, %rbx - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0x0046830f; WORD $0x0000 // jae LBB28_56, $70(%rip) - -LBB28_52: - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - LONG $0x24548d48; BYTE $0x20 // leaq $32(%rsp), %rdx - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0058850f; WORD $0x0000 // jne LBB28_57, $88(%rip) - LONG $0xfffe11e9; BYTE $0xff // jmp LBB28_37, $-495(%rip) - -LBB28_49: - LONG $0x08fb8348 // cmpq $8, %rbx - LONG $0xffbc820f; WORD $0xffff // jb LBB28_50, $-68(%rip) - -LBB28_54: - WORD $0x8b48; BYTE $0x0a // movq (%rdx), %rcx - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - LONG $0x08c28348 // addq $8, %rdx - LONG $0x08c78348 // addq $8, %rdi - LONG $0xf8c38348 // addq $-8, %rbx - LONG $0x04fb8348 // cmpq $4, %rbx - LONG $0xffaa8d0f; WORD $0xffff // jge LBB28_55, $-86(%rip) - -LBB28_51: - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0xffba820f; WORD $0xffff // jb LBB28_52, $-70(%rip) - -LBB28_56: - WORD $0xb70f; BYTE $0x0a // movzwl (%rdx), %ecx - WORD $0x8966; BYTE $0x0f // movw %cx, (%rdi) - LONG $0x02c28348 // addq $2, %rdx - LONG $0x02c78348 // addq $2, %rdi - LONG $0xfec38348 // addq $-2, %rbx - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - LONG $0x24548d48; BYTE $0x20 // leaq $32(%rsp), %rdx - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0xfdbe840f; WORD $0xffff // je LBB28_37, $-578(%rip) - -LBB28_57: - WORD $0x098a // movb (%rcx), %cl - WORD $0x0f88 // movb %cl, (%rdi) - LONG $0x24548d48; BYTE $0x20 // leaq $32(%rsp), %rdx - LONG $0xfffdb0e9; BYTE $0xff // jmp LBB28_37, $-592(%rip) - -LBB28_58: - LONG $0x04c28348 // addq $4, %rdx - LONG $0x08573b49 // cmpq $8(%r15), %rdx - LONG $0xfc05860f; WORD $0xffff // jbe LBB28_19, $-1019(%rip) - LONG $0xfffc06e9; BYTE $0xff // jmp LBB28_21, $-1018(%rip) - -LBB28_59: - LONG $0x084f8b49 // movq $8(%r15), %rcx - WORD $0x2948; BYTE $0xd1 // subq %rdx, %rcx - WORD $0x0349; BYTE $0x17 // addq (%r15), %rdx - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - QUAD $0xfffff9c9056ffdc5 // vmovdqa $-1591(%rip), %ymm0 /* LCPI28_7(%rip) */ - QUAD $0xfffff9a10d6ffdc5 // vmovdqa $-1631(%rip), %ymm1 /* LCPI28_6(%rip) */ - LONG $0xd276e9c5 // vpcmpeqd %xmm2, %xmm2, %xmm2 - QUAD $0xfffff9d51d6ffdc5 // vmovdqa $-1579(%rip), %ymm3 /* LCPI28_8(%rip) */ - QUAD $0xfffff9ed256ffdc5 // vmovdqa $-1555(%rip), %ymm4 /* LCPI28_9(%rip) */ - LONG $0x573041c4; BYTE $0xc9 // vxorps %xmm9, %xmm9, %xmm9 - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - WORD $0xf631 // xorl %esi, %esi - LONG $0x00001ce9; BYTE $0x00 // jmp LBB28_61, $28(%rip) - -LBB28_60: - LONG $0x3ffdc149 // sarq $63, %r13 - LONG $0xb80f49f3; BYTE $0xcb // popcntq %r11, %rcx - WORD $0x0149; BYTE $0xc8 // addq %rcx, %r8 - LONG $0x40c28348 // addq $64, %rdx - LONG $0x244c8b48; BYTE $0x18 // movq $24(%rsp), %rcx - LONG $0xc0c18348 // addq $-64, %rcx - WORD $0x894d; BYTE $0xe9 // movq %r13, %r9 - -LBB28_61: - LONG $0x40f98348 // cmpq $64, %rcx - LONG $0x244c8948; BYTE $0x18 // movq %rcx, $24(%rsp) - LONG $0x012c8c0f; WORD $0x0000 // jl LBB28_68, $300(%rip) - -LBB28_62: - LONG $0x3a6ffec5 // vmovdqu (%rdx), %ymm7 - LONG $0x726ffec5; BYTE $0x20 // vmovdqu $32(%rdx), %ymm6 - LONG $0xc07445c5 // vpcmpeqb %ymm0, %ymm7, %ymm8 - LONG $0xd77dc1c4; BYTE $0xc8 // vpmovmskb %ymm8, %ecx - LONG $0xc0744dc5 // vpcmpeqb %ymm0, %ymm6, %ymm8 - LONG $0xd77dc1c4; BYTE $0xf8 // vpmovmskb %ymm8, %edi - LONG $0x20e7c148 // shlq $32, %rdi - WORD $0x0948; BYTE $0xf9 // orq %rdi, %rcx - WORD $0x8948; BYTE $0xcf // movq %rcx, %rdi - WORD $0x094c; BYTE $0xd7 // orq %r10, %rdi - LONG $0x004b840f; WORD $0x0000 // je LBB28_64, $75(%rip) - WORD $0x894c; BYTE $0xd7 // movq %r10, %rdi - WORD $0xf748; BYTE $0xd7 // notq %rdi - WORD $0x2148; BYTE $0xcf // andq %rcx, %rdi - LONG $0x3f2c8d4c // leaq (%rdi,%rdi), %r13 - WORD $0x094d; BYTE $0xd5 // orq %r10, %r13 - WORD $0x894d; BYTE $0xea // movq %r13, %r10 - QUAD $0xaaaaaaaaaaaabb48; WORD $0xaaaa // movabsq $-6148914691236517206, %rbx - WORD $0x3149; BYTE $0xda // xorq %rbx, %r10 - WORD $0x2148; BYTE $0xd9 // andq %rbx, %rcx - WORD $0x214c; BYTE $0xd1 // andq %r10, %rcx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x0148; BYTE $0xf9 // addq %rdi, %rcx - LONG $0xc2920f41 // setb %r10b - WORD $0x0148; BYTE $0xc9 // addq %rcx, %rcx - QUAD $0x555555555555bf48; WORD $0x5555 // movabsq $6148914691236517205, %rdi - WORD $0x3148; BYTE $0xf9 // xorq %rdi, %rcx - WORD $0x214c; BYTE $0xe9 // andq %r13, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - LONG $0x00000ae9; BYTE $0x00 // jmp LBB28_65, $10(%rip) - -LBB28_64: - LONG $0xffc1c748; WORD $0xffff; BYTE $0xff // movq $-1, %rcx - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - -LBB28_65: - LONG $0xc1744dc5 // vpcmpeqb %ymm1, %ymm6, %ymm8 - LONG $0xd77dc1c4; BYTE $0xf8 // vpmovmskb %ymm8, %edi - LONG $0x20e7c148 // shlq $32, %rdi - LONG $0xc17445c5 // vpcmpeqb %ymm1, %ymm7, %ymm8 - LONG $0xd77dc1c4; BYTE $0xd8 // vpmovmskb %ymm8, %ebx - WORD $0x0948; BYTE $0xfb // orq %rdi, %rbx - WORD $0x2148; BYTE $0xcb // andq %rcx, %rbx - LONG $0x6ef9e1c4; BYTE $0xeb // vmovq %rbx, %xmm5 - LONG $0x4451e3c4; WORD $0x00ea // vpclmulqdq $0, %xmm2, %xmm5, %xmm5 - LONG $0x7ef9c1c4; BYTE $0xed // vmovq %xmm5, %r13 - WORD $0x314d; BYTE $0xcd // xorq %r9, %r13 - LONG $0xeb74c5c5 // vpcmpeqb %ymm3, %ymm7, %ymm5 - LONG $0xddd77dc5 // vpmovmskb %ymm5, %r11d - LONG $0xeb74cdc5 // vpcmpeqb %ymm3, %ymm6, %ymm5 - LONG $0xfdd7fdc5 // vpmovmskb %ymm5, %edi - LONG $0x20e7c148 // shlq $32, %rdi - WORD $0x0949; BYTE $0xfb // orq %rdi, %r11 - WORD $0x894d; BYTE $0xe9 // movq %r13, %r9 - WORD $0xf749; BYTE $0xd1 // notq %r9 - WORD $0x214d; BYTE $0xcb // andq %r9, %r11 - LONG $0xec74c5c5 // vpcmpeqb %ymm4, %ymm7, %ymm5 - LONG $0xfdd7fdc5 // vpmovmskb %ymm5, %edi - LONG $0xec74cdc5 // vpcmpeqb %ymm4, %ymm6, %ymm5 - LONG $0xddd7fdc5 // vpmovmskb %ymm5, %ebx - LONG $0x20e3c148 // shlq $32, %rbx - WORD $0x0948; BYTE $0xdf // orq %rbx, %rdi - WORD $0x214c; BYTE $0xcf // andq %r9, %rdi - LONG $0xfee3840f; WORD $0xffff // je LBB28_60, $-285(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB28_66: - LONG $0xff4f8d48 // leaq $-1(%rdi), %rcx - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - WORD $0x214c; BYTE $0xdb // andq %r11, %rbx - LONG $0xb80f48f3; BYTE $0xdb // popcntq %rbx, %rbx - WORD $0x014c; BYTE $0xc3 // addq %r8, %rbx - WORD $0x3948; BYTE $0xf3 // cmpq %rsi, %rbx - LONG $0x0134860f; WORD $0x0000 // jbe LBB28_83, $308(%rip) - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x2148; BYTE $0xcf // andq %rcx, %rdi - LONG $0xffd9850f; WORD $0xffff // jne LBB28_66, $-39(%rip) - LONG $0xfffea9e9; BYTE $0xff // jmp LBB28_60, $-343(%rip) - -LBB28_68: - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x017a8e0f; WORD $0x0000 // jle LBB28_88, $378(%rip) - LONG $0x4c297cc5; WORD $0x4024 // vmovaps %ymm9, $64(%rsp) - LONG $0x4c297cc5; WORD $0x2024 // vmovaps %ymm9, $32(%rsp) - WORD $0xd189 // movl %edx, %ecx - LONG $0x0fffe181; WORD $0x0000 // andl $4095, %ecx - LONG $0x0fc1f981; WORD $0x0000 // cmpl $4033, %ecx - LONG $0xfeab820f; WORD $0xffff // jb LBB28_62, $-341(%rip) - LONG $0x247c8348; WORD $0x2018 // cmpq $32, $24(%rsp) - LONG $0x0021820f; WORD $0x0000 // jb LBB28_72, $33(%rip) - LONG $0x2a10fcc5 // vmovups (%rdx), %ymm5 - LONG $0x6c29fcc5; WORD $0x2024 // vmovaps %ymm5, $32(%rsp) - LONG $0x20c28348 // addq $32, %rdx - LONG $0x244c8b48; BYTE $0x18 // movq $24(%rsp), %rcx - LONG $0xe0598d48 // leaq $-32(%rcx), %rbx - LONG $0x247c8d48; BYTE $0x40 // leaq $64(%rsp), %rdi - LONG $0x00000ae9; BYTE $0x00 // jmp LBB28_73, $10(%rip) - -LBB28_72: - LONG $0x247c8d48; BYTE $0x20 // leaq $32(%rsp), %rdi - LONG $0x245c8b48; BYTE $0x18 // movq $24(%rsp), %rbx - -LBB28_73: - LONG $0x10fb8348 // cmpq $16, %rbx - LONG $0x0058820f; WORD $0x0000 // jb LBB28_74, $88(%rip) - LONG $0x2a10f8c5 // vmovups (%rdx), %xmm5 - LONG $0x2f11f8c5 // vmovups %xmm5, (%rdi) - LONG $0x10c28348 // addq $16, %rdx - LONG $0x10c78348 // addq $16, %rdi - LONG $0xf0c38348 // addq $-16, %rbx - LONG $0x08fb8348 // cmpq $8, %rbx - LONG $0x0044830f; WORD $0x0000 // jae LBB28_79, $68(%rip) - -LBB28_75: - LONG $0x04fb8348 // cmpq $4, %rbx - LONG $0x00568c0f; WORD $0x0000 // jl LBB28_76, $86(%rip) - -LBB28_80: - WORD $0x0a8b // movl (%rdx), %ecx - WORD $0x0f89 // movl %ecx, (%rdi) - LONG $0x04c28348 // addq $4, %rdx - LONG $0x04c78348 // addq $4, %rdi - LONG $0xfcc38348 // addq $-4, %rbx - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0x0046830f; WORD $0x0000 // jae LBB28_81, $70(%rip) - -LBB28_77: - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - LONG $0x24548d48; BYTE $0x20 // leaq $32(%rsp), %rdx - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0058850f; WORD $0x0000 // jne LBB28_82, $88(%rip) - LONG $0xfffe12e9; BYTE $0xff // jmp LBB28_62, $-494(%rip) - -LBB28_74: - LONG $0x08fb8348 // cmpq $8, %rbx - LONG $0xffbc820f; WORD $0xffff // jb LBB28_75, $-68(%rip) - -LBB28_79: - WORD $0x8b48; BYTE $0x0a // movq (%rdx), %rcx - WORD $0x8948; BYTE $0x0f // movq %rcx, (%rdi) - LONG $0x08c28348 // addq $8, %rdx - LONG $0x08c78348 // addq $8, %rdi - LONG $0xf8c38348 // addq $-8, %rbx - LONG $0x04fb8348 // cmpq $4, %rbx - LONG $0xffaa8d0f; WORD $0xffff // jge LBB28_80, $-86(%rip) - -LBB28_76: - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0xffba820f; WORD $0xffff // jb LBB28_77, $-70(%rip) - -LBB28_81: - WORD $0xb70f; BYTE $0x0a // movzwl (%rdx), %ecx - WORD $0x8966; BYTE $0x0f // movw %cx, (%rdi) - LONG $0x02c28348 // addq $2, %rdx - LONG $0x02c78348 // addq $2, %rdi - LONG $0xfec38348 // addq $-2, %rbx - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - LONG $0x24548d48; BYTE $0x20 // leaq $32(%rsp), %rdx - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0xfdbf840f; WORD $0xffff // je LBB28_62, $-577(%rip) - -LBB28_82: - WORD $0x098a // movb (%rcx), %cl - WORD $0x0f88 // movb %cl, (%rdi) - LONG $0x24548d48; BYTE $0x20 // leaq $32(%rsp), %rdx - LONG $0xfffdb1e9; BYTE $0xff // jmp LBB28_62, $-591(%rip) - -LBB28_83: - LONG $0x08478b49 // movq $8(%r15), %rax - LONG $0xcfbc0f48 // bsfq %rdi, %rcx - LONG $0x244c2b48; BYTE $0x18 // subq $24(%rsp), %rcx - LONG $0x01448d48; BYTE $0x01 // leaq $1(%rcx,%rax), %rax - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0x084f8b49 // movq $8(%r15), %rcx - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0xc1470f48 // cmovaq %rcx, %rax - WORD $0x8949; BYTE $0x06 // movq %rax, (%r14) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xe0470f4c // cmovaq %rax, %r12 - LONG $0xfff913e9; BYTE $0xff // jmp LBB28_20, $-1773(%rip) - -LBB28_86: - WORD $0xb70f; BYTE $0xce // movzwl %si, %ecx - LONG $0xfff8fee9; BYTE $0xff // jmp LBB28_18, $-1794(%rip) - -LBB28_31: - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x0028850f; WORD $0x0000 // jne LBB28_89, $40(%rip) - WORD $0x0149; BYTE $0xd7 // addq %rdx, %r15 - WORD $0x2949; BYTE $0xd3 // subq %rdx, %r11 - -LBB28_33: - WORD $0x854d; BYTE $0xdb // testq %r11, %r11 - LONG $0x005a8f0f; WORD $0x0000 // jg LBB28_93, $90(%rip) - LONG $0xfff8f1e9; BYTE $0xff // jmp LBB28_21, $-1807(%rip) - -LBB28_87: - WORD $0x2948; BYTE $0xc2 // subq %rax, %rdx - LONG $0xfff8e3e9; BYTE $0xff // jmp LBB28_19, $-1821(%rip) - -LBB28_88: - LONG $0x084f8b49 // movq $8(%r15), %rcx - WORD $0x8949; BYTE $0x0e // movq %rcx, (%r14) - LONG $0xfff8dde9; BYTE $0xff // jmp LBB28_21, $-1827(%rip) - -LBB28_89: - WORD $0x3949; BYTE $0xd3 // cmpq %rdx, %r11 - LONG $0xf8d4840f; WORD $0xffff // je LBB28_21, $-1836(%rip) - LONG $0x177c8d4d; BYTE $0x01 // leaq $1(%r15,%rdx), %r15 - WORD $0xf748; BYTE $0xd2 // notq %rdx - WORD $0x0149; BYTE $0xd3 // addq %rdx, %r11 - WORD $0x854d; BYTE $0xdb // testq %r11, %r11 - LONG $0x00248f0f; WORD $0x0000 // jg LBB28_93, $36(%rip) - LONG $0xfff8bbe9; BYTE $0xff // jmp LBB28_21, $-1861(%rip) - -LBB28_91: - LONG $0xfec2c748; WORD $0xffff; BYTE $0xff // movq $-2, %rdx - LONG $0x000002b8; BYTE $0x00 // movl $2, %eax - WORD $0x0149; BYTE $0xc7 // addq %rax, %r15 - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x0149; BYTE $0xd3 // addq %rdx, %r11 - LONG $0xf89c8e0f; WORD $0xffff // jle LBB28_21, $-1892(%rip) - -LBB28_93: - LONG $0x07b60f41 // movzbl (%r15), %eax - WORD $0x5c3c // cmpb $92, %al - LONG $0xffd5840f; WORD $0xffff // je LBB28_91, $-43(%rip) - WORD $0x223c // cmpb $34, %al - LONG $0xf9a1840f; WORD $0xffff // je LBB28_85, $-1631(%rip) - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - LONG $0x000001b8; BYTE $0x00 // movl $1, %eax - WORD $0x0149; BYTE $0xc7 // addq %rax, %r15 - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x0149; BYTE $0xd3 // addq %rdx, %r11 - LONG $0xffcd8f0f; WORD $0xffff // jg LBB28_93, $-51(%rip) - LONG $0xfff864e9; BYTE $0xff // jmp LBB28_21, $-1948(%rip) - - // .p2align 2, 0x90 - // .set L28_0_set_21, LBB28_21-LJTI28_0 - // .set L28_0_set_23, LBB28_23-LJTI28_0 - // .set L28_0_set_24, LBB28_24-LJTI28_0 - // .set L28_0_set_2, LBB28_2-LJTI28_0 - // .set L28_0_set_34, LBB28_34-LJTI28_0 - // .set L28_0_set_58, LBB28_58-LJTI28_0 - // .set L28_0_set_22, LBB28_22-LJTI28_0 - // .set L28_0_set_59, LBB28_59-LJTI28_0 -LJTI28_0: - LONG $0xfffff864 // .long L28_0_set_21 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff898 // .long L28_0_set_24 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff743 // .long L28_0_set_2 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff98d // .long L28_0_set_34 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffffc4b // .long L28_0_set_58 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff876 // .long L28_0_set_22 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff876 // .long L28_0_set_22 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffff889 // .long L28_0_set_23 - LONG $0xfffffc5e // .long L28_0_set_59 - QUAD $0x0000000000000000; LONG $0x00000000 // .p2align 4, 0x00 - -LCPI29_0: - LONG $0x00000001 // .long 1 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - LONG $0x00000000 // .long 0 - - // .p2align 4, 0x90 -_get_by_path: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x28ec8348 // subq $40, %rsp - WORD $0x8949; BYTE $0xf7 // movq %rsi, %r15 - WORD $0x8949; BYTE $0xfd // movq %rdi, %r13 - LONG $0x08428b48 // movq $8(%rdx), %rax - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x06d1840f; WORD $0x0000 // je LBB29_93, $1745(%rip) - WORD $0x8b4c; BYTE $0x32 // movq (%rdx), %r14 - LONG $0x04e0c148 // shlq $4, %rax - WORD $0x014c; BYTE $0xf0 // addq %r14, %rax - LONG $0xb04d8948 // movq %rcx, $-80(%rbp) - LONG $0xb8458948 // movq %rax, $-72(%rbp) - -LBB29_2: - LONG $0x007d8b49 // movq (%r13), %rdi - LONG $0x08758b49 // movq $8(%r13), %rsi - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - LONG $0xffd1cae8; BYTE $0xff // callq _advance_ns, $-11830(%rip) - WORD $0x8b49; BYTE $0x0e // movq (%r14), %rcx - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x06fc840f; WORD $0x0000 // je LBB29_99, $1788(%rip) - WORD $0x498a; BYTE $0x17 // movb $23(%rcx), %cl - WORD $0xe180; BYTE $0x1f // andb $31, %cl - WORD $0xf980; BYTE $0x02 // cmpb $2, %cl - LONG $0x05ff840f; WORD $0x0000 // je LBB29_86, $1535(%rip) - WORD $0xf980; BYTE $0x18 // cmpb $24, %cl - LONG $0x06e4850f; WORD $0x0000 // jne LBB29_99, $1764(%rip) - WORD $0x7b3c // cmpb $123, %al - LONG $0xc875894c // movq %r14, $-56(%rbp) - LONG $0x06bf850f; WORD $0x0000 // jne LBB29_97, $1727(%rip) - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB29_6: - LONG $0x007d8b49 // movq (%r13), %rdi - LONG $0x08758b49 // movq $8(%r13), %rsi - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - LONG $0xffd180e8; BYTE $0xff // callq _advance_ns, $-11904(%rip) - WORD $0x223c // cmpb $34, %al - LONG $0x067e850f; WORD $0x0000 // jne LBB29_94, $1662(%rip) - LONG $0x08468b49 // movq $8(%r14), %rax - WORD $0x8b4c; BYTE $0x30 // movq (%rax), %r14 - LONG $0x08608b4c // movq $8(%rax), %r12 - QUAD $0xffffffffc045c748 // movq $-1, $-64(%rbp) - WORD $0x8b49; BYTE $0x1f // movq (%r15), %rbx - WORD $0x894c; BYTE $0xef // movq %r13, %rdi - WORD $0x8948; BYTE $0xde // movq %rbx, %rsi - LONG $0xc0558d48 // leaq $-64(%rbp), %rdx - LONG $0x0027f3e8; BYTE $0x00 // callq _advance_string_default, $10227(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0697880f; WORD $0x0000 // js LBB29_100, $1687(%rip) - WORD $0x8949; BYTE $0x07 // movq %rax, (%r15) - LONG $0xc04d8b48 // movq $-64(%rbp), %rcx - LONG $0xfff98348 // cmpq $-1, %rcx - LONG $0x0009840f; WORD $0x0000 // je LBB29_10, $9(%rip) - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0x01d48e0f; WORD $0x0000 // jle LBB29_40, $468(%rip) - -LBB29_10: - WORD $0x8948; BYTE $0xd9 // movq %rbx, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x094c; BYTE $0xe1 // orq %r12, %rcx - LONG $0x008b840f; WORD $0x0000 // je LBB29_18, $139(%rip) - WORD $0x394c; BYTE $0xe0 // cmpq %r12, %rax - LONG $0x0092850f; WORD $0x0000 // jne LBB29_19, $146(%rip) - LONG $0x005d0349 // addq (%r13), %rbx - LONG $0x20fc8349 // cmpq $32, %r12 - LONG $0x0030820f; WORD $0x0000 // jb LBB29_15, $48(%rip) - LONG $0x90909090 // .p2align 4, 0x90 - -LBB29_13: - LONG $0x036ffec5 // vmovdqu (%rbx), %ymm0 - LONG $0x747dc1c4; BYTE $0x06 // vpcmpeqb (%r14), %ymm0, %ymm0 - LONG $0xc0d7fdc5 // vpmovmskb %ymm0, %eax - WORD $0xf883; BYTE $0xff // cmpl $-1, %eax - LONG $0x0139850f; WORD $0x0000 // jne LBB29_34, $313(%rip) - LONG $0x20c38348 // addq $32, %rbx - LONG $0x20c68349 // addq $32, %r14 - LONG $0xe0c48349 // addq $-32, %r12 - LONG $0x1ffc8349 // cmpq $31, %r12 - LONG $0xffd4870f; WORD $0xffff // ja LBB29_13, $-44(%rip) - -LBB29_15: - WORD $0xd889 // movl %ebx, %eax - LONG $0x000fff25; BYTE $0x00 // andl $4095, %eax - WORD $0x8944; BYTE $0xf1 // movl %r14d, %ecx - LONG $0x0fffe181; WORD $0x0000 // andl $4095, %ecx - LONG $0xe0f98148; WORD $0x000f; BYTE $0x00 // cmpq $4064, %rcx - LONG $0x003e870f; WORD $0x0000 // ja LBB29_20, $62(%rip) - LONG $0x000fe13d; BYTE $0x00 // cmpl $4065, %eax - LONG $0x0033830f; WORD $0x0000 // jae LBB29_20, $51(%rip) - LONG $0x036ffec5 // vmovdqu (%rbx), %ymm0 - LONG $0x747dc1c4; BYTE $0x06 // vpcmpeqb (%r14), %ymm0, %ymm0 - LONG $0xc0d7fdc5 // vpmovmskb %ymm0, %eax - WORD $0xf883; BYTE $0xff // cmpl $-1, %eax - WORD $0x940f; BYTE $0xc1 // sete %cl - WORD $0xd0f7 // notl %eax - LONG $0x00009fe9; BYTE $0x00 // jmp LBB29_27, $159(%rip) - WORD $0x9090 // .p2align 4, 0x90 - -LBB29_18: - LONG $0x000001bb; BYTE $0x00 // movl $1, %ebx - LONG $0x0000dae9; BYTE $0x00 // jmp LBB29_36, $218(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB29_19: - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0x0000cde9; BYTE $0x00 // jmp LBB29_36, $205(%rip) - -LBB29_20: - LONG $0x10fc8349 // cmpq $16, %r12 - LONG $0x004c820f; WORD $0x0000 // jb LBB29_24, $76(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB29_21: - LONG $0x036ffac5 // vmovdqu (%rbx), %xmm0 - LONG $0x7479c1c4; BYTE $0x06 // vpcmpeqb (%r14), %xmm0, %xmm0 - LONG $0xc0d7f9c5 // vpmovmskb %xmm0, %eax - LONG $0xfff88366 // cmpw $-1, %ax - LONG $0x0098850f; WORD $0x0000 // jne LBB29_34, $152(%rip) - LONG $0x10c38348 // addq $16, %rbx - LONG $0x10c68349 // addq $16, %r14 - LONG $0xf0c48349 // addq $-16, %r12 - LONG $0x0ffc8349 // cmpq $15, %r12 - LONG $0xffd3870f; WORD $0xffff // ja LBB29_21, $-45(%rip) - WORD $0xd889 // movl %ebx, %eax - LONG $0x000fff25; BYTE $0x00 // andl $4095, %eax - WORD $0x8944; BYTE $0xf1 // movl %r14d, %ecx - LONG $0x0fffe181; WORD $0x0000 // andl $4095, %ecx - -LBB29_24: - LONG $0x0ff0f981; WORD $0x0000 // cmpl $4080, %ecx - LONG $0x0035870f; WORD $0x0000 // ja LBB29_29, $53(%rip) - LONG $0x000ff13d; BYTE $0x00 // cmpl $4081, %eax - LONG $0x002a830f; WORD $0x0000 // jae LBB29_29, $42(%rip) - LONG $0x036ffac5 // vmovdqu (%rbx), %xmm0 - LONG $0x7479c1c4; BYTE $0x06 // vpcmpeqb (%r14), %xmm0, %xmm0 - LONG $0xc0d7f9c5 // vpmovmskb %xmm0, %eax - LONG $0xfff88366 // cmpw $-1, %ax - WORD $0x940f; BYTE $0xc1 // sete %cl - WORD $0xd0f7 // notl %eax - WORD $0xb70f; BYTE $0xc0 // movzwl %ax, %eax - -LBB29_27: - LONG $0xc0bc0f48 // bsfq %rax, %rax - WORD $0x394c; BYTE $0xe0 // cmpq %r12, %rax - WORD $0x930f; BYTE $0xc0 // setae %al - WORD $0xc808 // orb %cl, %al - LONG $0x000033e9; BYTE $0x00 // jmp LBB29_35, $51(%rip) - -LBB29_29: - WORD $0x01b0 // movb $1, %al - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x0028840f; WORD $0x0000 // je LBB29_35, $40(%rip) - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB29_31: - LONG $0x0b14b60f // movzbl (%rbx,%rcx), %edx - LONG $0x0e143a41 // cmpb (%r14,%rcx), %dl - LONG $0x0011850f; WORD $0x0000 // jne LBB29_34, $17(%rip) - WORD $0xff48; BYTE $0xc1 // incq %rcx - WORD $0x3949; BYTE $0xcc // cmpq %rcx, %r12 - LONG $0xffe6850f; WORD $0xffff // jne LBB29_31, $-26(%rip) - LONG $0x000002e9; BYTE $0x00 // jmp LBB29_35, $2(%rip) - -LBB29_34: - WORD $0xc031 // xorl %eax, %eax - -LBB29_35: - WORD $0xb60f; BYTE $0xd8 // movzbl %al, %ebx - -LBB29_36: - LONG $0xc8758b4c // movq $-56(%rbp), %r14 - LONG $0x007d8b49 // movq (%r13), %rdi - -LBB29_37: - LONG $0x08758b49 // movq $8(%r13), %rsi - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - WORD $0xf8c5; BYTE $0x77 // vzeroupper - LONG $0xffcf95e8; BYTE $0xff // callq _advance_ns, $-12395(%rip) - WORD $0x3a3c // cmpb $58, %al - LONG $0x04b2850f; WORD $0x0000 // jne LBB29_97, $1202(%rip) - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0454850f; WORD $0x0000 // jne LBB29_92, $1108(%rip) - WORD $0x894c; BYTE $0xef // movq %r13, %rdi - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0xfff249e8; BYTE $0xff // callq _skip_one_fast, $-3511(%rip) - LONG $0x007d8b49 // movq (%r13), %rdi - LONG $0x08758b49 // movq $8(%r13), %rsi - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - LONG $0xffcf69e8; BYTE $0xff // callq _advance_ns, $-12439(%rip) - WORD $0x2c3c // cmpb $44, %al - LONG $0xfdd1840f; WORD $0xffff // je LBB29_6, $-559(%rip) - LONG $0x000462e9; BYTE $0x00 // jmp LBB29_94, $1122(%rip) - -LBB29_40: - QUAD $0x00000000d045c748 // movq $0, $-48(%rbp) - LONG $0x007d8b49 // movq (%r13), %rdi - WORD $0x0148; BYTE $0xfb // addq %rdi, %rbx - LONG $0x07448d4c; BYTE $0xff // leaq $-1(%rdi,%rax), %r8 - LONG $0x26148d4f // leaq (%r14,%r12), %r10 - WORD $0x854d; BYTE $0xe4 // testq %r12, %r12 - LONG $0x03638e0f; WORD $0x0000 // jle LBB29_84, $867(%rip) - WORD $0x3949; BYTE $0xd8 // cmpq %rbx, %r8 - LONG $0x035a860f; WORD $0x0000 // jbe LBB29_84, $858(%rip) - -LBB29_42: - WORD $0x038a // movb (%rbx), %al - WORD $0x5c3c // cmpb $92, %al - LONG $0x0058850f; WORD $0x0000 // jne LBB29_47, $88(%rip) - WORD $0x894c; BYTE $0xc1 // movq %r8, %rcx - WORD $0x2948; BYTE $0xd9 // subq %rbx, %rcx - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x04948e0f; WORD $0x0000 // jle LBB29_104, $1172(%rip) - LONG $0x0153b60f // movzbl $1(%rbx), %edx - LONG $0x17358d48; WORD $0x009d; BYTE $0x00 // leaq $40215(%rip), %rsi /* __UnquoteTab(%rip) */ - LONG $0x321c8a44 // movb (%rdx,%rsi), %r11b - LONG $0xfffb8041 // cmpb $-1, %r11b - LONG $0x003d840f; WORD $0x0000 // je LBB29_49, $61(%rip) - WORD $0x8445; BYTE $0xdb // testb %r11b, %r11b - LONG $0x0460840f; WORD $0x0000 // je LBB29_102, $1120(%rip) - LONG $0xd05d8844 // movb %r11b, $-48(%rbp) - LONG $0x02c38348 // addq $2, %rbx - LONG $0x000001b9; BYTE $0x00 // movl $1, %ecx - LONG $0x0d4c8d4c; BYTE $0xd0 // leaq $-48(%rbp,%rcx), %r9 - WORD $0x394d; BYTE $0xd6 // cmpq %r10, %r14 - LONG $0x012c820f; WORD $0x0000 // jb LBB29_60, $300(%rip) - LONG $0x0002d9e9; BYTE $0x00 // jmp LBB29_68, $729(%rip) - -LBB29_47: - WORD $0x3a41; BYTE $0x06 // cmpb (%r14), %al - LONG $0x0306850f; WORD $0x0000 // jne LBB29_85, $774(%rip) - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0xff49; BYTE $0xc6 // incq %r14 - LONG $0x0002d2e9; BYTE $0x00 // jmp LBB29_70, $722(%rip) - -LBB29_49: - LONG $0x03f98348 // cmpq $3, %rcx - LONG $0x04318e0f; WORD $0x0000 // jle LBB29_103, $1073(%rip) - WORD $0x438b; BYTE $0x02 // movl $2(%rbx), %eax - WORD $0xc289 // movl %eax, %edx - WORD $0xd2f7 // notl %edx - LONG $0xcfd0b08d; WORD $0xcfcf // leal $-808464432(%rax), %esi - LONG $0x8080e281; WORD $0x8080 // andl $-2139062144, %edx - WORD $0xf285 // testl %esi, %edx - LONG $0x03f7850f; WORD $0x0000 // jne LBB29_101, $1015(%rip) - LONG $0x1919b08d; WORD $0x1919 // leal $421075225(%rax), %esi - WORD $0xc609 // orl %eax, %esi - LONG $0x8080c6f7; WORD $0x8080 // testl $-2139062144, %esi - LONG $0x03e3850f; WORD $0x0000 // jne LBB29_101, $995(%rip) - WORD $0xc689 // movl %eax, %esi - LONG $0x7f7fe681; WORD $0x7f7f // andl $2139062143, %esi - LONG $0xc0c0b941; WORD $0xc0c0 // movl $-1061109568, %r9d - WORD $0x2941; BYTE $0xf1 // subl %esi, %r9d - LONG $0x469e8d44; WORD $0x4646; BYTE $0x46 // leal $1179010630(%rsi), %r11d - WORD $0x2141; BYTE $0xd1 // andl %edx, %r9d - WORD $0x8545; BYTE $0xd9 // testl %r11d, %r9d - LONG $0x03bf850f; WORD $0x0000 // jne LBB29_101, $959(%rip) - LONG $0xe0e0b941; WORD $0xe0e0 // movl $-522133280, %r9d - WORD $0x2941; BYTE $0xf1 // subl %esi, %r9d - LONG $0x3939c681; WORD $0x3939 // addl $960051513, %esi - WORD $0x2144; BYTE $0xca // andl %r9d, %edx - WORD $0xf285 // testl %esi, %edx - LONG $0x03a5850f; WORD $0x0000 // jne LBB29_101, $933(%rip) - WORD $0xc80f // bswapl %eax - WORD $0xc289 // movl %eax, %edx - WORD $0xeac1; BYTE $0x04 // shrl $4, %edx - WORD $0xd2f7 // notl %edx - LONG $0x0101e281; WORD $0x0101 // andl $16843009, %edx - WORD $0x148d; BYTE $0xd2 // leal (%rdx,%rdx,8), %edx - LONG $0x0f0f0f25; BYTE $0x0f // andl $252645135, %eax - WORD $0xd001 // addl %edx, %eax - WORD $0x8941; BYTE $0xc3 // movl %eax, %r11d - LONG $0x04ebc141 // shrl $4, %r11d - WORD $0x0941; BYTE $0xc3 // orl %eax, %r11d - WORD $0x8944; BYTE $0xde // movl %r11d, %esi - WORD $0xeec1; BYTE $0x08 // shrl $8, %esi - LONG $0xff00e681; WORD $0x0000 // andl $65280, %esi - LONG $0xc3b60f41 // movzbl %r11b, %eax - WORD $0xf009 // orl %esi, %eax - LONG $0x064b8d4c // leaq $6(%rbx), %r9 - WORD $0xf883; BYTE $0x7f // cmpl $127, %eax - LONG $0x00ab860f; WORD $0x0000 // jbe LBB29_72, $171(%rip) - LONG $0x0007ff3d; BYTE $0x00 // cmpl $2047, %eax - LONG $0x00ae860f; WORD $0x0000 // jbe LBB29_73, $174(%rip) - WORD $0x8944; BYTE $0xda // movl %r11d, %edx - LONG $0x0000e281; WORD $0x00f8 // andl $16252928, %edx - LONG $0x0000fa81; WORD $0x00d8 // cmpl $14155776, %edx - LONG $0x00ba840f; WORD $0x0000 // je LBB29_74, $186(%rip) - WORD $0xeec1; BYTE $0x0c // shrl $12, %esi - LONG $0xe0ce8040 // orb $-32, %sil - LONG $0xd0758840 // movb %sil, $-48(%rbp) - WORD $0xe8c1; BYTE $0x06 // shrl $6, %eax - WORD $0x3f24 // andb $63, %al - WORD $0x800c // orb $-128, %al - WORD $0x4588; BYTE $0xd1 // movb %al, $-47(%rbp) - LONG $0x3fe38041 // andb $63, %r11b - LONG $0x80cb8041 // orb $-128, %r11b - LONG $0xd25d8844 // movb %r11b, $-46(%rbp) - LONG $0x000003b9; BYTE $0x00 // movl $3, %ecx - WORD $0x8941; BYTE $0xf3 // movl %esi, %r11d - -LBB29_58: - WORD $0x894c; BYTE $0xcb // movq %r9, %rbx - LONG $0x0d4c8d4c; BYTE $0xd0 // leaq $-48(%rbp,%rcx), %r9 - WORD $0x394d; BYTE $0xd6 // cmpq %r10, %r14 - LONG $0x01b2830f; WORD $0x0000 // jae LBB29_68, $434(%rip) - -LBB29_60: - LONG $0xd0458d48 // leaq $-48(%rbp), %rax - WORD $0x3949; BYTE $0xc1 // cmpq %rax, %r9 - LONG $0x01a5860f; WORD $0x0000 // jbe LBB29_68, $421(%rip) - WORD $0x3845; BYTE $0x1e // cmpb %r11b, (%r14) - LONG $0x019c850f; WORD $0x0000 // jne LBB29_68, $412(%rip) - WORD $0xff49; BYTE $0xc6 // incq %r14 - LONG $0xd1558d48 // leaq $-47(%rbp), %rdx - WORD $0x894c; BYTE $0xf6 // movq %r14, %rsi - -LBB29_63: - WORD $0x8949; BYTE $0xf6 // movq %rsi, %r14 - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x394c; BYTE $0xca // cmpq %r9, %rdx - LONG $0x0187830f; WORD $0x0000 // jae LBB29_69, $391(%rip) - WORD $0x394d; BYTE $0xd6 // cmpq %r10, %r14 - LONG $0x017e830f; WORD $0x0000 // jae LBB29_69, $382(%rip) - LONG $0x06b60f41 // movzbl (%r14), %eax - LONG $0x01768d49 // leaq $1(%r14), %rsi - LONG $0x01518d48 // leaq $1(%rcx), %rdx - WORD $0x013a // cmpb (%rcx), %al - LONG $0xffd4840f; WORD $0xffff // je LBB29_63, $-44(%rip) - LONG $0x000165e9; BYTE $0x00 // jmp LBB29_69, $357(%rip) - -LBB29_72: - LONG $0xd05d8844 // movb %r11b, $-48(%rbp) - LONG $0x000001b9; BYTE $0x00 // movl $1, %ecx - LONG $0xffff90e9; BYTE $0xff // jmp LBB29_58, $-112(%rip) - -LBB29_73: - WORD $0xe8c1; BYTE $0x06 // shrl $6, %eax - WORD $0xc00c // orb $-64, %al - WORD $0x4588; BYTE $0xd0 // movb %al, $-48(%rbp) - LONG $0x3fe38041 // andb $63, %r11b - LONG $0x80cb8041 // orb $-128, %r11b - LONG $0xd15d8844 // movb %r11b, $-47(%rbp) - LONG $0x000002b9; BYTE $0x00 // movl $2, %ecx - WORD $0x8941; BYTE $0xc3 // movl %eax, %r11d - LONG $0xffff6fe9; BYTE $0xff // jmp LBB29_58, $-145(%rip) - -LBB29_74: - LONG $0x06f98348 // cmpq $6, %rcx - LONG $0x02b88c0f; WORD $0x0000 // jl LBB29_106, $696(%rip) - LONG $0x00dbff3d; BYTE $0x00 // cmpl $56319, %eax - LONG $0x02ad870f; WORD $0x0000 // ja LBB29_106, $685(%rip) - LONG $0x5c398041 // cmpb $92, (%r9) - LONG $0x02a3850f; WORD $0x0000 // jne LBB29_106, $675(%rip) - LONG $0x75077b80 // cmpb $117, $7(%rbx) - LONG $0x0299850f; WORD $0x0000 // jne LBB29_106, $665(%rip) - LONG $0x084b8d4c // leaq $8(%rbx), %r9 - WORD $0x4b8b; BYTE $0x08 // movl $8(%rbx), %ecx - WORD $0xca89 // movl %ecx, %edx - WORD $0xd2f7 // notl %edx - LONG $0xcfd0b18d; WORD $0xcfcf // leal $-808464432(%rcx), %esi - LONG $0x8080e281; WORD $0x8080 // andl $-2139062144, %edx - WORD $0xf285 // testl %esi, %edx - LONG $0x026e850f; WORD $0x0000 // jne LBB29_105, $622(%rip) - LONG $0x1919b18d; WORD $0x1919 // leal $421075225(%rcx), %esi - WORD $0xce09 // orl %ecx, %esi - LONG $0x8080c6f7; WORD $0x8080 // testl $-2139062144, %esi - LONG $0x025a850f; WORD $0x0000 // jne LBB29_105, $602(%rip) - WORD $0xce89 // movl %ecx, %esi - LONG $0x7f7fe681; WORD $0x7f7f // andl $2139062143, %esi - LONG $0xc0c0bb41; WORD $0xc0c0 // movl $-1061109568, %r11d - WORD $0x2941; BYTE $0xf3 // subl %esi, %r11d - LONG $0x46a68d44; WORD $0x4646; BYTE $0x46 // leal $1179010630(%rsi), %r12d - WORD $0x2141; BYTE $0xd3 // andl %edx, %r11d - WORD $0x8545; BYTE $0xe3 // testl %r12d, %r11d - LONG $0x0236850f; WORD $0x0000 // jne LBB29_105, $566(%rip) - LONG $0xe0e0bb41; WORD $0xe0e0 // movl $-522133280, %r11d - WORD $0x2941; BYTE $0xf3 // subl %esi, %r11d - LONG $0x3939c681; WORD $0x3939 // addl $960051513, %esi - WORD $0x2144; BYTE $0xda // andl %r11d, %edx - WORD $0xf285 // testl %esi, %edx - LONG $0x021c850f; WORD $0x0000 // jne LBB29_105, $540(%rip) - WORD $0xc90f // bswapl %ecx - WORD $0xca89 // movl %ecx, %edx - WORD $0xeac1; BYTE $0x04 // shrl $4, %edx - WORD $0xd2f7 // notl %edx - LONG $0x0101e281; WORD $0x0101 // andl $16843009, %edx - WORD $0x148d; BYTE $0xd2 // leal (%rdx,%rdx,8), %edx - LONG $0x0f0fe181; WORD $0x0f0f // andl $252645135, %ecx - WORD $0xd101 // addl %edx, %ecx - WORD $0xca89 // movl %ecx, %edx - WORD $0xeac1; BYTE $0x04 // shrl $4, %edx - WORD $0xca09 // orl %ecx, %edx - WORD $0xd189 // movl %edx, %ecx - LONG $0x0000e181; WORD $0x00fc // andl $16515072, %ecx - LONG $0x0000f981; WORD $0x00dc // cmpl $14417920, %ecx - LONG $0x01f3850f; WORD $0x0000 // jne LBB29_106, $499(%rip) - WORD $0xd189 // movl %edx, %ecx - WORD $0xe9c1; BYTE $0x08 // shrl $8, %ecx - LONG $0xff00e181; WORD $0x0000 // andl $65280, %ecx - WORD $0xb60f; BYTE $0xd2 // movzbl %dl, %edx - WORD $0xca09 // orl %ecx, %edx - WORD $0xe0c1; BYTE $0x0a // shll $10, %eax - LONG $0x0010848d; WORD $0xa024; BYTE $0xfc // leal $-56613888(%rax,%rdx), %eax - WORD $0x8941; BYTE $0xc3 // movl %eax, %r11d - LONG $0x12ebc141 // shrl $18, %r11d - LONG $0xf0cb8041 // orb $-16, %r11b - LONG $0xd05d8844 // movb %r11b, $-48(%rbp) - WORD $0xc189 // movl %eax, %ecx - WORD $0xe9c1; BYTE $0x0c // shrl $12, %ecx - WORD $0xe180; BYTE $0x3f // andb $63, %cl - WORD $0xc980; BYTE $0x80 // orb $-128, %cl - WORD $0x4d88; BYTE $0xd1 // movb %cl, $-47(%rbp) - WORD $0xc189 // movl %eax, %ecx - WORD $0xe9c1; BYTE $0x06 // shrl $6, %ecx - WORD $0xe180; BYTE $0x3f // andb $63, %cl - WORD $0xc980; BYTE $0x80 // orb $-128, %cl - WORD $0x4d88; BYTE $0xd2 // movb %cl, $-46(%rbp) - WORD $0x3f24 // andb $63, %al - WORD $0x800c // orb $-128, %al - WORD $0x4588; BYTE $0xd3 // movb %al, $-45(%rbp) - LONG $0x0cc38348 // addq $12, %rbx - LONG $0x000004b9; BYTE $0x00 // movl $4, %ecx - LONG $0x0d4c8d4c; BYTE $0xd0 // leaq $-48(%rbp,%rcx), %r9 - WORD $0x394d; BYTE $0xd6 // cmpq %r10, %r14 - LONG $0xfe4e820f; WORD $0xffff // jb LBB29_60, $-434(%rip) - -LBB29_68: - LONG $0xd04d8d48 // leaq $-48(%rbp), %rcx - -LBB29_69: - WORD $0x394c; BYTE $0xc9 // cmpq %r9, %rcx - LONG $0x0029850f; WORD $0x0000 // jne LBB29_85, $41(%rip) - -LBB29_70: - WORD $0x3949; BYTE $0xd8 // cmpq %rbx, %r8 - LONG $0x0009860f; WORD $0x0000 // jbe LBB29_84, $9(%rip) - WORD $0x394d; BYTE $0xd6 // cmpq %r10, %r14 - LONG $0xfca6820f; WORD $0xffff // jb LBB29_42, $-858(%rip) - -LBB29_84: - WORD $0x3149; BYTE $0xd8 // xorq %rbx, %r8 - WORD $0x314d; BYTE $0xd6 // xorq %r10, %r14 - WORD $0xdb31 // xorl %ebx, %ebx - WORD $0x094d; BYTE $0xc6 // orq %r8, %r14 - WORD $0x940f; BYTE $0xc3 // sete %bl - LONG $0xc8758b4c // movq $-56(%rbp), %r14 - LONG $0xfffc1de9; BYTE $0xff // jmp LBB29_37, $-995(%rip) - -LBB29_85: - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0xc8758b4c // movq $-56(%rbp), %r14 - LONG $0xfffc12e9; BYTE $0xff // jmp LBB29_37, $-1006(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB29_86: - WORD $0x5b3c // cmpb $91, %al - LONG $0x00cd850f; WORD $0x0000 // jne LBB29_97, $205(%rip) - LONG $0x08468b49 // movq $8(%r14), %rax - WORD $0x8b48; BYTE $0x18 // movq (%rax), %rbx - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x00d6880f; WORD $0x0000 // js LBB29_99, $214(%rip) - LONG $0x007d8b49 // movq (%r13), %rdi - LONG $0x08758b49 // movq $8(%r13), %rsi - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - LONG $0xffcb88e8; BYTE $0xff // callq _advance_ns, $-13432(%rip) - WORD $0x5d3c // cmpb $93, %al - LONG $0x008e840f; WORD $0x0000 // je LBB29_95, $142(%rip) - WORD $0xff49; BYTE $0x0f // decq (%r15) - WORD $0xff48; BYTE $0xc3 // incq %rbx - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB29_90: - WORD $0xff48; BYTE $0xcb // decq %rbx - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x00348e0f; WORD $0x0000 // jle LBB29_92, $52(%rip) - WORD $0x894c; BYTE $0xef // movq %r13, %rdi - WORD $0x894c; BYTE $0xfe // movq %r15, %rsi - LONG $0xffee29e8; BYTE $0xff // callq _skip_one_fast, $-4567(%rip) - LONG $0x007d8b49 // movq (%r13), %rdi - LONG $0x08758b49 // movq $8(%r13), %rsi - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - LONG $0xffcb49e8; BYTE $0xff // callq _advance_ns, $-13495(%rip) - WORD $0x2c3c // cmpb $44, %al - LONG $0xffd1840f; WORD $0xffff // je LBB29_90, $-47(%rip) - LONG $0x000059e9; BYTE $0x00 // jmp LBB29_96, $89(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB29_92: - LONG $0x10c68349 // addq $16, %r14 - LONG $0xb8458b48 // movq $-72(%rbp), %rax - WORD $0x3949; BYTE $0xc6 // cmpq %rax, %r14 - LONG $0xb04d8b48 // movq $-80(%rbp), %rcx - LONG $0xf941850f; WORD $0xffff // jne LBB29_2, $-1727(%rip) - -LBB29_93: - QUAD $0xfffff8f3056ff9c5 // vmovdqa $-1805(%rip), %xmm0 /* LCPI29_0(%rip) */ - LONG $0x017ffac5 // vmovdqu %xmm0, (%rcx) - WORD $0x8948; BYTE $0xcf // movq %rcx, %rdi - WORD $0x894c; BYTE $0xee // movq %r13, %rsi - WORD $0x894c; BYTE $0xfa // movq %r15, %rdx - WORD $0xc931 // xorl %ecx, %ecx - LONG $0xffdb3fe8; BYTE $0xff // callq _fsm_exec, $-9409(%rip) - LONG $0x000029e9; BYTE $0x00 // jmp LBB29_98, $41(%rip) - -LBB29_94: - WORD $0x7d3c // cmpb $125, %al - LONG $0x0017850f; WORD $0x0000 // jne LBB29_97, $23(%rip) - -LBB29_95: - WORD $0xff49; BYTE $0x0f // decq (%r15) - LONG $0xdfc0c748; WORD $0xffff; BYTE $0xff // movq $-33, %rax - LONG $0x000012e9; BYTE $0x00 // jmp LBB29_98, $18(%rip) - -LBB29_96: - WORD $0x5d3c // cmpb $93, %al - LONG $0xffe9840f; WORD $0xffff // je LBB29_95, $-23(%rip) - -LBB29_97: - WORD $0xff49; BYTE $0x0f // decq (%r15) - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - -LBB29_98: - LONG $0x28c48348 // addq $40, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB29_99: - WORD $0xff49; BYTE $0x0f // decq (%r15) - LONG $0xdec0c748; WORD $0xffff; BYTE $0xff // movq $-34, %rax - LONG $0xffffe2e9; BYTE $0xff // jmp LBB29_98, $-30(%rip) - -LBB29_100: - LONG $0x08458b49 // movq $8(%r13), %rax - WORD $0x8949; BYTE $0x07 // movq %rax, (%r15) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xffffcfe9; BYTE $0xff // jmp LBB29_98, $-49(%rip) - -LBB29_101: - LONG $0x02c38348 // addq $2, %rbx - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x000012e9; BYTE $0x00 // jmp LBB29_104, $18(%rip) - -LBB29_102: - WORD $0xff48; BYTE $0xc3 // incq %rbx - LONG $0xfdc0c748; WORD $0xffff; BYTE $0xff // movq $-3, %rax - LONG $0x000003e9; BYTE $0x00 // jmp LBB29_104, $3(%rip) - -LBB29_103: - WORD $0xff48; BYTE $0xc3 // incq %rbx - -LBB29_104: - WORD $0x2948; BYTE $0xfb // subq %rdi, %rbx - WORD $0x8949; BYTE $0x1f // movq %rbx, (%r15) - LONG $0xffffa2e9; BYTE $0xff // jmp LBB29_98, $-94(%rip) - -LBB29_105: - LONG $0xfec0c748; WORD $0xffff; BYTE $0xff // movq $-2, %rax - LONG $0x000007e9; BYTE $0x00 // jmp LBB29_107, $7(%rip) - -LBB29_106: - LONG $0xfcc0c748; WORD $0xffff; BYTE $0xff // movq $-4, %rax - -LBB29_107: - WORD $0x894c; BYTE $0xcb // movq %r9, %rbx - LONG $0xffffdae9; BYTE $0xff // jmp LBB29_104, $-38(%rip) - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -_validate_utf8: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - BYTE $0x50 // pushq %rax - WORD $0x8b4c; BYTE $0x17 // movq (%rdi), %r10 - LONG $0x085f8b4c // movq $8(%rdi), %r11 - WORD $0x8b48; BYTE $0x0e // movq (%rsi), %rcx - WORD $0x014c; BYTE $0xd1 // addq %r10, %rcx - LONG $0x1a448d4f; BYTE $0xfd // leaq $-3(%r10,%r11), %r8 - LONG $0x000010e9; BYTE $0x00 // jmp LBB30_1, $16(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB30_19: - WORD $0x0148; BYTE $0xd9 // addq %rbx, %rcx - -LBB30_1: - WORD $0x394c; BYTE $0xc1 // cmpq %r8, %rcx - LONG $0x00e1830f; WORD $0x0000 // jae LBB30_2, $225(%rip) - LONG $0x000001bb; BYTE $0x00 // movl $1, %ebx - WORD $0x3980; BYTE $0x00 // cmpb $0, (%rcx) - LONG $0xffe6890f; WORD $0xffff // jns LBB30_19, $-26(%rip) - WORD $0x018b // movl (%rcx), %eax - WORD $0xc789 // movl %eax, %edi - LONG $0xc0f0e781; WORD $0x00c0 // andl $12632304, %edi - LONG $0x80e0ff81; WORD $0x0080 // cmpl $8421600, %edi - LONG $0x0030850f; WORD $0x0000 // jne LBB30_10, $48(%rip) - WORD $0xc789 // movl %eax, %edi - LONG $0x200fe781; WORD $0x0000 // andl $8207, %edi - LONG $0x200dff81; WORD $0x0000 // cmpl $8205, %edi - LONG $0x001c840f; WORD $0x0000 // je LBB30_10, $28(%rip) - LONG $0x000003bb; BYTE $0x00 // movl $3, %ebx - WORD $0xff85 // testl %edi, %edi - LONG $0xffaf850f; WORD $0xffff // jne LBB30_19, $-81(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB30_10: - WORD $0xc789 // movl %eax, %edi - LONG $0xc0e0e781; WORD $0x0000 // andl $49376, %edi - LONG $0x80c0ff81; WORD $0x0000 // cmpl $32960, %edi - LONG $0x0010850f; WORD $0x0000 // jne LBB30_12, $16(%rip) - WORD $0xc789 // movl %eax, %edi - LONG $0x000002bb; BYTE $0x00 // movl $2, %ebx - WORD $0xe783; BYTE $0x1e // andl $30, %edi - LONG $0xff7c850f; WORD $0xffff // jne LBB30_19, $-132(%rip) - -LBB30_12: - WORD $0xc789 // movl %eax, %edi - LONG $0xc0f8e781; WORD $0xc0c0 // andl $-1061109512, %edi - LONG $0x80f0ff81; WORD $0x8080 // cmpl $-2139062032, %edi - LONG $0x0026850f; WORD $0x0000 // jne LBB30_16, $38(%rip) - WORD $0xc789 // movl %eax, %edi - LONG $0x3007e781; WORD $0x0000 // andl $12295, %edi - LONG $0x0018840f; WORD $0x0000 // je LBB30_16, $24(%rip) - LONG $0x000004bb; BYTE $0x00 // movl $4, %ebx - WORD $0x04a8 // testb $4, %al - LONG $0xff4d840f; WORD $0xffff // je LBB30_19, $-179(%rip) - LONG $0x00300325; BYTE $0x00 // andl $12291, %eax - LONG $0xff42840f; WORD $0xffff // je LBB30_19, $-190(%rip) - -LBB30_16: - WORD $0x8948; BYTE $0xcf // movq %rcx, %rdi - WORD $0x294c; BYTE $0xd7 // subq %r10, %rdi - WORD $0x8b48; BYTE $0x1a // movq (%rdx), %rbx - LONG $0x00fb8148; WORD $0x0010; BYTE $0x00 // cmpq $4096, %rbx - LONG $0x0187830f; WORD $0x0000 // jae LBB30_17, $391(%rip) - WORD $0x6348; BYTE $0xc7 // movslq %edi, %rax - LONG $0x017b8d48 // leaq $1(%rbx), %rdi - WORD $0x8948; BYTE $0x3a // movq %rdi, (%rdx) - LONG $0xda448948; BYTE $0x08 // movq %rax, $8(%rdx,%rbx,8) - LONG $0x000001bb; BYTE $0x00 // movl $1, %ebx - LONG $0xffff13e9; BYTE $0xff // jmp LBB30_19, $-237(%rip) - -LBB30_2: - WORD $0x014d; BYTE $0xd3 // addq %r10, %r11 - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0x013e830f; WORD $0x0000 // jae LBB30_36, $318(%rip) - LONG $0xdc458d4c // leaq $-36(%rbp), %r8 - LONG $0xda4d8d4c // leaq $-38(%rbp), %r9 - LONG $0x000016e9; BYTE $0x00 // jmp LBB30_4, $22(%rip) - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB30_5: - WORD $0xff48; BYTE $0xc1 // incq %rcx - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0x011b830f; WORD $0x0000 // jae LBB30_36, $283(%rip) - -LBB30_4: - WORD $0x3980; BYTE $0x00 // cmpb $0, (%rcx) - LONG $0xffeb890f; WORD $0xffff // jns LBB30_5, $-21(%rip) - LONG $0x00dc45c6 // movb $0, $-36(%rbp) - LONG $0x00da45c6 // movb $0, $-38(%rbp) - WORD $0x894c; BYTE $0xdb // movq %r11, %rbx - WORD $0x2948; BYTE $0xcb // subq %rcx, %rbx - LONG $0x02fb8348 // cmpq $2, %rbx - LONG $0x0035820f; WORD $0x0000 // jb LBB30_21, $53(%rip) - LONG $0x21b60f44 // movzbl (%rcx), %r12d - LONG $0x71b60f44; BYTE $0x01 // movzbl $1(%rcx), %r14d - LONG $0xdc658844 // movb %r12b, $-36(%rbp) - LONG $0x02798d4c // leaq $2(%rcx), %r15 - LONG $0xfec38348 // addq $-2, %rbx - WORD $0x894c; BYTE $0xcf // movq %r9, %rdi - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0x0029840f; WORD $0x0000 // je LBB30_24, $41(%rip) - -LBB30_25: - LONG $0x07b60f41 // movzbl (%r15), %eax - WORD $0x0788 // movb %al, (%rdi) - LONG $0x65b60f44; BYTE $0xdc // movzbl $-36(%rbp), %r12d - LONG $0xda7db60f // movzbl $-38(%rbp), %edi - LONG $0x000017e9; BYTE $0x00 // jmp LBB30_26, $23(%rip) - -LBB30_21: - WORD $0x3145; BYTE $0xe4 // xorl %r12d, %r12d - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x894c; BYTE $0xc7 // movq %r8, %rdi - WORD $0x8949; BYTE $0xcf // movq %rcx, %r15 - WORD $0x8548; BYTE $0xdb // testq %rbx, %rbx - LONG $0xffd7850f; WORD $0xffff // jne LBB30_25, $-41(%rip) - -LBB30_24: - WORD $0xff31 // xorl %edi, %edi - -LBB30_26: - LONG $0xc7b60f40 // movzbl %dil, %eax - WORD $0xe0c1; BYTE $0x10 // shll $16, %eax - LONG $0xdeb60f41 // movzbl %r14b, %ebx - WORD $0xe3c1; BYTE $0x08 // shll $8, %ebx - LONG $0xfcb60f41 // movzbl %r12b, %edi - WORD $0xdf09 // orl %ebx, %edi - WORD $0xf809 // orl %edi, %eax - LONG $0xc0c0f025; BYTE $0x00 // andl $12632304, %eax - LONG $0x8080e03d; BYTE $0x00 // cmpl $8421600, %eax - LONG $0x0021850f; WORD $0x0000 // jne LBB30_29, $33(%rip) - WORD $0xf889 // movl %edi, %eax - LONG $0x00200f25; BYTE $0x00 // andl $8207, %eax - LONG $0x00200d3d; BYTE $0x00 // cmpl $8205, %eax - LONG $0x000f840f; WORD $0x0000 // je LBB30_29, $15(%rip) - LONG $0x000003bb; BYTE $0x00 // movl $3, %ebx - WORD $0xc085 // testl %eax, %eax - LONG $0x0023850f; WORD $0x0000 // jne LBB30_34, $35(%rip) - WORD $0x9090 // .p2align 4, 0x90 - -LBB30_29: - LONG $0x1ec4f641 // testb $30, %r12b - LONG $0x0028840f; WORD $0x0000 // je LBB30_31, $40(%rip) - LONG $0xc0e0e781; WORD $0x0000 // andl $49376, %edi - LONG $0x000002bb; BYTE $0x00 // movl $2, %ebx - LONG $0x80c0ff81; WORD $0x0000 // cmpl $32960, %edi - LONG $0x0011850f; WORD $0x0000 // jne LBB30_31, $17(%rip) - -LBB30_34: - WORD $0x0148; BYTE $0xd9 // addq %rbx, %rcx - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0xff1f820f; WORD $0xffff // jb LBB30_4, $-225(%rip) - LONG $0x000035e9; BYTE $0x00 // jmp LBB30_36, $53(%rip) - -LBB30_31: - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - WORD $0x294c; BYTE $0xd0 // subq %r10, %rax - WORD $0x8b48; BYTE $0x3a // movq (%rdx), %rdi - LONG $0x00ff8148; WORD $0x0010; BYTE $0x00 // cmpq $4096, %rdi - LONG $0x0034830f; WORD $0x0000 // jae LBB30_32, $52(%rip) - WORD $0x9848 // cltq - LONG $0x015f8d48 // leaq $1(%rdi), %rbx - WORD $0x8948; BYTE $0x1a // movq %rbx, (%rdx) - LONG $0xfa448948; BYTE $0x08 // movq %rax, $8(%rdx,%rdi,8) - LONG $0x000001bb; BYTE $0x00 // movl $1, %ebx - WORD $0x0148; BYTE $0xd9 // addq %rbx, %rcx - WORD $0x394c; BYTE $0xd9 // cmpq %r11, %rcx - LONG $0xfee5820f; WORD $0xffff // jb LBB30_4, $-283(%rip) - -LBB30_36: - WORD $0x294c; BYTE $0xd1 // subq %r10, %rcx - WORD $0x8948; BYTE $0x0e // movq %rcx, (%rsi) - WORD $0xc031 // xorl %eax, %eax - -LBB30_37: - LONG $0x08c48348 // addq $8, %rsp - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB30_32: - WORD $0x8948; BYTE $0x06 // movq %rax, (%rsi) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xffffe4e9; BYTE $0xff // jmp LBB30_37, $-28(%rip) - -LBB30_17: - WORD $0x8948; BYTE $0x3e // movq %rdi, (%rsi) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xffffd5e9; BYTE $0xff // jmp LBB30_37, $-43(%rip) - QUAD $0x0000000000000000; QUAD $0x0000000000000000; LONG $0x00000000; WORD $0x0000 // .p2align 5, 0x00 - -LCPI31_0: - QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - -LCPI31_1: - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x80 // .byte 128 - BYTE $0x80 // .byte 128 - BYTE $0x80 // .byte 128 - BYTE $0x80 // .byte 128 - BYTE $0x21 // .byte 33 - BYTE $0x01 // .byte 1 - BYTE $0x15 // .byte 21 - BYTE $0x49 // .byte 73 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x02 // .byte 2 - BYTE $0x80 // .byte 128 - BYTE $0x80 // .byte 128 - BYTE $0x80 // .byte 128 - BYTE $0x80 // .byte 128 - BYTE $0x21 // .byte 33 - BYTE $0x01 // .byte 1 - BYTE $0x15 // .byte 21 - BYTE $0x49 // .byte 73 - -LCPI31_2: - BYTE $0xe7 // .byte 231 - BYTE $0xa3 // .byte 163 - BYTE $0x83 // .byte 131 - BYTE $0x83 // .byte 131 - BYTE $0x8b // .byte 139 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xdb // .byte 219 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xe7 // .byte 231 - BYTE $0xa3 // .byte 163 - BYTE $0x83 // .byte 131 - BYTE $0x83 // .byte 131 - BYTE $0x8b // .byte 139 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - BYTE $0xdb // .byte 219 - BYTE $0xcb // .byte 203 - BYTE $0xcb // .byte 203 - -LCPI31_3: - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0xe6 // .byte 230 - BYTE $0xae // .byte 174 - BYTE $0xba // .byte 186 - BYTE $0xba // .byte 186 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0xe6 // .byte 230 - BYTE $0xae // .byte 174 - BYTE $0xba // .byte 186 - BYTE $0xba // .byte 186 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - BYTE $0x01 // .byte 1 - -LCPI31_4: - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - -LCPI31_5: - QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' - QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' - -LCPI31_7: - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xff // .byte 255 - BYTE $0xef // .byte 239 - BYTE $0xdf // .byte 223 - BYTE $0xbf // .byte 191 - -LCPI31_8: - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 3, 0x00 -LCPI31_6: - QUAD $0x8080808080808080 // .quad -9187201950435737472 - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -_validate_utf8_fast: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - LONG $0xe0e48348 // andq $-32, %rsp - LONG $0x80ec8148; WORD $0x0000; BYTE $0x00 // subq $128, %rsp - LONG $0x08478b48 // movq $8(%rdi), %rax - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x079d840f; WORD $0x0000 // je LBB31_69, $1949(%rip) - WORD $0x8b4c; BYTE $0x07 // movq (%rdi), %r8 - LONG $0x00348d4d // leaq (%r8,%rax), %r14 - LONG $0x807e8d49 // leaq $-128(%r14), %rdi - LONG $0xc9eff1c5 // vpxor %xmm1, %xmm1, %xmm1 - LONG $0xd2efe9c5 // vpxor %xmm2, %xmm2, %xmm2 - LONG $0xc0eff9c5 // vpxor %xmm0, %xmm0, %xmm0 - WORD $0x894c; BYTE $0xc6 // movq %r8, %rsi - WORD $0x394c; BYTE $0xc7 // cmpq %r8, %rdi - LONG $0x0373860f; WORD $0x0000 // jbe LBB31_12, $883(%rip) - QUAD $0xfffffea6256ffdc5 // vmovdqa $-346(%rip), %ymm4 /* LCPI31_0(%rip) */ - QUAD $0xfffffede356ffdc5 // vmovdqa $-290(%rip), %ymm6 /* LCPI31_2(%rip) */ - QUAD $0xfffffef63d6ffdc5 // vmovdqa $-266(%rip), %ymm7 /* LCPI31_3(%rip) */ - QUAD $0xffffff0e056f7dc5 // vmovdqa $-242(%rip), %ymm8 /* LCPI31_4(%rip) */ - QUAD $0xffffff260d6f7dc5 // vmovdqa $-218(%rip), %ymm9 /* LCPI31_5(%rip) */ - QUAD $0xffffff3e156f7dc5 // vmovdqa $-194(%rip), %ymm10 /* LCPI31_7(%rip) */ - WORD $0x894c; BYTE $0xc6 // movq %r8, %rsi - LONG $0xc0eff9c5 // vpxor %xmm0, %xmm0, %xmm0 - LONG $0xd2efe9c5 // vpxor %xmm2, %xmm2, %xmm2 - LONG $0xc9eff1c5 // vpxor %xmm1, %xmm1, %xmm1 - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB31_3: - LONG $0x3e6f7ec5 // vmovdqu (%rsi), %ymm15 - LONG $0x6e6f7ec5; BYTE $0x20 // vmovdqu $32(%rsi), %ymm13 - LONG $0x666f7ec5; BYTE $0x40 // vmovdqu $64(%rsi), %ymm12 - LONG $0x5e6f7ec5; BYTE $0x60 // vmovdqu $96(%rsi), %ymm11 - LONG $0xeb15c1c4; BYTE $0xdf // vpor %ymm15, %ymm13, %ymm3 - LONG $0xeb2541c4; BYTE $0xf4 // vpor %ymm12, %ymm11, %ymm14 - LONG $0xebeb8dc5 // vpor %ymm3, %ymm14, %ymm5 - LONG $0xcdd7fdc5 // vpmovmskb %ymm5, %ecx - WORD $0xc985 // testl %ecx, %ecx - LONG $0x0016850f; WORD $0x0000 // jne LBB31_6, $22(%rip) - LONG $0xc0ebf5c5 // vpor %ymm0, %ymm1, %ymm0 - -LBB31_5: - LONG $0x80ee8348 // subq $-128, %rsi - WORD $0x3948; BYTE $0xfe // cmpq %rdi, %rsi - LONG $0xffc2820f; WORD $0xffff // jb LBB31_3, $-62(%rip) - LONG $0x0002e2e9; BYTE $0x00 // jmp LBB31_12, $738(%rip) - -LBB31_6: - LONG $0xcbd7fdc5 // vpmovmskb %ymm3, %ecx - WORD $0xc985 // testl %ecx, %ecx - LONG $0x00f0850f; WORD $0x0000 // jne LBB31_9, $240(%rip) - LONG $0xc0ebf5c5 // vpor %ymm0, %ymm1, %ymm0 - LONG $0x466dc3c4; WORD $0x21cc // vperm2i128 $33, %ymm12, %ymm2, %ymm1 - LONG $0x0f1de3c4; WORD $0x0fd1 // vpalignr $15, %ymm1, %ymm12, %ymm2 - LONG $0xd271e5c5; BYTE $0x04 // vpsrlw $4, %ymm2, %ymm3 - LONG $0xdcdbe5c5 // vpand %ymm4, %ymm3, %ymm3 - QUAD $0xfffffe10356f7dc5 // vmovdqa $-496(%rip), %ymm14 /* LCPI31_1(%rip) */ - LONG $0x000de2c4; BYTE $0xdb // vpshufb %ymm3, %ymm14, %ymm3 - LONG $0xd4dbedc5 // vpand %ymm4, %ymm2, %ymm2 - LONG $0x004de2c4; BYTE $0xd2 // vpshufb %ymm2, %ymm6, %ymm2 - LONG $0x7155c1c4; WORD $0x04d4 // vpsrlw $4, %ymm12, %ymm5 - LONG $0xecdbd5c5 // vpand %ymm4, %ymm5, %ymm5 - LONG $0x0045e2c4; BYTE $0xed // vpshufb %ymm5, %ymm7, %ymm5 - LONG $0xd5dbedc5 // vpand %ymm5, %ymm2, %ymm2 - LONG $0xd2dbe5c5 // vpand %ymm2, %ymm3, %ymm2 - LONG $0x0f1de3c4; WORD $0x0ed9 // vpalignr $14, %ymm1, %ymm12, %ymm3 - LONG $0x0f1de3c4; WORD $0x0dc9 // vpalignr $13, %ymm1, %ymm12, %ymm1 - LONG $0xd865c1c4; BYTE $0xd8 // vpsubusb %ymm8, %ymm3, %ymm3 - LONG $0xd875c1c4; BYTE $0xc9 // vpsubusb %ymm9, %ymm1, %ymm1 - LONG $0xcbebf5c5 // vpor %ymm3, %ymm1, %ymm1 - LONG $0xef1141c4; BYTE $0xed // vpxor %xmm13, %xmm13, %xmm13 - LONG $0xc97495c5 // vpcmpeqb %ymm1, %ymm13, %ymm1 - QUAD $0xfffe9f1d597de2c4; BYTE $0xff // vpbroadcastq $-353(%rip), %ymm3 /* LCPI31_6(%rip) */ - LONG $0xcbdff5c5 // vpandn %ymm3, %ymm1, %ymm1 - LONG $0xcaeff5c5 // vpxor %ymm2, %ymm1, %ymm1 - LONG $0xc1ebfdc5 // vpor %ymm1, %ymm0, %ymm0 - LONG $0x461dc3c4; WORD $0x21cb // vperm2i128 $33, %ymm11, %ymm12, %ymm1 - LONG $0x0f25e3c4; WORD $0x0fd1 // vpalignr $15, %ymm1, %ymm11, %ymm2 - LONG $0xd271d5c5; BYTE $0x04 // vpsrlw $4, %ymm2, %ymm5 - LONG $0xecdbd5c5 // vpand %ymm4, %ymm5, %ymm5 - LONG $0x000de2c4; BYTE $0xed // vpshufb %ymm5, %ymm14, %ymm5 - LONG $0xd4dbedc5 // vpand %ymm4, %ymm2, %ymm2 - LONG $0x004de2c4; BYTE $0xd2 // vpshufb %ymm2, %ymm6, %ymm2 - LONG $0x711dc1c4; WORD $0x04d3 // vpsrlw $4, %ymm11, %ymm12 - LONG $0xe4db1dc5 // vpand %ymm4, %ymm12, %ymm12 - LONG $0x004542c4; BYTE $0xe4 // vpshufb %ymm12, %ymm7, %ymm12 - LONG $0xd2db9dc5 // vpand %ymm2, %ymm12, %ymm2 - LONG $0xd2dbd5c5 // vpand %ymm2, %ymm5, %ymm2 - LONG $0x0f25e3c4; WORD $0x0ee9 // vpalignr $14, %ymm1, %ymm11, %ymm5 - LONG $0x0f25e3c4; WORD $0x0dc9 // vpalignr $13, %ymm1, %ymm11, %ymm1 - LONG $0xd855c1c4; BYTE $0xe8 // vpsubusb %ymm8, %ymm5, %ymm5 - LONG $0xd875c1c4; BYTE $0xc9 // vpsubusb %ymm9, %ymm1, %ymm1 - LONG $0xcdebf5c5 // vpor %ymm5, %ymm1, %ymm1 - LONG $0xc97495c5 // vpcmpeqb %ymm1, %ymm13, %ymm1 - LONG $0xcbdff5c5 // vpandn %ymm3, %ymm1, %ymm1 - LONG $0xcaeff5c5 // vpxor %ymm2, %ymm1, %ymm1 - -LBB31_8: - LONG $0xc1ebfdc5 // vpor %ymm1, %ymm0, %ymm0 - LONG $0xd825c1c4; BYTE $0xca // vpsubusb %ymm10, %ymm11, %ymm1 - LONG $0xda7f7dc5 // vmovdqa %ymm11, %ymm2 - LONG $0xfffef2e9; BYTE $0xff // jmp LBB31_5, $-270(%rip) - -LBB31_9: - LONG $0x466dc3c4; WORD $0x21cf // vperm2i128 $33, %ymm15, %ymm2, %ymm1 - LONG $0x0f05e3c4; WORD $0x0fd1 // vpalignr $15, %ymm1, %ymm15, %ymm2 - LONG $0xd271e5c5; BYTE $0x04 // vpsrlw $4, %ymm2, %ymm3 - LONG $0xdcdbe5c5 // vpand %ymm4, %ymm3, %ymm3 - QUAD $0xfffffd242d6ffdc5 // vmovdqa $-732(%rip), %ymm5 /* LCPI31_1(%rip) */ - LONG $0x0055e2c4; BYTE $0xdb // vpshufb %ymm3, %ymm5, %ymm3 - LONG $0xd4dbedc5 // vpand %ymm4, %ymm2, %ymm2 - LONG $0x004de2c4; BYTE $0xd2 // vpshufb %ymm2, %ymm6, %ymm2 - LONG $0x7155c1c4; WORD $0x04d7 // vpsrlw $4, %ymm15, %ymm5 - LONG $0xecdbd5c5 // vpand %ymm4, %ymm5, %ymm5 - LONG $0x0045e2c4; BYTE $0xed // vpshufb %ymm5, %ymm7, %ymm5 - LONG $0xd5dbedc5 // vpand %ymm5, %ymm2, %ymm2 - LONG $0xd2dbe5c5 // vpand %ymm2, %ymm3, %ymm2 - LONG $0x0f05e3c4; WORD $0x0ed9 // vpalignr $14, %ymm1, %ymm15, %ymm3 - LONG $0x0f05e3c4; WORD $0x0dc9 // vpalignr $13, %ymm1, %ymm15, %ymm1 - LONG $0xd865c1c4; BYTE $0xd8 // vpsubusb %ymm8, %ymm3, %ymm3 - LONG $0xd875c1c4; BYTE $0xc9 // vpsubusb %ymm9, %ymm1, %ymm1 - LONG $0xcbebf5c5 // vpor %ymm3, %ymm1, %ymm1 - LONG $0xdbefe1c5 // vpxor %xmm3, %xmm3, %xmm3 - LONG $0xdb74f5c5 // vpcmpeqb %ymm3, %ymm1, %ymm3 - QUAD $0xfffdb40d597de2c4; BYTE $0xff // vpbroadcastq $-588(%rip), %ymm1 /* LCPI31_6(%rip) */ - LONG $0xd9dfe5c5 // vpandn %ymm1, %ymm3, %ymm3 - LONG $0xd2efe5c5 // vpxor %ymm2, %ymm3, %ymm2 - LONG $0x547ffdc5; WORD $0x6024 // vmovdqa %ymm2, $96(%rsp) - LONG $0x4605c3c4; WORD $0x21dd // vperm2i128 $33, %ymm13, %ymm15, %ymm3 - LONG $0x0f15e3c4; WORD $0x0feb // vpalignr $15, %ymm3, %ymm13, %ymm5 - LONG $0xd57185c5; BYTE $0x04 // vpsrlw $4, %ymm5, %ymm15 - LONG $0xfcdb05c5 // vpand %ymm4, %ymm15, %ymm15 - QUAD $0xfffffca9156ffdc5 // vmovdqa $-855(%rip), %ymm2 /* LCPI31_1(%rip) */ - LONG $0x006d42c4; BYTE $0xff // vpshufb %ymm15, %ymm2, %ymm15 - LONG $0xecdbd5c5 // vpand %ymm4, %ymm5, %ymm5 - LONG $0x004de2c4; BYTE $0xed // vpshufb %ymm5, %ymm6, %ymm5 - LONG $0x716dc1c4; WORD $0x04d5 // vpsrlw $4, %ymm13, %ymm2 - LONG $0xd4dbedc5 // vpand %ymm4, %ymm2, %ymm2 - LONG $0x0045e2c4; BYTE $0xd2 // vpshufb %ymm2, %ymm7, %ymm2 - LONG $0xd2dbd5c5 // vpand %ymm2, %ymm5, %ymm2 - LONG $0xd2db85c5 // vpand %ymm2, %ymm15, %ymm2 - LONG $0x0f15e3c4; WORD $0x0eeb // vpalignr $14, %ymm3, %ymm13, %ymm5 - LONG $0x0f15e3c4; WORD $0x0ddb // vpalignr $13, %ymm3, %ymm13, %ymm3 - LONG $0xd855c1c4; BYTE $0xe8 // vpsubusb %ymm8, %ymm5, %ymm5 - LONG $0xd865c1c4; BYTE $0xd9 // vpsubusb %ymm9, %ymm3, %ymm3 - LONG $0xddebe5c5 // vpor %ymm5, %ymm3, %ymm3 - QUAD $0xfffffd221d74e5c5 // vpcmpeqb $-734(%rip), %ymm3, %ymm3 /* LCPI31_8(%rip) */ - LONG $0xd9dfe5c5 // vpandn %ymm1, %ymm3, %ymm3 - LONG $0xd2efe5c5 // vpxor %ymm2, %ymm3, %ymm2 - LONG $0x44ebfdc5; WORD $0x6024 // vpor $96(%rsp), %ymm0, %ymm0 - LONG $0xc2ebfdc5 // vpor %ymm2, %ymm0, %ymm0 - LONG $0xd77dc1c4; BYTE $0xce // vpmovmskb %ymm14, %ecx - WORD $0xc985 // testl %ecx, %ecx - LONG $0x00d6840f; WORD $0x0000 // je LBB31_11, $214(%rip) - LONG $0x4615c3c4; WORD $0x21d4 // vperm2i128 $33, %ymm12, %ymm13, %ymm2 - LONG $0x0f1de3c4; WORD $0x0fda // vpalignr $15, %ymm2, %ymm12, %ymm3 - LONG $0xd371d5c5; BYTE $0x04 // vpsrlw $4, %ymm3, %ymm5 - LONG $0xecdbd5c5 // vpand %ymm4, %ymm5, %ymm5 - QUAD $0xfffffc263d6f7dc5 // vmovdqa $-986(%rip), %ymm15 /* LCPI31_1(%rip) */ - LONG $0x0005e2c4; BYTE $0xed // vpshufb %ymm5, %ymm15, %ymm5 - LONG $0xdcdbe5c5 // vpand %ymm4, %ymm3, %ymm3 - LONG $0x004de2c4; BYTE $0xdb // vpshufb %ymm3, %ymm6, %ymm3 - LONG $0x7115c1c4; WORD $0x04d4 // vpsrlw $4, %ymm12, %ymm13 - LONG $0xecdb15c5 // vpand %ymm4, %ymm13, %ymm13 - LONG $0x004542c4; BYTE $0xed // vpshufb %ymm13, %ymm7, %ymm13 - LONG $0xdbdb95c5 // vpand %ymm3, %ymm13, %ymm3 - LONG $0xdbdbd5c5 // vpand %ymm3, %ymm5, %ymm3 - LONG $0x0f1de3c4; WORD $0x0eea // vpalignr $14, %ymm2, %ymm12, %ymm5 - LONG $0x0f1de3c4; WORD $0x0dd2 // vpalignr $13, %ymm2, %ymm12, %ymm2 - LONG $0xd855c1c4; BYTE $0xe8 // vpsubusb %ymm8, %ymm5, %ymm5 - LONG $0xd86dc1c4; BYTE $0xd1 // vpsubusb %ymm9, %ymm2, %ymm2 - LONG $0xd5ebedc5 // vpor %ymm5, %ymm2, %ymm2 - LONG $0xef0941c4; BYTE $0xf6 // vpxor %xmm14, %xmm14, %xmm14 - LONG $0xd2748dc5 // vpcmpeqb %ymm2, %ymm14, %ymm2 - LONG $0xd1dfedc5 // vpandn %ymm1, %ymm2, %ymm2 - LONG $0xd3efedc5 // vpxor %ymm3, %ymm2, %ymm2 - LONG $0x461dc3c4; WORD $0x21db // vperm2i128 $33, %ymm11, %ymm12, %ymm3 - LONG $0x0f25e3c4; WORD $0x0feb // vpalignr $15, %ymm3, %ymm11, %ymm5 - LONG $0xd5719dc5; BYTE $0x04 // vpsrlw $4, %ymm5, %ymm12 - LONG $0xe4db1dc5 // vpand %ymm4, %ymm12, %ymm12 - LONG $0x000542c4; BYTE $0xe4 // vpshufb %ymm12, %ymm15, %ymm12 - LONG $0xecdbd5c5 // vpand %ymm4, %ymm5, %ymm5 - LONG $0x004de2c4; BYTE $0xed // vpshufb %ymm5, %ymm6, %ymm5 - LONG $0x7115c1c4; WORD $0x04d3 // vpsrlw $4, %ymm11, %ymm13 - LONG $0xecdb15c5 // vpand %ymm4, %ymm13, %ymm13 - LONG $0x004542c4; BYTE $0xed // vpshufb %ymm13, %ymm7, %ymm13 - LONG $0xeddb95c5 // vpand %ymm5, %ymm13, %ymm5 - LONG $0xeddb9dc5 // vpand %ymm5, %ymm12, %ymm5 - LONG $0x0f2563c4; WORD $0x0ee3 // vpalignr $14, %ymm3, %ymm11, %ymm12 - LONG $0x0f25e3c4; WORD $0x0ddb // vpalignr $13, %ymm3, %ymm11, %ymm3 - LONG $0xd81d41c4; BYTE $0xe0 // vpsubusb %ymm8, %ymm12, %ymm12 - LONG $0xd865c1c4; BYTE $0xd9 // vpsubusb %ymm9, %ymm3, %ymm3 - LONG $0xdbeb9dc5 // vpor %ymm3, %ymm12, %ymm3 - LONG $0xdb748dc5 // vpcmpeqb %ymm3, %ymm14, %ymm3 - LONG $0xc9dfe5c5 // vpandn %ymm1, %ymm3, %ymm1 - LONG $0xcdeff5c5 // vpxor %ymm5, %ymm1, %ymm1 - LONG $0xc0ebedc5 // vpor %ymm0, %ymm2, %ymm0 - LONG $0xfffe1ae9; BYTE $0xff // jmp LBB31_8, $-486(%rip) - -LBB31_11: - LONG $0xd815c1c4; BYTE $0xca // vpsubusb %ymm10, %ymm13, %ymm1 - LONG $0xc1ebfdc5 // vpor %ymm1, %ymm0, %ymm0 - LONG $0xea7f7dc5 // vmovdqa %ymm13, %ymm2 - LONG $0xfffd0ce9; BYTE $0xff // jmp LBB31_5, $-756(%rip) - -LBB31_12: - LONG $0xc07e8d49 // leaq $-64(%r14), %rdi - WORD $0x3948; BYTE $0xfe // cmpq %rdi, %rsi - LONG $0x0159830f; WORD $0x0000 // jae LBB31_17, $345(%rip) - QUAD $0xfffffb261d6ffdc5 // vmovdqa $-1242(%rip), %ymm3 /* LCPI31_0(%rip) */ - QUAD $0xfffffb3e256ffdc5 // vmovdqa $-1218(%rip), %ymm4 /* LCPI31_1(%rip) */ - QUAD $0xfffffb562d6ffdc5 // vmovdqa $-1194(%rip), %ymm5 /* LCPI31_2(%rip) */ - QUAD $0xfffffb6e356ffdc5 // vmovdqa $-1170(%rip), %ymm6 /* LCPI31_3(%rip) */ - QUAD $0xfffffb863d6ffdc5 // vmovdqa $-1146(%rip), %ymm7 /* LCPI31_4(%rip) */ - QUAD $0xfffffb9e056f7dc5 // vmovdqa $-1122(%rip), %ymm8 /* LCPI31_5(%rip) */ - LONG $0xef3141c4; BYTE $0xc9 // vpxor %xmm9, %xmm9, %xmm9 - QUAD $0xfffffbb1156f7dc5 // vmovdqa $-1103(%rip), %ymm10 /* LCPI31_7(%rip) */ - BYTE $0x90 // .p2align 4, 0x90 - -LBB31_14: - LONG $0x266f7ec5 // vmovdqu (%rsi), %ymm12 - LONG $0x5e6f7ec5; BYTE $0x20 // vmovdqu $32(%rsi), %ymm11 - LONG $0xeb2541c4; BYTE $0xec // vpor %ymm12, %ymm11, %ymm13 - LONG $0xd77dc1c4; BYTE $0xcd // vpmovmskb %ymm13, %ecx - WORD $0xc985 // testl %ecx, %ecx - LONG $0x0016850f; WORD $0x0000 // jne LBB31_16, $22(%rip) - LONG $0xc0ebf5c5 // vpor %ymm0, %ymm1, %ymm0 - LONG $0x40c68348 // addq $64, %rsi - WORD $0x3948; BYTE $0xfe // cmpq %rdi, %rsi - LONG $0xffd4820f; WORD $0xffff // jb LBB31_14, $-44(%rip) - LONG $0x0000eae9; BYTE $0x00 // jmp LBB31_17, $234(%rip) - -LBB31_16: - LONG $0x466dc3c4; WORD $0x21cc // vperm2i128 $33, %ymm12, %ymm2, %ymm1 - LONG $0x0f1de3c4; WORD $0x0fd1 // vpalignr $15, %ymm1, %ymm12, %ymm2 - LONG $0xd27195c5; BYTE $0x04 // vpsrlw $4, %ymm2, %ymm13 - LONG $0xebdb15c5 // vpand %ymm3, %ymm13, %ymm13 - LONG $0x005d42c4; BYTE $0xed // vpshufb %ymm13, %ymm4, %ymm13 - LONG $0xd3dbedc5 // vpand %ymm3, %ymm2, %ymm2 - LONG $0x0055e2c4; BYTE $0xd2 // vpshufb %ymm2, %ymm5, %ymm2 - LONG $0x710dc1c4; WORD $0x04d4 // vpsrlw $4, %ymm12, %ymm14 - LONG $0xf3db0dc5 // vpand %ymm3, %ymm14, %ymm14 - LONG $0x004d42c4; BYTE $0xf6 // vpshufb %ymm14, %ymm6, %ymm14 - LONG $0xd2db8dc5 // vpand %ymm2, %ymm14, %ymm2 - LONG $0xd2db95c5 // vpand %ymm2, %ymm13, %ymm2 - LONG $0x0f1d63c4; WORD $0x0ee9 // vpalignr $14, %ymm1, %ymm12, %ymm13 - LONG $0x0f1de3c4; WORD $0x0dc9 // vpalignr $13, %ymm1, %ymm12, %ymm1 - LONG $0xefd815c5 // vpsubusb %ymm7, %ymm13, %ymm13 - LONG $0xd875c1c4; BYTE $0xc8 // vpsubusb %ymm8, %ymm1, %ymm1 - LONG $0xc9eb95c5 // vpor %ymm1, %ymm13, %ymm1 - LONG $0xc974b5c5 // vpcmpeqb %ymm1, %ymm9, %ymm1 - QUAD $0xfffb5f2d597d62c4; BYTE $0xff // vpbroadcastq $-1185(%rip), %ymm13 /* LCPI31_6(%rip) */ - LONG $0xdf75c1c4; BYTE $0xcd // vpandn %ymm13, %ymm1, %ymm1 - LONG $0xcaeff5c5 // vpxor %ymm2, %ymm1, %ymm1 - LONG $0x461dc3c4; WORD $0x21d3 // vperm2i128 $33, %ymm11, %ymm12, %ymm2 - LONG $0x0f2563c4; WORD $0x0fe2 // vpalignr $15, %ymm2, %ymm11, %ymm12 - LONG $0x710dc1c4; WORD $0x04d4 // vpsrlw $4, %ymm12, %ymm14 - LONG $0xf3db0dc5 // vpand %ymm3, %ymm14, %ymm14 - LONG $0x005d42c4; BYTE $0xf6 // vpshufb %ymm14, %ymm4, %ymm14 - LONG $0xe3db1dc5 // vpand %ymm3, %ymm12, %ymm12 - LONG $0x005542c4; BYTE $0xe4 // vpshufb %ymm12, %ymm5, %ymm12 - LONG $0x7105c1c4; WORD $0x04d3 // vpsrlw $4, %ymm11, %ymm15 - LONG $0xfbdb05c5 // vpand %ymm3, %ymm15, %ymm15 - LONG $0x004d42c4; BYTE $0xff // vpshufb %ymm15, %ymm6, %ymm15 - LONG $0xdb1d41c4; BYTE $0xe7 // vpand %ymm15, %ymm12, %ymm12 - LONG $0xdb0d41c4; BYTE $0xe4 // vpand %ymm12, %ymm14, %ymm12 - LONG $0x0f2563c4; WORD $0x0ef2 // vpalignr $14, %ymm2, %ymm11, %ymm14 - LONG $0x0f25e3c4; WORD $0x0dd2 // vpalignr $13, %ymm2, %ymm11, %ymm2 - LONG $0xf7d80dc5 // vpsubusb %ymm7, %ymm14, %ymm14 - LONG $0xd86dc1c4; BYTE $0xd0 // vpsubusb %ymm8, %ymm2, %ymm2 - LONG $0xd2eb8dc5 // vpor %ymm2, %ymm14, %ymm2 - LONG $0xd274b5c5 // vpcmpeqb %ymm2, %ymm9, %ymm2 - LONG $0xdf6dc1c4; BYTE $0xd5 // vpandn %ymm13, %ymm2, %ymm2 - LONG $0xd2ef9dc5 // vpxor %ymm2, %ymm12, %ymm2 - LONG $0xc0ebf5c5 // vpor %ymm0, %ymm1, %ymm0 - LONG $0xc2ebfdc5 // vpor %ymm2, %ymm0, %ymm0 - LONG $0xd825c1c4; BYTE $0xca // vpsubusb %ymm10, %ymm11, %ymm1 - LONG $0xda7f7dc5 // vmovdqa %ymm11, %ymm2 - LONG $0x40c68348 // addq $64, %rsi - WORD $0x3948; BYTE $0xfe // cmpq %rdi, %rsi - LONG $0xfee5820f; WORD $0xffff // jb LBB31_14, $-283(%rip) - -LBB31_17: - LONG $0xdbefe1c5 // vpxor %xmm3, %xmm3, %xmm3 - LONG $0x5c7ffdc5; WORD $0x4024 // vmovdqa %ymm3, $64(%rsp) - LONG $0x5c7ffdc5; WORD $0x2024 // vmovdqa %ymm3, $32(%rsp) - LONG $0xe4efd9c5 // vpxor %xmm4, %xmm4, %xmm4 - WORD $0x394c; BYTE $0xf6 // cmpq %r14, %rsi - LONG $0x0067830f; WORD $0x0000 // jae LBB31_34, $103(%rip) - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x2948; BYTE $0xf1 // subq %rsi, %rcx - LONG $0x08148d4d // leaq (%r8,%rcx), %r10 - LONG $0x80fa8149; WORD $0x0000; BYTE $0x00 // cmpq $128, %r10 - LONG $0x001f820f; WORD $0x0000 // jb LBB31_19, $31(%rip) - LONG $0x24548d48; BYTE $0x20 // leaq $32(%rsp), %rdx - WORD $0x394c; BYTE $0xf2 // cmpq %r14, %rdx - LONG $0x026d830f; WORD $0x0000 // jae LBB31_24, $621(%rip) - LONG $0x0c4c8d48; BYTE $0x20 // leaq $32(%rsp,%rcx), %rcx - WORD $0x014c; BYTE $0xc1 // addq %r8, %rcx - WORD $0x3948; BYTE $0xce // cmpq %rcx, %rsi - LONG $0x025c830f; WORD $0x0000 // jae LBB31_24, $604(%rip) - -LBB31_19: - WORD $0x3145; BYTE $0xdb // xorl %r11d, %r11d - -LBB31_31: - LONG $0x1c4c8d4a; BYTE $0x20 // leaq $32(%rsp,%r11), %rcx - WORD $0x2948; BYTE $0xf0 // subq %rsi, %rax - WORD $0x014c; BYTE $0xc0 // addq %r8, %rax - WORD $0xd231 // xorl %edx, %edx - WORD $0x9090 // .p2align 4, 0x90 - -LBB31_32: - LONG $0x161cb60f // movzbl (%rsi,%rdx), %ebx - WORD $0x1c88; BYTE $0x11 // movb %bl, (%rcx,%rdx) - WORD $0xff48; BYTE $0xc2 // incq %rdx - WORD $0x3948; BYTE $0xd0 // cmpq %rdx, %rax - LONG $0xffed850f; WORD $0xffff // jne LBB31_32, $-19(%rip) - -LBB31_33: - LONG $0x646ffdc5; WORD $0x2024 // vmovdqa $32(%rsp), %ymm4 - LONG $0x5c6ffdc5; WORD $0x4024 // vmovdqa $64(%rsp), %ymm3 - -LBB31_34: - LONG $0xebebddc5 // vpor %ymm3, %ymm4, %ymm5 - LONG $0xc5d7fdc5 // vpmovmskb %ymm5, %eax - WORD $0xc085 // testl %eax, %eax - LONG $0x033a850f; WORD $0x0000 // jne LBB31_38, $826(%rip) - LONG $0xc1ebfdc5 // vpor %ymm1, %ymm0, %ymm0 - LONG $0xc1ebfdc5 // vpor %ymm1, %ymm0, %ymm0 - LONG $0x177de2c4; BYTE $0xc0 // vptest %ymm0, %ymm0 - LONG $0x01fa840f; WORD $0x0000 // je LBB31_69, $506(%rip) - -LBB31_39: - LONG $0xfd4e8d49 // leaq $-3(%r14), %rcx - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - WORD $0x3949; BYTE $0xc8 // cmpq %rcx, %r8 - LONG $0x00da830f; WORD $0x0000 // jae LBB31_53, $218(%rip) - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - LONG $0x000012e9; BYTE $0x00 // jmp LBB31_42, $18(%rip) - LONG $0x90909090; WORD $0x9090 // .p2align 4, 0x90 - -LBB31_41: - WORD $0x0148; BYTE $0xd0 // addq %rdx, %rax - WORD $0x3948; BYTE $0xc8 // cmpq %rcx, %rax - LONG $0x00c0830f; WORD $0x0000 // jae LBB31_53, $192(%rip) - -LBB31_42: - LONG $0x000001ba; BYTE $0x00 // movl $1, %edx - WORD $0x3880; BYTE $0x00 // cmpb $0, (%rax) - LONG $0xffe6890f; WORD $0xffff // jns LBB31_41, $-26(%rip) - WORD $0x308b // movl (%rax), %esi - WORD $0xf289 // movl %esi, %edx - LONG $0xc0f0e281; WORD $0x00c0 // andl $12632304, %edx - LONG $0x80e0fa81; WORD $0x0080 // cmpl $8421600, %edx - LONG $0x0030850f; WORD $0x0000 // jne LBB31_46, $48(%rip) - WORD $0xf789 // movl %esi, %edi - LONG $0x200fe781; WORD $0x0000 // andl $8207, %edi - LONG $0x200dff81; WORD $0x0000 // cmpl $8205, %edi - LONG $0x001c840f; WORD $0x0000 // je LBB31_46, $28(%rip) - LONG $0x000003ba; BYTE $0x00 // movl $3, %edx - WORD $0xff85 // testl %edi, %edi - LONG $0xffaf850f; WORD $0xffff // jne LBB31_41, $-81(%rip) - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB31_46: - WORD $0xf289 // movl %esi, %edx - LONG $0xc0e0e281; WORD $0x0000 // andl $49376, %edx - LONG $0x80c0fa81; WORD $0x0000 // cmpl $32960, %edx - LONG $0x0010850f; WORD $0x0000 // jne LBB31_48, $16(%rip) - WORD $0xf789 // movl %esi, %edi - LONG $0x000002ba; BYTE $0x00 // movl $2, %edx - WORD $0xe783; BYTE $0x1e // andl $30, %edi - LONG $0xff7c850f; WORD $0xffff // jne LBB31_41, $-132(%rip) - -LBB31_48: - WORD $0xf289 // movl %esi, %edx - LONG $0xc0f8e281; WORD $0xc0c0 // andl $-1061109512, %edx - LONG $0x80f0fa81; WORD $0x8080 // cmpl $-2139062032, %edx - LONG $0x0029850f; WORD $0x0000 // jne LBB31_52, $41(%rip) - WORD $0xf289 // movl %esi, %edx - LONG $0x3007e281; WORD $0x0000 // andl $12295, %edx - LONG $0x001b840f; WORD $0x0000 // je LBB31_52, $27(%rip) - LONG $0x000004ba; BYTE $0x00 // movl $4, %edx - LONG $0x04c6f640 // testb $4, %sil - LONG $0xff4b840f; WORD $0xffff // je LBB31_41, $-181(%rip) - LONG $0x3003e681; WORD $0x0000 // andl $12291, %esi - LONG $0xff3f840f; WORD $0xffff // je LBB31_41, $-193(%rip) - -LBB31_52: - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x014c; BYTE $0xc0 // addq %r8, %rax - LONG $0x000112e9; BYTE $0x00 // jmp LBB31_70, $274(%rip) - -LBB31_53: - WORD $0x394c; BYTE $0xf0 // cmpq %r14, %rax - LONG $0x0107830f; WORD $0x0000 // jae LBB31_69, $263(%rip) - LONG $0x244c8d4c; BYTE $0x20 // leaq $32(%rsp), %r9 - LONG $0x24548d4c; BYTE $0x1e // leaq $30(%rsp), %r10 - LONG $0x000018e9; BYTE $0x00 // jmp LBB31_56, $24(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB31_55: - WORD $0xff48; BYTE $0xc0 // incq %rax - WORD $0x394c; BYTE $0xf0 // cmpq %r14, %rax - LONG $0x00e0830f; WORD $0x0000 // jae LBB31_69, $224(%rip) - -LBB31_56: - WORD $0x3880; BYTE $0x00 // cmpb $0, (%rax) - LONG $0xffeb890f; WORD $0xffff // jns LBB31_55, $-21(%rip) - LONG $0x202444c6; BYTE $0x00 // movb $0, $32(%rsp) - LONG $0x1e2444c6; BYTE $0x00 // movb $0, $30(%rsp) - WORD $0x894c; BYTE $0xf2 // movq %r14, %rdx - WORD $0x2948; BYTE $0xc2 // subq %rax, %rdx - LONG $0x02fa8348 // cmpq $2, %rdx - LONG $0x0033820f; WORD $0x0000 // jb LBB31_60, $51(%rip) - WORD $0xb60f; BYTE $0x08 // movzbl (%rax), %ecx - LONG $0x0170b60f // movzbl $1(%rax), %esi - LONG $0x20244c88 // movb %cl, $32(%rsp) - LONG $0x02788d48 // leaq $2(%rax), %rdi - LONG $0xfec28348 // addq $-2, %rdx - WORD $0x894c; BYTE $0xd3 // movq %r10, %rbx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0027840f; WORD $0x0000 // je LBB31_61, $39(%rip) - -LBB31_59: - WORD $0xb60f; BYTE $0x0f // movzbl (%rdi), %ecx - WORD $0x0b88 // movb %cl, (%rbx) - LONG $0x244cb60f; BYTE $0x20 // movzbl $32(%rsp), %ecx - LONG $0x2454b60f; BYTE $0x1e // movzbl $30(%rsp), %edx - LONG $0x000015e9; BYTE $0x00 // jmp LBB31_62, $21(%rip) - -LBB31_60: - WORD $0xc931 // xorl %ecx, %ecx - WORD $0xf631 // xorl %esi, %esi - WORD $0x894c; BYTE $0xcb // movq %r9, %rbx - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xffd9850f; WORD $0xffff // jne LBB31_59, $-39(%rip) - -LBB31_61: - WORD $0xd231 // xorl %edx, %edx - -LBB31_62: - WORD $0xb60f; BYTE $0xfa // movzbl %dl, %edi - WORD $0xe7c1; BYTE $0x10 // shll $16, %edi - LONG $0xf6b60f40 // movzbl %sil, %esi - WORD $0xe6c1; BYTE $0x08 // shll $8, %esi - WORD $0xb60f; BYTE $0xd1 // movzbl %cl, %edx - WORD $0xf209 // orl %esi, %edx - WORD $0xd709 // orl %edx, %edi - LONG $0xc0f0e781; WORD $0x00c0 // andl $12632304, %edi - LONG $0x80e0ff81; WORD $0x0080 // cmpl $8421600, %edi - LONG $0x0023850f; WORD $0x0000 // jne LBB31_65, $35(%rip) - WORD $0xd789 // movl %edx, %edi - LONG $0x200fe781; WORD $0x0000 // andl $8207, %edi - LONG $0x200dff81; WORD $0x0000 // cmpl $8205, %edi - LONG $0x000f840f; WORD $0x0000 // je LBB31_65, $15(%rip) - LONG $0x000003be; BYTE $0x00 // movl $3, %esi - WORD $0xff85 // testl %edi, %edi - LONG $0x0022850f; WORD $0x0000 // jne LBB31_67, $34(%rip) - WORD $0x9090 // .p2align 4, 0x90 - -LBB31_65: - WORD $0xc1f6; BYTE $0x1e // testb $30, %cl - LONG $0xff08840f; WORD $0xffff // je LBB31_52, $-248(%rip) - LONG $0xc0e0e281; WORD $0x0000 // andl $49376, %edx - LONG $0x000002be; BYTE $0x00 // movl $2, %esi - LONG $0x80c0fa81; WORD $0x0000 // cmpl $32960, %edx - LONG $0xfef1850f; WORD $0xffff // jne LBB31_52, $-271(%rip) - -LBB31_67: - WORD $0x0148; BYTE $0xf0 // addq %rsi, %rax - WORD $0x394c; BYTE $0xf0 // cmpq %r14, %rax - LONG $0xff20820f; WORD $0xffff // jb LBB31_56, $-224(%rip) - -LBB31_69: - WORD $0xc031 // xorl %eax, %eax - -LBB31_70: - LONG $0xf0658d48 // leaq $-16(%rbp), %rsp - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB31_24: - WORD $0x894d; BYTE $0xd3 // movq %r10, %r11 - LONG $0x80e38349 // andq $-128, %r11 - LONG $0x804b8d49 // leaq $-128(%r11), %rcx - WORD $0x8949; BYTE $0xc9 // movq %rcx, %r9 - LONG $0x07e9c149 // shrq $7, %r9 - WORD $0xff49; BYTE $0xc1 // incq %r9 - WORD $0x8548; BYTE $0xc9 // testq %rcx, %rcx - LONG $0x00f0840f; WORD $0x0000 // je LBB31_37, $240(%rip) - WORD $0x894c; BYTE $0xcf // movq %r9, %rdi - LONG $0xfee78348 // andq $-2, %rdi - WORD $0xf748; BYTE $0xdf // negq %rdi - WORD $0xc931 // xorl %ecx, %ecx - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB31_26: - LONG $0x1c10fcc5; BYTE $0x0e // vmovups (%rsi,%rcx), %ymm3 - LONG $0x6410fcc5; WORD $0x200e // vmovups $32(%rsi,%rcx), %ymm4 - LONG $0x6c10fcc5; WORD $0x400e // vmovups $64(%rsi,%rcx), %ymm5 - LONG $0x7410fcc5; WORD $0x600e // vmovups $96(%rsi,%rcx), %ymm6 - LONG $0x5c11fcc5; WORD $0x200c // vmovups %ymm3, $32(%rsp,%rcx) - LONG $0x6411fcc5; WORD $0x400c // vmovups %ymm4, $64(%rsp,%rcx) - LONG $0x6c11fcc5; WORD $0x600c // vmovups %ymm5, $96(%rsp,%rcx) - QUAD $0x0000800cb411fcc5; BYTE $0x00 // vmovups %ymm6, $128(%rsp,%rcx) - QUAD $0x0000800e9c6ffec5; BYTE $0x00 // vmovdqu $128(%rsi,%rcx), %ymm3 - QUAD $0x0000a00ea46ffec5; BYTE $0x00 // vmovdqu $160(%rsi,%rcx), %ymm4 - QUAD $0x0000c00eac6ffec5; BYTE $0x00 // vmovdqu $192(%rsi,%rcx), %ymm5 - QUAD $0x0000e00eb46ffec5; BYTE $0x00 // vmovdqu $224(%rsi,%rcx), %ymm6 - QUAD $0x0000a00c9c7ffec5; BYTE $0x00 // vmovdqu %ymm3, $160(%rsp,%rcx) - QUAD $0x0000c00ca47ffec5; BYTE $0x00 // vmovdqu %ymm4, $192(%rsp,%rcx) - QUAD $0x0000e00cac7ffec5; BYTE $0x00 // vmovdqu %ymm5, $224(%rsp,%rcx) - QUAD $0x0001000cb47ffec5; BYTE $0x00 // vmovdqu %ymm6, $256(%rsp,%rcx) - LONG $0x00c18148; WORD $0x0001; BYTE $0x00 // addq $256, %rcx - LONG $0x02c78348 // addq $2, %rdi - LONG $0xff75850f; WORD $0xffff // jne LBB31_26, $-139(%rip) - LONG $0x01c1f641 // testb $1, %r9b - LONG $0x0032840f; WORD $0x0000 // je LBB31_29, $50(%rip) - -LBB31_28: - LONG $0x1c6ffec5; BYTE $0x0e // vmovdqu (%rsi,%rcx), %ymm3 - LONG $0x646ffec5; WORD $0x200e // vmovdqu $32(%rsi,%rcx), %ymm4 - LONG $0x6c6ffec5; WORD $0x400e // vmovdqu $64(%rsi,%rcx), %ymm5 - LONG $0x746ffec5; WORD $0x600e // vmovdqu $96(%rsi,%rcx), %ymm6 - LONG $0x5c7ffec5; WORD $0x200c // vmovdqu %ymm3, $32(%rsp,%rcx) - LONG $0x647ffec5; WORD $0x400c // vmovdqu %ymm4, $64(%rsp,%rcx) - LONG $0x6c7ffec5; WORD $0x600c // vmovdqu %ymm5, $96(%rsp,%rcx) - QUAD $0x0000800cb47ffec5; BYTE $0x00 // vmovdqu %ymm6, $128(%rsp,%rcx) - -LBB31_29: - WORD $0x394d; BYTE $0xd3 // cmpq %r10, %r11 - LONG $0xfcc3840f; WORD $0xffff // je LBB31_33, $-829(%rip) - WORD $0x014c; BYTE $0xde // addq %r11, %rsi - LONG $0xfffc99e9; BYTE $0xff // jmp LBB31_31, $-871(%rip) - -LBB31_37: - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x01c1f641 // testb $1, %r9b - LONG $0xffb1850f; WORD $0xffff // jne LBB31_28, $-79(%rip) - LONG $0xffffdee9; BYTE $0xff // jmp LBB31_29, $-34(%rip) - -LBB31_38: - LONG $0x466de3c4; WORD $0x21d4 // vperm2i128 $33, %ymm4, %ymm2, %ymm2 - LONG $0x0f5de3c4; WORD $0x0fea // vpalignr $15, %ymm2, %ymm4, %ymm5 - LONG $0xd571cdc5; BYTE $0x04 // vpsrlw $4, %ymm5, %ymm6 - QUAD $0xfffff5ee0d6ffdc5 // vmovdqa $-2578(%rip), %ymm1 /* LCPI31_0(%rip) */ - LONG $0xf1dbcdc5 // vpand %ymm1, %ymm6, %ymm6 - QUAD $0xfffff6023d6ffdc5 // vmovdqa $-2558(%rip), %ymm7 /* LCPI31_1(%rip) */ - LONG $0x0045e2c4; BYTE $0xf6 // vpshufb %ymm6, %ymm7, %ymm6 - LONG $0xe9dbd5c5 // vpand %ymm1, %ymm5, %ymm5 - QUAD $0xfffff611056f7dc5 // vmovdqa $-2543(%rip), %ymm8 /* LCPI31_2(%rip) */ - LONG $0x003de2c4; BYTE $0xed // vpshufb %ymm5, %ymm8, %ymm5 - LONG $0xd471b5c5; BYTE $0x04 // vpsrlw $4, %ymm4, %ymm9 - LONG $0xc9db35c5 // vpand %ymm1, %ymm9, %ymm9 - QUAD $0xfffff61b156f7dc5 // vmovdqa $-2533(%rip), %ymm10 /* LCPI31_3(%rip) */ - LONG $0x002d42c4; BYTE $0xc9 // vpshufb %ymm9, %ymm10, %ymm9 - LONG $0xeddbb5c5 // vpand %ymm5, %ymm9, %ymm5 - LONG $0xeddbcdc5 // vpand %ymm5, %ymm6, %ymm5 - LONG $0x0f5de3c4; WORD $0x0ef2 // vpalignr $14, %ymm2, %ymm4, %ymm6 - LONG $0x0f5de3c4; WORD $0x0dd2 // vpalignr $13, %ymm2, %ymm4, %ymm2 - QUAD $0xfffff61a0d6f7dc5 // vmovdqa $-2534(%rip), %ymm9 /* LCPI31_4(%rip) */ - LONG $0xd84dc1c4; BYTE $0xf1 // vpsubusb %ymm9, %ymm6, %ymm6 - QUAD $0xfffff62d1d6f7dc5 // vmovdqa $-2515(%rip), %ymm11 /* LCPI31_5(%rip) */ - LONG $0xd86dc1c4; BYTE $0xd3 // vpsubusb %ymm11, %ymm2, %ymm2 - LONG $0xd6ebedc5 // vpor %ymm6, %ymm2, %ymm2 - LONG $0xf6efc9c5 // vpxor %xmm6, %xmm6, %xmm6 - LONG $0xd674edc5 // vpcmpeqb %ymm6, %ymm2, %ymm2 - QUAD $0xfff67325597d62c4; BYTE $0xff // vpbroadcastq $-2445(%rip), %ymm12 /* LCPI31_6(%rip) */ - LONG $0xdf6dc1c4; BYTE $0xd4 // vpandn %ymm12, %ymm2, %ymm2 - LONG $0xd5efedc5 // vpxor %ymm5, %ymm2, %ymm2 - LONG $0x465de3c4; WORD $0x21e3 // vperm2i128 $33, %ymm3, %ymm4, %ymm4 - LONG $0x0f65e3c4; WORD $0x0fec // vpalignr $15, %ymm4, %ymm3, %ymm5 - LONG $0xd57195c5; BYTE $0x04 // vpsrlw $4, %ymm5, %ymm13 - LONG $0xe9db15c5 // vpand %ymm1, %ymm13, %ymm13 - LONG $0x0045c2c4; BYTE $0xfd // vpshufb %ymm13, %ymm7, %ymm7 - LONG $0xe9dbd5c5 // vpand %ymm1, %ymm5, %ymm5 - LONG $0x003de2c4; BYTE $0xed // vpshufb %ymm5, %ymm8, %ymm5 - LONG $0xd371bdc5; BYTE $0x04 // vpsrlw $4, %ymm3, %ymm8 - LONG $0xc9dbbdc5 // vpand %ymm1, %ymm8, %ymm1 - LONG $0x002de2c4; BYTE $0xc9 // vpshufb %ymm1, %ymm10, %ymm1 - LONG $0xc9dbd5c5 // vpand %ymm1, %ymm5, %ymm1 - LONG $0xc9dbc5c5 // vpand %ymm1, %ymm7, %ymm1 - LONG $0x0f65e3c4; WORD $0x0eec // vpalignr $14, %ymm4, %ymm3, %ymm5 - LONG $0x0f65e3c4; WORD $0x0de4 // vpalignr $13, %ymm4, %ymm3, %ymm4 - LONG $0xd855c1c4; BYTE $0xe9 // vpsubusb %ymm9, %ymm5, %ymm5 - LONG $0xd85dc1c4; BYTE $0xe3 // vpsubusb %ymm11, %ymm4, %ymm4 - LONG $0xe5ebddc5 // vpor %ymm5, %ymm4, %ymm4 - LONG $0xe674ddc5 // vpcmpeqb %ymm6, %ymm4, %ymm4 - LONG $0xdf5dc1c4; BYTE $0xe4 // vpandn %ymm12, %ymm4, %ymm4 - LONG $0xc9efddc5 // vpxor %ymm1, %ymm4, %ymm1 - LONG $0xc0ebedc5 // vpor %ymm0, %ymm2, %ymm0 - LONG $0xc1ebfdc5 // vpor %ymm1, %ymm0, %ymm0 - QUAD $0xfffff5ba0dd8e5c5 // vpsubusb $-2630(%rip), %ymm3, %ymm1 /* LCPI31_7(%rip) */ - LONG $0xc1ebfdc5 // vpor %ymm1, %ymm0, %ymm0 - LONG $0x177de2c4; BYTE $0xc0 // vptest %ymm0, %ymm0 - LONG $0xfdb7840f; WORD $0xffff // je LBB31_69, $-585(%rip) - LONG $0xfffbb8e9; BYTE $0xff // jmp LBB31_39, $-1096(%rip) - LONG $0x00000000; WORD $0x0000 // .p2align 5, 0x00 - -LCPI32_0: - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - - // .p2align 4, 0x90 -_f32toa: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0xc07ef9c5 // vmovd %xmm0, %eax - WORD $0xc189 // movl %eax, %ecx - WORD $0xe9c1; BYTE $0x17 // shrl $23, %ecx - WORD $0xb60f; BYTE $0xd9 // movzbl %cl, %ebx - LONG $0x00fffb81; WORD $0x0000 // cmpl $255, %ebx - LONG $0x0cf1840f; WORD $0x0000 // je LBB32_138, $3313(%rip) - WORD $0x07c6; BYTE $0x2d // movb $45, (%rdi) - WORD $0x8941; BYTE $0xc1 // movl %eax, %r9d - LONG $0x1fe9c141 // shrl $31, %r9d - LONG $0x0f048d4e // leaq (%rdi,%r9), %r8 - LONG $0xffffffa9; BYTE $0x7f // testl $2147483647, %eax - LONG $0x01bf840f; WORD $0x0000 // je LBB32_11, $447(%rip) - LONG $0x7fffff25; BYTE $0x00 // andl $8388607, %eax - WORD $0xdb85 // testl %ebx, %ebx - LONG $0x0cd3840f; WORD $0x0000 // je LBB32_139, $3283(%rip) - LONG $0x0000b08d; WORD $0x0080 // leal $8388608(%rax), %esi - LONG $0x6abb8d44; WORD $0xffff; BYTE $0xff // leal $-150(%rbx), %r15d - WORD $0x4b8d; BYTE $0x81 // leal $-127(%rbx), %ecx - WORD $0xf983; BYTE $0x17 // cmpl $23, %ecx - LONG $0x0019870f; WORD $0x0000 // ja LBB32_5, $25(%rip) - WORD $0x8944; BYTE $0xf9 // movl %r15d, %ecx - WORD $0xd9f7 // negl %ecx - LONG $0xffc2c748; WORD $0xffff; BYTE $0xff // movq $-1, %rdx - WORD $0xd348; BYTE $0xe2 // shlq %cl, %rdx - WORD $0xd2f7 // notl %edx - WORD $0xf285 // testl %esi, %edx - LONG $0x03fc840f; WORD $0x0000 // je LBB32_32, $1020(%rip) - -LBB32_5: - WORD $0x8941; BYTE $0xf6 // movl %esi, %r14d - LONG $0x01e68341 // andl $1, %r14d - WORD $0xc085 // testl %eax, %eax - WORD $0x940f; BYTE $0xc0 // sete %al - WORD $0xfb83; BYTE $0x01 // cmpl $1, %ebx - WORD $0x970f; BYTE $0xc1 // seta %cl - WORD $0xc120 // andb %al, %cl - WORD $0xb60f; BYTE $0xc9 // movzbl %cl, %ecx - WORD $0x8941; BYTE $0xf2 // movl %esi, %r10d - LONG $0x02e2c141 // shll $2, %r10d - LONG $0xfeb1448d // leal $-2(%rcx,%rsi,4), %eax - LONG $0x13d76941; WORD $0x1344; BYTE $0x00 // imull $1262611, %r15d, %edx - WORD $0xdb31 // xorl %ebx, %ebx - WORD $0xc984 // testb %cl, %cl - LONG $0x0101bb41; WORD $0xfff8 // movl $-524031, %r11d - LONG $0xdb440f44 // cmovel %ebx, %r11d - WORD $0x0141; BYTE $0xd3 // addl %edx, %r11d - LONG $0x16fbc141 // sarl $22, %r11d - LONG $0xb1cb6941; WORD $0xe56c; BYTE $0xff // imull $-1741647, %r11d, %ecx - WORD $0xe9c1; BYTE $0x13 // shrl $19, %ecx - WORD $0x0144; BYTE $0xf9 // addl %r15d, %ecx - LONG $0x00001fba; BYTE $0x00 // movl $31, %edx - WORD $0x2944; BYTE $0xda // subl %r11d, %edx - LONG $0x291d8d48; WORD $0x00b4; BYTE $0x00 // leaq $46121(%rip), %rbx /* _pow10_ceil_sig_f32.g(%rip) */ - WORD $0xc1fe // incb %cl - WORD $0xe0d3 // shll %cl, %eax - LONG $0xd3248b4c // movq (%rbx,%rdx,8), %r12 - WORD $0xf749; BYTE $0xe4 // mulq %r12 - LONG $0x20e8c148 // shrq $32, %rax - WORD $0xdb31 // xorl %ebx, %ebx - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - WORD $0x970f; BYTE $0xc3 // seta %bl - WORD $0xd341; BYTE $0xe2 // shll %cl, %r10d - WORD $0xd309 // orl %edx, %ebx - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - WORD $0xf749; BYTE $0xe4 // mulq %r12 - WORD $0x8949; BYTE $0xd2 // movq %rdx, %r10 - LONG $0x20e8c148 // shrq $32, %rax - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - LONG $0xc7970f41 // seta %r15b - LONG $0x02b5048d; WORD $0x0000; BYTE $0x00 // leal $2(,%rsi,4), %eax - WORD $0xe0d3 // shll %cl, %eax - WORD $0x0945; BYTE $0xd7 // orl %r10d, %r15d - WORD $0xf749; BYTE $0xe4 // mulq %r12 - LONG $0x20e8c148 // shrq $32, %rax - WORD $0xc931 // xorl %ecx, %ecx - WORD $0xf883; BYTE $0x01 // cmpl $1, %eax - WORD $0x970f; BYTE $0xc1 // seta %cl - WORD $0xd109 // orl %edx, %ecx - WORD $0x0144; BYTE $0xf3 // addl %r14d, %ebx - WORD $0x2944; BYTE $0xf1 // subl %r14d, %ecx - LONG $0x28ff8341 // cmpl $40, %r15d - LONG $0x003d820f; WORD $0x0000 // jb LBB32_7, $61(%rip) - WORD $0x8944; BYTE $0xd0 // movl %r10d, %eax - LONG $0xcccdbd41; WORD $0xcccc // movl $3435973837, %r13d - LONG $0xe8af0f4c // imulq %rax, %r13 - LONG $0x25edc149 // shrq $37, %r13 - WORD $0x8941; BYTE $0xde // movl %ebx, %r14d - QUAD $0x00000000ed348d4a // leaq (,%r13,8), %rsi - LONG $0xb6048d48 // leaq (%rsi,%rsi,4), %rax - WORD $0x394c; BYTE $0xf0 // cmpq %r14, %rax - LONG $0xc6920f41 // setb %r14b - LONG $0xb6648d4c; BYTE $0x28 // leaq $40(%rsi,%rsi,4), %r12 - WORD $0xce89 // movl %ecx, %esi - WORD $0x3949; BYTE $0xf4 // cmpq %rsi, %r12 - WORD $0x960f; BYTE $0xc0 // setbe %al - WORD $0x3044; BYTE $0xf0 // xorb %r14b, %al - LONG $0x01e9840f; WORD $0x0000 // je LBB32_16, $489(%rip) - -LBB32_7: - WORD $0x894c; BYTE $0xd0 // movq %r10, %rax - LONG $0x02e8c148 // shrq $2, %rax - WORD $0x8944; BYTE $0xd6 // movl %r10d, %esi - WORD $0xe683; BYTE $0xfc // andl $-4, %esi - WORD $0xf339 // cmpl %esi, %ebx - LONG $0xc6970f41 // seta %r14b - WORD $0x568d; BYTE $0x04 // leal $4(%rsi), %edx - WORD $0xca39 // cmpl %ecx, %edx - WORD $0x960f; BYTE $0xc3 // setbe %bl - WORD $0x3044; BYTE $0xf3 // xorb %r14b, %bl - LONG $0x0074840f; WORD $0x0000 // je LBB32_12, $116(%rip) - WORD $0xce83; BYTE $0x02 // orl $2, %esi - LONG $0x0001bd41; WORD $0x0000 // movl $1, %r13d - WORD $0x3941; BYTE $0xf7 // cmpl %esi, %r15d - LONG $0x000e870f; WORD $0x0000 // ja LBB32_10, $14(%rip) - WORD $0x940f; BYTE $0xc1 // sete %cl - LONG $0x02eac041 // shrb $2, %r10b - WORD $0x2041; BYTE $0xca // andb %cl, %r10b - LONG $0xeab60f45 // movzbl %r10b, %r13d - -LBB32_10: - WORD $0x0141; BYTE $0xc5 // addl %eax, %r13d - LONG $0xa0fd8141; WORD $0x0186; BYTE $0x00 // cmpl $100000, %r13d - LONG $0x0059820f; WORD $0x0000 // jb LBB32_17, $89(%rip) - -LBB32_13: - LONG $0x000006be; BYTE $0x00 // movl $6, %esi - LONG $0x40fd8141; WORD $0x0f42; BYTE $0x00 // cmpl $1000000, %r13d - LONG $0x0086820f; WORD $0x0000 // jb LBB32_22, $134(%rip) - LONG $0x000007be; BYTE $0x00 // movl $7, %esi - LONG $0x80fd8141; WORD $0x9896; BYTE $0x00 // cmpl $10000000, %r13d - LONG $0x0074820f; WORD $0x0000 // jb LBB32_22, $116(%rip) - LONG $0x00fd8141; WORD $0xf5e1; BYTE $0x05 // cmpl $100000000, %r13d - LONG $0x000009be; BYTE $0x00 // movl $9, %esi - LONG $0x000060e9; BYTE $0x00 // jmp LBB32_21, $96(%rip) - -LBB32_11: - LONG $0x3000c641 // movb $48, (%r8) - WORD $0x2941; BYTE $0xf8 // subl %edi, %r8d - WORD $0xff41; BYTE $0xc0 // incl %r8d - LONG $0x000af9e9; BYTE $0x00 // jmp LBB32_137, $2809(%rip) - -LBB32_12: - WORD $0xd139 // cmpl %edx, %ecx - WORD $0xd883; BYTE $0xff // sbbl $-1, %eax - WORD $0x8941; BYTE $0xc5 // movl %eax, %r13d - LONG $0xa0fd8141; WORD $0x0186; BYTE $0x00 // cmpl $100000, %r13d - LONG $0xffa7830f; WORD $0xffff // jae LBB32_13, $-89(%rip) - -LBB32_17: - LONG $0x000001be; BYTE $0x00 // movl $1, %esi - LONG $0x0afd8341 // cmpl $10, %r13d - LONG $0x0030820f; WORD $0x0000 // jb LBB32_22, $48(%rip) - LONG $0x000002be; BYTE $0x00 // movl $2, %esi - LONG $0x64fd8341 // cmpl $100, %r13d - LONG $0x0021820f; WORD $0x0000 // jb LBB32_22, $33(%rip) - LONG $0x000003be; BYTE $0x00 // movl $3, %esi - LONG $0xe8fd8141; WORD $0x0003; BYTE $0x00 // cmpl $1000, %r13d - LONG $0x000f820f; WORD $0x0000 // jb LBB32_22, $15(%rip) - LONG $0x10fd8141; WORD $0x0027; BYTE $0x00 // cmpl $10000, %r13d - LONG $0x000005be; BYTE $0x00 // movl $5, %esi - -LBB32_21: - WORD $0xde83; BYTE $0x00 // sbbl $0, %esi - -LBB32_22: - LONG $0x1e148d46 // leal (%rsi,%r11), %r10d - LONG $0x1e448d42; BYTE $0x05 // leal $5(%rsi,%r11), %eax - WORD $0xf883; BYTE $0x1b // cmpl $27, %eax - LONG $0x0075820f; WORD $0x0000 // jb LBB32_26, $117(%rip) - WORD $0xf089 // movl %esi, %eax - LONG $0x00748d4d; BYTE $0x01 // leaq $1(%r8,%rax), %r14 - LONG $0x10fd8141; WORD $0x0027; BYTE $0x00 // cmpl $10000, %r13d - LONG $0x00f3820f; WORD $0x0000 // jb LBB32_30, $243(%rip) - WORD $0x8944; BYTE $0xe8 // movl %r13d, %eax - LONG $0xb71759bb; BYTE $0xd1 // movl $3518437209, %ebx - LONG $0xd8af0f48 // imulq %rax, %rbx - LONG $0x2debc148 // shrq $45, %rbx - LONG $0xd8f0c369; WORD $0xffff // imull $-10000, %ebx, %eax - WORD $0x0144; BYTE $0xe8 // addl %r13d, %eax - LONG $0x048b840f; WORD $0x0000 // je LBB32_62, $1163(%rip) - WORD $0xc189 // movl %eax, %ecx - LONG $0x1fc96948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rcx - LONG $0x25e9c148 // shrq $37, %rcx - WORD $0xd16b; BYTE $0x64 // imull $100, %ecx, %edx - WORD $0xd029 // subl %edx, %eax - LONG $0xc2158d48; WORD $0x003e; BYTE $0x00 // leaq $16066(%rip), %rdx /* _Digits(%rip) */ - LONG $0x4204b70f // movzwl (%rdx,%rax,2), %eax - LONG $0x46894166; BYTE $0xfe // movw %ax, $-2(%r14) - LONG $0x4a04b70f // movzwl (%rdx,%rcx,2), %eax - LONG $0x46894166; BYTE $0xfc // movw %ax, $-4(%r14) - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - LONG $0xfc4e8d49 // leaq $-4(%r14), %rcx - WORD $0xfb83; BYTE $0x64 // cmpl $100, %ebx - LONG $0x00ab830f; WORD $0x0000 // jae LBB32_64, $171(%rip) - -LBB32_31: - WORD $0xda89 // movl %ebx, %edx - LONG $0x0000e8e9; BYTE $0x00 // jmp LBB32_66, $232(%rip) - -LBB32_26: - WORD $0x8941; BYTE $0xf4 // movl %esi, %r12d - WORD $0x8545; BYTE $0xdb // testl %r11d, %r11d - LONG $0x021d880f; WORD $0x0000 // js LBB32_38, $541(%rip) - LONG $0x20348d4b // leaq (%r8,%r12), %rsi - LONG $0x10fd8141; WORD $0x0027; BYTE $0x00 // cmpl $10000, %r13d - LONG $0x028d820f; WORD $0x0000 // jb LBB32_43, $653(%rip) - WORD $0x8944; BYTE $0xe8 // movl %r13d, %eax - LONG $0xb71759b9; BYTE $0xd1 // movl $3518437209, %ecx - LONG $0xc8af0f48 // imulq %rax, %rcx - LONG $0x2de9c148 // shrq $45, %rcx - LONG $0xd8f0c169; WORD $0xffff // imull $-10000, %ecx, %eax - WORD $0x0144; BYTE $0xe8 // addl %r13d, %eax - LONG $0x1fd06948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rax, %rdx - LONG $0x25eac148 // shrq $37, %rdx - WORD $0xda6b; BYTE $0x64 // imull $100, %edx, %ebx - WORD $0xd829 // subl %ebx, %eax - LONG $0x4c1d8d48; WORD $0x003e; BYTE $0x00 // leaq $15948(%rip), %rbx /* _Digits(%rip) */ - LONG $0x4304b70f // movzwl (%rbx,%rax,2), %eax - LONG $0xfe468966 // movw %ax, $-2(%rsi) - LONG $0xfc468d48 // leaq $-4(%rsi), %rax - LONG $0x5314b70f // movzwl (%rbx,%rdx,2), %edx - LONG $0xfc568966 // movw %dx, $-4(%rsi) - WORD $0x8941; BYTE $0xcd // movl %ecx, %r13d - LONG $0x64fd8341 // cmpl $100, %r13d - LONG $0x0249830f; WORD $0x0000 // jae LBB32_44, $585(%rip) - -LBB32_29: - WORD $0x8944; BYTE $0xe9 // movl %r13d, %ecx - LONG $0x000286e9; BYTE $0x00 // jmp LBB32_46, $646(%rip) - -LBB32_16: - WORD $0x394c; BYTE $0xe6 // cmpq %r12, %rsi - LONG $0xffdd8341 // sbbl $-1, %r13d - WORD $0xff41; BYTE $0xc3 // incl %r11d - LONG $0xa0fd8141; WORD $0x0186; BYTE $0x00 // cmpl $100000, %r13d - LONG $0xfe54830f; WORD $0xffff // jae LBB32_13, $-428(%rip) - LONG $0xfffea8e9; BYTE $0xff // jmp LBB32_17, $-344(%rip) - -LBB32_30: - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x894c; BYTE $0xf1 // movq %r14, %rcx - WORD $0x8944; BYTE $0xeb // movl %r13d, %ebx - WORD $0xfb83; BYTE $0x64 // cmpl $100, %ebx - LONG $0xff55820f; WORD $0xffff // jb LBB32_31, $-171(%rip) - -LBB32_64: - WORD $0xff48; BYTE $0xc9 // decq %rcx - LONG $0xeb1d8d4c; WORD $0x003d; BYTE $0x00 // leaq $15851(%rip), %r11 /* _Digits(%rip) */ - QUAD $0x9090909090909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB32_65: - WORD $0xda89 // movl %ebx, %edx - LONG $0x1fd26948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rdx, %rdx - LONG $0x25eac148 // shrq $37, %rdx - WORD $0xc26b; BYTE $0x64 // imull $100, %edx, %eax - WORD $0xde89 // movl %ebx, %esi - WORD $0xc629 // subl %eax, %esi - LONG $0x04b70f41; BYTE $0x73 // movzwl (%r11,%rsi,2), %eax - LONG $0xff418966 // movw %ax, $-1(%rcx) - LONG $0xfec18348 // addq $-2, %rcx - LONG $0x270ffb81; WORD $0x0000 // cmpl $9999, %ebx - WORD $0xd389 // movl %edx, %ebx - LONG $0xffd1870f; WORD $0xffff // ja LBB32_65, $-47(%rip) - -LBB32_66: - LONG $0x01708d49 // leaq $1(%r8), %rsi - WORD $0xfa83; BYTE $0x0a // cmpl $10, %edx - LONG $0x001d820f; WORD $0x0000 // jb LBB32_68, $29(%rip) - WORD $0xd089 // movl %edx, %eax - LONG $0x9b0d8d48; WORD $0x003d; BYTE $0x00 // leaq $15771(%rip), %rcx /* _Digits(%rip) */ - WORD $0x148a; BYTE $0x41 // movb (%rcx,%rax,2), %dl - LONG $0x0141448a // movb $1(%rcx,%rax,2), %al - LONG $0x01508841 // movb %dl, $1(%r8) - LONG $0x02408841 // movb %al, $2(%r8) - LONG $0x000005e9; BYTE $0x00 // jmp LBB32_69, $5(%rip) - -LBB32_68: - WORD $0xc280; BYTE $0x30 // addb $48, %dl - WORD $0x1688 // movb %dl, (%rsi) - -LBB32_69: - WORD $0x294d; BYTE $0xce // subq %r9, %r14 - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB32_70: - LONG $0xff7e8041; BYTE $0x30 // cmpb $48, $-1(%r14) - LONG $0xff768d4d // leaq $-1(%r14), %r14 - LONG $0xfff1840f; WORD $0xffff // je LBB32_70, $-15(%rip) - WORD $0x8841; BYTE $0x10 // movb %dl, (%r8) - LONG $0x01468d49 // leaq $1(%r14), %rax - WORD $0x8948; BYTE $0xc1 // movq %rax, %rcx - WORD $0x2948; BYTE $0xf1 // subq %rsi, %rcx - LONG $0x02f98348 // cmpq $2, %rcx - LONG $0x00068c0f; WORD $0x0000 // jl LBB32_73, $6(%rip) - WORD $0x06c6; BYTE $0x2e // movb $46, (%rsi) - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - -LBB32_73: - LONG $0x6506c641 // movb $101, (%r14) - LONG $0xff428d41 // leal $-1(%r10), %eax - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x01228e0f; WORD $0x0000 // jle LBB32_76, $290(%rip) - LONG $0x0146c641; BYTE $0x2b // movb $43, $1(%r14) - WORD $0xf883; BYTE $0x0a // cmpl $10, %eax - LONG $0x01248c0f; WORD $0x0000 // jl LBB32_77, $292(%rip) - -LBB32_75: - WORD $0x9848 // cltq - LONG $0x1c0d8d48; WORD $0x003d; BYTE $0x00 // leaq $15644(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x46894166; BYTE $0x02 // movw %ax, $2(%r14) - LONG $0x04c68349 // addq $4, %r14 - WORD $0x894d; BYTE $0xf0 // movq %r14, %r8 - LONG $0x000889e9; BYTE $0x00 // jmp LBB32_136, $2185(%rip) - -LBB32_32: - WORD $0xeed3 // shrl %cl, %esi - LONG $0x86a0fe81; WORD $0x0001 // cmpl $100000, %esi - LONG $0x01f1820f; WORD $0x0000 // jb LBB32_52, $497(%rip) - LONG $0x000006b8; BYTE $0x00 // movl $6, %eax - LONG $0x4240fe81; WORD $0x000f // cmpl $1000000, %esi - LONG $0x0020820f; WORD $0x0000 // jb LBB32_36, $32(%rip) - LONG $0x000007b8; BYTE $0x00 // movl $7, %eax - LONG $0x9680fe81; WORD $0x0098 // cmpl $10000000, %esi - LONG $0x000f820f; WORD $0x0000 // jb LBB32_36, $15(%rip) - LONG $0xe100fe81; WORD $0x05f5 // cmpl $100000000, %esi - LONG $0x000009b8; BYTE $0x00 // movl $9, %eax - LONG $0x00d88348 // sbbq $0, %rax - -LBB32_36: - WORD $0x014c; BYTE $0xc0 // addq %r8, %rax - -LBB32_37: - WORD $0xf189 // movl %esi, %ecx - LONG $0xb71759ba; BYTE $0xd1 // movl $3518437209, %edx - LONG $0xd1af0f48 // imulq %rcx, %rdx - LONG $0x2deac148 // shrq $45, %rdx - LONG $0xd8f0ca69; WORD $0xffff // imull $-10000, %edx, %ecx - WORD $0xf101 // addl %esi, %ecx - LONG $0x1ff16948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rsi - LONG $0x25eec148 // shrq $37, %rsi - WORD $0xde6b; BYTE $0x64 // imull $100, %esi, %ebx - WORD $0xd929 // subl %ebx, %ecx - LONG $0x971d8d48; WORD $0x003c; BYTE $0x00 // leaq $15511(%rip), %rbx /* _Digits(%rip) */ - LONG $0x4b0cb70f // movzwl (%rbx,%rcx,2), %ecx - LONG $0xfe488966 // movw %cx, $-2(%rax) - LONG $0x730cb70f // movzwl (%rbx,%rsi,2), %ecx - LONG $0xfc488966 // movw %cx, $-4(%rax) - WORD $0x8949; BYTE $0xc1 // movq %rax, %r9 - LONG $0xfcc08348 // addq $-4, %rax - WORD $0xd689 // movl %edx, %esi - WORD $0xfe83; BYTE $0x64 // cmpl $100, %esi - LONG $0x01ac830f; WORD $0x0000 // jae LBB32_56, $428(%rip) - LONG $0x0001efe9; BYTE $0x00 // jmp LBB32_58, $495(%rip) - -LBB32_38: - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x04878f0f; WORD $0x0000 // jg LBB32_96, $1159(%rip) - LONG $0x00c74166; WORD $0x2e30 // movw $11824, (%r8) - LONG $0x02c08349 // addq $2, %r8 - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x0474890f; WORD $0x0000 // jns LBB32_96, $1140(%rip) - WORD $0xd6f7 // notl %esi - WORD $0x2944; BYTE $0xde // subl %r11d, %esi - WORD $0x3145; BYTE $0xff // xorl %r15d, %r15d - WORD $0xfe83; BYTE $0x7f // cmpl $127, %esi - LONG $0x043e820f; WORD $0x0000 // jb LBB32_94, $1086(%rip) - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x8949; BYTE $0xf7 // movq %rsi, %r15 - LONG $0x80e78349 // andq $-128, %r15 - LONG $0x80478d49 // leaq $-128(%r15), %rax - WORD $0x8949; BYTE $0xc6 // movq %rax, %r14 - LONG $0x07eec149 // shrq $7, %r14 - WORD $0xff49; BYTE $0xc6 // incq %r14 - WORD $0x8945; BYTE $0xf3 // movl %r14d, %r11d - LONG $0x03e38341 // andl $3, %r11d - LONG $0x01803d48; WORD $0x0000 // cmpq $384, %rax - LONG $0x0321830f; WORD $0x0000 // jae LBB32_88, $801(%rip) - WORD $0xdb31 // xorl %ebx, %ebx - LONG $0x0003c4e9; BYTE $0x00 // jmp LBB32_90, $964(%rip) - -LBB32_76: - LONG $0x0146c641; BYTE $0x2d // movb $45, $1(%r14) - WORD $0xd8f7 // negl %eax - WORD $0xf883; BYTE $0x0a // cmpl $10, %eax - LONG $0xfedc8d0f; WORD $0xffff // jge LBB32_75, $-292(%rip) - -LBB32_77: - WORD $0x3004 // addb $48, %al - LONG $0x02468841 // movb %al, $2(%r14) - LONG $0x03c68349 // addq $3, %r14 - WORD $0x894d; BYTE $0xf0 // movq %r14, %r8 - LONG $0x000771e9; BYTE $0x00 // jmp LBB32_136, $1905(%rip) - -LBB32_43: - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - LONG $0x64fd8341 // cmpl $100, %r13d - LONG $0xfdb7820f; WORD $0xffff // jb LBB32_29, $-585(%rip) - -LBB32_44: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0xd81d8d4c; WORD $0x003b; BYTE $0x00 // leaq $15320(%rip), %r11 /* _Digits(%rip) */ - QUAD $0x9090909090909090 // .p2align 4, 0x90 - -LBB32_45: - WORD $0x8944; BYTE $0xe9 // movl %r13d, %ecx - LONG $0x1fc96948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rcx - LONG $0x25e9c148 // shrq $37, %rcx - WORD $0xd96b; BYTE $0x64 // imull $100, %ecx, %ebx - WORD $0x8944; BYTE $0xea // movl %r13d, %edx - WORD $0xda29 // subl %ebx, %edx - LONG $0x14b70f41; BYTE $0x53 // movzwl (%r11,%rdx,2), %edx - LONG $0xff508966 // movw %dx, $-1(%rax) - LONG $0xfec08348 // addq $-2, %rax - LONG $0x0ffd8141; WORD $0x0027; BYTE $0x00 // cmpl $9999, %r13d - WORD $0x8941; BYTE $0xcd // movl %ecx, %r13d - LONG $0xffcd870f; WORD $0xffff // ja LBB32_45, $-51(%rip) - -LBB32_46: - WORD $0x6349; BYTE $0xc2 // movslq %r10d, %rax - WORD $0xf983; BYTE $0x0a // cmpl $10, %ecx - LONG $0x0022820f; WORD $0x0000 // jb LBB32_48, $34(%rip) - WORD $0xc989 // movl %ecx, %ecx - LONG $0x88158d48; WORD $0x003b; BYTE $0x00 // leaq $15240(%rip), %rdx /* _Digits(%rip) */ - LONG $0x4a0cb70f // movzwl (%rdx,%rcx,2), %ecx - LONG $0x08894166 // movw %cx, (%r8) - WORD $0x0149; BYTE $0xc0 // addq %rax, %r8 - WORD $0x3949; BYTE $0xc4 // cmpq %rax, %r12 - LONG $0x00178c0f; WORD $0x0000 // jl LBB32_49, $23(%rip) - LONG $0x0006f1e9; BYTE $0x00 // jmp LBB32_136, $1777(%rip) - -LBB32_48: - WORD $0xc180; BYTE $0x30 // addb $48, %cl - WORD $0x8841; BYTE $0x08 // movb %cl, (%r8) - WORD $0x0149; BYTE $0xc0 // addq %rax, %r8 - WORD $0x3949; BYTE $0xc4 // cmpq %rax, %r12 - LONG $0x06df8d0f; WORD $0x0000 // jge LBB32_136, $1759(%rip) - -LBB32_49: - LONG $0x21048d4b // leaq (%r9,%r12), %rax - LONG $0x075c8d4c; BYTE $0x01 // leaq $1(%rdi,%rax), %r11 - WORD $0x394d; BYTE $0xc3 // cmpq %r8, %r11 - LONG $0xd8460f4d // cmovbeq %r8, %r11 - LONG $0x0f0c8d4a // leaq (%rdi,%r9), %rcx - WORD $0x014c; BYTE $0xe1 // addq %r12, %rcx - WORD $0x2949; BYTE $0xcb // subq %rcx, %r11 - LONG $0x80fb8149; WORD $0x0000; BYTE $0x00 // cmpq $128, %r11 - LONG $0x0206820f; WORD $0x0000 // jb LBB32_85, $518(%rip) - WORD $0x894d; BYTE $0xda // movq %r11, %r10 - LONG $0x80e28349 // andq $-128, %r10 - LONG $0x804a8d49 // leaq $-128(%r10), %rcx - WORD $0x8948; BYTE $0xcb // movq %rcx, %rbx - LONG $0x07ebc148 // shrq $7, %rbx - WORD $0xff48; BYTE $0xc3 // incq %rbx - WORD $0xda89 // movl %ebx, %edx - WORD $0xe283; BYTE $0x03 // andl $3, %edx - LONG $0x80f98148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rcx - LONG $0x00d7830f; WORD $0x0000 // jae LBB32_78, $215(%rip) - WORD $0xc031 // xorl %eax, %eax - LONG $0x000188e9; BYTE $0x00 // jmp LBB32_80, $392(%rip) - -LBB32_52: - LONG $0x0001b941; WORD $0x0000 // movl $1, %r9d - WORD $0xfe83; BYTE $0x0a // cmpl $10, %esi - LONG $0x0021820f; WORD $0x0000 // jb LBB32_55, $33(%rip) - LONG $0x0002b941; WORD $0x0000 // movl $2, %r9d - WORD $0xfe83; BYTE $0x64 // cmpl $100, %esi - LONG $0x0012820f; WORD $0x0000 // jb LBB32_55, $18(%rip) - LONG $0x0003b941; WORD $0x0000 // movl $3, %r9d - LONG $0x03e8fe81; WORD $0x0000 // cmpl $1000, %esi - LONG $0x01bc830f; WORD $0x0000 // jae LBB32_86, $444(%rip) - -LBB32_55: - WORD $0x014d; BYTE $0xc1 // addq %r8, %r9 - WORD $0x894c; BYTE $0xc8 // movq %r9, %rax - WORD $0xfe83; BYTE $0x64 // cmpl $100, %esi - LONG $0x0048820f; WORD $0x0000 // jb LBB32_58, $72(%rip) - -LBB32_56: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0xbf158d4c; WORD $0x003a; BYTE $0x00 // leaq $15039(%rip), %r10 /* _Digits(%rip) */ - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB32_57: - WORD $0xf389 // movl %esi, %ebx - WORD $0xf689 // movl %esi, %esi - LONG $0x1ff66948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rsi, %rsi - LONG $0x25eec148 // shrq $37, %rsi - WORD $0xce6b; BYTE $0x64 // imull $100, %esi, %ecx - WORD $0xda89 // movl %ebx, %edx - WORD $0xca29 // subl %ecx, %edx - LONG $0x0cb70f41; BYTE $0x52 // movzwl (%r10,%rdx,2), %ecx - LONG $0xff488966 // movw %cx, $-1(%rax) - LONG $0xfec08348 // addq $-2, %rax - LONG $0x270ffb81; WORD $0x0000 // cmpl $9999, %ebx - LONG $0xffd1870f; WORD $0xffff // ja LBB32_57, $-47(%rip) - -LBB32_58: - WORD $0xfe83; BYTE $0x0a // cmpl $10, %esi - LONG $0x0016820f; WORD $0x0000 // jb LBB32_60, $22(%rip) - WORD $0xf089 // movl %esi, %eax - LONG $0x6f0d8d48; WORD $0x003a; BYTE $0x00 // leaq $14959(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x00894166 // movw %ax, (%r8) - LONG $0x000007e9; BYTE $0x00 // jmp LBB32_61, $7(%rip) - -LBB32_60: - LONG $0x30c68040 // addb $48, %sil - WORD $0x8841; BYTE $0x30 // movb %sil, (%r8) - -LBB32_61: - WORD $0x2941; BYTE $0xf9 // subl %edi, %r9d - WORD $0x8945; BYTE $0xc8 // movl %r9d, %r8d - LONG $0x0005d5e9; BYTE $0x00 // jmp LBB32_137, $1493(%rip) - -LBB32_62: - LONG $0x0004b941; WORD $0x0000 // movl $4, %r9d - LONG $0xfc4e8d49 // leaq $-4(%r14), %rcx - WORD $0xfb83; BYTE $0x64 // cmpl $100, %ebx - LONG $0xfb9d820f; WORD $0xffff // jb LBB32_31, $-1123(%rip) - LONG $0xfffc43e9; BYTE $0xff // jmp LBB32_64, $-957(%rip) - -LBB32_78: - QUAD $0x000001e0078c8d48 // leaq $480(%rdi,%rax), %rcx - LONG $0xfce38348 // andq $-4, %rbx - WORD $0xf748; BYTE $0xdb // negq %rbx - WORD $0xc031 // xorl %eax, %eax - QUAD $0xfffff87f056ffdc5 // vmovdqa $-1921(%rip), %ymm0 /* LCPI32_0(%rip) */ - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB32_79: - QUAD $0xfffe2001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-480(%rcx,%rax) - QUAD $0xfffe4001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-448(%rcx,%rax) - QUAD $0xfffe6001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-416(%rcx,%rax) - QUAD $0xfffe8001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-384(%rcx,%rax) - QUAD $0xfffea001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-352(%rcx,%rax) - QUAD $0xfffec001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-320(%rcx,%rax) - QUAD $0xfffee001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-288(%rcx,%rax) - QUAD $0xffff0001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-256(%rcx,%rax) - QUAD $0xffff2001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-224(%rcx,%rax) - QUAD $0xffff4001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-192(%rcx,%rax) - QUAD $0xffff6001847ffec5; BYTE $0xff // vmovdqu %ymm0, $-160(%rcx,%rax) - LONG $0x447ffec5; WORD $0x8001 // vmovdqu %ymm0, $-128(%rcx,%rax) - LONG $0x447ffec5; WORD $0xa001 // vmovdqu %ymm0, $-96(%rcx,%rax) - LONG $0x447ffec5; WORD $0xc001 // vmovdqu %ymm0, $-64(%rcx,%rax) - LONG $0x447ffec5; WORD $0xe001 // vmovdqu %ymm0, $-32(%rcx,%rax) - LONG $0x047ffec5; BYTE $0x01 // vmovdqu %ymm0, (%rcx,%rax) - LONG $0x02000548; WORD $0x0000 // addq $512, %rax - LONG $0x04c38348 // addq $4, %rbx - LONG $0xff70850f; WORD $0xffff // jne LBB32_79, $-144(%rip) - -LBB32_80: - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0x0037840f; WORD $0x0000 // je LBB32_83, $55(%rip) - WORD $0x014c; BYTE $0xc8 // addq %r9, %rax - WORD $0x014c; BYTE $0xe0 // addq %r12, %rax - LONG $0x07448d48; BYTE $0x60 // leaq $96(%rdi,%rax), %rax - WORD $0xf748; BYTE $0xda // negq %rdx - QUAD $0xfffff7c1056ffdc5 // vmovdqa $-2111(%rip), %ymm0 /* LCPI32_0(%rip) */ - BYTE $0x90 // .p2align 4, 0x90 - -LBB32_82: - LONG $0x407ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rax) - LONG $0x407ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rax) - LONG $0x407ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rax) - LONG $0x007ffec5 // vmovdqu %ymm0, (%rax) - LONG $0x80e88348 // subq $-128, %rax - WORD $0xff48; BYTE $0xc2 // incq %rdx - LONG $0xffe0850f; WORD $0xffff // jne LBB32_82, $-32(%rip) - -LBB32_83: - WORD $0x394d; BYTE $0xda // cmpq %r11, %r10 - LONG $0x04b9840f; WORD $0x0000 // je LBB32_136, $1209(%rip) - WORD $0x014c; BYTE $0xd6 // addq %r10, %rsi - LONG $0x90909090 // .p2align 4, 0x90 - -LBB32_85: - WORD $0x06c6; BYTE $0x30 // movb $48, (%rsi) - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x394c; BYTE $0xc6 // cmpq %r8, %rsi - LONG $0xfff1820f; WORD $0xffff // jb LBB32_85, $-15(%rip) - LONG $0x00049ee9; BYTE $0x00 // jmp LBB32_136, $1182(%rip) - -LBB32_86: - LONG $0x2710fe81; WORD $0x0000 // cmpl $10000, %esi - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - LONG $0x00d88348 // sbbq $0, %rax - LONG $0x05c08348 // addq $5, %rax - LONG $0x2710fe81; WORD $0x0000 // cmpl $10000, %esi - LONG $0xfc3a830f; WORD $0xffff // jae LBB32_37, $-966(%rip) - WORD $0x8949; BYTE $0xc1 // movq %rax, %r9 - LONG $0xfffe2ee9; BYTE $0xff // jmp LBB32_56, $-466(%rip) - -LBB32_88: - QUAD $0x000001e239848d49 // leaq $482(%r9,%rdi), %rax - LONG $0xfce68349 // andq $-4, %r14 - WORD $0xf749; BYTE $0xde // negq %r14 - WORD $0xdb31 // xorl %ebx, %ebx - QUAD $0xfffff73e056ffdc5 // vmovdqa $-2242(%rip), %ymm0 /* LCPI32_0(%rip) */ - -LBB32_89: - QUAD $0xfffe2018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-480(%rax,%rbx) - QUAD $0xfffe4018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-448(%rax,%rbx) - QUAD $0xfffe6018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-416(%rax,%rbx) - QUAD $0xfffe8018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-384(%rax,%rbx) - QUAD $0xfffea018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-352(%rax,%rbx) - QUAD $0xfffec018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-320(%rax,%rbx) - QUAD $0xfffee018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-288(%rax,%rbx) - QUAD $0xffff0018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-256(%rax,%rbx) - QUAD $0xffff2018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-224(%rax,%rbx) - QUAD $0xffff4018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-192(%rax,%rbx) - QUAD $0xffff6018847ffec5; BYTE $0xff // vmovdqu %ymm0, $-160(%rax,%rbx) - LONG $0x447ffec5; WORD $0x8018 // vmovdqu %ymm0, $-128(%rax,%rbx) - LONG $0x447ffec5; WORD $0xa018 // vmovdqu %ymm0, $-96(%rax,%rbx) - LONG $0x447ffec5; WORD $0xc018 // vmovdqu %ymm0, $-64(%rax,%rbx) - LONG $0x447ffec5; WORD $0xe018 // vmovdqu %ymm0, $-32(%rax,%rbx) - LONG $0x047ffec5; BYTE $0x18 // vmovdqu %ymm0, (%rax,%rbx) - LONG $0x00c38148; WORD $0x0002; BYTE $0x00 // addq $512, %rbx - LONG $0x04c68349 // addq $4, %r14 - LONG $0xff6f850f; WORD $0xffff // jne LBB32_89, $-145(%rip) - -LBB32_90: - WORD $0x854d; BYTE $0xdb // testq %r11, %r11 - LONG $0x0033840f; WORD $0x0000 // je LBB32_93, $51(%rip) - WORD $0x014c; BYTE $0xcb // addq %r9, %rbx - LONG $0x1f448d48; BYTE $0x62 // leaq $98(%rdi,%rbx), %rax - WORD $0xf749; BYTE $0xdb // negq %r11 - QUAD $0xfffff691056ffdc5 // vmovdqa $-2415(%rip), %ymm0 /* LCPI32_0(%rip) */ - -LBB32_92: - LONG $0x407ffec5; BYTE $0xa0 // vmovdqu %ymm0, $-96(%rax) - LONG $0x407ffec5; BYTE $0xc0 // vmovdqu %ymm0, $-64(%rax) - LONG $0x407ffec5; BYTE $0xe0 // vmovdqu %ymm0, $-32(%rax) - LONG $0x007ffec5 // vmovdqu %ymm0, (%rax) - LONG $0x80e88348 // subq $-128, %rax - WORD $0xff49; BYTE $0xc3 // incq %r11 - LONG $0xffe0850f; WORD $0xffff // jne LBB32_92, $-32(%rip) - -LBB32_93: - WORD $0x014d; BYTE $0xf8 // addq %r15, %r8 - WORD $0x394c; BYTE $0xfe // cmpq %r15, %rsi - LONG $0x0025840f; WORD $0x0000 // je LBB32_96, $37(%rip) - -LBB32_94: - WORD $0x0145; BYTE $0xd7 // addl %r10d, %r15d - WORD $0xf741; BYTE $0xdf // negl %r15d - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB32_95: - LONG $0x3000c641 // movb $48, (%r8) - WORD $0xff49; BYTE $0xc0 // incq %r8 - WORD $0xff41; BYTE $0xcf // decl %r15d - LONG $0xfff0850f; WORD $0xffff // jne LBB32_95, $-16(%rip) - -LBB32_96: - LONG $0x20048d4b // leaq (%r8,%r12), %rax - LONG $0x10fd8141; WORD $0x0027; BYTE $0x00 // cmpl $10000, %r13d - LONG $0x0063820f; WORD $0x0000 // jb LBB32_99, $99(%rip) - WORD $0x8944; BYTE $0xe9 // movl %r13d, %ecx - LONG $0x1759bb41; WORD $0xd1b7 // movl $3518437209, %r11d - LONG $0xd9af0f4c // imulq %rcx, %r11 - LONG $0x2debc149 // shrq $45, %r11 - LONG $0xf0cb6941; WORD $0xffd8; BYTE $0xff // imull $-10000, %r11d, %ecx - WORD $0x0144; BYTE $0xe9 // addl %r13d, %ecx - LONG $0x0190840f; WORD $0x0000 // je LBB32_101, $400(%rip) - WORD $0xca89 // movl %ecx, %edx - LONG $0x1fd26948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rdx, %rdx - LONG $0x25eac148 // shrq $37, %rdx - WORD $0xda6b; BYTE $0x64 // imull $100, %edx, %ebx - WORD $0xd929 // subl %ebx, %ecx - LONG $0x951d8d48; WORD $0x0037; BYTE $0x00 // leaq $14229(%rip), %rbx /* _Digits(%rip) */ - LONG $0x4b0cb70f // movzwl (%rbx,%rcx,2), %ecx - LONG $0xfe488966 // movw %cx, $-2(%rax) - LONG $0x530cb70f // movzwl (%rbx,%rdx,2), %ecx - LONG $0xfc488966 // movw %cx, $-4(%rax) - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - LONG $0xfcc08348 // addq $-4, %rax - LONG $0x64fb8341 // cmpl $100, %r11d - LONG $0x0018830f; WORD $0x0000 // jae LBB32_103, $24(%rip) - -LBB32_100: - WORD $0x8944; BYTE $0xd9 // movl %r11d, %ecx - LONG $0x00004ee9; BYTE $0x00 // jmp LBB32_105, $78(%rip) - -LBB32_99: - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x8945; BYTE $0xeb // movl %r13d, %r11d - LONG $0x64fb8341 // cmpl $100, %r11d - LONG $0xffe8820f; WORD $0xffff // jb LBB32_100, $-24(%rip) - -LBB32_103: - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0x52158d48; WORD $0x0037; BYTE $0x00 // leaq $14162(%rip), %rdx /* _Digits(%rip) */ - WORD $0x9090 // .p2align 4, 0x90 - -LBB32_104: - WORD $0x8944; BYTE $0xd9 // movl %r11d, %ecx - LONG $0x1fc96948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rcx, %rcx - LONG $0x25e9c148 // shrq $37, %rcx - WORD $0xd96b; BYTE $0x64 // imull $100, %ecx, %ebx - WORD $0x8944; BYTE $0xde // movl %r11d, %esi - WORD $0xde29 // subl %ebx, %esi - LONG $0x7234b70f // movzwl (%rdx,%rsi,2), %esi - LONG $0xff708966 // movw %si, $-1(%rax) - LONG $0xfec08348 // addq $-2, %rax - LONG $0x0ffb8141; WORD $0x0027; BYTE $0x00 // cmpl $9999, %r11d - WORD $0x8941; BYTE $0xcb // movl %ecx, %r11d - LONG $0xffce870f; WORD $0xffff // ja LBB32_104, $-50(%rip) - -LBB32_105: - WORD $0xf983; BYTE $0x0a // cmpl $10, %ecx - LONG $0x0016820f; WORD $0x0000 // jb LBB32_107, $22(%rip) - WORD $0xc889 // movl %ecx, %eax - LONG $0x0c0d8d48; WORD $0x0037; BYTE $0x00 // leaq $14092(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x00894166 // movw %ax, (%r8) - LONG $0x000006e9; BYTE $0x00 // jmp LBB32_108, $6(%rip) - -LBB32_107: - WORD $0xc180; BYTE $0x30 // addb $48, %cl - WORD $0x8841; BYTE $0x08 // movb %cl, (%r8) - -LBB32_108: - WORD $0x294d; BYTE $0xcc // subq %r9, %r12 - LONG $0x24548d49; BYTE $0x01 // leaq $1(%r12), %rdx - LONG $0x24748d49; BYTE $0x61 // leaq $97(%r12), %rsi - LONG $0x24448d49; BYTE $0x02 // leaq $2(%r12), %rax - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB32_109: - WORD $0xff48; BYTE $0xce // decq %rsi - WORD $0xff48; BYTE $0xca // decq %rdx - WORD $0xff48; BYTE $0xc8 // decq %rax - LONG $0x207c8043; WORD $0x30ff // cmpb $48, $-1(%r8,%r12) - LONG $0x24648d4d; BYTE $0xff // leaq $-1(%r12), %r12 - LONG $0xffe6840f; WORD $0xffff // je LBB32_109, $-26(%rip) - LONG $0x100c8d4d // leaq (%r8,%rdx), %r9 - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x00938e0f; WORD $0x0000 // jle LBB32_115, $147(%rip) - WORD $0x8944; BYTE $0xc9 // movl %r9d, %ecx - WORD $0x2944; BYTE $0xc1 // subl %r8d, %ecx - WORD $0xcb89 // movl %ecx, %ebx - WORD $0x2944; BYTE $0xd3 // subl %r10d, %ebx - LONG $0x00278e0f; WORD $0x0000 // jle LBB32_116, $39(%rip) - WORD $0xdb85 // testl %ebx, %ebx - LONG $0x00fa8e0f; WORD $0x0000 // jle LBB32_127, $250(%rip) - WORD $0x8941; BYTE $0xdb // movl %ebx, %r11d - LONG $0xff4b8d49 // leaq $-1(%r11), %rcx - WORD $0x8945; BYTE $0xd9 // movl %r11d, %r9d - LONG $0x03e18341 // andl $3, %r9d - LONG $0x03f98348 // cmpq $3, %rcx - LONG $0x0083830f; WORD $0x0000 // jae LBB32_121, $131(%rip) - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x0000ade9; BYTE $0x00 // jmp LBB32_124, $173(%rip) - -LBB32_116: - WORD $0x8945; BYTE $0xd6 // movl %r10d, %r14d - WORD $0x2941; BYTE $0xce // subl %ecx, %r14d - LONG $0x004f8e0f; WORD $0x0000 // jle LBB32_115, $79(%rip) - WORD $0x0145; BYTE $0xc2 // addl %r8d, %r10d - WORD $0x8945; BYTE $0xcb // movl %r9d, %r11d - WORD $0xf741; BYTE $0xd3 // notl %r11d - WORD $0x0145; BYTE $0xd3 // addl %r10d, %r11d - WORD $0xc031 // xorl %eax, %eax - LONG $0x7efb8341 // cmpl $126, %r11d - LONG $0x01bd860f; WORD $0x0000 // jbe LBB32_134, $445(%rip) - WORD $0xff49; BYTE $0xc3 // incq %r11 - WORD $0x894c; BYTE $0xd8 // movq %r11, %rax - LONG $0x80e08348 // andq $-128, %rax - LONG $0x000c8d4d // leaq (%r8,%rax), %r9 - LONG $0x80488d48 // leaq $-128(%rax), %rcx - WORD $0x8949; BYTE $0xcf // movq %rcx, %r15 - LONG $0x07efc149 // shrq $7, %r15 - WORD $0xff49; BYTE $0xc7 // incq %r15 - WORD $0x8945; BYTE $0xfa // movl %r15d, %r10d - LONG $0x03e28341 // andl $3, %r10d - LONG $0x80f98148; WORD $0x0001; BYTE $0x00 // cmpq $384, %rcx - LONG $0x0097830f; WORD $0x0000 // jae LBB32_128, $151(%rip) - WORD $0xc931 // xorl %ecx, %ecx - LONG $0x000139e9; BYTE $0x00 // jmp LBB32_130, $313(%rip) - -LBB32_115: - WORD $0x894d; BYTE $0xc8 // movq %r9, %r8 - LONG $0x0001a0e9; BYTE $0x00 // jmp LBB32_136, $416(%rip) - -LBB32_101: - LONG $0x0004b941; WORD $0x0000 // movl $4, %r9d - LONG $0xfcc08348 // addq $-4, %rax - LONG $0x64fb8341 // cmpl $100, %r11d - LONG $0xfe96820f; WORD $0xffff // jb LBB32_100, $-362(%rip) - LONG $0xfffea9e9; BYTE $0xff // jmp LBB32_103, $-343(%rip) - -LBB32_121: - LONG $0xfce38341 // andl $-4, %r11d - WORD $0xf749; BYTE $0xdb // negq %r11 - WORD $0xc931 // xorl %ecx, %ecx - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB32_122: - LONG $0x081c8d49 // leaq (%r8,%rcx), %rbx - LONG $0xfc1a748b // movl $-4(%rdx,%rbx), %esi - LONG $0xfd1a7489 // movl %esi, $-3(%rdx,%rbx) - LONG $0xfcc18348 // addq $-4, %rcx - WORD $0x3949; BYTE $0xcb // cmpq %rcx, %r11 - LONG $0xffe7850f; WORD $0xffff // jne LBB32_122, $-25(%rip) - WORD $0xf748; BYTE $0xd9 // negq %rcx - -LBB32_124: - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x0025840f; WORD $0x0000 // je LBB32_127, $37(%rip) - WORD $0xf749; BYTE $0xd9 // negq %r9 - WORD $0x894c; BYTE $0xc2 // movq %r8, %rdx - WORD $0x2948; BYTE $0xca // subq %rcx, %rdx - WORD $0xc931 // xorl %ecx, %ecx - - // .p2align 4, 0x90 -LBB32_126: - LONG $0x0a348d48 // leaq (%rdx,%rcx), %rsi - LONG $0x1cb60f41; BYTE $0x34 // movzbl (%r12,%rsi), %ebx - LONG $0x345c8841; BYTE $0x01 // movb %bl, $1(%r12,%rsi) - WORD $0xff48; BYTE $0xc9 // decq %rcx - WORD $0x3949; BYTE $0xc9 // cmpq %rcx, %r9 - LONG $0xffe6850f; WORD $0xffff // jne LBB32_126, $-26(%rip) - -LBB32_127: - WORD $0x6349; BYTE $0xca // movslq %r10d, %rcx - LONG $0x0804c641; BYTE $0x2e // movb $46, (%r8,%rcx) - WORD $0x0149; BYTE $0xc0 // addq %rax, %r8 - LONG $0x000118e9; BYTE $0x00 // jmp LBB32_136, $280(%rip) - -LBB32_128: - LONG $0xfce78349 // andq $-4, %r15 - WORD $0xf749; BYTE $0xdf // negq %r15 - WORD $0xc931 // xorl %ecx, %ecx - QUAD $0xfffff3e5056ffdc5 // vmovdqa $-3099(%rip), %ymm0 /* LCPI32_0(%rip) */ - -LBB32_129: - LONG $0x081c8d49 // leaq (%r8,%rcx), %rbx - LONG $0x047ffec5; BYTE $0x1a // vmovdqu %ymm0, (%rdx,%rbx) - LONG $0x447ffec5; WORD $0x201a // vmovdqu %ymm0, $32(%rdx,%rbx) - LONG $0x447ffec5; WORD $0x401a // vmovdqu %ymm0, $64(%rdx,%rbx) - LONG $0x447ffec5; WORD $0x601a // vmovdqu %ymm0, $96(%rdx,%rbx) - QUAD $0x0000801a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $128(%rdx,%rbx) - QUAD $0x0000a01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $160(%rdx,%rbx) - QUAD $0x0000c01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $192(%rdx,%rbx) - QUAD $0x0000e01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $224(%rdx,%rbx) - QUAD $0x0001001a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $256(%rdx,%rbx) - QUAD $0x0001201a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $288(%rdx,%rbx) - QUAD $0x0001401a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $320(%rdx,%rbx) - QUAD $0x0001601a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $352(%rdx,%rbx) - QUAD $0x0001801a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $384(%rdx,%rbx) - QUAD $0x0001a01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $416(%rdx,%rbx) - QUAD $0x0001c01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $448(%rdx,%rbx) - QUAD $0x0001e01a847ffec5; BYTE $0x00 // vmovdqu %ymm0, $480(%rdx,%rbx) - LONG $0x00c18148; WORD $0x0002; BYTE $0x00 // addq $512, %rcx - LONG $0x04c78349 // addq $4, %r15 - LONG $0xff68850f; WORD $0xffff // jne LBB32_129, $-152(%rip) - -LBB32_130: - WORD $0x0149; BYTE $0xd1 // addq %rdx, %r9 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0x0035840f; WORD $0x0000 // je LBB32_133, $53(%rip) - WORD $0x0149; BYTE $0xc8 // addq %rcx, %r8 - WORD $0x0149; BYTE $0xf0 // addq %rsi, %r8 - WORD $0xf749; BYTE $0xda // negq %r10 - QUAD $0xfffff330056ffdc5 // vmovdqa $-3280(%rip), %ymm0 /* LCPI32_0(%rip) */ - -LBB32_132: - LONG $0x7f7ec1c4; WORD $0xa040 // vmovdqu %ymm0, $-96(%r8) - LONG $0x7f7ec1c4; WORD $0xc040 // vmovdqu %ymm0, $-64(%r8) - LONG $0x7f7ec1c4; WORD $0xe040 // vmovdqu %ymm0, $-32(%r8) - LONG $0x7f7ec1c4; BYTE $0x00 // vmovdqu %ymm0, (%r8) - LONG $0x80e88349 // subq $-128, %r8 - WORD $0xff49; BYTE $0xc2 // incq %r10 - LONG $0xffdc850f; WORD $0xffff // jne LBB32_132, $-36(%rip) - -LBB32_133: - WORD $0x894d; BYTE $0xc8 // movq %r9, %r8 - WORD $0x3949; BYTE $0xc3 // cmpq %rax, %r11 - LONG $0x0022840f; WORD $0x0000 // je LBB32_136, $34(%rip) - -LBB32_134: - WORD $0x894d; BYTE $0xc8 // movq %r9, %r8 - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB32_135: - LONG $0x3000c641 // movb $48, (%r8) - WORD $0xff49; BYTE $0xc0 // incq %r8 - WORD $0xc0ff // incl %eax - WORD $0x3944; BYTE $0xf0 // cmpl %r14d, %eax - LONG $0xffee8c0f; WORD $0xffff // jl LBB32_135, $-18(%rip) - -LBB32_136: - WORD $0x2941; BYTE $0xf8 // subl %edi, %r8d - -LBB32_137: - WORD $0x8944; BYTE $0xc0 // movl %r8d, %eax - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB32_138: - WORD $0x3145; BYTE $0xc0 // xorl %r8d, %r8d - LONG $0xffffe7e9; BYTE $0xff // jmp LBB32_137, $-25(%rip) - -LBB32_139: - LONG $0xff6bbf41; WORD $0xffff // movl $-149, %r15d - WORD $0xc689 // movl %eax, %esi - LONG $0xfff352e9; BYTE $0xff // jmp LBB32_5, $-3246(%rip) - LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -_format_significand: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - WORD $0x634c; BYTE $0xc2 // movslq %edx, %r8 - WORD $0x0149; BYTE $0xf0 // addq %rsi, %r8 - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0x20e8c148 // shrq $32, %rax - LONG $0x001c850f; WORD $0x0000 // jne LBB33_2, $28(%rip) - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - WORD $0x894d; BYTE $0xc6 // movq %r8, %r14 - WORD $0x8948; BYTE $0xfa // movq %rdi, %rdx - LONG $0x2710fa81; WORD $0x0000 // cmpl $10000, %edx - LONG $0x00e3830f; WORD $0x0000 // jae LBB33_8, $227(%rip) - -LBB33_7: - WORD $0xd789 // movl %edx, %edi - LONG $0x000132e9; BYTE $0x00 // jmp LBB33_10, $306(%rip) - -LBB33_2: - QUAD $0x77118461cefdb948; WORD $0xabcc // movabsq $-6067343680855748867, %rcx - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - WORD $0xf748; BYTE $0xe1 // mulq %rcx - LONG $0x1aeac148 // shrq $26, %rdx - LONG $0x1f00ca69; WORD $0xfa0a // imull $-100000000, %edx, %ecx - WORD $0xf901 // addl %edi, %ecx - LONG $0x00a4840f; WORD $0x0000 // je LBB33_3, $164(%rip) - WORD $0xc889 // movl %ecx, %eax - LONG $0x1759b941; WORD $0xd1b7 // movl $3518437209, %r9d - LONG $0xc1af0f49 // imulq %r9, %rax - LONG $0x2de8c148 // shrq $45, %rax - LONG $0x2710f869; WORD $0x0000 // imull $10000, %eax, %edi - WORD $0xf929 // subl %edi, %ecx - WORD $0x8948; BYTE $0xc7 // movq %rax, %rdi - LONG $0xf9af0f49 // imulq %r9, %rdi - LONG $0x2defc148 // shrq $45, %rdi - LONG $0x2710ff69; WORD $0x0000 // imull $10000, %edi, %edi - WORD $0xf829 // subl %edi, %eax - WORD $0xb70f; BYTE $0xf9 // movzwl %cx, %edi - WORD $0xefc1; BYTE $0x02 // shrl $2, %edi - LONG $0x7bcf6944; WORD $0x0014; BYTE $0x00 // imull $5243, %edi, %r9d - LONG $0x11e9c141 // shrl $17, %r9d - LONG $0x64f96b41 // imull $100, %r9d, %edi - WORD $0xf929 // subl %edi, %ecx - LONG $0xd1b70f44 // movzwl %cx, %r10d - WORD $0xb70f; BYTE $0xf8 // movzwl %ax, %edi - WORD $0xefc1; BYTE $0x02 // shrl $2, %edi - LONG $0x147bff69; WORD $0x0000 // imull $5243, %edi, %edi - WORD $0xefc1; BYTE $0x11 // shrl $17, %edi - WORD $0xcf6b; BYTE $0x64 // imull $100, %edi, %ecx - WORD $0xc829 // subl %ecx, %eax - LONG $0xd8b70f44 // movzwl %ax, %r11d - LONG $0x930d8d48; WORD $0x0033; BYTE $0x00 // leaq $13203(%rip), %rcx /* _Digits(%rip) */ - LONG $0x04b70f42; BYTE $0x51 // movzwl (%rcx,%r10,2), %eax - LONG $0x40894166; BYTE $0xfe // movw %ax, $-2(%r8) - LONG $0x04b70f42; BYTE $0x49 // movzwl (%rcx,%r9,2), %eax - LONG $0x40894166; BYTE $0xfc // movw %ax, $-4(%r8) - LONG $0x04b70f42; BYTE $0x59 // movzwl (%rcx,%r11,2), %eax - LONG $0x40894166; BYTE $0xfa // movw %ax, $-6(%r8) - LONG $0x7904b70f // movzwl (%rcx,%rdi,2), %eax - LONG $0x40894166; BYTE $0xf8 // movw %ax, $-8(%r8) - WORD $0x3145; BYTE $0xc9 // xorl %r9d, %r9d - LONG $0xf8708d4d // leaq $-8(%r8), %r14 - LONG $0x2710fa81; WORD $0x0000 // cmpl $10000, %edx - LONG $0xff38820f; WORD $0xffff // jb LBB33_7, $-200(%rip) - LONG $0x000016e9; BYTE $0x00 // jmp LBB33_8, $22(%rip) - -LBB33_3: - LONG $0x0008b941; WORD $0x0000 // movl $8, %r9d - LONG $0xf8708d4d // leaq $-8(%r8), %r14 - LONG $0x2710fa81; WORD $0x0000 // cmpl $10000, %edx - LONG $0xff1d820f; WORD $0xffff // jb LBB33_7, $-227(%rip) - -LBB33_8: - LONG $0x1759ba41; WORD $0xd1b7 // movl $3518437209, %r10d - LONG $0x311d8d4c; WORD $0x0033; BYTE $0x00 // leaq $13105(%rip), %r11 /* _Digits(%rip) */ - BYTE $0x90 // .p2align 4, 0x90 - -LBB33_9: - WORD $0xd789 // movl %edx, %edi - LONG $0xfaaf0f49 // imulq %r10, %rdi - LONG $0x2defc148 // shrq $45, %rdi - LONG $0xd8f0c769; WORD $0xffff // imull $-10000, %edi, %eax - WORD $0xd001 // addl %edx, %eax - LONG $0x1fd86948; WORD $0xeb85; BYTE $0x51 // imulq $1374389535, %rax, %rbx - LONG $0x25ebc148 // shrq $37, %rbx - WORD $0xcb6b; BYTE $0x64 // imull $100, %ebx, %ecx - WORD $0xc829 // subl %ecx, %eax - LONG $0x04b70f41; BYTE $0x43 // movzwl (%r11,%rax,2), %eax - LONG $0x46894166; BYTE $0xfe // movw %ax, $-2(%r14) - LONG $0x04b70f41; BYTE $0x5b // movzwl (%r11,%rbx,2), %eax - LONG $0x46894166; BYTE $0xfc // movw %ax, $-4(%r14) - LONG $0xfcc68349 // addq $-4, %r14 - LONG $0xe0fffa81; WORD $0x05f5 // cmpl $99999999, %edx - WORD $0xfa89 // movl %edi, %edx - LONG $0xffb8870f; WORD $0xffff // ja LBB33_9, $-72(%rip) - -LBB33_10: - WORD $0xff83; BYTE $0x64 // cmpl $100, %edi - LONG $0x0020830f; WORD $0x0000 // jae LBB33_11, $32(%rip) - WORD $0xff83; BYTE $0x0a // cmpl $10, %edi - LONG $0x004d820f; WORD $0x0000 // jb LBB33_14, $77(%rip) - -LBB33_13: - WORD $0xf889 // movl %edi, %eax - LONG $0xcd0d8d48; WORD $0x0032; BYTE $0x00 // leaq $13005(%rip), %rcx /* _Digits(%rip) */ - LONG $0x4104b70f // movzwl (%rcx,%rax,2), %eax - LONG $0x46894166; BYTE $0xfe // movw %ax, $-2(%r14) - LONG $0x00003de9; BYTE $0x00 // jmp LBB33_15, $61(%rip) - -LBB33_11: - WORD $0xb70f; BYTE $0xc7 // movzwl %di, %eax - WORD $0xe8c1; BYTE $0x02 // shrl $2, %eax - LONG $0x147bc069; WORD $0x0000 // imull $5243, %eax, %eax - WORD $0xe8c1; BYTE $0x11 // shrl $17, %eax - WORD $0xc86b; BYTE $0x64 // imull $100, %eax, %ecx - WORD $0xcf29 // subl %ecx, %edi - WORD $0xb70f; BYTE $0xcf // movzwl %di, %ecx - LONG $0xa1158d48; WORD $0x0032; BYTE $0x00 // leaq $12961(%rip), %rdx /* _Digits(%rip) */ - LONG $0x4a0cb70f // movzwl (%rdx,%rcx,2), %ecx - LONG $0x4e894166; BYTE $0xfe // movw %cx, $-2(%r14) - LONG $0xfec68349 // addq $-2, %r14 - WORD $0xc789 // movl %eax, %edi - WORD $0xff83; BYTE $0x0a // cmpl $10, %edi - LONG $0xffb3830f; WORD $0xffff // jae LBB33_13, $-77(%rip) - -LBB33_14: - LONG $0x30c78040 // addb $48, %dil - WORD $0x8840; BYTE $0x3e // movb %dil, (%rsi) - -LBB33_15: - WORD $0x294d; BYTE $0xc8 // subq %r9, %r8 - WORD $0x894c; BYTE $0xc0 // movq %r8, %rax - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -_left_shift: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5641 // pushq %r14 - BYTE $0x53 // pushq %rbx - WORD $0xf189 // movl %esi, %ecx - LONG $0x68d16b48 // imulq $104, %rcx, %rdx - LONG $0x4c358d48; WORD $0x008c; BYTE $0x00 // leaq $35916(%rip), %rsi /* _LSHIFT_TAB(%rip) */ - LONG $0x32048b44 // movl (%rdx,%rsi), %r8d - WORD $0x8b4c; BYTE $0x17 // movq (%rdi), %r10 - LONG $0x104f634c // movslq $16(%rdi), %r9 - LONG $0x0432448a // movb $4(%rdx,%rsi), %al - WORD $0x854d; BYTE $0xc9 // testq %r9, %r9 - LONG $0x0036840f; WORD $0x0000 // je LBB34_6, $54(%rip) - LONG $0x32548d48; BYTE $0x05 // leaq $5(%rdx,%rsi), %rdx - WORD $0xf631 // xorl %esi, %esi - QUAD $0x9090909090909090; LONG $0x90909090; BYTE $0x90 // .p2align 4, 0x90 - -LBB34_3: - WORD $0xc084 // testb %al, %al - LONG $0x0025840f; WORD $0x0000 // je LBB34_8, $37(%rip) - LONG $0x32043841 // cmpb %al, (%r10,%rsi) - LONG $0x0189850f; WORD $0x0000 // jne LBB34_5, $393(%rip) - LONG $0x3204b60f // movzbl (%rdx,%rsi), %eax - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0x3949; BYTE $0xf1 // cmpq %rsi, %r9 - LONG $0xffde850f; WORD $0xffff // jne LBB34_3, $-34(%rip) - -LBB34_6: - WORD $0xc084 // testb %al, %al - LONG $0x0003840f; WORD $0x0000 // je LBB34_8, $3(%rip) - -LBB34_7: - WORD $0xff41; BYTE $0xc8 // decl %r8d - -LBB34_8: - WORD $0x8545; BYTE $0xc9 // testl %r9d, %r9d - LONG $0x008c8e0f; WORD $0x0000 // jle LBB34_23, $140(%rip) - LONG $0x08048d43 // leal (%r8,%r9), %eax - WORD $0x634c; BYTE $0xf0 // movslq %eax, %r14 - WORD $0xff49; BYTE $0xce // decq %r14 - WORD $0xd231 // xorl %edx, %edx - QUAD $0xcccccccccccdbb49; WORD $0xcccc // movabsq $-3689348814741910323, %r11 - LONG $0x90909090 // .p2align 4, 0x90 - -LBB34_10: - LONG $0x74be0f4b; WORD $0xff0a // movsbq $-1(%r10,%r9), %rsi - LONG $0xd0c68348 // addq $-48, %rsi - WORD $0xd348; BYTE $0xe6 // shlq %cl, %rsi - WORD $0x0148; BYTE $0xd6 // addq %rdx, %rsi - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - LONG $0x03eac148 // shrq $3, %rdx - LONG $0x12048d48 // leaq (%rdx,%rdx), %rax - LONG $0x801c8d48 // leaq (%rax,%rax,4), %rbx - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x2948; BYTE $0xd8 // subq %rbx, %rax - LONG $0x0877394c // cmpq %r14, $8(%rdi) - LONG $0x000e860f; WORD $0x0000 // jbe LBB34_16, $14(%rip) - WORD $0x3004 // addb $48, %al - LONG $0x32048843 // movb %al, (%r10,%r14) - LONG $0x000013e9; BYTE $0x00 // jmp LBB34_18, $19(%rip) - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB34_16: - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0007840f; WORD $0x0000 // je LBB34_18, $7(%rip) - LONG $0x011c47c7; WORD $0x0000; BYTE $0x00 // movl $1, $28(%rdi) - -LBB34_18: - LONG $0x02f98349 // cmpq $2, %r9 - LONG $0x000e8c0f; WORD $0x0000 // jl LBB34_12, $14(%rip) - WORD $0xff49; BYTE $0xc9 // decq %r9 - WORD $0x8b4c; BYTE $0x17 // movq (%rdi), %r10 - WORD $0xff49; BYTE $0xce // decq %r14 - LONG $0xffff98e9; BYTE $0xff // jmp LBB34_10, $-104(%rip) - -LBB34_12: - LONG $0x0afe8348 // cmpq $10, %rsi - LONG $0x0067830f; WORD $0x0000 // jae LBB34_13, $103(%rip) - -LBB34_23: - LONG $0x104f6348 // movslq $16(%rdi), %rcx - WORD $0x6349; BYTE $0xc0 // movslq %r8d, %rax - WORD $0x0148; BYTE $0xc8 // addq %rcx, %rax - WORD $0x4789; BYTE $0x10 // movl %eax, $16(%rdi) - LONG $0x084f8b48 // movq $8(%rdi), %rcx - WORD $0x3948; BYTE $0xc1 // cmpq %rax, %rcx - LONG $0x0005870f; WORD $0x0000 // ja LBB34_25, $5(%rip) - WORD $0x4f89; BYTE $0x10 // movl %ecx, $16(%rdi) - WORD $0xc889 // movl %ecx, %eax - -LBB34_25: - LONG $0x14470144 // addl %r8d, $20(%rdi) - WORD $0xc085 // testl %eax, %eax - LONG $0x002f8e0f; WORD $0x0000 // jle LBB34_29, $47(%rip) - WORD $0x8b48; BYTE $0x0f // movq (%rdi), %rcx - WORD $0xc289 // movl %eax, %edx - WORD $0xff48; BYTE $0xc2 // incq %rdx - QUAD $0x9090909090909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB34_27: - WORD $0xc8ff // decl %eax - LONG $0x30013c80 // cmpb $48, (%rcx,%rax) - LONG $0x0018850f; WORD $0x0000 // jne LBB34_31, $24(%rip) - WORD $0x4789; BYTE $0x10 // movl %eax, $16(%rdi) - WORD $0xff48; BYTE $0xca // decq %rdx - LONG $0x01fa8348 // cmpq $1, %rdx - LONG $0xffe48f0f; WORD $0xffff // jg LBB34_27, $-28(%rip) - -LBB34_29: - WORD $0xc085 // testl %eax, %eax - LONG $0x006b840f; WORD $0x0000 // je LBB34_30, $107(%rip) - -LBB34_31: - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB34_13: - WORD $0x6349; BYTE $0xf6 // movslq %r14d, %rsi - WORD $0xff48; BYTE $0xce // decq %rsi - LONG $0x000021e9; BYTE $0x00 // jmp LBB34_14, $33(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - -LBB34_15: - WORD $0x3004 // addb $48, %al - WORD $0x8b48; BYTE $0x1f // movq (%rdi), %rbx - WORD $0x0488; BYTE $0x33 // movb %al, (%rbx,%rsi) - -LBB34_22: - WORD $0xff48; BYTE $0xce // decq %rsi - LONG $0x09f98348 // cmpq $9, %rcx - LONG $0xff6d860f; WORD $0xffff // jbe LBB34_23, $-147(%rip) - -LBB34_14: - WORD $0x8948; BYTE $0xd1 // movq %rdx, %rcx - WORD $0x8948; BYTE $0xd0 // movq %rdx, %rax - WORD $0xf749; BYTE $0xe3 // mulq %r11 - LONG $0x03eac148 // shrq $3, %rdx - LONG $0x12048d48 // leaq (%rdx,%rdx), %rax - LONG $0x801c8d48 // leaq (%rax,%rax,4), %rbx - WORD $0x8948; BYTE $0xc8 // movq %rcx, %rax - WORD $0x2948; BYTE $0xd8 // subq %rbx, %rax - LONG $0x08773948 // cmpq %rsi, $8(%rdi) - LONG $0xffc6870f; WORD $0xffff // ja LBB34_15, $-58(%rip) - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0xffc5840f; WORD $0xffff // je LBB34_22, $-59(%rip) - LONG $0x011c47c7; WORD $0x0000; BYTE $0x00 // movl $1, $28(%rdi) - LONG $0xffffb9e9; BYTE $0xff // jmp LBB34_22, $-71(%rip) - -LBB34_30: - LONG $0x001447c7; WORD $0x0000; BYTE $0x00 // movl $0, $20(%rdi) - BYTE $0x5b // popq %rbx - WORD $0x5e41 // popq %r14 - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB34_5: - LONG $0xfe898c0f; WORD $0xffff // jl LBB34_7, $-375(%rip) - LONG $0xfffe87e9; BYTE $0xff // jmp LBB34_8, $-377(%rip) - QUAD $0x9090909090909090; WORD $0x9090 // .p2align 4, 0x90 - -_right_shift: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - BYTE $0x53 // pushq %rbx - WORD $0xf189 // movl %esi, %ecx - LONG $0x10478b44 // movl $16(%rdi), %r8d - WORD $0xd231 // xorl %edx, %edx - WORD $0x8545; BYTE $0xc0 // testl %r8d, %r8d - LONG $0x0000bb41; WORD $0x0000 // movl $0, %r11d - LONG $0xd8490f45 // cmovnsl %r8d, %r11d - WORD $0xc031 // xorl %eax, %eax - LONG $0x90909090 // .p2align 4, 0x90 - -LBB35_1: - WORD $0x3949; BYTE $0xd3 // cmpq %rdx, %r11 - LONG $0x0132840f; WORD $0x0000 // je LBB35_2, $306(%rip) - LONG $0x80048d48 // leaq (%rax,%rax,4), %rax - WORD $0x8b48; BYTE $0x37 // movq (%rdi), %rsi - LONG $0x34be0f48; BYTE $0x16 // movsbq (%rsi,%rdx), %rsi - LONG $0x46448d48; BYTE $0xd0 // leaq $-48(%rsi,%rax,2), %rax - WORD $0xff48; BYTE $0xc2 // incq %rdx - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0xd348; BYTE $0xee // shrq %cl, %rsi - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0xffd4840f; WORD $0xffff // je LBB35_1, $-44(%rip) - WORD $0x8941; BYTE $0xd3 // movl %edx, %r11d - -LBB35_7: - WORD $0x578b; BYTE $0x14 // movl $20(%rdi), %edx - WORD $0x2944; BYTE $0xda // subl %r11d, %edx - WORD $0xc2ff // incl %edx - LONG $0xffc1c749; WORD $0xffff; BYTE $0xff // movq $-1, %r9 - WORD $0xd349; BYTE $0xe1 // shlq %cl, %r9 - WORD $0x5789; BYTE $0x14 // movl %edx, $20(%rdi) - WORD $0xf749; BYTE $0xd1 // notq %r9 - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - WORD $0x3945; BYTE $0xc3 // cmpl %r8d, %r11d - LONG $0x00648d0f; WORD $0x0000 // jge LBB35_10, $100(%rip) - WORD $0x634d; BYTE $0xc3 // movslq %r11d, %r8 - WORD $0x8b48; BYTE $0x37 // movq (%rdi), %rsi - WORD $0x3145; BYTE $0xd2 // xorl %r10d, %r10d - LONG $0x90909090 // .p2align 4, 0x90 - -LBB35_9: - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - WORD $0xd348; BYTE $0xea // shrq %cl, %rdx - WORD $0x214c; BYTE $0xc8 // andq %r9, %rax - WORD $0xc280; BYTE $0x30 // addb $48, %dl - LONG $0x16148842 // movb %dl, (%rsi,%r10) - WORD $0x8b48; BYTE $0x37 // movq (%rdi), %rsi - LONG $0x06148d4a // leaq (%rsi,%r8), %rdx - LONG $0x1cbe0f4d; BYTE $0x12 // movsbq (%r10,%rdx), %r11 - LONG $0x105c8d4b; BYTE $0x01 // leaq $1(%r8,%r10), %rbx - LONG $0x01528d4d // leaq $1(%r10), %r10 - LONG $0x80048d48 // leaq (%rax,%rax,4), %rax - LONG $0x43448d49; BYTE $0xd0 // leaq $-48(%r11,%rax,2), %rax - LONG $0x10576348 // movslq $16(%rdi), %rdx - WORD $0x3948; BYTE $0xd3 // cmpq %rdx, %rbx - LONG $0xffc58c0f; WORD $0xffff // jl LBB35_9, $-59(%rip) - LONG $0x000017e9; BYTE $0x00 // jmp LBB35_10, $23(%rip) - - // .p2align 4, 0x90 -LBB35_12: - LONG $0x30c68040 // addb $48, %sil - WORD $0x8b48; BYTE $0x1f // movq (%rdi), %rbx - LONG $0x13348840 // movb %sil, (%rbx,%rdx) - WORD $0xc2ff // incl %edx - WORD $0x8941; BYTE $0xd2 // movl %edx, %r10d - -LBB35_15: - WORD $0x0148; BYTE $0xc0 // addq %rax, %rax - LONG $0x80048d48 // leaq (%rax,%rax,4), %rax - -LBB35_10: - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x002b840f; WORD $0x0000 // je LBB35_16, $43(%rip) - WORD $0x8948; BYTE $0xc6 // movq %rax, %rsi - WORD $0xd348; BYTE $0xee // shrq %cl, %rsi - WORD $0x214c; BYTE $0xc8 // andq %r9, %rax - WORD $0x6349; BYTE $0xd2 // movslq %r10d, %rdx - LONG $0x08573948 // cmpq %rdx, $8(%rdi) - LONG $0xffca870f; WORD $0xffff // ja LBB35_12, $-54(%rip) - WORD $0x8548; BYTE $0xf6 // testq %rsi, %rsi - LONG $0xffd1840f; WORD $0xffff // je LBB35_15, $-47(%rip) - LONG $0x011c47c7; WORD $0x0000; BYTE $0x00 // movl $1, $28(%rdi) - LONG $0xffffc5e9; BYTE $0xff // jmp LBB35_15, $-59(%rip) - -LBB35_16: - LONG $0x10578944 // movl %r10d, $16(%rdi) - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x00378e0f; WORD $0x0000 // jle LBB35_20, $55(%rip) - WORD $0x8b48; BYTE $0x07 // movq (%rdi), %rax - WORD $0x8944; BYTE $0xd1 // movl %r10d, %ecx - WORD $0xff48; BYTE $0xc1 // incq %rcx - QUAD $0x9090909090909090; LONG $0x90909090; WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB35_18: - WORD $0xff41; BYTE $0xca // decl %r10d - LONG $0x103c8042; BYTE $0x30 // cmpb $48, (%rax,%r10) - LONG $0x001a850f; WORD $0x0000 // jne LBB35_22, $26(%rip) - LONG $0x10578944 // movl %r10d, $16(%rdi) - WORD $0xff48; BYTE $0xc9 // decq %rcx - LONG $0x01f98348 // cmpq $1, %rcx - LONG $0xffe18f0f; WORD $0xffff // jg LBB35_18, $-31(%rip) - -LBB35_20: - WORD $0x8545; BYTE $0xd2 // testl %r10d, %r10d - LONG $0x0045840f; WORD $0x0000 // je LBB35_21, $69(%rip) - -LBB35_22: - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB35_2: - WORD $0x8548; BYTE $0xc0 // testq %rax, %rax - LONG $0x0043840f; WORD $0x0000 // je LBB35_23, $67(%rip) - QUAD $0x9090909090909090; LONG $0x90909090 // .p2align 4, 0x90 - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - WORD $0xd348; BYTE $0xea // shrq %cl, %rdx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xfed0850f; WORD $0xffff // jne LBB35_7, $-304(%rip) - -LBB35_4: - WORD $0x0148; BYTE $0xc0 // addq %rax, %rax - LONG $0x80048d48 // leaq (%rax,%rax,4), %rax - WORD $0xff41; BYTE $0xc3 // incl %r11d - WORD $0x8948; BYTE $0xc2 // movq %rax, %rdx - WORD $0xd348; BYTE $0xea // shrq %cl, %rdx - WORD $0x8548; BYTE $0xd2 // testq %rdx, %rdx - LONG $0xffe7840f; WORD $0xffff // je LBB35_4, $-25(%rip) - LONG $0xfffeb2e9; BYTE $0xff // jmp LBB35_7, $-334(%rip) - -LBB35_21: - LONG $0x001447c7; WORD $0x0000; BYTE $0x00 // movl $0, $20(%rdi) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - -LBB35_23: - LONG $0x001047c7; WORD $0x0000; BYTE $0x00 // movl $0, $16(%rdi) - BYTE $0x5b // popq %rbx - BYTE $0x5d // popq %rbp - BYTE $0xc3 // retq - QUAD $0x0000000000000000; LONG $0x00000000; WORD $0x0000; BYTE $0x00 // .p2align 5, 0x00 - -LCPI36_0: - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - -LCPI36_1: - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - - // .p2align 4, 0x90 -_advance_string_default: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - LONG $0x087f8b4c // movq $8(%rdi), %r15 - WORD $0x2949; BYTE $0xf7 // subq %rsi, %r15 - LONG $0x028e840f; WORD $0x0000 // je LBB36_16, $654(%rip) - WORD $0x8b4c; BYTE $0x1f // movq (%rdi), %r11 - WORD $0x014c; BYTE $0xde // addq %r11, %rsi - LONG $0xff02c748; WORD $0xffff; BYTE $0xff // movq $-1, (%rdx) - LONG $0xffc0c749; WORD $0xffff; BYTE $0xff // movq $-1, %r8 - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - LONG $0x40ff8349 // cmpq $64, %r15 - LONG $0x00ed820f; WORD $0x0000 // jb LBB36_10, $237(%rip) - QUAD $0xffffff7f056ffdc5 // vmovdqa $-129(%rip), %ymm0 /* LCPI36_0(%rip) */ - QUAD $0xffffff970d6ffdc5 // vmovdqa $-105(%rip), %ymm1 /* LCPI36_1(%rip) */ - QUAD $0xaaaaaaaaaaaab949; WORD $0xaaaa // movabsq $-6148914691236517206, %r9 - QUAD $0x555555555555ba49; WORD $0x5555 // movabsq $6148914691236517205, %r10 - WORD $0x9090; BYTE $0x90 // .p2align 4, 0x90 - -LBB36_3: - LONG $0x166ffec5 // vmovdqu (%rsi), %ymm2 - LONG $0x5e6ffec5; BYTE $0x20 // vmovdqu $32(%rsi), %ymm3 - LONG $0xe074edc5 // vpcmpeqb %ymm0, %ymm2, %ymm4 - LONG $0xfcd7fdc5 // vpmovmskb %ymm4, %edi - LONG $0xe074e5c5 // vpcmpeqb %ymm0, %ymm3, %ymm4 - LONG $0xc4d7fdc5 // vpmovmskb %ymm4, %eax - LONG $0xd174edc5 // vpcmpeqb %ymm1, %ymm2, %ymm2 - LONG $0xdad7fdc5 // vpmovmskb %ymm2, %ebx - LONG $0xd174e5c5 // vpcmpeqb %ymm1, %ymm3, %ymm2 - LONG $0xcad7fdc5 // vpmovmskb %ymm2, %ecx - LONG $0x20e0c148 // shlq $32, %rax - WORD $0x0948; BYTE $0xc7 // orq %rax, %rdi - LONG $0x20e1c148 // shlq $32, %rcx - WORD $0x0948; BYTE $0xcb // orq %rcx, %rbx - LONG $0x002c850f; WORD $0x0000 // jne LBB36_7, $44(%rip) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x003d850f; WORD $0x0000 // jne LBB36_9, $61(%rip) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x00b7850f; WORD $0x0000 // jne LBB36_14, $183(%rip) - -LBB36_6: - LONG $0x40c68348 // addq $64, %rsi - LONG $0xc0c78349 // addq $-64, %r15 - LONG $0x3fff8349 // cmpq $63, %r15 - LONG $0xff9c870f; WORD $0xffff // ja LBB36_3, $-100(%rip) - LONG $0x00005de9; BYTE $0x00 // jmp LBB36_10, $93(%rip) - -LBB36_7: - LONG $0xfff88349 // cmpq $-1, %r8 - LONG $0x0010850f; WORD $0x0000 // jne LBB36_9, $16(%rip) - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x294c; BYTE $0xd8 // subq %r11, %rax - LONG $0xc3bc0f4c // bsfq %rbx, %r8 - WORD $0x0149; BYTE $0xc0 // addq %rax, %r8 - WORD $0x894c; BYTE $0x02 // movq %r8, (%rdx) - -LBB36_9: - WORD $0x894c; BYTE $0xf0 // movq %r14, %rax - WORD $0xf748; BYTE $0xd0 // notq %rax - WORD $0x2148; BYTE $0xd8 // andq %rbx, %rax - LONG $0x00248d4c // leaq (%rax,%rax), %r12 - WORD $0x094d; BYTE $0xf4 // orq %r14, %r12 - WORD $0x894c; BYTE $0xe1 // movq %r12, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - WORD $0x2148; BYTE $0xd9 // andq %rbx, %rcx - WORD $0x214c; BYTE $0xc9 // andq %r9, %rcx - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x0148; BYTE $0xc1 // addq %rax, %rcx - LONG $0xc6920f41 // setb %r14b - WORD $0x0148; BYTE $0xc9 // addq %rcx, %rcx - WORD $0x314c; BYTE $0xd1 // xorq %r10, %rcx - WORD $0x214c; BYTE $0xe1 // andq %r12, %rcx - WORD $0xf748; BYTE $0xd1 // notq %rcx - WORD $0x2148; BYTE $0xcf // andq %rcx, %rdi - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0xff91840f; WORD $0xffff // je LBB36_6, $-111(%rip) - LONG $0x000043e9; BYTE $0x00 // jmp LBB36_14, $67(%rip) - -LBB36_10: - LONG $0x20ff8349 // cmpq $32, %r15 - LONG $0x00ac820f; WORD $0x0000 // jb LBB36_21, $172(%rip) - LONG $0x066ffec5 // vmovdqu (%rsi), %ymm0 - QUAD $0xfffffe840d74fdc5 // vpcmpeqb $-380(%rip), %ymm0, %ymm1 /* LCPI36_0(%rip) */ - LONG $0xf9d7fdc5 // vpmovmskb %ymm1, %edi - QUAD $0xfffffe980574fdc5 // vpcmpeqb $-360(%rip), %ymm0, %ymm0 /* LCPI36_1(%rip) */ - LONG $0xd8d7fdc5 // vpmovmskb %ymm0, %ebx - WORD $0xdb85 // testl %ebx, %ebx - LONG $0x002d850f; WORD $0x0000 // jne LBB36_17, $45(%rip) - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x003e850f; WORD $0x0000 // jne LBB36_19, $62(%rip) - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0x006b840f; WORD $0x0000 // je LBB36_20, $107(%rip) - -LBB36_14: - LONG $0xc7bc0f48 // bsfq %rdi, %rax - WORD $0x294c; BYTE $0xde // subq %r11, %rsi - LONG $0x06448d48; BYTE $0x01 // leaq $1(%rsi,%rax), %rax - -LBB36_15: - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - BYTE $0xc3 // retq - -LBB36_17: - LONG $0xfff88349 // cmpq $-1, %r8 - LONG $0x0010850f; WORD $0x0000 // jne LBB36_19, $16(%rip) - WORD $0x8948; BYTE $0xf0 // movq %rsi, %rax - WORD $0x294c; BYTE $0xd8 // subq %r11, %rax - LONG $0xc3bc0f4c // bsfq %rbx, %r8 - WORD $0x0149; BYTE $0xc0 // addq %rax, %r8 - WORD $0x894c; BYTE $0x02 // movq %r8, (%rdx) - -LBB36_19: - WORD $0x8944; BYTE $0xf0 // movl %r14d, %eax - WORD $0xd0f7 // notl %eax - WORD $0xd821 // andl %ebx, %eax - WORD $0x0c8d; BYTE $0x00 // leal (%rax,%rax), %ecx - LONG $0x460c8d45 // leal (%r14,%rax,2), %r9d - WORD $0xd1f7 // notl %ecx - WORD $0xd921 // andl %ebx, %ecx - LONG $0xaaaae181; WORD $0xaaaa // andl $-1431655766, %ecx - WORD $0x3145; BYTE $0xf6 // xorl %r14d, %r14d - WORD $0xc101 // addl %eax, %ecx - LONG $0xc6920f41 // setb %r14b - WORD $0xc901 // addl %ecx, %ecx - LONG $0x5555f181; WORD $0x5555 // xorl $1431655765, %ecx - WORD $0x2144; BYTE $0xc9 // andl %r9d, %ecx - WORD $0xd1f7 // notl %ecx - WORD $0xcf21 // andl %ecx, %edi - WORD $0x8548; BYTE $0xff // testq %rdi, %rdi - LONG $0xff95850f; WORD $0xffff // jne LBB36_14, $-107(%rip) - -LBB36_20: - LONG $0x20c68348 // addq $32, %rsi - LONG $0xe0c78349 // addq $-32, %r15 - -LBB36_21: - WORD $0x854d; BYTE $0xf6 // testq %r14, %r14 - LONG $0x0087850f; WORD $0x0000 // jne LBB36_32, $135(%rip) - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0xff80840f; WORD $0xffff // je LBB36_15, $-128(%rip) - -LBB36_23: - WORD $0x894d; BYTE $0xd9 // movq %r11, %r9 - WORD $0xf749; BYTE $0xd1 // notq %r9 - -LBB36_24: - LONG $0x017e8d48 // leaq $1(%rsi), %rdi - WORD $0xb60f; BYTE $0x1e // movzbl (%rsi), %ebx - WORD $0xfb80; BYTE $0x22 // cmpb $34, %bl - LONG $0x0056840f; WORD $0x0000 // je LBB36_31, $86(%rip) - LONG $0xff578d4d // leaq $-1(%r15), %r10 - WORD $0xfb80; BYTE $0x5c // cmpb $92, %bl - LONG $0x0014840f; WORD $0x0000 // je LBB36_27, $20(%rip) - WORD $0x894d; BYTE $0xd7 // movq %r10, %r15 - WORD $0x8948; BYTE $0xfe // movq %rdi, %rsi - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xffd4850f; WORD $0xffff // jne LBB36_24, $-44(%rip) - LONG $0xffff49e9; BYTE $0xff // jmp LBB36_15, $-183(%rip) - -LBB36_27: - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xff40840f; WORD $0xffff // je LBB36_15, $-192(%rip) - LONG $0xfff88349 // cmpq $-1, %r8 - LONG $0x0009850f; WORD $0x0000 // jne LBB36_30, $9(%rip) - WORD $0x014c; BYTE $0xcf // addq %r9, %rdi - WORD $0x8948; BYTE $0x3a // movq %rdi, (%rdx) - WORD $0x8949; BYTE $0xf8 // movq %rdi, %r8 - -LBB36_30: - LONG $0x02c68348 // addq $2, %rsi - LONG $0xfec78349 // addq $-2, %r15 - WORD $0x894d; BYTE $0xfa // movq %r15, %r10 - WORD $0x854d; BYTE $0xd2 // testq %r10, %r10 - LONG $0xff9f850f; WORD $0xffff // jne LBB36_24, $-97(%rip) - LONG $0xffff14e9; BYTE $0xff // jmp LBB36_15, $-236(%rip) - -LBB36_31: - WORD $0x294c; BYTE $0xdf // subq %r11, %rdi - WORD $0x8948; BYTE $0xf8 // movq %rdi, %rax - LONG $0xffff09e9; BYTE $0xff // jmp LBB36_15, $-247(%rip) - -LBB36_32: - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0x0031840f; WORD $0x0000 // je LBB36_16, $49(%rip) - LONG $0xfff88349 // cmpq $-1, %r8 - LONG $0x000c850f; WORD $0x0000 // jne LBB36_35, $12(%rip) - WORD $0x894d; BYTE $0xd8 // movq %r11, %r8 - WORD $0xf749; BYTE $0xd0 // notq %r8 - WORD $0x0149; BYTE $0xf0 // addq %rsi, %r8 - WORD $0x894c; BYTE $0x02 // movq %r8, (%rdx) - -LBB36_35: - WORD $0xff48; BYTE $0xc6 // incq %rsi - WORD $0xff49; BYTE $0xcf // decq %r15 - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - WORD $0x854d; BYTE $0xff // testq %r15, %r15 - LONG $0xff54850f; WORD $0xffff // jne LBB36_23, $-172(%rip) - LONG $0xfffecfe9; BYTE $0xff // jmp LBB36_15, $-305(%rip) - -LBB36_16: - LONG $0xffc0c748; WORD $0xffff; BYTE $0xff // movq $-1, %rax - LONG $0xfffec3e9; BYTE $0xff // jmp LBB36_15, $-317(%rip) - QUAD $0x0000000000000000; LONG $0x00000000; WORD $0x0000 // .p2align 4, 0x00 - -_POW10_M128_TAB: - QUAD $0x1732c869cd60e453 // .quad 1671618768450675795 - QUAD $0xfa8fd5a0081c0288 // .quad -391859759250406776 - QUAD $0x0e7fbd42205c8eb4 // .quad 1044761730281672372 - QUAD $0x9c99e58405118195 // .quad -7162441377172586091 - QUAD $0x521fac92a873b261 // .quad 5917638181279478369 - QUAD $0xc3c05ee50655e1fa // .quad -4341365703038344710 - QUAD $0xe6a797b752909ef9 // .quad -1826324310255427847 - QUAD $0xf4b0769e47eb5a78 // .quad -815021110370542984 - QUAD $0x9028bed2939a635c // .quad -8058981721550724260 - QUAD $0x98ee4a22ecf3188b // .quad -7426917221622671221 - QUAD $0x7432ee873880fc33 // .quad 8373016921771146291 - QUAD $0xbf29dcaba82fdeae // .quad -4671960508600951122 - QUAD $0x113faa2906a13b3f // .quad 1242899115359157055 - QUAD $0xeef453d6923bd65a // .quad -1228264617323800998 - QUAD $0x4ac7ca59a424c507 // .quad 5388497965526861063 - QUAD $0x9558b4661b6565f8 // .quad -7685194413468457480 - QUAD $0x5d79bcf00d2df649 // .quad 6735622456908576329 - QUAD $0xbaaee17fa23ebf76 // .quad -4994806998408183946 - QUAD $0xf4d82c2c107973dc // .quad -803843965719055396 - QUAD $0xe95a99df8ace6f53 // .quad -1631822729582842029 - QUAD $0x79071b9b8a4be869 // .quad 8720969558280366185 - QUAD $0x91d8a02bb6c10594 // .quad -7937418233630358124 - QUAD $0x9748e2826cdee284 // .quad -7545532125859093884 - QUAD $0xb64ec836a47146f9 // .quad -5310086773610559751 - QUAD $0xfd1b1b2308169b25 // .quad -208543120469091547 - QUAD $0xe3e27a444d8d98b7 // .quad -2025922448585811785 - QUAD $0xfe30f0f5e50e20f7 // .quad -130339450293182217 - QUAD $0x8e6d8c6ab0787f72 // .quad -8183730558007214222 - QUAD $0xbdbd2d335e51a935 // .quad -4774610331293865675 - QUAD $0xb208ef855c969f4f // .quad -5617977179081629873 - QUAD $0xad2c788035e61382 // .quad -5968262914117332094 - QUAD $0xde8b2b66b3bc4723 // .quad -2410785455424649437 - QUAD $0x4c3bcb5021afcc31 // .quad 5493207715531443249 - QUAD $0x8b16fb203055ac76 // .quad -8424269937281487754 - QUAD $0xdf4abe242a1bbf3d // .quad -2356862392440471747 - QUAD $0xaddcb9e83c6b1793 // .quad -5918651403174471789 - QUAD $0xd71d6dad34a2af0d // .quad -2946077990550589683 - QUAD $0xd953e8624b85dd78 // .quad -2786628235540701832 - QUAD $0x8672648c40e5ad68 // .quad -8758827771735200408 - QUAD $0x87d4713d6f33aa6b // .quad -8659171674854020501 - QUAD $0x680efdaf511f18c2 // .quad 7498209359040551106 - QUAD $0xa9c98d8ccb009506 // .quad -6212278575140137722 - QUAD $0x0212bd1b2566def2 // .quad 149389661945913074 - QUAD $0xd43bf0effdc0ba48 // .quad -3153662200497784248 - QUAD $0x014bb630f7604b57 // .quad 93368538716195671 - QUAD $0x84a57695fe98746d // .quad -8888567902952197011 - QUAD $0x419ea3bd35385e2d // .quad 4728396691822632493 - QUAD $0xa5ced43b7e3e9188 // .quad -6499023860262858360 - QUAD $0x52064cac828675b9 // .quad 5910495864778290617 - QUAD $0xcf42894a5dce35ea // .quad -3512093806901185046 - QUAD $0x7343efebd1940993 // .quad 8305745933913819539 - QUAD $0x818995ce7aa0e1b2 // .quad -9112587656954322510 - QUAD $0x1014ebe6c5f90bf8 // .quad 1158810380537498616 - QUAD $0xa1ebfb4219491a1f // .quad -6779048552765515233 - QUAD $0xd41a26e077774ef6 // .quad -3163173042755514634 - QUAD $0xca66fa129f9b60a6 // .quad -3862124672529506138 - QUAD $0x8920b098955522b4 // .quad -8565652321871781196 - QUAD $0xfd00b897478238d0 // .quad -215969822234494768 - QUAD $0x55b46e5f5d5535b0 // .quad 6175682344898606512 - QUAD $0x9e20735e8cb16382 // .quad -7052510166537641086 - QUAD $0xeb2189f734aa831d // .quad -1503769105731517667 - QUAD $0xc5a890362fddbc62 // .quad -4203951689744663454 - QUAD $0xa5e9ec7501d523e4 // .quad -6491397400591784988 - QUAD $0xf712b443bbd52b7b // .quad -643253593753441413 - QUAD $0x47b233c92125366e // .quad 5166248661484910190 - QUAD $0x9a6bb0aa55653b2d // .quad -7319562523736982739 - QUAD $0x999ec0bb696e840a // .quad -7377247228426025974 - QUAD $0xc1069cd4eabe89f8 // .quad -4537767136243840520 - QUAD $0xc00670ea43ca250d // .quad -4609873017105144563 - QUAD $0xf148440a256e2c76 // .quad -1060522901877412746 - QUAD $0x380406926a5e5728 // .quad 4036358391950366504 - QUAD $0x96cd2a865764dbca // .quad -7580355841314464822 - QUAD $0xc605083704f5ecf2 // .quad -4177924046916817678 - QUAD $0xbc807527ed3e12bc // .quad -4863758783215693124 - QUAD $0xf7864a44c633682e // .quad -610719040218634194 - QUAD $0xeba09271e88d976b // .quad -1468012460592228501 - QUAD $0x7ab3ee6afbe0211d // .quad 8841672636718129437 - QUAD $0x93445b8731587ea3 // .quad -7835036815511224669 - QUAD $0x5960ea05bad82964 // .quad 6440404777470273892 - QUAD $0xb8157268fdae9e4c // .quad -5182110000961642932 - QUAD $0x6fb92487298e33bd // .quad 8050505971837842365 - QUAD $0xe61acf033d1a45df // .quad -1865951482774665761 - QUAD $0xa5d3b6d479f8e056 // .quad -6497648813669818282 - QUAD $0x8fd0c16206306bab // .quad -8083748704375247957 - QUAD $0x8f48a4899877186c // .quad -8122061017087272852 - QUAD $0xb3c4f1ba87bc8696 // .quad -5492999862041672042 - QUAD $0x331acdabfe94de87 // .quad 3682481783923072647 - QUAD $0xe0b62e2929aba83c // .quad -2254563809124702148 - QUAD $0x9ff0c08b7f1d0b14 // .quad -6921820921902855404 - QUAD $0x8c71dcd9ba0b4925 // .quad -8326631408344020699 - QUAD $0x07ecf0ae5ee44dd9 // .quad 571095884476206553 - QUAD $0xaf8e5410288e1b6f // .quad -5796603242002637969 - QUAD $0xc9e82cd9f69d6150 // .quad -3897816162832129712 - QUAD $0xdb71e91432b1a24a // .quad -2634068034075909558 - QUAD $0xbe311c083a225cd2 // .quad -4741978110983775022 - QUAD $0x892731ac9faf056e // .quad -8563821548938525330 - QUAD $0x6dbd630a48aaf406 // .quad 7907585416552444934 - QUAD $0xab70fe17c79ac6ca // .quad -6093090917745768758 - QUAD $0x092cbbccdad5b108 // .quad 661109733835780360 - QUAD $0xd64d3d9db981787d // .quad -3004677628754823043 - QUAD $0x25bbf56008c58ea5 // .quad 2719036592861056677 - QUAD $0x85f0468293f0eb4e // .quad -8795452545612846258 - QUAD $0xaf2af2b80af6f24e // .quad -5824576295778454962 - QUAD $0xa76c582338ed2621 // .quad -6382629663588669919 - QUAD $0x1af5af660db4aee1 // .quad 1942651667131707105 - QUAD $0xd1476e2c07286faa // .quad -3366601061058449494 - QUAD $0x50d98d9fc890ed4d // .quad 5825843310384704845 - QUAD $0x82cca4db847945ca // .quad -9021654690802612790 - QUAD $0xe50ff107bab528a0 // .quad -1941067898873894752 - QUAD $0xa37fce126597973c // .quad -6665382345075878084 - QUAD $0x1e53ed49a96272c8 // .quad 2185351144835019464 - QUAD $0xcc5fc196fefd7d0c // .quad -3720041912917459700 - QUAD $0x25e8e89c13bb0f7a // .quad 2731688931043774330 - QUAD $0xff77b1fcbebcdc4f // .quad -38366372719436721 - QUAD $0x77b191618c54e9ac // .quad 8624834609543440812 - QUAD $0x9faacf3df73609b1 // .quad -6941508010590729807 - QUAD $0xd59df5b9ef6a2417 // .quad -3054014793352862697 - QUAD $0xc795830d75038c1d // .quad -4065198994811024355 - QUAD $0x4b0573286b44ad1d // .quad 5405853545163697437 - QUAD $0xf97ae3d0d2446f25 // .quad -469812725086392539 - QUAD $0x4ee367f9430aec32 // .quad 5684501474941004850 - QUAD $0x9becce62836ac577 // .quad -7211161980820077193 - QUAD $0x229c41f793cda73f // .quad 2493940825248868159 - QUAD $0xc2e801fb244576d5 // .quad -4402266457597708587 - QUAD $0x6b43527578c1110f // .quad 7729112049988473103 - QUAD $0xf3a20279ed56d48a // .quad -891147053569747830 - QUAD $0x830a13896b78aaa9 // .quad -9004363024039368023 - QUAD $0x9845418c345644d6 // .quad -7474495936122174250 - QUAD $0x23cc986bc656d553 // .quad 2579604275232953683 - QUAD $0xbe5691ef416bd60c // .quad -4731433901725329908 - QUAD $0x2cbfbe86b7ec8aa8 // .quad 3224505344041192104 - QUAD $0xedec366b11c6cb8f // .quad -1302606358729274481 - QUAD $0x7bf7d71432f3d6a9 // .quad 8932844867666826921 - QUAD $0x94b3a202eb1c3f39 // .quad -7731658001846878407 - QUAD $0xdaf5ccd93fb0cc53 // .quad -2669001970698630061 - QUAD $0xb9e08a83a5e34f07 // .quad -5052886483881210105 - QUAD $0xd1b3400f8f9cff68 // .quad -3336252463373287576 - QUAD $0xe858ad248f5c22c9 // .quad -1704422086424124727 - QUAD $0x23100809b9c21fa1 // .quad 2526528228819083169 - QUAD $0x91376c36d99995be // .quad -7982792831656159810 - QUAD $0xabd40a0c2832a78a // .quad -6065211750830921846 - QUAD $0xb58547448ffffb2d // .quad -5366805021142811859 - QUAD $0x16c90c8f323f516c // .quad 1641857348316123500 - QUAD $0xe2e69915b3fff9f9 // .quad -2096820258001126919 - QUAD $0xae3da7d97f6792e3 // .quad -5891368184943504669 - QUAD $0x8dd01fad907ffc3b // .quad -8228041688891786181 - QUAD $0x99cd11cfdf41779c // .quad -7364210231179380836 - QUAD $0xb1442798f49ffb4a // .quad -5673366092687344822 - QUAD $0x40405643d711d583 // .quad 4629795266307937667 - QUAD $0xdd95317f31c7fa1d // .quad -2480021597431793123 - QUAD $0x482835ea666b2572 // .quad 5199465050656154994 - QUAD $0x8a7d3eef7f1cfc52 // .quad -8467542526035952558 - QUAD $0xda3243650005eecf // .quad -2724040723534582065 - QUAD $0xad1c8eab5ee43b66 // .quad -5972742139117552794 - QUAD $0x90bed43e40076a82 // .quad -8016736922845615486 - QUAD $0xd863b256369d4a40 // .quad -2854241655469553088 - QUAD $0x5a7744a6e804a291 // .quad 6518754469289960081 - QUAD $0x873e4f75e2224e68 // .quad -8701430062309552536 - QUAD $0x711515d0a205cb36 // .quad 8148443086612450102 - QUAD $0xa90de3535aaae202 // .quad -6265101559459552766 - QUAD $0x0d5a5b44ca873e03 // .quad 962181821410786819 - QUAD $0xd3515c2831559a83 // .quad -3219690930897053053 - QUAD $0xe858790afe9486c2 // .quad -1704479370831952190 - QUAD $0x8412d9991ed58091 // .quad -8929835859451740015 - QUAD $0x626e974dbe39a872 // .quad 7092772823314835570 - QUAD $0xa5178fff668ae0b6 // .quad -6550608805887287114 - QUAD $0xfb0a3d212dc8128f // .quad -357406007711231345 - QUAD $0xce5d73ff402d98e3 // .quad -3576574988931720989 - QUAD $0x7ce66634bc9d0b99 // .quad 8999993282035256217 - QUAD $0x80fa687f881c7f8e // .quad -9152888395723407474 - QUAD $0x1c1fffc1ebc44e80 // .quad 2026619565689294464 - QUAD $0xa139029f6a239f72 // .quad -6829424476226871438 - QUAD $0xa327ffb266b56220 // .quad -6690097579743157728 - QUAD $0xc987434744ac874e // .quad -3925094576856201394 - QUAD $0x4bf1ff9f0062baa8 // .quad 5472436080603216552 - QUAD $0xfbe9141915d7a922 // .quad -294682202642863838 - QUAD $0x6f773fc3603db4a9 // .quad 8031958568804398249 - QUAD $0x9d71ac8fada6c9b5 // .quad -7101705404292871755 - QUAD $0xcb550fb4384d21d3 // .quad -3795109844276665901 - QUAD $0xc4ce17b399107c22 // .quad -4265445736938701790 - QUAD $0x7e2a53a146606a48 // .quad 9091170749936331336 - QUAD $0xf6019da07f549b2b // .quad -720121152745989333 - QUAD $0x2eda7444cbfc426d // .quad 3376138709496513133 - QUAD $0x99c102844f94e0fb // .quad -7367604748107325189 - QUAD $0xfa911155fefb5308 // .quad -391512631556746488 - QUAD $0xc0314325637a1939 // .quad -4597819916706768583 - QUAD $0x793555ab7eba27ca // .quad 8733981247408842698 - QUAD $0xf03d93eebc589f88 // .quad -1135588877456072824 - QUAD $0x4bc1558b2f3458de // .quad 5458738279630526686 - QUAD $0x96267c7535b763b5 // .quad -7627272076051127371 - QUAD $0x9eb1aaedfb016f16 // .quad -7011635205744005354 - QUAD $0xbbb01b9283253ca2 // .quad -4922404076636521310 - QUAD $0x465e15a979c1cadc // .quad 5070514048102157020 - QUAD $0xea9c227723ee8bcb // .quad -1541319077368263733 - QUAD $0x0bfacd89ec191ec9 // .quad 863228270850154185 - QUAD $0x92a1958a7675175f // .quad -7880853450996246689 - QUAD $0xcef980ec671f667b // .quad -3532650679864695173 - QUAD $0xb749faed14125d36 // .quad -5239380795317920458 - QUAD $0x82b7e12780e7401a // .quad -9027499368258256870 - QUAD $0xe51c79a85916f484 // .quad -1937539975720012668 - QUAD $0xd1b2ecb8b0908810 // .quad -3336344095947716592 - QUAD $0x8f31cc0937ae58d2 // .quad -8128491512466089774 - QUAD $0x861fa7e6dcb4aa15 // .quad -8782116138362033643 - QUAD $0xb2fe3f0b8599ef07 // .quad -5548928372155224313 - QUAD $0x67a791e093e1d49a // .quad 7469098900757009562 - QUAD $0xdfbdcece67006ac9 // .quad -2324474446766642487 - QUAD $0xe0c8bb2c5c6d24e0 // .quad -2249342214667950880 - QUAD $0x8bd6a141006042bd // .quad -8370325556870233411 - QUAD $0x58fae9f773886e18 // .quad 6411694268519837208 - QUAD $0xaecc49914078536d // .quad -5851220927660403859 - QUAD $0xaf39a475506a899e // .quad -5820440219632367202 - QUAD $0xda7f5bf590966848 // .quad -2702340141148116920 - QUAD $0x6d8406c952429603 // .quad 7891439908798240259 - QUAD $0x888f99797a5e012d // .quad -8606491615858654931 - QUAD $0xc8e5087ba6d33b83 // .quad -3970758169284363389 - QUAD $0xaab37fd7d8f58178 // .quad -6146428501395930760 - QUAD $0xfb1e4a9a90880a64 // .quad -351761693178066332 - QUAD $0xd5605fcdcf32e1d6 // .quad -3071349608317525546 - QUAD $0x5cf2eea09a55067f // .quad 6697677969404790399 - QUAD $0x855c3be0a17fcd26 // .quad -8837122532839535322 - QUAD $0xf42faa48c0ea481e // .quad -851274575098787810 - QUAD $0xa6b34ad8c9dfc06f // .quad -6434717147622031249 - QUAD $0xf13b94daf124da26 // .quad -1064093218873484762 - QUAD $0xd0601d8efc57b08b // .quad -3431710416100151157 - QUAD $0x76c53d08d6b70858 // .quad 8558313775058847832 - QUAD $0x823c12795db6ce57 // .quad -9062348037703676329 - QUAD $0x54768c4b0c64ca6e // .quad 6086206200396171886 - QUAD $0xa2cb1717b52481ed // .quad -6716249028702207507 - QUAD $0xa9942f5dcf7dfd09 // .quad -6227300304786948855 - QUAD $0xcb7ddcdda26da268 // .quad -3783625267450371480 - QUAD $0xd3f93b35435d7c4c // .quad -3172439362556298164 - QUAD $0xfe5d54150b090b02 // .quad -117845565885576446 - QUAD $0xc47bc5014a1a6daf // .quad -4288617610811380305 - QUAD $0x9efa548d26e5a6e1 // .quad -6991182506319567135 - QUAD $0x359ab6419ca1091b // .quad 3862600023340550427 - QUAD $0xc6b8e9b0709f109a // .quad -4127292114472071014 - QUAD $0xc30163d203c94b62 // .quad -4395122007679087774 - QUAD $0xf867241c8cc6d4c0 // .quad -547429124662700864 - QUAD $0x79e0de63425dcf1d // .quad 8782263791269039901 - QUAD $0x9b407691d7fc44f8 // .quad -7259672230555269896 - QUAD $0x985915fc12f542e4 // .quad -7468914334623251740 - QUAD $0xc21094364dfb5636 // .quad -4462904269766699466 - QUAD $0x3e6f5b7b17b2939d // .quad 4498915137003099037 - QUAD $0xf294b943e17a2bc4 // .quad -966944318780986428 - QUAD $0xa705992ceecf9c42 // .quad -6411550076227838910 - QUAD $0x979cf3ca6cec5b5a // .quad -7521869226879198374 - QUAD $0x50c6ff782a838353 // .quad 5820620459997365075 - QUAD $0xbd8430bd08277231 // .quad -4790650515171610063 - QUAD $0xa4f8bf5635246428 // .quad -6559282480285457368 - QUAD $0xece53cec4a314ebd // .quad -1376627125537124675 - QUAD $0x871b7795e136be99 // .quad -8711237568605798759 - QUAD $0x940f4613ae5ed136 // .quad -7777920981101784778 - QUAD $0x28e2557b59846e3f // .quad 2946011094524915263 - QUAD $0xb913179899f68584 // .quad -5110715207949843068 - QUAD $0x331aeada2fe589cf // .quad 3682513868156144079 - QUAD $0xe757dd7ec07426e5 // .quad -1776707991509915931 - QUAD $0x3ff0d2c85def7621 // .quad 4607414176811284001 - QUAD $0x9096ea6f3848984f // .quad -8027971522334779313 - QUAD $0x0fed077a756b53a9 // .quad 1147581702586717097 - QUAD $0xb4bca50b065abe63 // .quad -5423278384491086237 - QUAD $0xd3e8495912c62894 // .quad -3177208890193991532 - QUAD $0xe1ebce4dc7f16dfb // .quad -2167411962186469893 - QUAD $0x64712dd7abbbd95c // .quad 7237616480483531100 - QUAD $0x8d3360f09cf6e4bd // .quad -8272161504007625539 - QUAD $0xbd8d794d96aacfb3 // .quad -4788037454677749837 - QUAD $0xb080392cc4349dec // .quad -5728515861582144020 - QUAD $0xecf0d7a0fc5583a0 // .quad -1373360799919799392 - QUAD $0xdca04777f541c567 // .quad -2548958808550292121 - QUAD $0xf41686c49db57244 // .quad -858350499949874620 - QUAD $0x89e42caaf9491b60 // .quad -8510628282985014432 - QUAD $0x311c2875c522ced5 // .quad 3538747893490044629 - QUAD $0xac5d37d5b79b6239 // .quad -6026599335303880135 - QUAD $0x7d633293366b828b // .quad 9035120885289943691 - QUAD $0xd77485cb25823ac7 // .quad -2921563150702462265 - QUAD $0xae5dff9c02033197 // .quad -5882264492762254953 - QUAD $0x86a8d39ef77164bc // .quad -8743505996830120772 - QUAD $0xd9f57f830283fdfc // .quad -2741144597525430788 - QUAD $0xa8530886b54dbdeb // .quad -6317696477610263061 - QUAD $0xd072df63c324fd7b // .quad -3426430746906788485 - QUAD $0xd267caa862a12d66 // .quad -3285434578585440922 - QUAD $0x4247cb9e59f71e6d // .quad 4776009810824339053 - QUAD $0x8380dea93da4bc60 // .quad -8970925639256982432 - QUAD $0x52d9be85f074e608 // .quad 5970012263530423816 - QUAD $0xa46116538d0deb78 // .quad -6601971030643840136 - QUAD $0x67902e276c921f8b // .quad 7462515329413029771 - QUAD $0xcd795be870516656 // .quad -3640777769877412266 - QUAD $0x00ba1cd8a3db53b6 // .quad 52386062455755702 - QUAD $0x806bd9714632dff6 // .quad -9193015133814464522 - QUAD $0x80e8a40eccd228a4 // .quad -9157889458785081180 - QUAD $0xa086cfcd97bf97f3 // .quad -6879582898840692749 - QUAD $0x6122cd128006b2cd // .quad 6999382250228200141 - QUAD $0xc8a883c0fdaf7df0 // .quad -3987792605123478032 - QUAD $0x796b805720085f81 // .quad 8749227812785250177 - QUAD $0xfad2a4b13d1b5d6c // .quad -373054737976959636 - QUAD $0xcbe3303674053bb0 // .quad -3755104653863994448 - QUAD $0x9cc3a6eec6311a63 // .quad -7150688238876681629 - QUAD $0xbedbfc4411068a9c // .quad -4693880817329993060 - QUAD $0xc3f490aa77bd60fc // .quad -4326674280168464132 - QUAD $0xee92fb5515482d44 // .quad -1255665003235103420 - QUAD $0xf4f1b4d515acb93b // .quad -796656831783192261 - QUAD $0x751bdd152d4d1c4a // .quad 8438581409832836170 - QUAD $0x991711052d8bf3c5 // .quad -7415439547505577019 - QUAD $0xd262d45a78a0635d // .quad -3286831292991118499 - QUAD $0xbf5cd54678eef0b6 // .quad -4657613415954583370 - QUAD $0x86fb897116c87c34 // .quad -8720225134666286028 - QUAD $0xef340a98172aace4 // .quad -1210330751515841308 - QUAD $0xd45d35e6ae3d4da0 // .quad -3144297699952734816 - QUAD $0x9580869f0e7aac0e // .quad -7673985747338482674 - QUAD $0x8974836059cca109 // .quad -8542058143368306423 - QUAD $0xbae0a846d2195712 // .quad -4980796165745715438 - QUAD $0x2bd1a438703fc94b // .quad 3157485376071780683 - QUAD $0xe998d258869facd7 // .quad -1614309188754756393 - QUAD $0x7b6306a34627ddcf // .quad 8890957387685944783 - QUAD $0x91ff83775423cc06 // .quad -7926472270612804602 - QUAD $0x1a3bc84c17b1d542 // .quad 1890324697752655170 - QUAD $0xb67f6455292cbf08 // .quad -5296404319838617848 - QUAD $0x20caba5f1d9e4a93 // .quad 2362905872190818963 - QUAD $0xe41f3d6a7377eeca // .quad -2008819381370884406 - QUAD $0x547eb47b7282ee9c // .quad 6088502188546649756 - QUAD $0x8e938662882af53e // .quad -8173041140997884610 - QUAD $0xe99e619a4f23aa43 // .quad -1612744301171463613 - QUAD $0xb23867fb2a35b28d // .quad -5604615407819967859 - QUAD $0x6405fa00e2ec94d4 // .quad 7207441660390446292 - QUAD $0xdec681f9f4c31f31 // .quad -2394083241347571919 - QUAD $0xde83bc408dd3dd04 // .quad -2412877989897052924 - QUAD $0x8b3c113c38f9f37e // .quad -8413831053483314306 - QUAD $0x9624ab50b148d445 // .quad -7627783505798704059 - QUAD $0xae0b158b4738705e // .quad -5905602798426754978 - QUAD $0x3badd624dd9b0957 // .quad 4300328673033783639 - QUAD $0xd98ddaee19068c76 // .quad -2770317479606055818 - QUAD $0xe54ca5d70a80e5d6 // .quad -1923980597781273130 - QUAD $0x87f8a8d4cfa417c9 // .quad -8648977452394866743 - QUAD $0x5e9fcf4ccd211f4c // .quad 6818396289628184396 - QUAD $0xa9f6d30a038d1dbc // .quad -6199535797066195524 - QUAD $0x7647c3200069671f // .quad 8522995362035230495 - QUAD $0xd47487cc8470652b // .quad -3137733727905356501 - QUAD $0x29ecd9f40041e073 // .quad 3021029092058325107 - QUAD $0x84c8d4dfd2c63f3b // .quad -8878612607581929669 - QUAD $0xf468107100525890 // .quad -835399653354481520 - QUAD $0xa5fb0a17c777cf09 // .quad -6486579741050024183 - QUAD $0x7182148d4066eeb4 // .quad 8179122470161673908 - QUAD $0xcf79cc9db955c2cc // .quad -3496538657885142324 - QUAD $0xc6f14cd848405530 // .quad -4111420493003729616 - QUAD $0x81ac1fe293d599bf // .quad -9102865688819295809 - QUAD $0xb8ada00e5a506a7c // .quad -5139275616254662020 - QUAD $0xa21727db38cb002f // .quad -6766896092596731857 - QUAD $0xa6d90811f0e4851c // .quad -6424094520318327524 - QUAD $0xca9cf1d206fdc03b // .quad -3846934097318526917 - QUAD $0x908f4a166d1da663 // .quad -8030118150397909405 - QUAD $0xfd442e4688bd304a // .quad -196981603220770742 - QUAD $0x9a598e4e043287fe // .quad -7324666853212387330 - QUAD $0x9e4a9cec15763e2e // .quad -7040642529654063570 - QUAD $0x40eff1e1853f29fd // .quad 4679224488766679549 - QUAD $0xc5dd44271ad3cdba // .quad -4189117143640191558 - QUAD $0xd12bee59e68ef47c // .quad -3374341425896426372 - QUAD $0xf7549530e188c128 // .quad -624710411122851544 - QUAD $0x82bb74f8301958ce // .quad -9026492418826348338 - QUAD $0x9a94dd3e8cf578b9 // .quad -7307973034592864071 - QUAD $0xe36a52363c1faf01 // .quad -2059743486678159615 - QUAD $0xc13a148e3032d6e7 // .quad -4523280274813692185 - QUAD $0xdc44e6c3cb279ac1 // .quad -2574679358347699519 - QUAD $0xf18899b1bc3f8ca1 // .quad -1042414325089727327 - QUAD $0x29ab103a5ef8c0b9 // .quad 3002511419460075705 - QUAD $0x96f5600f15a7b7e5 // .quad -7569037980822161435 - QUAD $0x7415d448f6b6f0e7 // .quad 8364825292752482535 - QUAD $0xbcb2b812db11a5de // .quad -4849611457600313890 - QUAD $0x111b495b3464ad21 // .quad 1232659579085827361 - QUAD $0xebdf661791d60f56 // .quad -1450328303573004458 - QUAD $0xcab10dd900beec34 // .quad -3841273781498745804 - QUAD $0x936b9fcebb25c995 // .quad -7823984217374209643 - QUAD $0x3d5d514f40eea742 // .quad 4421779809981343554 - QUAD $0xb84687c269ef3bfb // .quad -5168294253290374149 - QUAD $0x0cb4a5a3112a5112 // .quad 915538744049291538 - QUAD $0xe65829b3046b0afa // .quad -1848681798185579782 - QUAD $0x47f0e785eaba72ab // .quad 5183897733458195115 - QUAD $0x8ff71a0fe2c2e6dc // .quad -8072955151507069220 - QUAD $0x59ed216765690f56 // .quad 6479872166822743894 - QUAD $0xb3f4e093db73a093 // .quad -5479507920956448621 - QUAD $0x306869c13ec3532c // .quad 3488154190101041964 - QUAD $0xe0f218b8d25088b8 // .quad -2237698882768172872 - QUAD $0x1e414218c73a13fb // .quad 2180096368813151227 - QUAD $0x8c974f7383725573 // .quad -8316090829371189901 - QUAD $0xe5d1929ef90898fa // .quad -1886565557410948870 - QUAD $0xafbd2350644eeacf // .quad -5783427518286599473 - QUAD $0xdf45f746b74abf39 // .quad -2358206946763686087 - QUAD $0xdbac6c247d62a583 // .quad -2617598379430861437 - QUAD $0x6b8bba8c328eb783 // .quad 7749492695127472003 - QUAD $0x894bc396ce5da772 // .quad -8553528014785370254 - QUAD $0x066ea92f3f326564 // .quad 463493832054564196 - QUAD $0xab9eb47c81f5114f // .quad -6080224000054324913 - QUAD $0xc80a537b0efefebd // .quad -4032318728359182659 - QUAD $0xd686619ba27255a2 // .quad -2988593981640518238 - QUAD $0xbd06742ce95f5f36 // .quad -4826042214438183114 - QUAD $0x8613fd0145877585 // .quad -8785400266166405755 - QUAD $0x2c48113823b73704 // .quad 3190819268807046916 - QUAD $0xa798fc4196e952e7 // .quad -6370064314280619289 - QUAD $0xf75a15862ca504c5 // .quad -623161932418579259 - QUAD $0xd17f3b51fca3a7a0 // .quad -3350894374423386208 - QUAD $0x9a984d73dbe722fb // .quad -7307005235402693893 - QUAD $0x82ef85133de648c4 // .quad -9011838011655698236 - QUAD $0xc13e60d0d2e0ebba // .quad -4522070525825979462 - QUAD $0xa3ab66580d5fdaf5 // .quad -6653111496142234891 - QUAD $0x318df905079926a8 // .quad 3570783879572301480 - QUAD $0xcc963fee10b7d1b3 // .quad -3704703351750405709 - QUAD $0xfdf17746497f7052 // .quad -148206168962011054 - QUAD $0xffbbcfe994e5c61f // .quad -19193171260619233 - QUAD $0xfeb6ea8bedefa633 // .quad -92628855601256909 - QUAD $0x9fd561f1fd0f9bd3 // .quad -6929524759678968877 - QUAD $0xfe64a52ee96b8fc0 // .quad -115786069501571136 - QUAD $0xc7caba6e7c5382c8 // .quad -4050219931171323192 - QUAD $0x3dfdce7aa3c673b0 // .quad 4466953431550423984 - QUAD $0xf9bd690a1b68637b // .quad -451088895536766085 - QUAD $0x06bea10ca65c084e // .quad 486002885505321038 - QUAD $0x9c1661a651213e2d // .quad -7199459587351560659 - QUAD $0x486e494fcff30a62 // .quad 5219189625309039202 - QUAD $0xc31bfa0fe5698db8 // .quad -4387638465762062920 - QUAD $0x5a89dba3c3efccfa // .quad 6523987031636299002 - QUAD $0xf3e2f893dec3f126 // .quad -872862063775190746 - QUAD $0xf89629465a75e01c // .quad -534194123654701028 - QUAD $0x986ddb5c6b3a76b7 // .quad -7463067817500576073 - QUAD $0xf6bbb397f1135823 // .quad -667742654568376285 - QUAD $0xbe89523386091465 // .quad -4717148753448332187 - QUAD $0x746aa07ded582e2c // .quad 8388693718644305452 - QUAD $0xee2ba6c0678b597f // .quad -1284749923383027329 - QUAD $0xa8c2a44eb4571cdc // .quad -6286281471915778852 - QUAD $0x94db483840b717ef // .quad -7720497729755473937 - QUAD $0x92f34d62616ce413 // .quad -7857851839894723565 - QUAD $0xba121a4650e4ddeb // .quad -5038936143766954517 - QUAD $0x77b020baf9c81d17 // .quad 8624429273841147159 - QUAD $0xe896a0d7e51e1566 // .quad -1686984161281305242 - QUAD $0x0ace1474dc1d122e // .quad 778582277723329070 - QUAD $0x915e2486ef32cd60 // .quad -7971894128441897632 - QUAD $0x0d819992132456ba // .quad 973227847154161338 - QUAD $0xb5b5ada8aaff80b8 // .quad -5353181642124984136 - QUAD $0x10e1fff697ed6c69 // .quad 1216534808942701673 - QUAD $0xe3231912d5bf60e6 // .quad -2079791034228842266 - QUAD $0xca8d3ffa1ef463c1 // .quad -3851351762838199359 - QUAD $0x8df5efabc5979c8f // .quad -8217398424034108273 - QUAD $0xbd308ff8a6b17cb2 // .quad -4814189703547749198 - QUAD $0xb1736b96b6fd83b3 // .quad -5660062011615247437 - QUAD $0xac7cb3f6d05ddbde // .quad -6017737129434686498 - QUAD $0xddd0467c64bce4a0 // .quad -2463391496091671392 - QUAD $0x6bcdf07a423aa96b // .quad 7768129340171790699 - QUAD $0x8aa22c0dbef60ee4 // .quad -8457148712698376476 - QUAD $0x86c16c98d2c953c6 // .quad -8736582398494813242 - QUAD $0xad4ab7112eb3929d // .quad -5959749872445582691 - QUAD $0xe871c7bf077ba8b7 // .quad -1697355961263740745 - QUAD $0xd89d64d57a607744 // .quad -2838001322129590460 - QUAD $0x11471cd764ad4972 // .quad 1244995533423855986 - QUAD $0x87625f056c7c4a8b // .quad -8691279853972075893 - QUAD $0xd598e40d3dd89bcf // .quad -3055441601647567921 - QUAD $0xa93af6c6c79b5d2d // .quad -6252413799037706963 - QUAD $0x4aff1d108d4ec2c3 // .quad 5404070034795315907 - QUAD $0xd389b47879823479 // .quad -3203831230369745799 - QUAD $0xcedf722a585139ba // .quad -3539985255894009414 - QUAD $0x843610cb4bf160cb // .quad -8919923546622172981 - QUAD $0xc2974eb4ee658828 // .quad -4424981569867511768 - QUAD $0xa54394fe1eedb8fe // .quad -6538218414850328322 - QUAD $0x733d226229feea32 // .quad 8303831092947774002 - QUAD $0xce947a3da6a9273e // .quad -3561087000135522498 - QUAD $0x0806357d5a3f525f // .quad 578208414664970847 - QUAD $0x811ccc668829b887 // .quad -9143208402725783417 - QUAD $0xca07c2dcb0cf26f7 // .quad -3888925500096174345 - QUAD $0xa163ff802a3426a8 // .quad -6817324484979841368 - QUAD $0xfc89b393dd02f0b5 // .quad -249470856692830027 - QUAD $0xc9bcff6034c13052 // .quad -3909969587797413806 - QUAD $0xbbac2078d443ace2 // .quad -4923524589293425438 - QUAD $0xfc2c3f3841f17c67 // .quad -275775966319379353 - QUAD $0xd54b944b84aa4c0d // .quad -3077202868308390899 - QUAD $0x9d9ba7832936edc0 // .quad -7089889006590693952 - QUAD $0x0a9e795e65d4df11 // .quad 765182433041899281 - QUAD $0xc5029163f384a931 // .quad -4250675239810979535 - QUAD $0x4d4617b5ff4a16d5 // .quad 5568164059729762005 - QUAD $0xf64335bcf065d37d // .quad -701658031336336515 - QUAD $0x504bced1bf8e4e45 // .quad 5785945546544795205 - QUAD $0x99ea0196163fa42e // .quad -7356065297226292178 - QUAD $0xe45ec2862f71e1d6 // .quad -1990940103673781802 - QUAD $0xc06481fb9bcf8d39 // .quad -4583395603105477319 - QUAD $0x5d767327bb4e5a4c // .quad 6734696907262548556 - QUAD $0xf07da27a82c37088 // .quad -1117558485454458744 - QUAD $0x3a6a07f8d510f86f // .quad 4209185567039092847 - QUAD $0x964e858c91ba2655 // .quad -7616003081050118571 - QUAD $0x890489f70a55368b // .quad -8573576096483297653 - QUAD $0xbbe226efb628afea // .quad -4908317832885260310 - QUAD $0x2b45ac74ccea842e // .quad 3118087934678041646 - QUAD $0xeadab0aba3b2dbe5 // .quad -1523711272679187483 - QUAD $0x3b0b8bc90012929d // .quad 4254647968387469981 - QUAD $0x92c8ae6b464fc96f // .quad -7869848573065574033 - QUAD $0x09ce6ebb40173744 // .quad 706623942056949572 - QUAD $0xb77ada0617e3bbcb // .quad -5225624697904579637 - QUAD $0xcc420a6a101d0515 // .quad -3728406090856200939 - QUAD $0xe55990879ddcaabd // .quad -1920344853953336643 - QUAD $0x9fa946824a12232d // .quad -6941939825212513491 - QUAD $0x8f57fa54c2a9eab6 // .quad -8117744561361917258 - QUAD $0x47939822dc96abf9 // .quad 5157633273766521849 - QUAD $0xb32df8e9f3546564 // .quad -5535494683275008668 - QUAD $0x59787e2b93bc56f7 // .quad 6447041592208152311 - QUAD $0xdff9772470297ebd // .quad -2307682335666372931 - QUAD $0x57eb4edb3c55b65a // .quad 6335244004343789146 - QUAD $0x8bfbea76c619ef36 // .quad -8359830487432564938 - QUAD $0xede622920b6b23f1 // .quad -1304317031425039375 - QUAD $0xaefae51477a06b03 // .quad -5838102090863318269 - QUAD $0xe95fab368e45eced // .quad -1630396289281299219 - QUAD $0xdab99e59958885c4 // .quad -2685941595151759932 - QUAD $0x11dbcb0218ebb414 // .quad 1286845328412881940 - QUAD $0x88b402f7fd75539b // .quad -8596242524610931813 - QUAD $0xd652bdc29f26a119 // .quad -3003129357911285479 - QUAD $0xaae103b5fcd2a881 // .quad -6133617137336276863 - QUAD $0x4be76d3346f0495f // .quad 5469460339465668959 - QUAD $0xd59944a37c0752a2 // .quad -3055335403242958174 - QUAD $0x6f70a4400c562ddb // .quad 8030098730593431003 - QUAD $0x857fcae62d8493a5 // .quad -8827113654667930715 - QUAD $0xcb4ccd500f6bb952 // .quad -3797434642040374958 - QUAD $0xa6dfbd9fb8e5b88e // .quad -6422206049907525490 - QUAD $0x7e2000a41346a7a7 // .quad 9088264752731695015 - QUAD $0xd097ad07a71f26b2 // .quad -3416071543957018958 - QUAD $0x8ed400668c0c28c8 // .quad -8154892584824854328 - QUAD $0x825ecc24c873782f // .quad -9052573742614218705 - QUAD $0x728900802f0f32fa // .quad 8253128342678483706 - QUAD $0xa2f67f2dfa90563b // .quad -6704031159840385477 - QUAD $0x4f2b40a03ad2ffb9 // .quad 5704724409920716729 - QUAD $0xcbb41ef979346bca // .quad -3768352931373093942 - QUAD $0xe2f610c84987bfa8 // .quad -2092466524453879896 - QUAD $0xfea126b7d78186bc // .quad -98755145788979524 - QUAD $0x0dd9ca7d2df4d7c9 // .quad 998051431430019017 - QUAD $0x9f24b832e6b0f436 // .quad -6979250993759194058 - QUAD $0x91503d1c79720dbb // .quad -7975807747567252037 - QUAD $0xc6ede63fa05d3143 // .quad -4112377723771604669 - QUAD $0x75a44c6397ce912a // .quad 8476984389250486570 - QUAD $0xf8a95fcf88747d94 // .quad -528786136287117932 - QUAD $0xc986afbe3ee11aba // .quad -3925256793573221702 - QUAD $0x9b69dbe1b548ce7c // .quad -7248020362820530564 - QUAD $0xfbe85badce996168 // .quad -294884973539139224 - QUAD $0xc24452da229b021b // .quad -4448339435098275301 - QUAD $0xfae27299423fb9c3 // .quad -368606216923924029 - QUAD $0xf2d56790ab41c2a2 // .quad -948738275445456222 - QUAD $0xdccd879fc967d41a // .quad -2536221894791146470 - QUAD $0x97c560ba6b0919a5 // .quad -7510490449794491995 - QUAD $0x5400e987bbc1c920 // .quad 6053094668365842720 - QUAD $0xbdb6b8e905cb600f // .quad -4776427043815727089 - QUAD $0x290123e9aab23b68 // .quad 2954682317029915496 - QUAD $0xed246723473e3813 // .quad -1358847786342270957 - QUAD $0xf9a0b6720aaf6521 // .quad -459166561069996767 - QUAD $0x9436c0760c86e30b // .quad -7766808894105001205 - QUAD $0xf808e40e8d5b3e69 // .quad -573958201337495959 - QUAD $0xb94470938fa89bce // .quad -5096825099203863602 - QUAD $0xb60b1d1230b20e04 // .quad -5329133770099257852 - QUAD $0xe7958cb87392c2c2 // .quad -1759345355577441598 - QUAD $0xb1c6f22b5e6f48c2 // .quad -5636551615525730110 - QUAD $0x90bd77f3483bb9b9 // .quad -8017119874876982855 - QUAD $0x1e38aeb6360b1af3 // .quad 2177682517447613171 - QUAD $0xb4ecd5f01a4aa828 // .quad -5409713825168840664 - QUAD $0x25c6da63c38de1b0 // .quad 2722103146809516464 - QUAD $0xe2280b6c20dd5232 // .quad -2150456263033662926 - QUAD $0x579c487e5a38ad0e // .quad 6313000485183335694 - QUAD $0x8d590723948a535f // .quad -8261564192037121185 - QUAD $0x2d835a9df0c6d851 // .quad 3279564588051781713 - QUAD $0xb0af48ec79ace837 // .quad -5715269221619013577 - QUAD $0xf8e431456cf88e65 // .quad -512230283362660763 - QUAD $0xdcdb1b2798182244 // .quad -2532400508596379068 - QUAD $0x1b8e9ecb641b58ff // .quad 1985699082112030975 - QUAD $0x8a08f0f8bf0f156b // .quad -8500279345513818773 - QUAD $0xe272467e3d222f3f // .quad -2129562165787349185 - QUAD $0xac8b2d36eed2dac5 // .quad -6013663163464885563 - QUAD $0x5b0ed81dcc6abb0f // .quad 6561419329620589327 - QUAD $0xd7adf884aa879177 // .quad -2905392935903719049 - QUAD $0x98e947129fc2b4e9 // .quad -7428327965055601431 - QUAD $0x86ccbb52ea94baea // .quad -8733399612580906262 - QUAD $0x3f2398d747b36224 // .quad 4549648098962661924 - QUAD $0xa87fea27a539e9a5 // .quad -6305063497298744923 - QUAD $0x8eec7f0d19a03aad // .quad -8147997931578836307 - QUAD $0xd29fe4b18e88640e // .quad -3269643353196043250 - QUAD $0x1953cf68300424ac // .quad 1825030320404309164 - QUAD $0x83a3eeeef9153e89 // .quad -8961056123388608887 - QUAD $0x5fa8c3423c052dd7 // .quad 6892973918932774359 - QUAD $0xa48ceaaab75a8e2b // .quad -6589634135808373205 - QUAD $0x3792f412cb06794d // .quad 4004531380238580045 - QUAD $0xcdb02555653131b6 // .quad -3625356651333078602 - QUAD $0xe2bbd88bbee40bd0 // .quad -2108853905778275376 - QUAD $0x808e17555f3ebf11 // .quad -9183376934724255983 - QUAD $0x5b6aceaeae9d0ec4 // .quad 6587304654631931588 - QUAD $0xa0b19d2ab70e6ed6 // .quad -6867535149977932074 - QUAD $0xf245825a5a445275 // .quad -989241218564861323 - QUAD $0xc8de047564d20a8b // .quad -3972732919045027189 - QUAD $0xeed6e2f0f0d56712 // .quad -1236551523206076654 - QUAD $0xfb158592be068d2e // .quad -354230130378896082 - QUAD $0x55464dd69685606b // .quad 6144684325637283947 - QUAD $0x9ced737bb6c4183d // .quad -7138922859127891907 - QUAD $0xaa97e14c3c26b886 // .quad -6154202648235558778 - QUAD $0xc428d05aa4751e4c // .quad -4311967555482476980 - QUAD $0xd53dd99f4b3066a8 // .quad -3081067291867060568 - QUAD $0xf53304714d9265df // .quad -778273425925708321 - QUAD $0xe546a8038efe4029 // .quad -1925667057416912855 - QUAD $0x993fe2c6d07b7fab // .quad -7403949918844649557 - QUAD $0xde98520472bdd033 // .quad -2407083821771141069 - QUAD $0xbf8fdb78849a5f96 // .quad -4643251380128424042 - QUAD $0x963e66858f6d4440 // .quad -7620540795641314240 - QUAD $0xef73d256a5c0f77c // .quad -1192378206733142148 - QUAD $0xdde7001379a44aa8 // .quad -2456994988062127448 - QUAD $0x95a8637627989aad // .quad -7662765406849295699 - QUAD $0x5560c018580d5d52 // .quad 6152128301777116498 - QUAD $0xbb127c53b17ec159 // .quad -4966770740134231719 - QUAD $0xaab8f01e6e10b4a6 // .quad -6144897678060768090 - QUAD $0xe9d71b689dde71af // .quad -1596777406740401745 - QUAD $0xcab3961304ca70e8 // .quad -3840561048787980056 - QUAD $0x9226712162ab070d // .quad -7915514906853832947 - QUAD $0x3d607b97c5fd0d22 // .quad 4422670725869800738 - QUAD $0xb6b00d69bb55c8d1 // .quad -5282707615139903279 - QUAD $0x8cb89a7db77c506a // .quad -8306719647944912790 - QUAD $0xe45c10c42a2b3b05 // .quad -1991698500497491195 - QUAD $0x77f3608e92adb242 // .quad 8643358275316593218 - QUAD $0x8eb98a7a9a5b04e3 // .quad -8162340590452013853 - QUAD $0x55f038b237591ed3 // .quad 6192511825718353619 - QUAD $0xb267ed1940f1c61c // .quad -5591239719637629412 - QUAD $0x6b6c46dec52f6688 // .quad 7740639782147942024 - QUAD $0xdf01e85f912e37a3 // .quad -2377363631119648861 - QUAD $0x2323ac4b3b3da015 // .quad 2532056854628769813 - QUAD $0x8b61313bbabce2c6 // .quad -8403381297090862394 - QUAD $0xabec975e0a0d081a // .quad -6058300968568813542 - QUAD $0xae397d8aa96c1b77 // .quad -5892540602936190089 - QUAD $0x96e7bd358c904a21 // .quad -7572876210711016927 - QUAD $0xd9c7dced53c72255 // .quad -2753989735242849707 - QUAD $0x7e50d64177da2e54 // .quad 9102010423587778132 - QUAD $0x881cea14545c7575 // .quad -8638772612167862923 - QUAD $0xdde50bd1d5d0b9e9 // .quad -2457545025797441047 - QUAD $0xaa242499697392d2 // .quad -6186779746782440750 - QUAD $0x955e4ec64b44e864 // .quad -7683617300674189212 - QUAD $0xd4ad2dbfc3d07787 // .quad -3121788665050663033 - QUAD $0xbd5af13bef0b113e // .quad -4802260812921368258 - QUAD $0x84ec3c97da624ab4 // .quad -8868646943297746252 - QUAD $0xecb1ad8aeacdd58e // .quad -1391139997724322418 - QUAD $0xa6274bbdd0fadd61 // .quad -6474122660694794911 - QUAD $0x67de18eda5814af2 // .quad 7484447039699372786 - QUAD $0xcfb11ead453994ba // .quad -3480967307441105734 - QUAD $0x80eacf948770ced7 // .quad -9157278655470055721 - QUAD $0x81ceb32c4b43fcf4 // .quad -9093133594791772940 - QUAD $0xa1258379a94d028d // .quad -6834912300910181747 - QUAD $0xa2425ff75e14fc31 // .quad -6754730975062328271 - QUAD $0x096ee45813a04330 // .quad 679731660717048624 - QUAD $0xcad2f7f5359a3b3e // .quad -3831727700400522434 - QUAD $0x8bca9d6e188853fc // .quad -8373707460958465028 - QUAD $0xfd87b5f28300ca0d // .quad -177973607073265139 - QUAD $0x775ea264cf55347d // .quad 8601490892183123069 - QUAD $0x9e74d1b791e07e48 // .quad -7028762532061872568 - QUAD $0x95364afe032a819d // .quad -7694880458480647779 - QUAD $0xc612062576589dda // .quad -4174267146649952806 - QUAD $0x3a83ddbd83f52204 // .quad 4216457482181353988 - QUAD $0xf79687aed3eec551 // .quad -606147914885053103 - QUAD $0xc4926a9672793542 // .quad -4282243101277735614 - QUAD $0x9abe14cd44753b52 // .quad -7296371474444240046 - QUAD $0x75b7053c0f178293 // .quad 8482254178684994195 - QUAD $0xc16d9a0095928a27 // .quad -4508778324627912153 - QUAD $0x5324c68b12dd6338 // .quad 5991131704928854840 - QUAD $0xf1c90080baf72cb1 // .quad -1024286887357502287 - QUAD $0xd3f6fc16ebca5e03 // .quad -3173071712060547581 - QUAD $0x971da05074da7bee // .quad -7557708332239520786 - QUAD $0x88f4bb1ca6bcf584 // .quad -8578025658503072380 - QUAD $0xbce5086492111aea // .quad -4835449396872013078 - QUAD $0x2b31e9e3d06c32e5 // .quad 3112525982153323237 - QUAD $0xec1e4a7db69561a5 // .quad -1432625727662628443 - QUAD $0x3aff322e62439fcf // .quad 4251171748059520975 - QUAD $0x9392ee8e921d5d07 // .quad -7812920107430224633 - QUAD $0x09befeb9fad487c2 // .quad 702278666647013314 - QUAD $0xb877aa3236a4b449 // .quad -5154464115860392887 - QUAD $0x4c2ebe687989a9b3 // .quad 5489534351736154547 - QUAD $0xe69594bec44de15b // .quad -1831394126398103205 - QUAD $0x0f9d37014bf60a10 // .quad 1125115960621402640 - QUAD $0x901d7cf73ab0acd9 // .quad -8062150356639896359 - QUAD $0x538484c19ef38c94 // .quad 6018080969204141204 - QUAD $0xb424dc35095cd80f // .quad -5466001927372482545 - QUAD $0x2865a5f206b06fb9 // .quad 2910915193077788601 - QUAD $0xe12e13424bb40e13 // .quad -2220816390788215277 - QUAD $0xf93f87b7442e45d3 // .quad -486521013540076077 - QUAD $0x8cbccc096f5088cb // .quad -8305539271883716405 - QUAD $0xf78f69a51539d748 // .quad -608151266925095096 - QUAD $0xafebff0bcb24aafe // .quad -5770238071427257602 - QUAD $0xb573440e5a884d1b // .quad -5371875102083756773 - QUAD $0xdbe6fecebdedd5be // .quad -2601111570856684098 - QUAD $0x31680a88f8953030 // .quad 3560107088838733872 - QUAD $0x89705f4136b4a597 // .quad -8543223759426509417 - QUAD $0xfdc20d2b36ba7c3d // .quad -161552157378970563 - QUAD $0xabcc77118461cefc // .quad -6067343680855748868 - QUAD $0x3d32907604691b4c // .quad 4409745821703674700 - QUAD $0xd6bf94d5e57a42bc // .quad -2972493582642298180 - QUAD $0xa63f9a49c2c1b10f // .quad -6467280898289979121 - QUAD $0x8637bd05af6c69b5 // .quad -8775337516792518219 - QUAD $0x0fcf80dc33721d53 // .quad 1139270913992301907 - QUAD $0xa7c5ac471b478423 // .quad -6357485877563259869 - QUAD $0xd3c36113404ea4a8 // .quad -3187597375937010520 - QUAD $0xd1b71758e219652b // .quad -3335171328526686933 - QUAD $0x645a1cac083126e9 // .quad 7231123676894144233 - QUAD $0x83126e978d4fdf3b // .quad -9002011107970261189 - QUAD $0x3d70a3d70a3d70a3 // .quad 4427218577690292387 - QUAD $0xa3d70a3d70a3d70a // .quad -6640827866535438582 - QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8000000000000000 // .quad -9223372036854775808 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa000000000000000 // .quad -6917529027641081856 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xc800000000000000 // .quad -4035225266123964416 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xfa00000000000000 // .quad -432345564227567616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9c40000000000000 // .quad -7187745005283311616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xc350000000000000 // .quad -4372995238176751616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xf424000000000000 // .quad -854558029293551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9896800000000000 // .quad -7451627795949551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xbebc200000000000 // .quad -4702848726509551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xee6b280000000000 // .quad -1266874889709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9502f90000000000 // .quad -7709325833709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xba43b74000000000 // .quad -5024971273709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xe8d4a51000000000 // .quad -1669528073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9184e72a00000000 // .quad -7960984073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xb5e620f480000000 // .quad -5339544073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xe35fa931a0000000 // .quad -2062744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8e1bc9bf04000000 // .quad -8206744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xb1a2bc2ec5000000 // .quad -5646744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xde0b6b3a76400000 // .quad -2446744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8ac7230489e80000 // .quad -8446744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xad78ebc5ac620000 // .quad -5946744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xd8d726b7177a8000 // .quad -2821744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x878678326eac9000 // .quad -8681119073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa968163f0a57b400 // .quad -6239712823709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xd3c21bcecceda100 // .quad -3187955011209551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x84595161401484a0 // .quad -8910000909647051616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa56fa5b99019a5c8 // .quad -6525815118631426616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xcecb8f27f4200f3a // .quad -3545582879861895366 - QUAD $0x4000000000000000 // .quad 4611686018427387904 - QUAD $0x813f3978f8940984 // .quad -9133518327554766460 - QUAD $0x5000000000000000 // .quad 5764607523034234880 - QUAD $0xa18f07d736b90be5 // .quad -6805211891016070171 - QUAD $0xa400000000000000 // .quad -6629298651489370112 - QUAD $0xc9f2c9cd04674ede // .quad -3894828845342699810 - QUAD $0x4d00000000000000 // .quad 5548434740920451072 - QUAD $0xfc6f7c4045812296 // .quad -256850038250986858 - QUAD $0xf020000000000000 // .quad -1143914305352105984 - QUAD $0x9dc5ada82b70b59d // .quad -7078060301547948643 - QUAD $0x6c28000000000000 // .quad 7793479155164643328 - QUAD $0xc5371912364ce305 // .quad -4235889358507547899 - QUAD $0xc732000000000000 // .quad -4093209111326359552 - QUAD $0xf684df56c3e01bc6 // .quad -683175679707046970 - QUAD $0x3c7f400000000000 // .quad 4359273333062107136 - QUAD $0x9a130b963a6c115c // .quad -7344513827457986212 - QUAD $0x4b9f100000000000 // .quad 5449091666327633920 - QUAD $0xc097ce7bc90715b3 // .quad -4568956265895094861 - QUAD $0x1e86d40000000000 // .quad 2199678564482154496 - QUAD $0xf0bdc21abb48db20 // .quad -1099509313941480672 - QUAD $0x1314448000000000 // .quad 1374799102801346560 - QUAD $0x96769950b50d88f4 // .quad -7604722348854507276 - QUAD $0x17d955a000000000 // .quad 1718498878501683200 - QUAD $0xbc143fa4e250eb31 // .quad -4894216917640746191 - QUAD $0x5dcfab0800000000 // .quad 6759809616554491904 - QUAD $0xeb194f8e1ae525fd // .quad -1506085128623544835 - QUAD $0x5aa1cae500000000 // .quad 6530724019560251392 - QUAD $0x92efd1b8d0cf37be // .quad -7858832233030797378 - QUAD $0xf14a3d9e40000000 // .quad -1059967012404461568 - QUAD $0xb7abc627050305ad // .quad -5211854272861108819 - QUAD $0x6d9ccd05d0000000 // .quad 7898413271349198848 - QUAD $0xe596b7b0c643c719 // .quad -1903131822648998119 - QUAD $0xe4820023a2000000 // .quad -1981020733047832576 - QUAD $0x8f7e32ce7bea5c6f // .quad -8106986416796705681 - QUAD $0xdda2802c8a800000 // .quad -2476275916309790720 - QUAD $0xb35dbf821ae4f38b // .quad -5522047002568494197 - QUAD $0xd50b2037ad200000 // .quad -3095344895387238400 - QUAD $0xe0352f62a19e306e // .quad -2290872734783229842 - QUAD $0x4526f422cc340000 // .quad 4982938468024057856 - QUAD $0x8c213d9da502de45 // .quad -8349324486880600507 - QUAD $0x9670b12b7f410000 // .quad -7606384970252091392 - QUAD $0xaf298d050e4395d6 // .quad -5824969590173362730 - QUAD $0x3c0cdd765f114000 // .quad 4327076842467049472 - QUAD $0xdaf3f04651d47b4c // .quad -2669525969289315508 - QUAD $0xa5880a69fb6ac800 // .quad -6518949010312869888 - QUAD $0x88d8762bf324cd0f // .quad -8585982758446904049 - QUAD $0x8eea0d047a457a00 // .quad -8148686262891087360 - QUAD $0xab0e93b6efee0053 // .quad -6120792429631242157 - QUAD $0x72a4904598d6d880 // .quad 8260886245095692416 - QUAD $0xd5d238a4abe98068 // .quad -3039304518611664792 - QUAD $0x47a6da2b7f864750 // .quad 5163053903184807760 - QUAD $0x85a36366eb71f041 // .quad -8817094351773372351 - QUAD $0x999090b65f67d924 // .quad -7381240676301154012 - QUAD $0xa70c3c40a64e6c51 // .quad -6409681921289327535 - QUAD $0xfff4b4e3f741cf6d // .quad -3178808521666707 - QUAD $0xd0cf4b50cfe20765 // .quad -3400416383184271515 - QUAD $0xbff8f10e7a8921a4 // .quad -4613672773753429596 - QUAD $0x82818f1281ed449f // .quad -9042789267131251553 - QUAD $0xaff72d52192b6a0d // .quad -5767090967191786995 - QUAD $0xa321f2d7226895c7 // .quad -6691800565486676537 - QUAD $0x9bf4f8a69f764490 // .quad -7208863708989733744 - QUAD $0xcbea6f8ceb02bb39 // .quad -3753064688430957767 - QUAD $0x02f236d04753d5b4 // .quad 212292400617608628 - QUAD $0xfee50b7025c36a08 // .quad -79644842111309304 - QUAD $0x01d762422c946590 // .quad 132682750386005392 - QUAD $0x9f4f2726179a2245 // .quad -6967307053960650171 - QUAD $0x424d3ad2b7b97ef5 // .quad 4777539456409894645 - QUAD $0xc722f0ef9d80aad6 // .quad -4097447799023424810 - QUAD $0xd2e0898765a7deb2 // .quad -3251447716342407502 - QUAD $0xf8ebad2b84e0d58b // .quad -510123730351893109 - QUAD $0x63cc55f49f88eb2f // .quad 7191217214140771119 - QUAD $0x9b934c3b330c8577 // .quad -7236356359111015049 - QUAD $0x3cbf6b71c76b25fb // .quad 4377335499248575995 - QUAD $0xc2781f49ffcfa6d5 // .quad -4433759430461380907 - QUAD $0x8bef464e3945ef7a // .quad -8363388681221443718 - QUAD $0xf316271c7fc3908a // .quad -930513269649338230 - QUAD $0x97758bf0e3cbb5ac // .quad -7532960934977096276 - QUAD $0x97edd871cfda3a56 // .quad -7499099821171918250 - QUAD $0x3d52eeed1cbea317 // .quad 4418856886560793367 - QUAD $0xbde94e8e43d0c8ec // .quad -4762188758037509908 - QUAD $0x4ca7aaa863ee4bdd // .quad 5523571108200991709 - QUAD $0xed63a231d4c4fb27 // .quad -1341049929119499481 - QUAD $0x8fe8caa93e74ef6a // .quad -8076983103442849942 - QUAD $0x945e455f24fb1cf8 // .quad -7755685233340769032 - QUAD $0xb3e2fd538e122b44 // .quad -5484542860876174524 - QUAD $0xb975d6b6ee39e436 // .quad -5082920523248573386 - QUAD $0x60dbbca87196b616 // .quad 6979379479186945558 - QUAD $0xe7d34c64a9c85d44 // .quad -1741964635633328828 - QUAD $0xbc8955e946fe31cd // .quad -4861259862362934835 - QUAD $0x90e40fbeea1d3a4a // .quad -8006256924911912374 - QUAD $0x6babab6398bdbe41 // .quad 7758483227328495169 - QUAD $0xb51d13aea4a488dd // .quad -5396135137712502563 - QUAD $0xc696963c7eed2dd1 // .quad -4136954021121544751 - QUAD $0xe264589a4dcdab14 // .quad -2133482903713240300 - QUAD $0xfc1e1de5cf543ca2 // .quad -279753253987271518 - QUAD $0x8d7eb76070a08aec // .quad -8250955842461857044 - QUAD $0x3b25a55f43294bcb // .quad 4261994450943298507 - QUAD $0xb0de65388cc8ada8 // .quad -5702008784649933400 - QUAD $0x49ef0eb713f39ebe // .quad 5327493063679123134 - QUAD $0xdd15fe86affad912 // .quad -2515824962385028846 - QUAD $0x6e3569326c784337 // .quad 7941369183226839863 - QUAD $0x8a2dbf142dfcc7ab // .quad -8489919629131724885 - QUAD $0x49c2c37f07965404 // .quad 5315025460606161924 - QUAD $0xacb92ed9397bf996 // .quad -6000713517987268202 - QUAD $0xdc33745ec97be906 // .quad -2579590211097073402 - QUAD $0xd7e77a8f87daf7fb // .quad -2889205879056697349 - QUAD $0x69a028bb3ded71a3 // .quad 7611128154919104931 - QUAD $0x86f0ac99b4e8dafd // .quad -8723282702051517699 - QUAD $0xc40832ea0d68ce0c // .quad -4321147861633282548 - QUAD $0xa8acd7c0222311bc // .quad -6292417359137009220 - QUAD $0xf50a3fa490c30190 // .quad -789748808614215280 - QUAD $0xd2d80db02aabd62b // .quad -3253835680493873621 - QUAD $0x792667c6da79e0fa // .quad 8729779031470891258 - QUAD $0x83c7088e1aab65db // .quad -8951176327949752869 - QUAD $0x577001b891185938 // .quad 6300537770911226168 - QUAD $0xa4b8cab1a1563f52 // .quad -6577284391509803182 - QUAD $0xed4c0226b55e6f86 // .quad -1347699823215743098 - QUAD $0xcde6fd5e09abcf26 // .quad -3609919470959866074 - QUAD $0x544f8158315b05b4 // .quad 6075216638131242420 - QUAD $0x80b05e5ac60b6178 // .quad -9173728696990998152 - QUAD $0x696361ae3db1c721 // .quad 7594020797664053025 - QUAD $0xa0dc75f1778e39d6 // .quad -6855474852811359786 - QUAD $0x03bc3a19cd1e38e9 // .quad 269153960225290473 - QUAD $0xc913936dd571c84c // .quad -3957657547586811828 - QUAD $0x04ab48a04065c723 // .quad 336442450281613091 - QUAD $0xfb5878494ace3a5f // .quad -335385916056126881 - QUAD $0x62eb0d64283f9c76 // .quad 7127805559067090038 - QUAD $0x9d174b2dcec0e47b // .quad -7127145225176161157 - QUAD $0x3ba5d0bd324f8394 // .quad 4298070930406474644 - QUAD $0xc45d1df942711d9a // .quad -4297245513042813542 - QUAD $0xca8f44ec7ee36479 // .quad -3850783373846682503 - QUAD $0xf5746577930d6500 // .quad -759870872876129024 - QUAD $0x7e998b13cf4e1ecb // .quad 9122475437414293195 - QUAD $0x9968bf6abbe85f20 // .quad -7392448323188662496 - QUAD $0x9e3fedd8c321a67e // .quad -7043649776941685122 - QUAD $0xbfc2ef456ae276e8 // .quad -4628874385558440216 - QUAD $0xc5cfe94ef3ea101e // .quad -4192876202749718498 - QUAD $0xefb3ab16c59b14a2 // .quad -1174406963520662366 - QUAD $0xbba1f1d158724a12 // .quad -4926390635932268014 - QUAD $0x95d04aee3b80ece5 // .quad -7651533379841495835 - QUAD $0x2a8a6e45ae8edc97 // .quad 3065383741939440791 - QUAD $0xbb445da9ca61281f // .quad -4952730706374481889 - QUAD $0xf52d09d71a3293bd // .quad -779956341003086915 - QUAD $0xea1575143cf97226 // .quad -1579227364540714458 - QUAD $0x593c2626705f9c56 // .quad 6430056314514152534 - QUAD $0x924d692ca61be758 // .quad -7904546130479028392 - QUAD $0x6f8b2fb00c77836c // .quad 8037570393142690668 - QUAD $0xb6e0c377cfa2e12e // .quad -5268996644671397586 - QUAD $0x0b6dfb9c0f956447 // .quad 823590954573587527 - QUAD $0xe498f455c38b997a // .quad -1974559787411859078 - QUAD $0x4724bd4189bd5eac // .quad 5126430365035880108 - QUAD $0x8edf98b59a373fec // .quad -8151628894773493780 - QUAD $0x58edec91ec2cb657 // .quad 6408037956294850135 - QUAD $0xb2977ee300c50fe7 // .quad -5577850100039479321 - QUAD $0x2f2967b66737e3ed // .quad 3398361426941174765 - QUAD $0xdf3d5e9bc0f653e1 // .quad -2360626606621961247 - QUAD $0xbd79e0d20082ee74 // .quad -4793553135802847628 - QUAD $0x8b865b215899f46c // .quad -8392920656779807636 - QUAD $0xecd8590680a3aa11 // .quad -1380255401326171631 - QUAD $0xae67f1e9aec07187 // .quad -5879464802547371641 - QUAD $0xe80e6f4820cc9495 // .quad -1725319251657714539 - QUAD $0xda01ee641a708de9 // .quad -2737644984756826647 - QUAD $0x3109058d147fdcdd // .quad 3533361486141316317 - QUAD $0x884134fe908658b2 // .quad -8628557143114098510 - QUAD $0xbd4b46f0599fd415 // .quad -4806670179178130411 - QUAD $0xaa51823e34a7eede // .quad -6174010410465235234 - QUAD $0x6c9e18ac7007c91a // .quad 7826720331309500698 - QUAD $0xd4e5e2cdc1d1ea96 // .quad -3105826994654156138 - QUAD $0x03e2cf6bc604ddb0 // .quad 280014188641050032 - QUAD $0x850fadc09923329e // .quad -8858670899299929442 - QUAD $0x84db8346b786151c // .quad -8873354301053463268 - QUAD $0xa6539930bf6bff45 // .quad -6461652605697523899 - QUAD $0xe612641865679a63 // .quad -1868320839462053277 - QUAD $0xcfe87f7cef46ff16 // .quad -3465379738694516970 - QUAD $0x4fcb7e8f3f60c07e // .quad 5749828502977298558 - QUAD $0x81f14fae158c5f6e // .quad -9083391364325154962 - QUAD $0xe3be5e330f38f09d // .quad -2036086408133152611 - QUAD $0xa26da3999aef7749 // .quad -6742553186979055799 - QUAD $0x5cadf5bfd3072cc5 // .quad 6678264026688335045 - QUAD $0xcb090c8001ab551c // .quad -3816505465296431844 - QUAD $0x73d9732fc7c8f7f6 // .quad 8347830033360418806 - QUAD $0xfdcb4fa002162a63 // .quad -158945813193151901 - QUAD $0x2867e7fddcdd9afa // .quad 2911550761636567802 - QUAD $0x9e9f11c4014dda7e // .quad -7016870160886801794 - QUAD $0xb281e1fd541501b8 // .quad -5583933584809066056 - QUAD $0xc646d63501a1511d // .quad -4159401682681114339 - QUAD $0x1f225a7ca91a4226 // .quad 2243455055843443238 - QUAD $0xf7d88bc24209a565 // .quad -587566084924005019 - QUAD $0x3375788de9b06958 // .quad 3708002419115845976 - QUAD $0x9ae757596946075f // .quad -7284757830718584993 - QUAD $0x0052d6b1641c83ae // .quad 23317005467419566 - QUAD $0xc1a12d2fc3978937 // .quad -4494261269970843337 - QUAD $0xc0678c5dbd23a49a // .quad -4582539761593113446 - QUAD $0xf209787bb47d6b84 // .quad -1006140569036166268 - QUAD $0xf840b7ba963646e0 // .quad -558244341782001952 - QUAD $0x9745eb4d50ce6332 // .quad -7546366883288685774 - QUAD $0xb650e5a93bc3d898 // .quad -5309491445654890344 - QUAD $0xbd176620a501fbff // .quad -4821272585683469313 - QUAD $0xa3e51f138ab4cebe // .quad -6636864307068612930 - QUAD $0xec5d3fa8ce427aff // .quad -1414904713676948737 - QUAD $0xc66f336c36b10137 // .quad -4148040191917883081 - QUAD $0x93ba47c980e98cdf // .quad -7801844473689174817 - QUAD $0xb80b0047445d4184 // .quad -5185050239897353852 - QUAD $0xb8a8d9bbe123f017 // .quad -5140619573684080617 - QUAD $0xa60dc059157491e5 // .quad -6481312799871692315 - QUAD $0xe6d3102ad96cec1d // .quad -1814088448677712867 - QUAD $0x87c89837ad68db2f // .quad -8662506518347195601 - QUAD $0x9043ea1ac7e41392 // .quad -8051334308064652398 - QUAD $0x29babe4598c311fb // .quad 3006924907348169211 - QUAD $0xb454e4a179dd1877 // .quad -5452481866653427593 - QUAD $0xf4296dd6fef3d67a // .quad -853029884242176390 - QUAD $0xe16a1dc9d8545e94 // .quad -2203916314889396588 - QUAD $0x1899e4a65f58660c // .quad 1772699331562333708 - QUAD $0x8ce2529e2734bb1d // .quad -8294976724446954723 - QUAD $0x5ec05dcff72e7f8f // .quad 6827560182880305039 - QUAD $0xb01ae745b101e9e4 // .quad -5757034887131305500 - QUAD $0x76707543f4fa1f73 // .quad 8534450228600381299 - QUAD $0xdc21a1171d42645d // .quad -2584607590486743971 - QUAD $0x6a06494a791c53a8 // .quad 7639874402088932264 - QUAD $0x899504ae72497eba // .quad -8532908771695296838 - QUAD $0x0487db9d17636892 // .quad 326470965756389522 - QUAD $0xabfa45da0edbde69 // .quad -6054449946191733143 - QUAD $0x45a9d2845d3c42b6 // .quad 5019774725622874806 - QUAD $0xd6f8d7509292d603 // .quad -2956376414312278525 - QUAD $0x0b8a2392ba45a9b2 // .quad 831516194300602802 - QUAD $0x865b86925b9bc5c2 // .quad -8765264286586255934 - QUAD $0x8e6cac7768d7141e // .quad -8183976793979022306 - QUAD $0xa7f26836f282b732 // .quad -6344894339805432014 - QUAD $0x3207d795430cd926 // .quad 3605087062808385830 - QUAD $0xd1ef0244af2364ff // .quad -3319431906329402113 - QUAD $0x7f44e6bd49e807b8 // .quad 9170708441896323000 - QUAD $0x8335616aed761f1f // .quad -8992173969096958177 - QUAD $0x5f16206c9c6209a6 // .quad 6851699533943015846 - QUAD $0xa402b9c5a8d3a6e7 // .quad -6628531442943809817 - QUAD $0x36dba887c37a8c0f // .quad 3952938399001381903 - QUAD $0xcd036837130890a1 // .quad -3673978285252374367 - QUAD $0xc2494954da2c9789 // .quad -4446942528265218167 - QUAD $0x802221226be55a64 // .quad -9213765455923815836 - QUAD $0xf2db9baa10b7bd6c // .quad -946992141904134804 - QUAD $0xa02aa96b06deb0fd // .quad -6905520801477381891 - QUAD $0x6f92829494e5acc7 // .quad 8039631859474607303 - QUAD $0xc83553c5c8965d3d // .quad -4020214983419339459 - QUAD $0xcb772339ba1f17f9 // .quad -3785518230938904583 - QUAD $0xfa42a8b73abbf48c // .quad -413582710846786420 - QUAD $0xff2a760414536efb // .quad -60105885123121413 - QUAD $0x9c69a97284b578d7 // .quad -7176018221920323369 - QUAD $0xfef5138519684aba // .quad -75132356403901766 - QUAD $0xc38413cf25e2d70d // .quad -4358336758973016307 - QUAD $0x7eb258665fc25d69 // .quad 9129456591349898601 - QUAD $0xf46518c2ef5b8cd1 // .quad -836234930288882479 - QUAD $0xef2f773ffbd97a61 // .quad -1211618658047395231 - QUAD $0x98bf2f79d5993802 // .quad -7440175859071633406 - QUAD $0xaafb550ffacfd8fa // .quad -6126209340986631942 - QUAD $0xbeeefb584aff8603 // .quad -4688533805412153853 - QUAD $0x95ba2a53f983cf38 // .quad -7657761676233289928 - QUAD $0xeeaaba2e5dbf6784 // .quad -1248981238337804412 - QUAD $0xdd945a747bf26183 // .quad -2480258038432112253 - QUAD $0x952ab45cfa97a0b2 // .quad -7698142301602209614 - QUAD $0x94f971119aeef9e4 // .quad -7712008566467528220 - QUAD $0xba756174393d88df // .quad -5010991858575374113 - QUAD $0x7a37cd5601aab85d // .quad 8806733365625141341 - QUAD $0xe912b9d1478ceb17 // .quad -1652053804791829737 - QUAD $0xac62e055c10ab33a // .quad -6025006692552756422 - QUAD $0x91abb422ccb812ee // .quad -7950062655635975442 - QUAD $0x577b986b314d6009 // .quad 6303799689591218185 - QUAD $0xb616a12b7fe617aa // .quad -5325892301117581398 - QUAD $0xed5a7e85fda0b80b // .quad -1343622424865753077 - QUAD $0xe39c49765fdf9d94 // .quad -2045679357969588844 - QUAD $0x14588f13be847307 // .quad 1466078993672598279 - QUAD $0x8e41ade9fbebc27d // .quad -8196078626372074883 - QUAD $0x596eb2d8ae258fc8 // .quad 6444284760518135752 - QUAD $0xb1d219647ae6b31c // .quad -5633412264537705700 - QUAD $0x6fca5f8ed9aef3bb // .quad 8055355950647669691 - QUAD $0xde469fbd99a05fe3 // .quad -2430079312244744221 - QUAD $0x25de7bb9480d5854 // .quad 2728754459941099604 - QUAD $0x8aec23d680043bee // .quad -8436328597794046994 - QUAD $0xaf561aa79a10ae6a // .quad -5812428961928401302 - QUAD $0xada72ccc20054ae9 // .quad -5933724728815170839 - QUAD $0x1b2ba1518094da04 // .quad 1957835834444274180 - QUAD $0xd910f7ff28069da4 // .quad -2805469892591575644 - QUAD $0x90fb44d2f05d0842 // .quad -7999724640327104446 - QUAD $0x87aa9aff79042286 // .quad -8670947710510816634 - QUAD $0x353a1607ac744a53 // .quad 3835402254873283155 - QUAD $0xa99541bf57452b28 // .quad -6226998619711132888 - QUAD $0x42889b8997915ce8 // .quad 4794252818591603944 - QUAD $0xd3fa922f2d1675f2 // .quad -3172062256211528206 - QUAD $0x69956135febada11 // .quad 7608094030047140369 - QUAD $0x847c9b5d7c2e09b7 // .quad -8900067937773286985 - QUAD $0x43fab9837e699095 // .quad 4898431519131537557 - QUAD $0xa59bc234db398c25 // .quad -6513398903789220827 - QUAD $0x94f967e45e03f4bb // .quad -7712018656367741765 - QUAD $0xcf02b2c21207ef2e // .quad -3530062611309138130 - QUAD $0x1d1be0eebac278f5 // .quad 2097517367411243253 - QUAD $0x8161afb94b44f57d // .quad -9123818159709293187 - QUAD $0x6462d92a69731732 // .quad 7233582727691441970 - QUAD $0xa1ba1ba79e1632dc // .quad -6793086681209228580 - QUAD $0x7d7b8f7503cfdcfe // .quad 9041978409614302462 - QUAD $0xca28a291859bbf93 // .quad -3879672333084147821 - QUAD $0x5cda735244c3d43e // .quad 6690786993590490174 - QUAD $0xfcb2cb35e702af78 // .quad -237904397927796872 - QUAD $0x3a0888136afa64a7 // .quad 4181741870994056359 - QUAD $0x9defbf01b061adab // .quad -7066219276345954901 - QUAD $0x088aaa1845b8fdd0 // .quad 615491320315182544 - QUAD $0xc56baec21c7a1916 // .quad -4221088077005055722 - QUAD $0x8aad549e57273d45 // .quad -8454007886460797627 - QUAD $0xf6c69a72a3989f5b // .quad -664674077828931749 - QUAD $0x36ac54e2f678864b // .quad 3939617107816777291 - QUAD $0x9a3c2087a63f6399 // .quad -7332950326284164199 - QUAD $0x84576a1bb416a7dd // .quad -8910536670511192099 - QUAD $0xc0cb28a98fcf3c7f // .quad -4554501889427817345 - QUAD $0x656d44a2a11c51d5 // .quad 7308573235570561493 - QUAD $0xf0fdf2d3f3c30b9f // .quad -1081441343357383777 - QUAD $0x9f644ae5a4b1b325 // .quad -6961356773836868827 - QUAD $0x969eb7c47859e743 // .quad -7593429867239446717 - QUAD $0x873d5d9f0dde1fee // .quad -8701695967296086034 - QUAD $0xbc4665b596706114 // .quad -4880101315621920492 - QUAD $0xa90cb506d155a7ea // .quad -6265433940692719638 - QUAD $0xeb57ff22fc0c7959 // .quad -1488440626100012711 - QUAD $0x09a7f12442d588f2 // .quad 695789805494438130 - QUAD $0x9316ff75dd87cbd8 // .quad -7847804418953589800 - QUAD $0x0c11ed6d538aeb2f // .quad 869737256868047663 - QUAD $0xb7dcbf5354e9bece // .quad -5198069505264599346 - QUAD $0x8f1668c8a86da5fa // .quad -8136200465769716230 - QUAD $0xe5d3ef282a242e81 // .quad -1885900863153361279 - QUAD $0xf96e017d694487bc // .quad -473439272678684740 - QUAD $0x8fa475791a569d10 // .quad -8096217067111932656 - QUAD $0x37c981dcc395a9ac // .quad 4019886927579031980 - QUAD $0xb38d92d760ec4455 // .quad -5508585315462527915 - QUAD $0x85bbe253f47b1417 // .quad -8810199395808373737 - QUAD $0xe070f78d3927556a // .quad -2274045625900771990 - QUAD $0x93956d7478ccec8e // .quad -7812217631593927538 - QUAD $0x8c469ab843b89562 // .quad -8338807543829064350 - QUAD $0x387ac8d1970027b2 // .quad 4069786015789754290 - QUAD $0xaf58416654a6babb // .quad -5811823411358942533 - QUAD $0x06997b05fcc0319e // .quad 475546501309804958 - QUAD $0xdb2e51bfe9d0696a // .quad -2653093245771290262 - QUAD $0x441fece3bdf81f03 // .quad 4908902581746016003 - QUAD $0x88fcf317f22241e2 // .quad -8575712306248138270 - QUAD $0xd527e81cad7626c3 // .quad -3087243809672255805 - QUAD $0xab3c2fddeeaad25a // .quad -6107954364382784934 - QUAD $0x8a71e223d8d3b074 // .quad -8470740780517707660 - QUAD $0xd60b3bd56a5586f1 // .quad -3023256937051093263 - QUAD $0xf6872d5667844e49 // .quad -682526969396179383 - QUAD $0x85c7056562757456 // .quad -8807064613298015146 - QUAD $0xb428f8ac016561db // .quad -5464844730172612133 - QUAD $0xa738c6bebb12d16c // .quad -6397144748195131028 - QUAD $0xe13336d701beba52 // .quad -2219369894288377262 - QUAD $0xd106f86e69d785c7 // .quad -3384744916816525881 - QUAD $0xecc0024661173473 // .quad -1387106183930235789 - QUAD $0x82a45b450226b39c // .quad -9032994600651410532 - QUAD $0x27f002d7f95d0190 // .quad 2877803288514593168 - QUAD $0xa34d721642b06084 // .quad -6679557232386875260 - QUAD $0x31ec038df7b441f4 // .quad 3597254110643241460 - QUAD $0xcc20ce9bd35c78a5 // .quad -3737760522056206171 - QUAD $0x7e67047175a15271 // .quad 9108253656731439729 - QUAD $0xff290242c83396ce // .quad -60514634142869810 - QUAD $0x0f0062c6e984d386 // .quad 1080972517029761926 - QUAD $0x9f79a169bd203e41 // .quad -6955350673980375487 - QUAD $0x52c07b78a3e60868 // .quad 5962901664714590312 - QUAD $0xc75809c42c684dd1 // .quad -4082502324048081455 - QUAD $0xa7709a56ccdf8a82 // .quad -6381430974388925822 - QUAD $0xf92e0c3537826145 // .quad -491441886632713915 - QUAD $0x88a66076400bb691 // .quad -8600080377420466543 - QUAD $0x9bbcc7a142b17ccb // .quad -7224680206786528053 - QUAD $0x6acff893d00ea435 // .quad 7696643601933968437 - QUAD $0xc2abf989935ddbfe // .quad -4419164240055772162 - QUAD $0x0583f6b8c4124d43 // .quad 397432465562684739 - QUAD $0xf356f7ebf83552fe // .quad -912269281642327298 - QUAD $0xc3727a337a8b704a // .quad -4363290727450709942 - QUAD $0x98165af37b2153de // .quad -7487697328667536418 - QUAD $0x744f18c0592e4c5c // .quad 8380944645968776284 - QUAD $0xbe1bf1b059e9a8d6 // .quad -4747935642407032618 - QUAD $0x1162def06f79df73 // .quad 1252808770606194547 - QUAD $0xeda2ee1c7064130c // .quad -1323233534581402868 - QUAD $0x8addcb5645ac2ba8 // .quad -8440366555225904216 - QUAD $0x9485d4d1c63e8be7 // .quad -7744549986754458649 - QUAD $0x6d953e2bd7173692 // .quad 7896285879677171346 - QUAD $0xb9a74a0637ce2ee1 // .quad -5069001465015685407 - QUAD $0xc8fa8db6ccdd0437 // .quad -3964700705685699529 - QUAD $0xe8111c87c5c1ba99 // .quad -1724565812842218855 - QUAD $0x1d9c9892400a22a2 // .quad 2133748077373825698 - QUAD $0x910ab1d4db9914a0 // .quad -7995382660667468640 - QUAD $0x2503beb6d00cab4b // .quad 2667185096717282123 - QUAD $0xb54d5e4a127f59c8 // .quad -5382542307406947896 - QUAD $0x2e44ae64840fd61d // .quad 3333981370896602653 - QUAD $0xe2a0b5dc971f303a // .quad -2116491865831296966 - QUAD $0x5ceaecfed289e5d2 // .quad 6695424375237764562 - QUAD $0x8da471a9de737e24 // .quad -8240336443785642460 - QUAD $0x7425a83e872c5f47 // .quad 8369280469047205703 - QUAD $0xb10d8e1456105dad // .quad -5688734536304665171 - QUAD $0xd12f124e28f77719 // .quad -3373457468973156583 - QUAD $0xdd50f1996b947518 // .quad -2499232151953443560 - QUAD $0x82bd6b70d99aaa6f // .quad -9025939945749304721 - QUAD $0x8a5296ffe33cc92f // .quad -8479549122611984081 - QUAD $0x636cc64d1001550b // .quad 7164319141522920715 - QUAD $0xace73cbfdc0bfb7b // .quad -5987750384837592197 - QUAD $0x3c47f7e05401aa4e // .quad 4343712908476262990 - QUAD $0xd8210befd30efa5a // .quad -2873001962619602342 - QUAD $0x65acfaec34810a71 // .quad 7326506586225052273 - QUAD $0x8714a775e3e95c78 // .quad -8713155254278333320 - QUAD $0x7f1839a741a14d0d // .quad 9158133232781315341 - QUAD $0xa8d9d1535ce3b396 // .quad -6279758049420528746 - QUAD $0x1ede48111209a050 // .quad 2224294504121868368 - QUAD $0xd31045a8341ca07c // .quad -3238011543348273028 - QUAD $0x934aed0aab460432 // .quad -7833187971778608078 - QUAD $0x83ea2b892091e44d // .quad -8941286242233752499 - QUAD $0xf81da84d5617853f // .quad -568112927868484289 - QUAD $0xa4e4b66b68b65d60 // .quad -6564921784364802720 - QUAD $0x36251260ab9d668e // .quad 3901544858591782542 - QUAD $0xce1de40642e3f4b9 // .quad -3594466212028615495 - QUAD $0xc1d72b7c6b426019 // .quad -4479063491021217767 - QUAD $0x80d2ae83e9ce78f3 // .quad -9164070410158966541 - QUAD $0xb24cf65b8612f81f // .quad -5598829363776522209 - QUAD $0xa1075a24e4421730 // .quad -6843401994271320272 - QUAD $0xdee033f26797b627 // .quad -2386850686293264857 - QUAD $0xc94930ae1d529cfc // .quad -3942566474411762436 - QUAD $0x169840ef017da3b1 // .quad 1628122660560806833 - QUAD $0xfb9b7cd9a4a7443c // .quad -316522074587315140 - QUAD $0x8e1f289560ee864e // .quad -8205795374004271538 - QUAD $0x9d412e0806e88aa5 // .quad -7115355324258153819 - QUAD $0xf1a6f2bab92a27e2 // .quad -1033872180650563614 - QUAD $0xc491798a08a2ad4e // .quad -4282508136895304370 - QUAD $0xae10af696774b1db // .quad -5904026244240592421 - QUAD $0xf5b5d7ec8acb58a2 // .quad -741449152691742558 - QUAD $0xacca6da1e0a8ef29 // .quad -5995859411864064215 - QUAD $0x9991a6f3d6bf1765 // .quad -7380934748073420955 - QUAD $0x17fd090a58d32af3 // .quad 1728547772024695539 - QUAD $0xbff610b0cc6edd3f // .quad -4614482416664388289 - QUAD $0xddfc4b4cef07f5b0 // .quad -2451001303396518480 - QUAD $0xeff394dcff8a948e // .quad -1156417002403097458 - QUAD $0x4abdaf101564f98e // .quad 5385653213018257806 - QUAD $0x95f83d0a1fb69cd9 // .quad -7640289654143017767 - QUAD $0x9d6d1ad41abe37f1 // .quad -7102991539009341455 - QUAD $0xbb764c4ca7a4440f // .quad -4938676049251384305 - QUAD $0x84c86189216dc5ed // .quad -8878739423761676819 - QUAD $0xea53df5fd18d5513 // .quad -1561659043136842477 - QUAD $0x32fd3cf5b4e49bb4 // .quad 3674159897003727796 - QUAD $0x92746b9be2f8552c // .quad -7893565929601608404 - QUAD $0x3fbc8c33221dc2a1 // .quad 4592699871254659745 - QUAD $0xb7118682dbb66a77 // .quad -5255271393574622601 - QUAD $0x0fabaf3feaa5334a // .quad 1129188820640936778 - QUAD $0xe4d5e82392a40515 // .quad -1957403223540890347 - QUAD $0x29cb4d87f2a7400e // .quad 3011586022114279438 - QUAD $0x8f05b1163ba6832d // .quad -8140906042354138323 - QUAD $0x743e20e9ef511012 // .quad 8376168546070237202 - QUAD $0xb2c71d5bca9023f8 // .quad -5564446534515285000 - QUAD $0x914da9246b255416 // .quad -7976533391121755114 - QUAD $0xdf78e4b2bd342cf6 // .quad -2343872149716718346 - QUAD $0x1ad089b6c2f7548e // .quad 1932195658189984910 - QUAD $0x8bab8eefb6409c1a // .quad -8382449121214030822 - QUAD $0xa184ac2473b529b1 // .quad -6808127464117294671 - QUAD $0xae9672aba3d0c320 // .quad -5866375383090150624 - QUAD $0xc9e5d72d90a2741e // .quad -3898473311719230434 - QUAD $0xda3c0f568cc4f3e8 // .quad -2721283210435300376 - QUAD $0x7e2fa67c7a658892 // .quad 9092669226243950738 - QUAD $0x8865899617fb1871 // .quad -8618331034163144591 - QUAD $0xddbb901b98feeab7 // .quad -2469221522477225289 - QUAD $0xaa7eebfb9df9de8d // .quad -6161227774276542835 - QUAD $0x552a74227f3ea565 // .quad 6136845133758244197 - QUAD $0xd51ea6fa85785631 // .quad -3089848699418290639 - QUAD $0xd53a88958f87275f // .quad -3082000819042179233 - QUAD $0x8533285c936b35de // .quad -8848684464777513506 - QUAD $0x8a892abaf368f137 // .quad -8464187042230111945 - QUAD $0xa67ff273b8460356 // .quad -6449169562544503978 - QUAD $0x2d2b7569b0432d85 // .quad 3254824252494523781 - QUAD $0xd01fef10a657842c // .quad -3449775934753242068 - QUAD $0x9c3b29620e29fc73 // .quad -7189106879045698445 - QUAD $0x8213f56a67f6b29b // .quad -9073638986861858149 - QUAD $0x8349f3ba91b47b8f // .quad -8986383598807123057 - QUAD $0xa298f2c501f45f42 // .quad -6730362715149934782 - QUAD $0x241c70a936219a73 // .quad 2602078556773259891 - QUAD $0xcb3f2f7642717713 // .quad -3801267375510030573 - QUAD $0xed238cd383aa0110 // .quad -1359087822460813040 - QUAD $0xfe0efb53d30dd4d7 // .quad -139898200960150313 - QUAD $0xf4363804324a40aa // .quad -849429889038008150 - QUAD $0x9ec95d1463e8a506 // .quad -7004965403241175802 - QUAD $0xb143c6053edcd0d5 // .quad -5673473379724898091 - QUAD $0xc67bb4597ce2ce48 // .quad -4144520735624081848 - QUAD $0xdd94b7868e94050a // .quad -2480155706228734710 - QUAD $0xf81aa16fdc1b81da // .quad -568964901102714406 - QUAD $0xca7cf2b4191c8326 // .quad -3855940325606653146 - QUAD $0x9b10a4e5e9913128 // .quad -7273132090830278360 - QUAD $0xfd1c2f611f63a3f0 // .quad -208239388580928528 - QUAD $0xc1d4ce1f63f57d72 // .quad -4479729095110460046 - QUAD $0xbc633b39673c8cec // .quad -4871985254153548564 - QUAD $0xf24a01a73cf2dccf // .quad -987975350460687153 - QUAD $0xd5be0503e085d813 // .quad -3044990783845967853 - QUAD $0x976e41088617ca01 // .quad -7535013621679011327 - QUAD $0x4b2d8644d8a74e18 // .quad 5417133557047315992 - QUAD $0xbd49d14aa79dbc82 // .quad -4807081008671376254 - QUAD $0xddf8e7d60ed1219e // .quad -2451955090545630818 - QUAD $0xec9c459d51852ba2 // .quad -1397165242411832414 - QUAD $0xcabb90e5c942b503 // .quad -3838314940804713213 - QUAD $0x93e1ab8252f33b45 // .quad -7790757304148477115 - QUAD $0x3d6a751f3b936243 // .quad 4425478360848884291 - QUAD $0xb8da1662e7b00a17 // .quad -5126760611758208489 - QUAD $0x0cc512670a783ad4 // .quad 920161932633717460 - QUAD $0xe7109bfba19c0c9d // .quad -1796764746270372707 - QUAD $0x27fb2b80668b24c5 // .quad 2880944217109767365 - QUAD $0x906a617d450187e2 // .quad -8040506994060064798 - QUAD $0xb1f9f660802dedf6 // .quad -5622191765467566602 - QUAD $0xb484f9dc9641e9da // .quad -5438947724147693094 - QUAD $0x5e7873f8a0396973 // .quad 6807318348447705459 - QUAD $0xe1a63853bbd26451 // .quad -2186998636757228463 - QUAD $0xdb0b487b6423e1e8 // .quad -2662955059861265944 - QUAD $0x8d07e33455637eb2 // .quad -8284403175614349646 - QUAD $0x91ce1a9a3d2cda62 // .quad -7940379843253970334 - QUAD $0xb049dc016abc5e5f // .quad -5743817951090549153 - QUAD $0x7641a140cc7810fb // .quad 8521269269642088699 - QUAD $0xdc5c5301c56b75f7 // .quad -2568086420435798537 - QUAD $0xa9e904c87fcb0a9d // .quad -6203421752542164323 - QUAD $0x89b9b3e11b6329ba // .quad -8522583040413455942 - QUAD $0x546345fa9fbdcd44 // .quad 6080780864604458308 - QUAD $0xac2820d9623bf429 // .quad -6041542782089432023 - QUAD $0xa97c177947ad4095 // .quad -6234081974526590827 - QUAD $0xd732290fbacaf133 // .quad -2940242459184402125 - QUAD $0x49ed8eabcccc485d // .quad 5327070802775656541 - QUAD $0x867f59a9d4bed6c0 // .quad -8755180564631333184 - QUAD $0x5c68f256bfff5a74 // .quad 6658838503469570676 - QUAD $0xa81f301449ee8c70 // .quad -6332289687361778576 - QUAD $0x73832eec6fff3111 // .quad 8323548129336963345 - QUAD $0xd226fc195c6a2f8c // .quad -3303676090774835316 - QUAD $0xc831fd53c5ff7eab // .quad -4021154456019173717 - QUAD $0x83585d8fd9c25db7 // .quad -8982326584375353929 - QUAD $0xba3e7ca8b77f5e55 // .quad -5026443070023967147 - QUAD $0xa42e74f3d032f525 // .quad -6616222212041804507 - QUAD $0x28ce1bd2e55f35eb // .quad 2940318199324816875 - QUAD $0xcd3a1230c43fb26f // .quad -3658591746624867729 - QUAD $0x7980d163cf5b81b3 // .quad 8755227902219092403 - QUAD $0x80444b5e7aa7cf85 // .quad -9204148869281624187 - QUAD $0xd7e105bcc332621f // .quad -2891023177508298209 - QUAD $0xa0555e361951c366 // .quad -6893500068174642330 - QUAD $0x8dd9472bf3fefaa7 // .quad -8225464990312760665 - QUAD $0xc86ab5c39fa63440 // .quad -4005189066790915008 - QUAD $0xb14f98f6f0feb951 // .quad -5670145219463562927 - QUAD $0xfa856334878fc150 // .quad -394800315061255856 - QUAD $0x6ed1bf9a569f33d3 // .quad 7985374283903742931 - QUAD $0x9c935e00d4b9d8d2 // .quad -7164279224554366766 - QUAD $0x0a862f80ec4700c8 // .quad 758345818024902856 - QUAD $0xc3b8358109e84f07 // .quad -4343663012265570553 - QUAD $0xcd27bb612758c0fa // .quad -3663753745896259334 - QUAD $0xf4a642e14c6262c8 // .quad -817892746904575288 - QUAD $0x8038d51cb897789c // .quad -9207375118826243940 - QUAD $0x98e7e9cccfbd7dbd // .quad -7428711994456441411 - QUAD $0xe0470a63e6bd56c3 // .quad -2285846861678029117 - QUAD $0xbf21e44003acdd2c // .quad -4674203974643163860 - QUAD $0x1858ccfce06cac74 // .quad 1754377441329851508 - QUAD $0xeeea5d5004981478 // .quad -1231068949876566920 - QUAD $0x0f37801e0c43ebc8 // .quad 1096485900831157192 - QUAD $0x95527a5202df0ccb // .quad -7686947121313936181 - QUAD $0xd30560258f54e6ba // .quad -3241078642388441414 - QUAD $0xbaa718e68396cffd // .quad -4996997883215032323 - QUAD $0x47c6b82ef32a2069 // .quad 5172023733869224041 - QUAD $0xe950df20247c83fd // .quad -1634561335591402499 - QUAD $0x4cdc331d57fa5441 // .quad 5538357842881958977 - QUAD $0x91d28b7416cdd27e // .quad -7939129862385708418 - QUAD $0xe0133fe4adf8e952 // .quad -2300424733252327086 - QUAD $0xb6472e511c81471d // .quad -5312226309554747619 - QUAD $0x58180fddd97723a6 // .quad 6347841120289366950 - QUAD $0xe3d8f9e563a198e5 // .quad -2028596868516046619 - QUAD $0x570f09eaa7ea7648 // .quad 6273243709394548296 - QUAD $0x8e679c2f5e44ff8f // .quad -8185402070463610993 - QUAD $0x2cd2cc6551e513da // .quad 3229868618315797466 - QUAD $0xb201833b35d63f73 // .quad -5620066569652125837 - QUAD $0xf8077f7ea65e58d1 // .quad -574350245532641071 - QUAD $0xde81e40a034bcf4f // .quad -2413397193637769393 - QUAD $0xfb04afaf27faf782 // .quad -358968903457900670 - QUAD $0x8b112e86420f6191 // .quad -8425902273664687727 - QUAD $0x79c5db9af1f9b563 // .quad 8774660907532399971 - QUAD $0xadd57a27d29339f6 // .quad -5920691823653471754 - QUAD $0x18375281ae7822bc // .quad 1744954097560724156 - QUAD $0xd94ad8b1c7380874 // .quad -2789178761139451788 - QUAD $0x8f2293910d0b15b5 // .quad -8132775725879323211 - QUAD $0x87cec76f1c830548 // .quad -8660765753353239224 - QUAD $0xb2eb3875504ddb22 // .quad -5554283638921766110 - QUAD $0xa9c2794ae3a3c69a // .quad -6214271173264161126 - QUAD $0x5fa60692a46151eb // .quad 6892203506629956075 - QUAD $0xd433179d9c8cb841 // .quad -3156152948152813503 - QUAD $0xdbc7c41ba6bcd333 // .quad -2609901835997359309 - QUAD $0x849feec281d7f328 // .quad -8890124620236590296 - QUAD $0x12b9b522906c0800 // .quad 1349308723430688768 - QUAD $0xa5c7ea73224deff3 // .quad -6500969756868349965 - QUAD $0xd768226b34870a00 // .quad -2925050114139026944 - QUAD $0xcf39e50feae16bef // .quad -3514526177658049553 - QUAD $0xe6a1158300d46640 // .quad -1828156321336891840 - QUAD $0x81842f29f2cce375 // .quad -9114107888677362827 - QUAD $0x60495ae3c1097fd0 // .quad 6938176635183661008 - QUAD $0xa1e53af46f801c53 // .quad -6780948842419315629 - QUAD $0x385bb19cb14bdfc4 // .quad 4061034775552188356 - QUAD $0xca5e89b18b602368 // .quad -3864500034596756632 - QUAD $0x46729e03dd9ed7b5 // .quad 5076293469440235445 - QUAD $0xfcf62c1dee382c42 // .quad -218939024818557886 - QUAD $0x6c07a2c26a8346d1 // .quad 7784369436827535057 - QUAD $0x9e19db92b4e31ba9 // .quad -7054365918152680535 - QUAD $0xc7098b7305241885 // .quad -4104596259247744891 - QUAD $0xc5a05277621be293 // .quad -4206271379263462765 - QUAD $0xb8cbee4fc66d1ea7 // .quad -5130745324059681113 - QUAD $0xf70867153aa2db38 // .quad -646153205651940552 - QUAD $0x737f74f1dc043328 // .quad 8322499218531169064 - QUAD $0x9a65406d44a5c903 // .quad -7321374781173544701 - QUAD $0x505f522e53053ff2 // .quad 5791438004736573426 - QUAD $0xc0fe908895cf3b44 // .quad -4540032458039542972 - QUAD $0x647726b9e7c68fef // .quad 7239297505920716783 - QUAD $0xf13e34aabb430a15 // .quad -1063354554122040811 - QUAD $0x5eca783430dc19f5 // .quad 6830403950414141941 - QUAD $0x96c6e0eab509e64d // .quad -7582125623967357363 - QUAD $0xb67d16413d132072 // .quad -5297053117264486286 - QUAD $0xbc789925624c5fe0 // .quad -4865971011531808800 - QUAD $0xe41c5bd18c57e88f // .quad -2009630378153219953 - QUAD $0xeb96bf6ebadf77d8 // .quad -1470777745987373096 - QUAD $0x8e91b962f7b6f159 // .quad -8173548013986844327 - QUAD $0x933e37a534cbaae7 // .quad -7836765118883190041 - QUAD $0x723627bbb5a4adb0 // .quad 8229809056225996208 - QUAD $0xb80dc58e81fe95a1 // .quad -5184270380176599647 - QUAD $0xcec3b1aaa30dd91c // .quad -3547796734999668452 - QUAD $0xe61136f2227e3b09 // .quad -1868651956793361655 - QUAD $0x213a4f0aa5e8a7b1 // .quad 2394313059052595121 - QUAD $0x8fcac257558ee4e6 // .quad -8085436500636932890 - QUAD $0xa988e2cd4f62d19d // .quad -6230480713039031907 - QUAD $0xb3bd72ed2af29e1f // .quad -5495109607368778209 - QUAD $0x93eb1b80a33b8605 // .quad -7788100891298789883 - QUAD $0xe0accfa875af45a7 // .quad -2257200990783584857 - QUAD $0xbc72f130660533c3 // .quad -4867563057061743677 - QUAD $0x8c6c01c9498d8b88 // .quad -8328279646880822392 - QUAD $0xeb8fad7c7f8680b4 // .quad -1472767802899791692 - QUAD $0xaf87023b9bf0ee6a // .quad -5798663540173640086 - QUAD $0xa67398db9f6820e1 // .quad -6452645772052127519 - QUAD $0xdb68c2ca82ed2a05 // .quad -2636643406789662203 - QUAD $0x88083f8943a1148c // .quad -8644589625959967604 - QUAD $0x892179be91d43a43 // .quad -8565431156884620733 - QUAD $0x6a0a4f6b948959b0 // .quad 7641007041259592112 - QUAD $0xab69d82e364948d4 // .quad -6095102927678388012 - QUAD $0x848ce34679abb01c // .quad -8895485272135061476 - QUAD $0xd6444e39c3db9b09 // .quad -3007192641170597111 - QUAD $0xf2d80e0c0c0b4e11 // .quad -947992276657025519 - QUAD $0x85eab0e41a6940e5 // .quad -8797024428372705051 - QUAD $0x6f8e118f0f0e2195 // .quad 8038381691033493909 - QUAD $0xa7655d1d2103911f // .quad -6384594517038493409 - QUAD $0x4b7195f2d2d1a9fb // .quad 5436291095364479483 - QUAD $0xd13eb46469447567 // .quad -3369057127870728857 - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -_POW_TAB: - LONG $0x00000001 // .long 1 - LONG $0x00000003 // .long 3 - LONG $0x00000006 // .long 6 - LONG $0x00000009 // .long 9 - LONG $0x0000000d // .long 13 - LONG $0x00000010 // .long 16 - LONG $0x00000013 // .long 19 - LONG $0x00000017 // .long 23 - LONG $0x0000001a // .long 26 - - // .p2align 2, 0x00 -_MASK_USE_NUMBER: - LONG $0x00000002 // .long 2 - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -_Digits: - QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' - QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' - QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' - QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' - QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' - QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' - QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' - QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' - QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' - QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' - QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' - QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' - QUAD $0x3939383937393639 // .ascii 8, '96979899' - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -_LB_35efc682: // _pow10_ceil_sig.g - QUAD $0xff77b1fcbebcdc4f // .quad -38366372719436721 - QUAD $0x25e8e89c13bb0f7b // .quad 2731688931043774331 - QUAD $0x9faacf3df73609b1 // .quad -6941508010590729807 - QUAD $0x77b191618c54e9ad // .quad 8624834609543440813 - QUAD $0xc795830d75038c1d // .quad -4065198994811024355 - QUAD $0xd59df5b9ef6a2418 // .quad -3054014793352862696 - QUAD $0xf97ae3d0d2446f25 // .quad -469812725086392539 - QUAD $0x4b0573286b44ad1e // .quad 5405853545163697438 - QUAD $0x9becce62836ac577 // .quad -7211161980820077193 - QUAD $0x4ee367f9430aec33 // .quad 5684501474941004851 - QUAD $0xc2e801fb244576d5 // .quad -4402266457597708587 - QUAD $0x229c41f793cda740 // .quad 2493940825248868160 - QUAD $0xf3a20279ed56d48a // .quad -891147053569747830 - QUAD $0x6b43527578c11110 // .quad 7729112049988473104 - QUAD $0x9845418c345644d6 // .quad -7474495936122174250 - QUAD $0x830a13896b78aaaa // .quad -9004363024039368022 - QUAD $0xbe5691ef416bd60c // .quad -4731433901725329908 - QUAD $0x23cc986bc656d554 // .quad 2579604275232953684 - QUAD $0xedec366b11c6cb8f // .quad -1302606358729274481 - QUAD $0x2cbfbe86b7ec8aa9 // .quad 3224505344041192105 - QUAD $0x94b3a202eb1c3f39 // .quad -7731658001846878407 - QUAD $0x7bf7d71432f3d6aa // .quad 8932844867666826922 - QUAD $0xb9e08a83a5e34f07 // .quad -5052886483881210105 - QUAD $0xdaf5ccd93fb0cc54 // .quad -2669001970698630060 - QUAD $0xe858ad248f5c22c9 // .quad -1704422086424124727 - QUAD $0xd1b3400f8f9cff69 // .quad -3336252463373287575 - QUAD $0x91376c36d99995be // .quad -7982792831656159810 - QUAD $0x23100809b9c21fa2 // .quad 2526528228819083170 - QUAD $0xb58547448ffffb2d // .quad -5366805021142811859 - QUAD $0xabd40a0c2832a78b // .quad -6065211750830921845 - QUAD $0xe2e69915b3fff9f9 // .quad -2096820258001126919 - QUAD $0x16c90c8f323f516d // .quad 1641857348316123501 - QUAD $0x8dd01fad907ffc3b // .quad -8228041688891786181 - QUAD $0xae3da7d97f6792e4 // .quad -5891368184943504668 - QUAD $0xb1442798f49ffb4a // .quad -5673366092687344822 - QUAD $0x99cd11cfdf41779d // .quad -7364210231179380835 - QUAD $0xdd95317f31c7fa1d // .quad -2480021597431793123 - QUAD $0x40405643d711d584 // .quad 4629795266307937668 - QUAD $0x8a7d3eef7f1cfc52 // .quad -8467542526035952558 - QUAD $0x482835ea666b2573 // .quad 5199465050656154995 - QUAD $0xad1c8eab5ee43b66 // .quad -5972742139117552794 - QUAD $0xda3243650005eed0 // .quad -2724040723534582064 - QUAD $0xd863b256369d4a40 // .quad -2854241655469553088 - QUAD $0x90bed43e40076a83 // .quad -8016736922845615485 - QUAD $0x873e4f75e2224e68 // .quad -8701430062309552536 - QUAD $0x5a7744a6e804a292 // .quad 6518754469289960082 - QUAD $0xa90de3535aaae202 // .quad -6265101559459552766 - QUAD $0x711515d0a205cb37 // .quad 8148443086612450103 - QUAD $0xd3515c2831559a83 // .quad -3219690930897053053 - QUAD $0x0d5a5b44ca873e04 // .quad 962181821410786820 - QUAD $0x8412d9991ed58091 // .quad -8929835859451740015 - QUAD $0xe858790afe9486c3 // .quad -1704479370831952189 - QUAD $0xa5178fff668ae0b6 // .quad -6550608805887287114 - QUAD $0x626e974dbe39a873 // .quad 7092772823314835571 - QUAD $0xce5d73ff402d98e3 // .quad -3576574988931720989 - QUAD $0xfb0a3d212dc81290 // .quad -357406007711231344 - QUAD $0x80fa687f881c7f8e // .quad -9152888395723407474 - QUAD $0x7ce66634bc9d0b9a // .quad 8999993282035256218 - QUAD $0xa139029f6a239f72 // .quad -6829424476226871438 - QUAD $0x1c1fffc1ebc44e81 // .quad 2026619565689294465 - QUAD $0xc987434744ac874e // .quad -3925094576856201394 - QUAD $0xa327ffb266b56221 // .quad -6690097579743157727 - QUAD $0xfbe9141915d7a922 // .quad -294682202642863838 - QUAD $0x4bf1ff9f0062baa9 // .quad 5472436080603216553 - QUAD $0x9d71ac8fada6c9b5 // .quad -7101705404292871755 - QUAD $0x6f773fc3603db4aa // .quad 8031958568804398250 - QUAD $0xc4ce17b399107c22 // .quad -4265445736938701790 - QUAD $0xcb550fb4384d21d4 // .quad -3795109844276665900 - QUAD $0xf6019da07f549b2b // .quad -720121152745989333 - QUAD $0x7e2a53a146606a49 // .quad 9091170749936331337 - QUAD $0x99c102844f94e0fb // .quad -7367604748107325189 - QUAD $0x2eda7444cbfc426e // .quad 3376138709496513134 - QUAD $0xc0314325637a1939 // .quad -4597819916706768583 - QUAD $0xfa911155fefb5309 // .quad -391512631556746487 - QUAD $0xf03d93eebc589f88 // .quad -1135588877456072824 - QUAD $0x793555ab7eba27cb // .quad 8733981247408842699 - QUAD $0x96267c7535b763b5 // .quad -7627272076051127371 - QUAD $0x4bc1558b2f3458df // .quad 5458738279630526687 - QUAD $0xbbb01b9283253ca2 // .quad -4922404076636521310 - QUAD $0x9eb1aaedfb016f17 // .quad -7011635205744005353 - QUAD $0xea9c227723ee8bcb // .quad -1541319077368263733 - QUAD $0x465e15a979c1cadd // .quad 5070514048102157021 - QUAD $0x92a1958a7675175f // .quad -7880853450996246689 - QUAD $0x0bfacd89ec191eca // .quad 863228270850154186 - QUAD $0xb749faed14125d36 // .quad -5239380795317920458 - QUAD $0xcef980ec671f667c // .quad -3532650679864695172 - QUAD $0xe51c79a85916f484 // .quad -1937539975720012668 - QUAD $0x82b7e12780e7401b // .quad -9027499368258256869 - QUAD $0x8f31cc0937ae58d2 // .quad -8128491512466089774 - QUAD $0xd1b2ecb8b0908811 // .quad -3336344095947716591 - QUAD $0xb2fe3f0b8599ef07 // .quad -5548928372155224313 - QUAD $0x861fa7e6dcb4aa16 // .quad -8782116138362033642 - QUAD $0xdfbdcece67006ac9 // .quad -2324474446766642487 - QUAD $0x67a791e093e1d49b // .quad 7469098900757009563 - QUAD $0x8bd6a141006042bd // .quad -8370325556870233411 - QUAD $0xe0c8bb2c5c6d24e1 // .quad -2249342214667950879 - QUAD $0xaecc49914078536d // .quad -5851220927660403859 - QUAD $0x58fae9f773886e19 // .quad 6411694268519837209 - QUAD $0xda7f5bf590966848 // .quad -2702340141148116920 - QUAD $0xaf39a475506a899f // .quad -5820440219632367201 - QUAD $0x888f99797a5e012d // .quad -8606491615858654931 - QUAD $0x6d8406c952429604 // .quad 7891439908798240260 - QUAD $0xaab37fd7d8f58178 // .quad -6146428501395930760 - QUAD $0xc8e5087ba6d33b84 // .quad -3970758169284363388 - QUAD $0xd5605fcdcf32e1d6 // .quad -3071349608317525546 - QUAD $0xfb1e4a9a90880a65 // .quad -351761693178066331 - QUAD $0x855c3be0a17fcd26 // .quad -8837122532839535322 - QUAD $0x5cf2eea09a550680 // .quad 6697677969404790400 - QUAD $0xa6b34ad8c9dfc06f // .quad -6434717147622031249 - QUAD $0xf42faa48c0ea481f // .quad -851274575098787809 - QUAD $0xd0601d8efc57b08b // .quad -3431710416100151157 - QUAD $0xf13b94daf124da27 // .quad -1064093218873484761 - QUAD $0x823c12795db6ce57 // .quad -9062348037703676329 - QUAD $0x76c53d08d6b70859 // .quad 8558313775058847833 - QUAD $0xa2cb1717b52481ed // .quad -6716249028702207507 - QUAD $0x54768c4b0c64ca6f // .quad 6086206200396171887 - QUAD $0xcb7ddcdda26da268 // .quad -3783625267450371480 - QUAD $0xa9942f5dcf7dfd0a // .quad -6227300304786948854 - QUAD $0xfe5d54150b090b02 // .quad -117845565885576446 - QUAD $0xd3f93b35435d7c4d // .quad -3172439362556298163 - QUAD $0x9efa548d26e5a6e1 // .quad -6991182506319567135 - QUAD $0xc47bc5014a1a6db0 // .quad -4288617610811380304 - QUAD $0xc6b8e9b0709f109a // .quad -4127292114472071014 - QUAD $0x359ab6419ca1091c // .quad 3862600023340550428 - QUAD $0xf867241c8cc6d4c0 // .quad -547429124662700864 - QUAD $0xc30163d203c94b63 // .quad -4395122007679087773 - QUAD $0x9b407691d7fc44f8 // .quad -7259672230555269896 - QUAD $0x79e0de63425dcf1e // .quad 8782263791269039902 - QUAD $0xc21094364dfb5636 // .quad -4462904269766699466 - QUAD $0x985915fc12f542e5 // .quad -7468914334623251739 - QUAD $0xf294b943e17a2bc4 // .quad -966944318780986428 - QUAD $0x3e6f5b7b17b2939e // .quad 4498915137003099038 - QUAD $0x979cf3ca6cec5b5a // .quad -7521869226879198374 - QUAD $0xa705992ceecf9c43 // .quad -6411550076227838909 - QUAD $0xbd8430bd08277231 // .quad -4790650515171610063 - QUAD $0x50c6ff782a838354 // .quad 5820620459997365076 - QUAD $0xece53cec4a314ebd // .quad -1376627125537124675 - QUAD $0xa4f8bf5635246429 // .quad -6559282480285457367 - QUAD $0x940f4613ae5ed136 // .quad -7777920981101784778 - QUAD $0x871b7795e136be9a // .quad -8711237568605798758 - QUAD $0xb913179899f68584 // .quad -5110715207949843068 - QUAD $0x28e2557b59846e40 // .quad 2946011094524915264 - QUAD $0xe757dd7ec07426e5 // .quad -1776707991509915931 - QUAD $0x331aeada2fe589d0 // .quad 3682513868156144080 - QUAD $0x9096ea6f3848984f // .quad -8027971522334779313 - QUAD $0x3ff0d2c85def7622 // .quad 4607414176811284002 - QUAD $0xb4bca50b065abe63 // .quad -5423278384491086237 - QUAD $0x0fed077a756b53aa // .quad 1147581702586717098 - QUAD $0xe1ebce4dc7f16dfb // .quad -2167411962186469893 - QUAD $0xd3e8495912c62895 // .quad -3177208890193991531 - QUAD $0x8d3360f09cf6e4bd // .quad -8272161504007625539 - QUAD $0x64712dd7abbbd95d // .quad 7237616480483531101 - QUAD $0xb080392cc4349dec // .quad -5728515861582144020 - QUAD $0xbd8d794d96aacfb4 // .quad -4788037454677749836 - QUAD $0xdca04777f541c567 // .quad -2548958808550292121 - QUAD $0xecf0d7a0fc5583a1 // .quad -1373360799919799391 - QUAD $0x89e42caaf9491b60 // .quad -8510628282985014432 - QUAD $0xf41686c49db57245 // .quad -858350499949874619 - QUAD $0xac5d37d5b79b6239 // .quad -6026599335303880135 - QUAD $0x311c2875c522ced6 // .quad 3538747893490044630 - QUAD $0xd77485cb25823ac7 // .quad -2921563150702462265 - QUAD $0x7d633293366b828c // .quad 9035120885289943692 - QUAD $0x86a8d39ef77164bc // .quad -8743505996830120772 - QUAD $0xae5dff9c02033198 // .quad -5882264492762254952 - QUAD $0xa8530886b54dbdeb // .quad -6317696477610263061 - QUAD $0xd9f57f830283fdfd // .quad -2741144597525430787 - QUAD $0xd267caa862a12d66 // .quad -3285434578585440922 - QUAD $0xd072df63c324fd7c // .quad -3426430746906788484 - QUAD $0x8380dea93da4bc60 // .quad -8970925639256982432 - QUAD $0x4247cb9e59f71e6e // .quad 4776009810824339054 - QUAD $0xa46116538d0deb78 // .quad -6601971030643840136 - QUAD $0x52d9be85f074e609 // .quad 5970012263530423817 - QUAD $0xcd795be870516656 // .quad -3640777769877412266 - QUAD $0x67902e276c921f8c // .quad 7462515329413029772 - QUAD $0x806bd9714632dff6 // .quad -9193015133814464522 - QUAD $0x00ba1cd8a3db53b7 // .quad 52386062455755703 - QUAD $0xa086cfcd97bf97f3 // .quad -6879582898840692749 - QUAD $0x80e8a40eccd228a5 // .quad -9157889458785081179 - QUAD $0xc8a883c0fdaf7df0 // .quad -3987792605123478032 - QUAD $0x6122cd128006b2ce // .quad 6999382250228200142 - QUAD $0xfad2a4b13d1b5d6c // .quad -373054737976959636 - QUAD $0x796b805720085f82 // .quad 8749227812785250178 - QUAD $0x9cc3a6eec6311a63 // .quad -7150688238876681629 - QUAD $0xcbe3303674053bb1 // .quad -3755104653863994447 - QUAD $0xc3f490aa77bd60fc // .quad -4326674280168464132 - QUAD $0xbedbfc4411068a9d // .quad -4693880817329993059 - QUAD $0xf4f1b4d515acb93b // .quad -796656831783192261 - QUAD $0xee92fb5515482d45 // .quad -1255665003235103419 - QUAD $0x991711052d8bf3c5 // .quad -7415439547505577019 - QUAD $0x751bdd152d4d1c4b // .quad 8438581409832836171 - QUAD $0xbf5cd54678eef0b6 // .quad -4657613415954583370 - QUAD $0xd262d45a78a0635e // .quad -3286831292991118498 - QUAD $0xef340a98172aace4 // .quad -1210330751515841308 - QUAD $0x86fb897116c87c35 // .quad -8720225134666286027 - QUAD $0x9580869f0e7aac0e // .quad -7673985747338482674 - QUAD $0xd45d35e6ae3d4da1 // .quad -3144297699952734815 - QUAD $0xbae0a846d2195712 // .quad -4980796165745715438 - QUAD $0x8974836059cca10a // .quad -8542058143368306422 - QUAD $0xe998d258869facd7 // .quad -1614309188754756393 - QUAD $0x2bd1a438703fc94c // .quad 3157485376071780684 - QUAD $0x91ff83775423cc06 // .quad -7926472270612804602 - QUAD $0x7b6306a34627ddd0 // .quad 8890957387685944784 - QUAD $0xb67f6455292cbf08 // .quad -5296404319838617848 - QUAD $0x1a3bc84c17b1d543 // .quad 1890324697752655171 - QUAD $0xe41f3d6a7377eeca // .quad -2008819381370884406 - QUAD $0x20caba5f1d9e4a94 // .quad 2362905872190818964 - QUAD $0x8e938662882af53e // .quad -8173041140997884610 - QUAD $0x547eb47b7282ee9d // .quad 6088502188546649757 - QUAD $0xb23867fb2a35b28d // .quad -5604615407819967859 - QUAD $0xe99e619a4f23aa44 // .quad -1612744301171463612 - QUAD $0xdec681f9f4c31f31 // .quad -2394083241347571919 - QUAD $0x6405fa00e2ec94d5 // .quad 7207441660390446293 - QUAD $0x8b3c113c38f9f37e // .quad -8413831053483314306 - QUAD $0xde83bc408dd3dd05 // .quad -2412877989897052923 - QUAD $0xae0b158b4738705e // .quad -5905602798426754978 - QUAD $0x9624ab50b148d446 // .quad -7627783505798704058 - QUAD $0xd98ddaee19068c76 // .quad -2770317479606055818 - QUAD $0x3badd624dd9b0958 // .quad 4300328673033783640 - QUAD $0x87f8a8d4cfa417c9 // .quad -8648977452394866743 - QUAD $0xe54ca5d70a80e5d7 // .quad -1923980597781273129 - QUAD $0xa9f6d30a038d1dbc // .quad -6199535797066195524 - QUAD $0x5e9fcf4ccd211f4d // .quad 6818396289628184397 - QUAD $0xd47487cc8470652b // .quad -3137733727905356501 - QUAD $0x7647c32000696720 // .quad 8522995362035230496 - QUAD $0x84c8d4dfd2c63f3b // .quad -8878612607581929669 - QUAD $0x29ecd9f40041e074 // .quad 3021029092058325108 - QUAD $0xa5fb0a17c777cf09 // .quad -6486579741050024183 - QUAD $0xf468107100525891 // .quad -835399653354481519 - QUAD $0xcf79cc9db955c2cc // .quad -3496538657885142324 - QUAD $0x7182148d4066eeb5 // .quad 8179122470161673909 - QUAD $0x81ac1fe293d599bf // .quad -9102865688819295809 - QUAD $0xc6f14cd848405531 // .quad -4111420493003729615 - QUAD $0xa21727db38cb002f // .quad -6766896092596731857 - QUAD $0xb8ada00e5a506a7d // .quad -5139275616254662019 - QUAD $0xca9cf1d206fdc03b // .quad -3846934097318526917 - QUAD $0xa6d90811f0e4851d // .quad -6424094520318327523 - QUAD $0xfd442e4688bd304a // .quad -196981603220770742 - QUAD $0x908f4a166d1da664 // .quad -8030118150397909404 - QUAD $0x9e4a9cec15763e2e // .quad -7040642529654063570 - QUAD $0x9a598e4e043287ff // .quad -7324666853212387329 - QUAD $0xc5dd44271ad3cdba // .quad -4189117143640191558 - QUAD $0x40eff1e1853f29fe // .quad 4679224488766679550 - QUAD $0xf7549530e188c128 // .quad -624710411122851544 - QUAD $0xd12bee59e68ef47d // .quad -3374341425896426371 - QUAD $0x9a94dd3e8cf578b9 // .quad -7307973034592864071 - QUAD $0x82bb74f8301958cf // .quad -9026492418826348337 - QUAD $0xc13a148e3032d6e7 // .quad -4523280274813692185 - QUAD $0xe36a52363c1faf02 // .quad -2059743486678159614 - QUAD $0xf18899b1bc3f8ca1 // .quad -1042414325089727327 - QUAD $0xdc44e6c3cb279ac2 // .quad -2574679358347699518 - QUAD $0x96f5600f15a7b7e5 // .quad -7569037980822161435 - QUAD $0x29ab103a5ef8c0ba // .quad 3002511419460075706 - QUAD $0xbcb2b812db11a5de // .quad -4849611457600313890 - QUAD $0x7415d448f6b6f0e8 // .quad 8364825292752482536 - QUAD $0xebdf661791d60f56 // .quad -1450328303573004458 - QUAD $0x111b495b3464ad22 // .quad 1232659579085827362 - QUAD $0x936b9fcebb25c995 // .quad -7823984217374209643 - QUAD $0xcab10dd900beec35 // .quad -3841273781498745803 - QUAD $0xb84687c269ef3bfb // .quad -5168294253290374149 - QUAD $0x3d5d514f40eea743 // .quad 4421779809981343555 - QUAD $0xe65829b3046b0afa // .quad -1848681798185579782 - QUAD $0x0cb4a5a3112a5113 // .quad 915538744049291539 - QUAD $0x8ff71a0fe2c2e6dc // .quad -8072955151507069220 - QUAD $0x47f0e785eaba72ac // .quad 5183897733458195116 - QUAD $0xb3f4e093db73a093 // .quad -5479507920956448621 - QUAD $0x59ed216765690f57 // .quad 6479872166822743895 - QUAD $0xe0f218b8d25088b8 // .quad -2237698882768172872 - QUAD $0x306869c13ec3532d // .quad 3488154190101041965 - QUAD $0x8c974f7383725573 // .quad -8316090829371189901 - QUAD $0x1e414218c73a13fc // .quad 2180096368813151228 - QUAD $0xafbd2350644eeacf // .quad -5783427518286599473 - QUAD $0xe5d1929ef90898fb // .quad -1886565557410948869 - QUAD $0xdbac6c247d62a583 // .quad -2617598379430861437 - QUAD $0xdf45f746b74abf3a // .quad -2358206946763686086 - QUAD $0x894bc396ce5da772 // .quad -8553528014785370254 - QUAD $0x6b8bba8c328eb784 // .quad 7749492695127472004 - QUAD $0xab9eb47c81f5114f // .quad -6080224000054324913 - QUAD $0x066ea92f3f326565 // .quad 463493832054564197 - QUAD $0xd686619ba27255a2 // .quad -2988593981640518238 - QUAD $0xc80a537b0efefebe // .quad -4032318728359182658 - QUAD $0x8613fd0145877585 // .quad -8785400266166405755 - QUAD $0xbd06742ce95f5f37 // .quad -4826042214438183113 - QUAD $0xa798fc4196e952e7 // .quad -6370064314280619289 - QUAD $0x2c48113823b73705 // .quad 3190819268807046917 - QUAD $0xd17f3b51fca3a7a0 // .quad -3350894374423386208 - QUAD $0xf75a15862ca504c6 // .quad -623161932418579258 - QUAD $0x82ef85133de648c4 // .quad -9011838011655698236 - QUAD $0x9a984d73dbe722fc // .quad -7307005235402693892 - QUAD $0xa3ab66580d5fdaf5 // .quad -6653111496142234891 - QUAD $0xc13e60d0d2e0ebbb // .quad -4522070525825979461 - QUAD $0xcc963fee10b7d1b3 // .quad -3704703351750405709 - QUAD $0x318df905079926a9 // .quad 3570783879572301481 - QUAD $0xffbbcfe994e5c61f // .quad -19193171260619233 - QUAD $0xfdf17746497f7053 // .quad -148206168962011053 - QUAD $0x9fd561f1fd0f9bd3 // .quad -6929524759678968877 - QUAD $0xfeb6ea8bedefa634 // .quad -92628855601256908 - QUAD $0xc7caba6e7c5382c8 // .quad -4050219931171323192 - QUAD $0xfe64a52ee96b8fc1 // .quad -115786069501571135 - QUAD $0xf9bd690a1b68637b // .quad -451088895536766085 - QUAD $0x3dfdce7aa3c673b1 // .quad 4466953431550423985 - QUAD $0x9c1661a651213e2d // .quad -7199459587351560659 - QUAD $0x06bea10ca65c084f // .quad 486002885505321039 - QUAD $0xc31bfa0fe5698db8 // .quad -4387638465762062920 - QUAD $0x486e494fcff30a63 // .quad 5219189625309039203 - QUAD $0xf3e2f893dec3f126 // .quad -872862063775190746 - QUAD $0x5a89dba3c3efccfb // .quad 6523987031636299003 - QUAD $0x986ddb5c6b3a76b7 // .quad -7463067817500576073 - QUAD $0xf89629465a75e01d // .quad -534194123654701027 - QUAD $0xbe89523386091465 // .quad -4717148753448332187 - QUAD $0xf6bbb397f1135824 // .quad -667742654568376284 - QUAD $0xee2ba6c0678b597f // .quad -1284749923383027329 - QUAD $0x746aa07ded582e2d // .quad 8388693718644305453 - QUAD $0x94db483840b717ef // .quad -7720497729755473937 - QUAD $0xa8c2a44eb4571cdd // .quad -6286281471915778851 - QUAD $0xba121a4650e4ddeb // .quad -5038936143766954517 - QUAD $0x92f34d62616ce414 // .quad -7857851839894723564 - QUAD $0xe896a0d7e51e1566 // .quad -1686984161281305242 - QUAD $0x77b020baf9c81d18 // .quad 8624429273841147160 - QUAD $0x915e2486ef32cd60 // .quad -7971894128441897632 - QUAD $0x0ace1474dc1d122f // .quad 778582277723329071 - QUAD $0xb5b5ada8aaff80b8 // .quad -5353181642124984136 - QUAD $0x0d819992132456bb // .quad 973227847154161339 - QUAD $0xe3231912d5bf60e6 // .quad -2079791034228842266 - QUAD $0x10e1fff697ed6c6a // .quad 1216534808942701674 - QUAD $0x8df5efabc5979c8f // .quad -8217398424034108273 - QUAD $0xca8d3ffa1ef463c2 // .quad -3851351762838199358 - QUAD $0xb1736b96b6fd83b3 // .quad -5660062011615247437 - QUAD $0xbd308ff8a6b17cb3 // .quad -4814189703547749197 - QUAD $0xddd0467c64bce4a0 // .quad -2463391496091671392 - QUAD $0xac7cb3f6d05ddbdf // .quad -6017737129434686497 - QUAD $0x8aa22c0dbef60ee4 // .quad -8457148712698376476 - QUAD $0x6bcdf07a423aa96c // .quad 7768129340171790700 - QUAD $0xad4ab7112eb3929d // .quad -5959749872445582691 - QUAD $0x86c16c98d2c953c7 // .quad -8736582398494813241 - QUAD $0xd89d64d57a607744 // .quad -2838001322129590460 - QUAD $0xe871c7bf077ba8b8 // .quad -1697355961263740744 - QUAD $0x87625f056c7c4a8b // .quad -8691279853972075893 - QUAD $0x11471cd764ad4973 // .quad 1244995533423855987 - QUAD $0xa93af6c6c79b5d2d // .quad -6252413799037706963 - QUAD $0xd598e40d3dd89bd0 // .quad -3055441601647567920 - QUAD $0xd389b47879823479 // .quad -3203831230369745799 - QUAD $0x4aff1d108d4ec2c4 // .quad 5404070034795315908 - QUAD $0x843610cb4bf160cb // .quad -8919923546622172981 - QUAD $0xcedf722a585139bb // .quad -3539985255894009413 - QUAD $0xa54394fe1eedb8fe // .quad -6538218414850328322 - QUAD $0xc2974eb4ee658829 // .quad -4424981569867511767 - QUAD $0xce947a3da6a9273e // .quad -3561087000135522498 - QUAD $0x733d226229feea33 // .quad 8303831092947774003 - QUAD $0x811ccc668829b887 // .quad -9143208402725783417 - QUAD $0x0806357d5a3f5260 // .quad 578208414664970848 - QUAD $0xa163ff802a3426a8 // .quad -6817324484979841368 - QUAD $0xca07c2dcb0cf26f8 // .quad -3888925500096174344 - QUAD $0xc9bcff6034c13052 // .quad -3909969587797413806 - QUAD $0xfc89b393dd02f0b6 // .quad -249470856692830026 - QUAD $0xfc2c3f3841f17c67 // .quad -275775966319379353 - QUAD $0xbbac2078d443ace3 // .quad -4923524589293425437 - QUAD $0x9d9ba7832936edc0 // .quad -7089889006590693952 - QUAD $0xd54b944b84aa4c0e // .quad -3077202868308390898 - QUAD $0xc5029163f384a931 // .quad -4250675239810979535 - QUAD $0x0a9e795e65d4df12 // .quad 765182433041899282 - QUAD $0xf64335bcf065d37d // .quad -701658031336336515 - QUAD $0x4d4617b5ff4a16d6 // .quad 5568164059729762006 - QUAD $0x99ea0196163fa42e // .quad -7356065297226292178 - QUAD $0x504bced1bf8e4e46 // .quad 5785945546544795206 - QUAD $0xc06481fb9bcf8d39 // .quad -4583395603105477319 - QUAD $0xe45ec2862f71e1d7 // .quad -1990940103673781801 - QUAD $0xf07da27a82c37088 // .quad -1117558485454458744 - QUAD $0x5d767327bb4e5a4d // .quad 6734696907262548557 - QUAD $0x964e858c91ba2655 // .quad -7616003081050118571 - QUAD $0x3a6a07f8d510f870 // .quad 4209185567039092848 - QUAD $0xbbe226efb628afea // .quad -4908317832885260310 - QUAD $0x890489f70a55368c // .quad -8573576096483297652 - QUAD $0xeadab0aba3b2dbe5 // .quad -1523711272679187483 - QUAD $0x2b45ac74ccea842f // .quad 3118087934678041647 - QUAD $0x92c8ae6b464fc96f // .quad -7869848573065574033 - QUAD $0x3b0b8bc90012929e // .quad 4254647968387469982 - QUAD $0xb77ada0617e3bbcb // .quad -5225624697904579637 - QUAD $0x09ce6ebb40173745 // .quad 706623942056949573 - QUAD $0xe55990879ddcaabd // .quad -1920344853953336643 - QUAD $0xcc420a6a101d0516 // .quad -3728406090856200938 - QUAD $0x8f57fa54c2a9eab6 // .quad -8117744561361917258 - QUAD $0x9fa946824a12232e // .quad -6941939825212513490 - QUAD $0xb32df8e9f3546564 // .quad -5535494683275008668 - QUAD $0x47939822dc96abfa // .quad 5157633273766521850 - QUAD $0xdff9772470297ebd // .quad -2307682335666372931 - QUAD $0x59787e2b93bc56f8 // .quad 6447041592208152312 - QUAD $0x8bfbea76c619ef36 // .quad -8359830487432564938 - QUAD $0x57eb4edb3c55b65b // .quad 6335244004343789147 - QUAD $0xaefae51477a06b03 // .quad -5838102090863318269 - QUAD $0xede622920b6b23f2 // .quad -1304317031425039374 - QUAD $0xdab99e59958885c4 // .quad -2685941595151759932 - QUAD $0xe95fab368e45ecee // .quad -1630396289281299218 - QUAD $0x88b402f7fd75539b // .quad -8596242524610931813 - QUAD $0x11dbcb0218ebb415 // .quad 1286845328412881941 - QUAD $0xaae103b5fcd2a881 // .quad -6133617137336276863 - QUAD $0xd652bdc29f26a11a // .quad -3003129357911285478 - QUAD $0xd59944a37c0752a2 // .quad -3055335403242958174 - QUAD $0x4be76d3346f04960 // .quad 5469460339465668960 - QUAD $0x857fcae62d8493a5 // .quad -8827113654667930715 - QUAD $0x6f70a4400c562ddc // .quad 8030098730593431004 - QUAD $0xa6dfbd9fb8e5b88e // .quad -6422206049907525490 - QUAD $0xcb4ccd500f6bb953 // .quad -3797434642040374957 - QUAD $0xd097ad07a71f26b2 // .quad -3416071543957018958 - QUAD $0x7e2000a41346a7a8 // .quad 9088264752731695016 - QUAD $0x825ecc24c873782f // .quad -9052573742614218705 - QUAD $0x8ed400668c0c28c9 // .quad -8154892584824854327 - QUAD $0xa2f67f2dfa90563b // .quad -6704031159840385477 - QUAD $0x728900802f0f32fb // .quad 8253128342678483707 - QUAD $0xcbb41ef979346bca // .quad -3768352931373093942 - QUAD $0x4f2b40a03ad2ffba // .quad 5704724409920716730 - QUAD $0xfea126b7d78186bc // .quad -98755145788979524 - QUAD $0xe2f610c84987bfa9 // .quad -2092466524453879895 - QUAD $0x9f24b832e6b0f436 // .quad -6979250993759194058 - QUAD $0x0dd9ca7d2df4d7ca // .quad 998051431430019018 - QUAD $0xc6ede63fa05d3143 // .quad -4112377723771604669 - QUAD $0x91503d1c79720dbc // .quad -7975807747567252036 - QUAD $0xf8a95fcf88747d94 // .quad -528786136287117932 - QUAD $0x75a44c6397ce912b // .quad 8476984389250486571 - QUAD $0x9b69dbe1b548ce7c // .quad -7248020362820530564 - QUAD $0xc986afbe3ee11abb // .quad -3925256793573221701 - QUAD $0xc24452da229b021b // .quad -4448339435098275301 - QUAD $0xfbe85badce996169 // .quad -294884973539139223 - QUAD $0xf2d56790ab41c2a2 // .quad -948738275445456222 - QUAD $0xfae27299423fb9c4 // .quad -368606216923924028 - QUAD $0x97c560ba6b0919a5 // .quad -7510490449794491995 - QUAD $0xdccd879fc967d41b // .quad -2536221894791146469 - QUAD $0xbdb6b8e905cb600f // .quad -4776427043815727089 - QUAD $0x5400e987bbc1c921 // .quad 6053094668365842721 - QUAD $0xed246723473e3813 // .quad -1358847786342270957 - QUAD $0x290123e9aab23b69 // .quad 2954682317029915497 - QUAD $0x9436c0760c86e30b // .quad -7766808894105001205 - QUAD $0xf9a0b6720aaf6522 // .quad -459166561069996766 - QUAD $0xb94470938fa89bce // .quad -5096825099203863602 - QUAD $0xf808e40e8d5b3e6a // .quad -573958201337495958 - QUAD $0xe7958cb87392c2c2 // .quad -1759345355577441598 - QUAD $0xb60b1d1230b20e05 // .quad -5329133770099257851 - QUAD $0x90bd77f3483bb9b9 // .quad -8017119874876982855 - QUAD $0xb1c6f22b5e6f48c3 // .quad -5636551615525730109 - QUAD $0xb4ecd5f01a4aa828 // .quad -5409713825168840664 - QUAD $0x1e38aeb6360b1af4 // .quad 2177682517447613172 - QUAD $0xe2280b6c20dd5232 // .quad -2150456263033662926 - QUAD $0x25c6da63c38de1b1 // .quad 2722103146809516465 - QUAD $0x8d590723948a535f // .quad -8261564192037121185 - QUAD $0x579c487e5a38ad0f // .quad 6313000485183335695 - QUAD $0xb0af48ec79ace837 // .quad -5715269221619013577 - QUAD $0x2d835a9df0c6d852 // .quad 3279564588051781714 - QUAD $0xdcdb1b2798182244 // .quad -2532400508596379068 - QUAD $0xf8e431456cf88e66 // .quad -512230283362660762 - QUAD $0x8a08f0f8bf0f156b // .quad -8500279345513818773 - QUAD $0x1b8e9ecb641b5900 // .quad 1985699082112030976 - QUAD $0xac8b2d36eed2dac5 // .quad -6013663163464885563 - QUAD $0xe272467e3d222f40 // .quad -2129562165787349184 - QUAD $0xd7adf884aa879177 // .quad -2905392935903719049 - QUAD $0x5b0ed81dcc6abb10 // .quad 6561419329620589328 - QUAD $0x86ccbb52ea94baea // .quad -8733399612580906262 - QUAD $0x98e947129fc2b4ea // .quad -7428327965055601430 - QUAD $0xa87fea27a539e9a5 // .quad -6305063497298744923 - QUAD $0x3f2398d747b36225 // .quad 4549648098962661925 - QUAD $0xd29fe4b18e88640e // .quad -3269643353196043250 - QUAD $0x8eec7f0d19a03aae // .quad -8147997931578836306 - QUAD $0x83a3eeeef9153e89 // .quad -8961056123388608887 - QUAD $0x1953cf68300424ad // .quad 1825030320404309165 - QUAD $0xa48ceaaab75a8e2b // .quad -6589634135808373205 - QUAD $0x5fa8c3423c052dd8 // .quad 6892973918932774360 - QUAD $0xcdb02555653131b6 // .quad -3625356651333078602 - QUAD $0x3792f412cb06794e // .quad 4004531380238580046 - QUAD $0x808e17555f3ebf11 // .quad -9183376934724255983 - QUAD $0xe2bbd88bbee40bd1 // .quad -2108853905778275375 - QUAD $0xa0b19d2ab70e6ed6 // .quad -6867535149977932074 - QUAD $0x5b6aceaeae9d0ec5 // .quad 6587304654631931589 - QUAD $0xc8de047564d20a8b // .quad -3972732919045027189 - QUAD $0xf245825a5a445276 // .quad -989241218564861322 - QUAD $0xfb158592be068d2e // .quad -354230130378896082 - QUAD $0xeed6e2f0f0d56713 // .quad -1236551523206076653 - QUAD $0x9ced737bb6c4183d // .quad -7138922859127891907 - QUAD $0x55464dd69685606c // .quad 6144684325637283948 - QUAD $0xc428d05aa4751e4c // .quad -4311967555482476980 - QUAD $0xaa97e14c3c26b887 // .quad -6154202648235558777 - QUAD $0xf53304714d9265df // .quad -778273425925708321 - QUAD $0xd53dd99f4b3066a9 // .quad -3081067291867060567 - QUAD $0x993fe2c6d07b7fab // .quad -7403949918844649557 - QUAD $0xe546a8038efe402a // .quad -1925667057416912854 - QUAD $0xbf8fdb78849a5f96 // .quad -4643251380128424042 - QUAD $0xde98520472bdd034 // .quad -2407083821771141068 - QUAD $0xef73d256a5c0f77c // .quad -1192378206733142148 - QUAD $0x963e66858f6d4441 // .quad -7620540795641314239 - QUAD $0x95a8637627989aad // .quad -7662765406849295699 - QUAD $0xdde7001379a44aa9 // .quad -2456994988062127447 - QUAD $0xbb127c53b17ec159 // .quad -4966770740134231719 - QUAD $0x5560c018580d5d53 // .quad 6152128301777116499 - QUAD $0xe9d71b689dde71af // .quad -1596777406740401745 - QUAD $0xaab8f01e6e10b4a7 // .quad -6144897678060768089 - QUAD $0x9226712162ab070d // .quad -7915514906853832947 - QUAD $0xcab3961304ca70e9 // .quad -3840561048787980055 - QUAD $0xb6b00d69bb55c8d1 // .quad -5282707615139903279 - QUAD $0x3d607b97c5fd0d23 // .quad 4422670725869800739 - QUAD $0xe45c10c42a2b3b05 // .quad -1991698500497491195 - QUAD $0x8cb89a7db77c506b // .quad -8306719647944912789 - QUAD $0x8eb98a7a9a5b04e3 // .quad -8162340590452013853 - QUAD $0x77f3608e92adb243 // .quad 8643358275316593219 - QUAD $0xb267ed1940f1c61c // .quad -5591239719637629412 - QUAD $0x55f038b237591ed4 // .quad 6192511825718353620 - QUAD $0xdf01e85f912e37a3 // .quad -2377363631119648861 - QUAD $0x6b6c46dec52f6689 // .quad 7740639782147942025 - QUAD $0x8b61313bbabce2c6 // .quad -8403381297090862394 - QUAD $0x2323ac4b3b3da016 // .quad 2532056854628769814 - QUAD $0xae397d8aa96c1b77 // .quad -5892540602936190089 - QUAD $0xabec975e0a0d081b // .quad -6058300968568813541 - QUAD $0xd9c7dced53c72255 // .quad -2753989735242849707 - QUAD $0x96e7bd358c904a22 // .quad -7572876210711016926 - QUAD $0x881cea14545c7575 // .quad -8638772612167862923 - QUAD $0x7e50d64177da2e55 // .quad 9102010423587778133 - QUAD $0xaa242499697392d2 // .quad -6186779746782440750 - QUAD $0xdde50bd1d5d0b9ea // .quad -2457545025797441046 - QUAD $0xd4ad2dbfc3d07787 // .quad -3121788665050663033 - QUAD $0x955e4ec64b44e865 // .quad -7683617300674189211 - QUAD $0x84ec3c97da624ab4 // .quad -8868646943297746252 - QUAD $0xbd5af13bef0b113f // .quad -4802260812921368257 - QUAD $0xa6274bbdd0fadd61 // .quad -6474122660694794911 - QUAD $0xecb1ad8aeacdd58f // .quad -1391139997724322417 - QUAD $0xcfb11ead453994ba // .quad -3480967307441105734 - QUAD $0x67de18eda5814af3 // .quad 7484447039699372787 - QUAD $0x81ceb32c4b43fcf4 // .quad -9093133594791772940 - QUAD $0x80eacf948770ced8 // .quad -9157278655470055720 - QUAD $0xa2425ff75e14fc31 // .quad -6754730975062328271 - QUAD $0xa1258379a94d028e // .quad -6834912300910181746 - QUAD $0xcad2f7f5359a3b3e // .quad -3831727700400522434 - QUAD $0x096ee45813a04331 // .quad 679731660717048625 - QUAD $0xfd87b5f28300ca0d // .quad -177973607073265139 - QUAD $0x8bca9d6e188853fd // .quad -8373707460958465027 - QUAD $0x9e74d1b791e07e48 // .quad -7028762532061872568 - QUAD $0x775ea264cf55347e // .quad 8601490892183123070 - QUAD $0xc612062576589dda // .quad -4174267146649952806 - QUAD $0x95364afe032a819e // .quad -7694880458480647778 - QUAD $0xf79687aed3eec551 // .quad -606147914885053103 - QUAD $0x3a83ddbd83f52205 // .quad 4216457482181353989 - QUAD $0x9abe14cd44753b52 // .quad -7296371474444240046 - QUAD $0xc4926a9672793543 // .quad -4282243101277735613 - QUAD $0xc16d9a0095928a27 // .quad -4508778324627912153 - QUAD $0x75b7053c0f178294 // .quad 8482254178684994196 - QUAD $0xf1c90080baf72cb1 // .quad -1024286887357502287 - QUAD $0x5324c68b12dd6339 // .quad 5991131704928854841 - QUAD $0x971da05074da7bee // .quad -7557708332239520786 - QUAD $0xd3f6fc16ebca5e04 // .quad -3173071712060547580 - QUAD $0xbce5086492111aea // .quad -4835449396872013078 - QUAD $0x88f4bb1ca6bcf585 // .quad -8578025658503072379 - QUAD $0xec1e4a7db69561a5 // .quad -1432625727662628443 - QUAD $0x2b31e9e3d06c32e6 // .quad 3112525982153323238 - QUAD $0x9392ee8e921d5d07 // .quad -7812920107430224633 - QUAD $0x3aff322e62439fd0 // .quad 4251171748059520976 - QUAD $0xb877aa3236a4b449 // .quad -5154464115860392887 - QUAD $0x09befeb9fad487c3 // .quad 702278666647013315 - QUAD $0xe69594bec44de15b // .quad -1831394126398103205 - QUAD $0x4c2ebe687989a9b4 // .quad 5489534351736154548 - QUAD $0x901d7cf73ab0acd9 // .quad -8062150356639896359 - QUAD $0x0f9d37014bf60a11 // .quad 1125115960621402641 - QUAD $0xb424dc35095cd80f // .quad -5466001927372482545 - QUAD $0x538484c19ef38c95 // .quad 6018080969204141205 - QUAD $0xe12e13424bb40e13 // .quad -2220816390788215277 - QUAD $0x2865a5f206b06fba // .quad 2910915193077788602 - QUAD $0x8cbccc096f5088cb // .quad -8305539271883716405 - QUAD $0xf93f87b7442e45d4 // .quad -486521013540076076 - QUAD $0xafebff0bcb24aafe // .quad -5770238071427257602 - QUAD $0xf78f69a51539d749 // .quad -608151266925095095 - QUAD $0xdbe6fecebdedd5be // .quad -2601111570856684098 - QUAD $0xb573440e5a884d1c // .quad -5371875102083756772 - QUAD $0x89705f4136b4a597 // .quad -8543223759426509417 - QUAD $0x31680a88f8953031 // .quad 3560107088838733873 - QUAD $0xabcc77118461cefc // .quad -6067343680855748868 - QUAD $0xfdc20d2b36ba7c3e // .quad -161552157378970562 - QUAD $0xd6bf94d5e57a42bc // .quad -2972493582642298180 - QUAD $0x3d32907604691b4d // .quad 4409745821703674701 - QUAD $0x8637bd05af6c69b5 // .quad -8775337516792518219 - QUAD $0xa63f9a49c2c1b110 // .quad -6467280898289979120 - QUAD $0xa7c5ac471b478423 // .quad -6357485877563259869 - QUAD $0x0fcf80dc33721d54 // .quad 1139270913992301908 - QUAD $0xd1b71758e219652b // .quad -3335171328526686933 - QUAD $0xd3c36113404ea4a9 // .quad -3187597375937010519 - QUAD $0x83126e978d4fdf3b // .quad -9002011107970261189 - QUAD $0x645a1cac083126ea // .quad 7231123676894144234 - QUAD $0xa3d70a3d70a3d70a // .quad -6640827866535438582 - QUAD $0x3d70a3d70a3d70a4 // .quad 4427218577690292388 - QUAD $0xcccccccccccccccc // .quad -3689348814741910324 - QUAD $0xcccccccccccccccd // .quad -3689348814741910323 - QUAD $0x8000000000000000 // .quad -9223372036854775808 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa000000000000000 // .quad -6917529027641081856 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xc800000000000000 // .quad -4035225266123964416 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xfa00000000000000 // .quad -432345564227567616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9c40000000000000 // .quad -7187745005283311616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xc350000000000000 // .quad -4372995238176751616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xf424000000000000 // .quad -854558029293551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9896800000000000 // .quad -7451627795949551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xbebc200000000000 // .quad -4702848726509551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xee6b280000000000 // .quad -1266874889709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9502f90000000000 // .quad -7709325833709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xba43b74000000000 // .quad -5024971273709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xe8d4a51000000000 // .quad -1669528073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x9184e72a00000000 // .quad -7960984073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xb5e620f480000000 // .quad -5339544073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xe35fa931a0000000 // .quad -2062744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8e1bc9bf04000000 // .quad -8206744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xb1a2bc2ec5000000 // .quad -5646744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xde0b6b3a76400000 // .quad -2446744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x8ac7230489e80000 // .quad -8446744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xad78ebc5ac620000 // .quad -5946744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xd8d726b7177a8000 // .quad -2821744073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x878678326eac9000 // .quad -8681119073709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa968163f0a57b400 // .quad -6239712823709551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xd3c21bcecceda100 // .quad -3187955011209551616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x84595161401484a0 // .quad -8910000909647051616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xa56fa5b99019a5c8 // .quad -6525815118631426616 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0xcecb8f27f4200f3a // .quad -3545582879861895366 - QUAD $0x0000000000000000 // .quad 0 - QUAD $0x813f3978f8940984 // .quad -9133518327554766460 - QUAD $0x4000000000000000 // .quad 4611686018427387904 - QUAD $0xa18f07d736b90be5 // .quad -6805211891016070171 - QUAD $0x5000000000000000 // .quad 5764607523034234880 - QUAD $0xc9f2c9cd04674ede // .quad -3894828845342699810 - QUAD $0xa400000000000000 // .quad -6629298651489370112 - QUAD $0xfc6f7c4045812296 // .quad -256850038250986858 - QUAD $0x4d00000000000000 // .quad 5548434740920451072 - QUAD $0x9dc5ada82b70b59d // .quad -7078060301547948643 - QUAD $0xf020000000000000 // .quad -1143914305352105984 - QUAD $0xc5371912364ce305 // .quad -4235889358507547899 - QUAD $0x6c28000000000000 // .quad 7793479155164643328 - QUAD $0xf684df56c3e01bc6 // .quad -683175679707046970 - QUAD $0xc732000000000000 // .quad -4093209111326359552 - QUAD $0x9a130b963a6c115c // .quad -7344513827457986212 - QUAD $0x3c7f400000000000 // .quad 4359273333062107136 - QUAD $0xc097ce7bc90715b3 // .quad -4568956265895094861 - QUAD $0x4b9f100000000000 // .quad 5449091666327633920 - QUAD $0xf0bdc21abb48db20 // .quad -1099509313941480672 - QUAD $0x1e86d40000000000 // .quad 2199678564482154496 - QUAD $0x96769950b50d88f4 // .quad -7604722348854507276 - QUAD $0x1314448000000000 // .quad 1374799102801346560 - QUAD $0xbc143fa4e250eb31 // .quad -4894216917640746191 - QUAD $0x17d955a000000000 // .quad 1718498878501683200 - QUAD $0xeb194f8e1ae525fd // .quad -1506085128623544835 - QUAD $0x5dcfab0800000000 // .quad 6759809616554491904 - QUAD $0x92efd1b8d0cf37be // .quad -7858832233030797378 - QUAD $0x5aa1cae500000000 // .quad 6530724019560251392 - QUAD $0xb7abc627050305ad // .quad -5211854272861108819 - QUAD $0xf14a3d9e40000000 // .quad -1059967012404461568 - QUAD $0xe596b7b0c643c719 // .quad -1903131822648998119 - QUAD $0x6d9ccd05d0000000 // .quad 7898413271349198848 - QUAD $0x8f7e32ce7bea5c6f // .quad -8106986416796705681 - QUAD $0xe4820023a2000000 // .quad -1981020733047832576 - QUAD $0xb35dbf821ae4f38b // .quad -5522047002568494197 - QUAD $0xdda2802c8a800000 // .quad -2476275916309790720 - QUAD $0xe0352f62a19e306e // .quad -2290872734783229842 - QUAD $0xd50b2037ad200000 // .quad -3095344895387238400 - QUAD $0x8c213d9da502de45 // .quad -8349324486880600507 - QUAD $0x4526f422cc340000 // .quad 4982938468024057856 - QUAD $0xaf298d050e4395d6 // .quad -5824969590173362730 - QUAD $0x9670b12b7f410000 // .quad -7606384970252091392 - QUAD $0xdaf3f04651d47b4c // .quad -2669525969289315508 - QUAD $0x3c0cdd765f114000 // .quad 4327076842467049472 - QUAD $0x88d8762bf324cd0f // .quad -8585982758446904049 - QUAD $0xa5880a69fb6ac800 // .quad -6518949010312869888 - QUAD $0xab0e93b6efee0053 // .quad -6120792429631242157 - QUAD $0x8eea0d047a457a00 // .quad -8148686262891087360 - QUAD $0xd5d238a4abe98068 // .quad -3039304518611664792 - QUAD $0x72a4904598d6d880 // .quad 8260886245095692416 - QUAD $0x85a36366eb71f041 // .quad -8817094351773372351 - QUAD $0x47a6da2b7f864750 // .quad 5163053903184807760 - QUAD $0xa70c3c40a64e6c51 // .quad -6409681921289327535 - QUAD $0x999090b65f67d924 // .quad -7381240676301154012 - QUAD $0xd0cf4b50cfe20765 // .quad -3400416383184271515 - QUAD $0xfff4b4e3f741cf6d // .quad -3178808521666707 - QUAD $0x82818f1281ed449f // .quad -9042789267131251553 - QUAD $0xbff8f10e7a8921a5 // .quad -4613672773753429595 - QUAD $0xa321f2d7226895c7 // .quad -6691800565486676537 - QUAD $0xaff72d52192b6a0e // .quad -5767090967191786994 - QUAD $0xcbea6f8ceb02bb39 // .quad -3753064688430957767 - QUAD $0x9bf4f8a69f764491 // .quad -7208863708989733743 - QUAD $0xfee50b7025c36a08 // .quad -79644842111309304 - QUAD $0x02f236d04753d5b5 // .quad 212292400617608629 - QUAD $0x9f4f2726179a2245 // .quad -6967307053960650171 - QUAD $0x01d762422c946591 // .quad 132682750386005393 - QUAD $0xc722f0ef9d80aad6 // .quad -4097447799023424810 - QUAD $0x424d3ad2b7b97ef6 // .quad 4777539456409894646 - QUAD $0xf8ebad2b84e0d58b // .quad -510123730351893109 - QUAD $0xd2e0898765a7deb3 // .quad -3251447716342407501 - QUAD $0x9b934c3b330c8577 // .quad -7236356359111015049 - QUAD $0x63cc55f49f88eb30 // .quad 7191217214140771120 - QUAD $0xc2781f49ffcfa6d5 // .quad -4433759430461380907 - QUAD $0x3cbf6b71c76b25fc // .quad 4377335499248575996 - QUAD $0xf316271c7fc3908a // .quad -930513269649338230 - QUAD $0x8bef464e3945ef7b // .quad -8363388681221443717 - QUAD $0x97edd871cfda3a56 // .quad -7499099821171918250 - QUAD $0x97758bf0e3cbb5ad // .quad -7532960934977096275 - QUAD $0xbde94e8e43d0c8ec // .quad -4762188758037509908 - QUAD $0x3d52eeed1cbea318 // .quad 4418856886560793368 - QUAD $0xed63a231d4c4fb27 // .quad -1341049929119499481 - QUAD $0x4ca7aaa863ee4bde // .quad 5523571108200991710 - QUAD $0x945e455f24fb1cf8 // .quad -7755685233340769032 - QUAD $0x8fe8caa93e74ef6b // .quad -8076983103442849941 - QUAD $0xb975d6b6ee39e436 // .quad -5082920523248573386 - QUAD $0xb3e2fd538e122b45 // .quad -5484542860876174523 - QUAD $0xe7d34c64a9c85d44 // .quad -1741964635633328828 - QUAD $0x60dbbca87196b617 // .quad 6979379479186945559 - QUAD $0x90e40fbeea1d3a4a // .quad -8006256924911912374 - QUAD $0xbc8955e946fe31ce // .quad -4861259862362934834 - QUAD $0xb51d13aea4a488dd // .quad -5396135137712502563 - QUAD $0x6babab6398bdbe42 // .quad 7758483227328495170 - QUAD $0xe264589a4dcdab14 // .quad -2133482903713240300 - QUAD $0xc696963c7eed2dd2 // .quad -4136954021121544750 - QUAD $0x8d7eb76070a08aec // .quad -8250955842461857044 - QUAD $0xfc1e1de5cf543ca3 // .quad -279753253987271517 - QUAD $0xb0de65388cc8ada8 // .quad -5702008784649933400 - QUAD $0x3b25a55f43294bcc // .quad 4261994450943298508 - QUAD $0xdd15fe86affad912 // .quad -2515824962385028846 - QUAD $0x49ef0eb713f39ebf // .quad 5327493063679123135 - QUAD $0x8a2dbf142dfcc7ab // .quad -8489919629131724885 - QUAD $0x6e3569326c784338 // .quad 7941369183226839864 - QUAD $0xacb92ed9397bf996 // .quad -6000713517987268202 - QUAD $0x49c2c37f07965405 // .quad 5315025460606161925 - QUAD $0xd7e77a8f87daf7fb // .quad -2889205879056697349 - QUAD $0xdc33745ec97be907 // .quad -2579590211097073401 - QUAD $0x86f0ac99b4e8dafd // .quad -8723282702051517699 - QUAD $0x69a028bb3ded71a4 // .quad 7611128154919104932 - QUAD $0xa8acd7c0222311bc // .quad -6292417359137009220 - QUAD $0xc40832ea0d68ce0d // .quad -4321147861633282547 - QUAD $0xd2d80db02aabd62b // .quad -3253835680493873621 - QUAD $0xf50a3fa490c30191 // .quad -789748808614215279 - QUAD $0x83c7088e1aab65db // .quad -8951176327949752869 - QUAD $0x792667c6da79e0fb // .quad 8729779031470891259 - QUAD $0xa4b8cab1a1563f52 // .quad -6577284391509803182 - QUAD $0x577001b891185939 // .quad 6300537770911226169 - QUAD $0xcde6fd5e09abcf26 // .quad -3609919470959866074 - QUAD $0xed4c0226b55e6f87 // .quad -1347699823215743097 - QUAD $0x80b05e5ac60b6178 // .quad -9173728696990998152 - QUAD $0x544f8158315b05b5 // .quad 6075216638131242421 - QUAD $0xa0dc75f1778e39d6 // .quad -6855474852811359786 - QUAD $0x696361ae3db1c722 // .quad 7594020797664053026 - QUAD $0xc913936dd571c84c // .quad -3957657547586811828 - QUAD $0x03bc3a19cd1e38ea // .quad 269153960225290474 - QUAD $0xfb5878494ace3a5f // .quad -335385916056126881 - QUAD $0x04ab48a04065c724 // .quad 336442450281613092 - QUAD $0x9d174b2dcec0e47b // .quad -7127145225176161157 - QUAD $0x62eb0d64283f9c77 // .quad 7127805559067090039 - QUAD $0xc45d1df942711d9a // .quad -4297245513042813542 - QUAD $0x3ba5d0bd324f8395 // .quad 4298070930406474645 - QUAD $0xf5746577930d6500 // .quad -759870872876129024 - QUAD $0xca8f44ec7ee3647a // .quad -3850783373846682502 - QUAD $0x9968bf6abbe85f20 // .quad -7392448323188662496 - QUAD $0x7e998b13cf4e1ecc // .quad 9122475437414293196 - QUAD $0xbfc2ef456ae276e8 // .quad -4628874385558440216 - QUAD $0x9e3fedd8c321a67f // .quad -7043649776941685121 - QUAD $0xefb3ab16c59b14a2 // .quad -1174406963520662366 - QUAD $0xc5cfe94ef3ea101f // .quad -4192876202749718497 - QUAD $0x95d04aee3b80ece5 // .quad -7651533379841495835 - QUAD $0xbba1f1d158724a13 // .quad -4926390635932268013 - QUAD $0xbb445da9ca61281f // .quad -4952730706374481889 - QUAD $0x2a8a6e45ae8edc98 // .quad 3065383741939440792 - QUAD $0xea1575143cf97226 // .quad -1579227364540714458 - QUAD $0xf52d09d71a3293be // .quad -779956341003086914 - QUAD $0x924d692ca61be758 // .quad -7904546130479028392 - QUAD $0x593c2626705f9c57 // .quad 6430056314514152535 - QUAD $0xb6e0c377cfa2e12e // .quad -5268996644671397586 - QUAD $0x6f8b2fb00c77836d // .quad 8037570393142690669 - QUAD $0xe498f455c38b997a // .quad -1974559787411859078 - QUAD $0x0b6dfb9c0f956448 // .quad 823590954573587528 - QUAD $0x8edf98b59a373fec // .quad -8151628894773493780 - QUAD $0x4724bd4189bd5ead // .quad 5126430365035880109 - QUAD $0xb2977ee300c50fe7 // .quad -5577850100039479321 - QUAD $0x58edec91ec2cb658 // .quad 6408037956294850136 - QUAD $0xdf3d5e9bc0f653e1 // .quad -2360626606621961247 - QUAD $0x2f2967b66737e3ee // .quad 3398361426941174766 - QUAD $0x8b865b215899f46c // .quad -8392920656779807636 - QUAD $0xbd79e0d20082ee75 // .quad -4793553135802847627 - QUAD $0xae67f1e9aec07187 // .quad -5879464802547371641 - QUAD $0xecd8590680a3aa12 // .quad -1380255401326171630 - QUAD $0xda01ee641a708de9 // .quad -2737644984756826647 - QUAD $0xe80e6f4820cc9496 // .quad -1725319251657714538 - QUAD $0x884134fe908658b2 // .quad -8628557143114098510 - QUAD $0x3109058d147fdcde // .quad 3533361486141316318 - QUAD $0xaa51823e34a7eede // .quad -6174010410465235234 - QUAD $0xbd4b46f0599fd416 // .quad -4806670179178130410 - QUAD $0xd4e5e2cdc1d1ea96 // .quad -3105826994654156138 - QUAD $0x6c9e18ac7007c91b // .quad 7826720331309500699 - QUAD $0x850fadc09923329e // .quad -8858670899299929442 - QUAD $0x03e2cf6bc604ddb1 // .quad 280014188641050033 - QUAD $0xa6539930bf6bff45 // .quad -6461652605697523899 - QUAD $0x84db8346b786151d // .quad -8873354301053463267 - QUAD $0xcfe87f7cef46ff16 // .quad -3465379738694516970 - QUAD $0xe612641865679a64 // .quad -1868320839462053276 - QUAD $0x81f14fae158c5f6e // .quad -9083391364325154962 - QUAD $0x4fcb7e8f3f60c07f // .quad 5749828502977298559 - QUAD $0xa26da3999aef7749 // .quad -6742553186979055799 - QUAD $0xe3be5e330f38f09e // .quad -2036086408133152610 - QUAD $0xcb090c8001ab551c // .quad -3816505465296431844 - QUAD $0x5cadf5bfd3072cc6 // .quad 6678264026688335046 - QUAD $0xfdcb4fa002162a63 // .quad -158945813193151901 - QUAD $0x73d9732fc7c8f7f7 // .quad 8347830033360418807 - QUAD $0x9e9f11c4014dda7e // .quad -7016870160886801794 - QUAD $0x2867e7fddcdd9afb // .quad 2911550761636567803 - QUAD $0xc646d63501a1511d // .quad -4159401682681114339 - QUAD $0xb281e1fd541501b9 // .quad -5583933584809066055 - QUAD $0xf7d88bc24209a565 // .quad -587566084924005019 - QUAD $0x1f225a7ca91a4227 // .quad 2243455055843443239 - QUAD $0x9ae757596946075f // .quad -7284757830718584993 - QUAD $0x3375788de9b06959 // .quad 3708002419115845977 - QUAD $0xc1a12d2fc3978937 // .quad -4494261269970843337 - QUAD $0x0052d6b1641c83af // .quad 23317005467419567 - QUAD $0xf209787bb47d6b84 // .quad -1006140569036166268 - QUAD $0xc0678c5dbd23a49b // .quad -4582539761593113445 - QUAD $0x9745eb4d50ce6332 // .quad -7546366883288685774 - QUAD $0xf840b7ba963646e1 // .quad -558244341782001951 - QUAD $0xbd176620a501fbff // .quad -4821272585683469313 - QUAD $0xb650e5a93bc3d899 // .quad -5309491445654890343 - QUAD $0xec5d3fa8ce427aff // .quad -1414904713676948737 - QUAD $0xa3e51f138ab4cebf // .quad -6636864307068612929 - QUAD $0x93ba47c980e98cdf // .quad -7801844473689174817 - QUAD $0xc66f336c36b10138 // .quad -4148040191917883080 - QUAD $0xb8a8d9bbe123f017 // .quad -5140619573684080617 - QUAD $0xb80b0047445d4185 // .quad -5185050239897353851 - QUAD $0xe6d3102ad96cec1d // .quad -1814088448677712867 - QUAD $0xa60dc059157491e6 // .quad -6481312799871692314 - QUAD $0x9043ea1ac7e41392 // .quad -8051334308064652398 - QUAD $0x87c89837ad68db30 // .quad -8662506518347195600 - QUAD $0xb454e4a179dd1877 // .quad -5452481866653427593 - QUAD $0x29babe4598c311fc // .quad 3006924907348169212 - QUAD $0xe16a1dc9d8545e94 // .quad -2203916314889396588 - QUAD $0xf4296dd6fef3d67b // .quad -853029884242176389 - QUAD $0x8ce2529e2734bb1d // .quad -8294976724446954723 - QUAD $0x1899e4a65f58660d // .quad 1772699331562333709 - QUAD $0xb01ae745b101e9e4 // .quad -5757034887131305500 - QUAD $0x5ec05dcff72e7f90 // .quad 6827560182880305040 - QUAD $0xdc21a1171d42645d // .quad -2584607590486743971 - QUAD $0x76707543f4fa1f74 // .quad 8534450228600381300 - QUAD $0x899504ae72497eba // .quad -8532908771695296838 - QUAD $0x6a06494a791c53a9 // .quad 7639874402088932265 - QUAD $0xabfa45da0edbde69 // .quad -6054449946191733143 - QUAD $0x0487db9d17636893 // .quad 326470965756389523 - QUAD $0xd6f8d7509292d603 // .quad -2956376414312278525 - QUAD $0x45a9d2845d3c42b7 // .quad 5019774725622874807 - QUAD $0x865b86925b9bc5c2 // .quad -8765264286586255934 - QUAD $0x0b8a2392ba45a9b3 // .quad 831516194300602803 - QUAD $0xa7f26836f282b732 // .quad -6344894339805432014 - QUAD $0x8e6cac7768d7141f // .quad -8183976793979022305 - QUAD $0xd1ef0244af2364ff // .quad -3319431906329402113 - QUAD $0x3207d795430cd927 // .quad 3605087062808385831 - QUAD $0x8335616aed761f1f // .quad -8992173969096958177 - QUAD $0x7f44e6bd49e807b9 // .quad 9170708441896323001 - QUAD $0xa402b9c5a8d3a6e7 // .quad -6628531442943809817 - QUAD $0x5f16206c9c6209a7 // .quad 6851699533943015847 - QUAD $0xcd036837130890a1 // .quad -3673978285252374367 - QUAD $0x36dba887c37a8c10 // .quad 3952938399001381904 - QUAD $0x802221226be55a64 // .quad -9213765455923815836 - QUAD $0xc2494954da2c978a // .quad -4446942528265218166 - QUAD $0xa02aa96b06deb0fd // .quad -6905520801477381891 - QUAD $0xf2db9baa10b7bd6d // .quad -946992141904134803 - QUAD $0xc83553c5c8965d3d // .quad -4020214983419339459 - QUAD $0x6f92829494e5acc8 // .quad 8039631859474607304 - QUAD $0xfa42a8b73abbf48c // .quad -413582710846786420 - QUAD $0xcb772339ba1f17fa // .quad -3785518230938904582 - QUAD $0x9c69a97284b578d7 // .quad -7176018221920323369 - QUAD $0xff2a760414536efc // .quad -60105885123121412 - QUAD $0xc38413cf25e2d70d // .quad -4358336758973016307 - QUAD $0xfef5138519684abb // .quad -75132356403901765 - QUAD $0xf46518c2ef5b8cd1 // .quad -836234930288882479 - QUAD $0x7eb258665fc25d6a // .quad 9129456591349898602 - QUAD $0x98bf2f79d5993802 // .quad -7440175859071633406 - QUAD $0xef2f773ffbd97a62 // .quad -1211618658047395230 - QUAD $0xbeeefb584aff8603 // .quad -4688533805412153853 - QUAD $0xaafb550ffacfd8fb // .quad -6126209340986631941 - QUAD $0xeeaaba2e5dbf6784 // .quad -1248981238337804412 - QUAD $0x95ba2a53f983cf39 // .quad -7657761676233289927 - QUAD $0x952ab45cfa97a0b2 // .quad -7698142301602209614 - QUAD $0xdd945a747bf26184 // .quad -2480258038432112252 - QUAD $0xba756174393d88df // .quad -5010991858575374113 - QUAD $0x94f971119aeef9e5 // .quad -7712008566467528219 - QUAD $0xe912b9d1478ceb17 // .quad -1652053804791829737 - QUAD $0x7a37cd5601aab85e // .quad 8806733365625141342 - QUAD $0x91abb422ccb812ee // .quad -7950062655635975442 - QUAD $0xac62e055c10ab33b // .quad -6025006692552756421 - QUAD $0xb616a12b7fe617aa // .quad -5325892301117581398 - QUAD $0x577b986b314d600a // .quad 6303799689591218186 - QUAD $0xe39c49765fdf9d94 // .quad -2045679357969588844 - QUAD $0xed5a7e85fda0b80c // .quad -1343622424865753076 - QUAD $0x8e41ade9fbebc27d // .quad -8196078626372074883 - QUAD $0x14588f13be847308 // .quad 1466078993672598280 - QUAD $0xb1d219647ae6b31c // .quad -5633412264537705700 - QUAD $0x596eb2d8ae258fc9 // .quad 6444284760518135753 - QUAD $0xde469fbd99a05fe3 // .quad -2430079312244744221 - QUAD $0x6fca5f8ed9aef3bc // .quad 8055355950647669692 - QUAD $0x8aec23d680043bee // .quad -8436328597794046994 - QUAD $0x25de7bb9480d5855 // .quad 2728754459941099605 - QUAD $0xada72ccc20054ae9 // .quad -5933724728815170839 - QUAD $0xaf561aa79a10ae6b // .quad -5812428961928401301 - QUAD $0xd910f7ff28069da4 // .quad -2805469892591575644 - QUAD $0x1b2ba1518094da05 // .quad 1957835834444274181 - QUAD $0x87aa9aff79042286 // .quad -8670947710510816634 - QUAD $0x90fb44d2f05d0843 // .quad -7999724640327104445 - QUAD $0xa99541bf57452b28 // .quad -6226998619711132888 - QUAD $0x353a1607ac744a54 // .quad 3835402254873283156 - QUAD $0xd3fa922f2d1675f2 // .quad -3172062256211528206 - QUAD $0x42889b8997915ce9 // .quad 4794252818591603945 - QUAD $0x847c9b5d7c2e09b7 // .quad -8900067937773286985 - QUAD $0x69956135febada12 // .quad 7608094030047140370 - QUAD $0xa59bc234db398c25 // .quad -6513398903789220827 - QUAD $0x43fab9837e699096 // .quad 4898431519131537558 - QUAD $0xcf02b2c21207ef2e // .quad -3530062611309138130 - QUAD $0x94f967e45e03f4bc // .quad -7712018656367741764 - QUAD $0x8161afb94b44f57d // .quad -9123818159709293187 - QUAD $0x1d1be0eebac278f6 // .quad 2097517367411243254 - QUAD $0xa1ba1ba79e1632dc // .quad -6793086681209228580 - QUAD $0x6462d92a69731733 // .quad 7233582727691441971 - QUAD $0xca28a291859bbf93 // .quad -3879672333084147821 - QUAD $0x7d7b8f7503cfdcff // .quad 9041978409614302463 - QUAD $0xfcb2cb35e702af78 // .quad -237904397927796872 - QUAD $0x5cda735244c3d43f // .quad 6690786993590490175 - QUAD $0x9defbf01b061adab // .quad -7066219276345954901 - QUAD $0x3a0888136afa64a8 // .quad 4181741870994056360 - QUAD $0xc56baec21c7a1916 // .quad -4221088077005055722 - QUAD $0x088aaa1845b8fdd1 // .quad 615491320315182545 - QUAD $0xf6c69a72a3989f5b // .quad -664674077828931749 - QUAD $0x8aad549e57273d46 // .quad -8454007886460797626 - QUAD $0x9a3c2087a63f6399 // .quad -7332950326284164199 - QUAD $0x36ac54e2f678864c // .quad 3939617107816777292 - QUAD $0xc0cb28a98fcf3c7f // .quad -4554501889427817345 - QUAD $0x84576a1bb416a7de // .quad -8910536670511192098 - QUAD $0xf0fdf2d3f3c30b9f // .quad -1081441343357383777 - QUAD $0x656d44a2a11c51d6 // .quad 7308573235570561494 - QUAD $0x969eb7c47859e743 // .quad -7593429867239446717 - QUAD $0x9f644ae5a4b1b326 // .quad -6961356773836868826 - QUAD $0xbc4665b596706114 // .quad -4880101315621920492 - QUAD $0x873d5d9f0dde1fef // .quad -8701695967296086033 - QUAD $0xeb57ff22fc0c7959 // .quad -1488440626100012711 - QUAD $0xa90cb506d155a7eb // .quad -6265433940692719637 - QUAD $0x9316ff75dd87cbd8 // .quad -7847804418953589800 - QUAD $0x09a7f12442d588f3 // .quad 695789805494438131 - QUAD $0xb7dcbf5354e9bece // .quad -5198069505264599346 - QUAD $0x0c11ed6d538aeb30 // .quad 869737256868047664 - QUAD $0xe5d3ef282a242e81 // .quad -1885900863153361279 - QUAD $0x8f1668c8a86da5fb // .quad -8136200465769716229 - QUAD $0x8fa475791a569d10 // .quad -8096217067111932656 - QUAD $0xf96e017d694487bd // .quad -473439272678684739 - QUAD $0xb38d92d760ec4455 // .quad -5508585315462527915 - QUAD $0x37c981dcc395a9ad // .quad 4019886927579031981 - QUAD $0xe070f78d3927556a // .quad -2274045625900771990 - QUAD $0x85bbe253f47b1418 // .quad -8810199395808373736 - QUAD $0x8c469ab843b89562 // .quad -8338807543829064350 - QUAD $0x93956d7478ccec8f // .quad -7812217631593927537 - QUAD $0xaf58416654a6babb // .quad -5811823411358942533 - QUAD $0x387ac8d1970027b3 // .quad 4069786015789754291 - QUAD $0xdb2e51bfe9d0696a // .quad -2653093245771290262 - QUAD $0x06997b05fcc0319f // .quad 475546501309804959 - QUAD $0x88fcf317f22241e2 // .quad -8575712306248138270 - QUAD $0x441fece3bdf81f04 // .quad 4908902581746016004 - QUAD $0xab3c2fddeeaad25a // .quad -6107954364382784934 - QUAD $0xd527e81cad7626c4 // .quad -3087243809672255804 - QUAD $0xd60b3bd56a5586f1 // .quad -3023256937051093263 - QUAD $0x8a71e223d8d3b075 // .quad -8470740780517707659 - QUAD $0x85c7056562757456 // .quad -8807064613298015146 - QUAD $0xf6872d5667844e4a // .quad -682526969396179382 - QUAD $0xa738c6bebb12d16c // .quad -6397144748195131028 - QUAD $0xb428f8ac016561dc // .quad -5464844730172612132 - QUAD $0xd106f86e69d785c7 // .quad -3384744916816525881 - QUAD $0xe13336d701beba53 // .quad -2219369894288377261 - QUAD $0x82a45b450226b39c // .quad -9032994600651410532 - QUAD $0xecc0024661173474 // .quad -1387106183930235788 - QUAD $0xa34d721642b06084 // .quad -6679557232386875260 - QUAD $0x27f002d7f95d0191 // .quad 2877803288514593169 - QUAD $0xcc20ce9bd35c78a5 // .quad -3737760522056206171 - QUAD $0x31ec038df7b441f5 // .quad 3597254110643241461 - QUAD $0xff290242c83396ce // .quad -60514634142869810 - QUAD $0x7e67047175a15272 // .quad 9108253656731439730 - QUAD $0x9f79a169bd203e41 // .quad -6955350673980375487 - QUAD $0x0f0062c6e984d387 // .quad 1080972517029761927 - QUAD $0xc75809c42c684dd1 // .quad -4082502324048081455 - QUAD $0x52c07b78a3e60869 // .quad 5962901664714590313 - QUAD $0xf92e0c3537826145 // .quad -491441886632713915 - QUAD $0xa7709a56ccdf8a83 // .quad -6381430974388925821 - QUAD $0x9bbcc7a142b17ccb // .quad -7224680206786528053 - QUAD $0x88a66076400bb692 // .quad -8600080377420466542 - QUAD $0xc2abf989935ddbfe // .quad -4419164240055772162 - QUAD $0x6acff893d00ea436 // .quad 7696643601933968438 - QUAD $0xf356f7ebf83552fe // .quad -912269281642327298 - QUAD $0x0583f6b8c4124d44 // .quad 397432465562684740 - QUAD $0x98165af37b2153de // .quad -7487697328667536418 - QUAD $0xc3727a337a8b704b // .quad -4363290727450709941 - QUAD $0xbe1bf1b059e9a8d6 // .quad -4747935642407032618 - QUAD $0x744f18c0592e4c5d // .quad 8380944645968776285 - QUAD $0xeda2ee1c7064130c // .quad -1323233534581402868 - QUAD $0x1162def06f79df74 // .quad 1252808770606194548 - QUAD $0x9485d4d1c63e8be7 // .quad -7744549986754458649 - QUAD $0x8addcb5645ac2ba9 // .quad -8440366555225904215 - QUAD $0xb9a74a0637ce2ee1 // .quad -5069001465015685407 - QUAD $0x6d953e2bd7173693 // .quad 7896285879677171347 - QUAD $0xe8111c87c5c1ba99 // .quad -1724565812842218855 - QUAD $0xc8fa8db6ccdd0438 // .quad -3964700705685699528 - QUAD $0x910ab1d4db9914a0 // .quad -7995382660667468640 - QUAD $0x1d9c9892400a22a3 // .quad 2133748077373825699 - QUAD $0xb54d5e4a127f59c8 // .quad -5382542307406947896 - QUAD $0x2503beb6d00cab4c // .quad 2667185096717282124 - QUAD $0xe2a0b5dc971f303a // .quad -2116491865831296966 - QUAD $0x2e44ae64840fd61e // .quad 3333981370896602654 - QUAD $0x8da471a9de737e24 // .quad -8240336443785642460 - QUAD $0x5ceaecfed289e5d3 // .quad 6695424375237764563 - QUAD $0xb10d8e1456105dad // .quad -5688734536304665171 - QUAD $0x7425a83e872c5f48 // .quad 8369280469047205704 - QUAD $0xdd50f1996b947518 // .quad -2499232151953443560 - QUAD $0xd12f124e28f7771a // .quad -3373457468973156582 - QUAD $0x8a5296ffe33cc92f // .quad -8479549122611984081 - QUAD $0x82bd6b70d99aaa70 // .quad -9025939945749304720 - QUAD $0xace73cbfdc0bfb7b // .quad -5987750384837592197 - QUAD $0x636cc64d1001550c // .quad 7164319141522920716 - QUAD $0xd8210befd30efa5a // .quad -2873001962619602342 - QUAD $0x3c47f7e05401aa4f // .quad 4343712908476262991 - QUAD $0x8714a775e3e95c78 // .quad -8713155254278333320 - QUAD $0x65acfaec34810a72 // .quad 7326506586225052274 - QUAD $0xa8d9d1535ce3b396 // .quad -6279758049420528746 - QUAD $0x7f1839a741a14d0e // .quad 9158133232781315342 - QUAD $0xd31045a8341ca07c // .quad -3238011543348273028 - QUAD $0x1ede48111209a051 // .quad 2224294504121868369 - QUAD $0x83ea2b892091e44d // .quad -8941286242233752499 - QUAD $0x934aed0aab460433 // .quad -7833187971778608077 - QUAD $0xa4e4b66b68b65d60 // .quad -6564921784364802720 - QUAD $0xf81da84d56178540 // .quad -568112927868484288 - QUAD $0xce1de40642e3f4b9 // .quad -3594466212028615495 - QUAD $0x36251260ab9d668f // .quad 3901544858591782543 - QUAD $0x80d2ae83e9ce78f3 // .quad -9164070410158966541 - QUAD $0xc1d72b7c6b42601a // .quad -4479063491021217766 - QUAD $0xa1075a24e4421730 // .quad -6843401994271320272 - QUAD $0xb24cf65b8612f820 // .quad -5598829363776522208 - QUAD $0xc94930ae1d529cfc // .quad -3942566474411762436 - QUAD $0xdee033f26797b628 // .quad -2386850686293264856 - QUAD $0xfb9b7cd9a4a7443c // .quad -316522074587315140 - QUAD $0x169840ef017da3b2 // .quad 1628122660560806834 - QUAD $0x9d412e0806e88aa5 // .quad -7115355324258153819 - QUAD $0x8e1f289560ee864f // .quad -8205795374004271537 - QUAD $0xc491798a08a2ad4e // .quad -4282508136895304370 - QUAD $0xf1a6f2bab92a27e3 // .quad -1033872180650563613 - QUAD $0xf5b5d7ec8acb58a2 // .quad -741449152691742558 - QUAD $0xae10af696774b1dc // .quad -5904026244240592420 - QUAD $0x9991a6f3d6bf1765 // .quad -7380934748073420955 - QUAD $0xacca6da1e0a8ef2a // .quad -5995859411864064214 - QUAD $0xbff610b0cc6edd3f // .quad -4614482416664388289 - QUAD $0x17fd090a58d32af4 // .quad 1728547772024695540 - QUAD $0xeff394dcff8a948e // .quad -1156417002403097458 - QUAD $0xddfc4b4cef07f5b1 // .quad -2451001303396518479 - QUAD $0x95f83d0a1fb69cd9 // .quad -7640289654143017767 - QUAD $0x4abdaf101564f98f // .quad 5385653213018257807 - QUAD $0xbb764c4ca7a4440f // .quad -4938676049251384305 - QUAD $0x9d6d1ad41abe37f2 // .quad -7102991539009341454 - QUAD $0xea53df5fd18d5513 // .quad -1561659043136842477 - QUAD $0x84c86189216dc5ee // .quad -8878739423761676818 - QUAD $0x92746b9be2f8552c // .quad -7893565929601608404 - QUAD $0x32fd3cf5b4e49bb5 // .quad 3674159897003727797 - QUAD $0xb7118682dbb66a77 // .quad -5255271393574622601 - QUAD $0x3fbc8c33221dc2a2 // .quad 4592699871254659746 - QUAD $0xe4d5e82392a40515 // .quad -1957403223540890347 - QUAD $0x0fabaf3feaa5334b // .quad 1129188820640936779 - QUAD $0x8f05b1163ba6832d // .quad -8140906042354138323 - QUAD $0x29cb4d87f2a7400f // .quad 3011586022114279439 - QUAD $0xb2c71d5bca9023f8 // .quad -5564446534515285000 - QUAD $0x743e20e9ef511013 // .quad 8376168546070237203 - QUAD $0xdf78e4b2bd342cf6 // .quad -2343872149716718346 - QUAD $0x914da9246b255417 // .quad -7976533391121755113 - QUAD $0x8bab8eefb6409c1a // .quad -8382449121214030822 - QUAD $0x1ad089b6c2f7548f // .quad 1932195658189984911 - QUAD $0xae9672aba3d0c320 // .quad -5866375383090150624 - QUAD $0xa184ac2473b529b2 // .quad -6808127464117294670 - QUAD $0xda3c0f568cc4f3e8 // .quad -2721283210435300376 - QUAD $0xc9e5d72d90a2741f // .quad -3898473311719230433 - QUAD $0x8865899617fb1871 // .quad -8618331034163144591 - QUAD $0x7e2fa67c7a658893 // .quad 9092669226243950739 - QUAD $0xaa7eebfb9df9de8d // .quad -6161227774276542835 - QUAD $0xddbb901b98feeab8 // .quad -2469221522477225288 - QUAD $0xd51ea6fa85785631 // .quad -3089848699418290639 - QUAD $0x552a74227f3ea566 // .quad 6136845133758244198 - QUAD $0x8533285c936b35de // .quad -8848684464777513506 - QUAD $0xd53a88958f872760 // .quad -3082000819042179232 - QUAD $0xa67ff273b8460356 // .quad -6449169562544503978 - QUAD $0x8a892abaf368f138 // .quad -8464187042230111944 - QUAD $0xd01fef10a657842c // .quad -3449775934753242068 - QUAD $0x2d2b7569b0432d86 // .quad 3254824252494523782 - QUAD $0x8213f56a67f6b29b // .quad -9073638986861858149 - QUAD $0x9c3b29620e29fc74 // .quad -7189106879045698444 - QUAD $0xa298f2c501f45f42 // .quad -6730362715149934782 - QUAD $0x8349f3ba91b47b90 // .quad -8986383598807123056 - QUAD $0xcb3f2f7642717713 // .quad -3801267375510030573 - QUAD $0x241c70a936219a74 // .quad 2602078556773259892 - QUAD $0xfe0efb53d30dd4d7 // .quad -139898200960150313 - QUAD $0xed238cd383aa0111 // .quad -1359087822460813039 - QUAD $0x9ec95d1463e8a506 // .quad -7004965403241175802 - QUAD $0xf4363804324a40ab // .quad -849429889038008149 - QUAD $0xc67bb4597ce2ce48 // .quad -4144520735624081848 - QUAD $0xb143c6053edcd0d6 // .quad -5673473379724898090 - QUAD $0xf81aa16fdc1b81da // .quad -568964901102714406 - QUAD $0xdd94b7868e94050b // .quad -2480155706228734709 - QUAD $0x9b10a4e5e9913128 // .quad -7273132090830278360 - QUAD $0xca7cf2b4191c8327 // .quad -3855940325606653145 - QUAD $0xc1d4ce1f63f57d72 // .quad -4479729095110460046 - QUAD $0xfd1c2f611f63a3f1 // .quad -208239388580928527 - QUAD $0xf24a01a73cf2dccf // .quad -987975350460687153 - QUAD $0xbc633b39673c8ced // .quad -4871985254153548563 - QUAD $0x976e41088617ca01 // .quad -7535013621679011327 - QUAD $0xd5be0503e085d814 // .quad -3044990783845967852 - QUAD $0xbd49d14aa79dbc82 // .quad -4807081008671376254 - QUAD $0x4b2d8644d8a74e19 // .quad 5417133557047315993 - QUAD $0xec9c459d51852ba2 // .quad -1397165242411832414 - QUAD $0xddf8e7d60ed1219f // .quad -2451955090545630817 - QUAD $0x93e1ab8252f33b45 // .quad -7790757304148477115 - QUAD $0xcabb90e5c942b504 // .quad -3838314940804713212 - QUAD $0xb8da1662e7b00a17 // .quad -5126760611758208489 - QUAD $0x3d6a751f3b936244 // .quad 4425478360848884292 - QUAD $0xe7109bfba19c0c9d // .quad -1796764746270372707 - QUAD $0x0cc512670a783ad5 // .quad 920161932633717461 - QUAD $0x906a617d450187e2 // .quad -8040506994060064798 - QUAD $0x27fb2b80668b24c6 // .quad 2880944217109767366 - QUAD $0xb484f9dc9641e9da // .quad -5438947724147693094 - QUAD $0xb1f9f660802dedf7 // .quad -5622191765467566601 - QUAD $0xe1a63853bbd26451 // .quad -2186998636757228463 - QUAD $0x5e7873f8a0396974 // .quad 6807318348447705460 - QUAD $0x8d07e33455637eb2 // .quad -8284403175614349646 - QUAD $0xdb0b487b6423e1e9 // .quad -2662955059861265943 - QUAD $0xb049dc016abc5e5f // .quad -5743817951090549153 - QUAD $0x91ce1a9a3d2cda63 // .quad -7940379843253970333 - QUAD $0xdc5c5301c56b75f7 // .quad -2568086420435798537 - QUAD $0x7641a140cc7810fc // .quad 8521269269642088700 - QUAD $0x89b9b3e11b6329ba // .quad -8522583040413455942 - QUAD $0xa9e904c87fcb0a9e // .quad -6203421752542164322 - QUAD $0xac2820d9623bf429 // .quad -6041542782089432023 - QUAD $0x546345fa9fbdcd45 // .quad 6080780864604458309 - QUAD $0xd732290fbacaf133 // .quad -2940242459184402125 - QUAD $0xa97c177947ad4096 // .quad -6234081974526590826 - QUAD $0x867f59a9d4bed6c0 // .quad -8755180564631333184 - QUAD $0x49ed8eabcccc485e // .quad 5327070802775656542 - QUAD $0xa81f301449ee8c70 // .quad -6332289687361778576 - QUAD $0x5c68f256bfff5a75 // .quad 6658838503469570677 - QUAD $0xd226fc195c6a2f8c // .quad -3303676090774835316 - QUAD $0x73832eec6fff3112 // .quad 8323548129336963346 - QUAD $0x83585d8fd9c25db7 // .quad -8982326584375353929 - QUAD $0xc831fd53c5ff7eac // .quad -4021154456019173716 - QUAD $0xa42e74f3d032f525 // .quad -6616222212041804507 - QUAD $0xba3e7ca8b77f5e56 // .quad -5026443070023967146 - QUAD $0xcd3a1230c43fb26f // .quad -3658591746624867729 - QUAD $0x28ce1bd2e55f35ec // .quad 2940318199324816876 - QUAD $0x80444b5e7aa7cf85 // .quad -9204148869281624187 - QUAD $0x7980d163cf5b81b4 // .quad 8755227902219092404 - QUAD $0xa0555e361951c366 // .quad -6893500068174642330 - QUAD $0xd7e105bcc3326220 // .quad -2891023177508298208 - QUAD $0xc86ab5c39fa63440 // .quad -4005189066790915008 - QUAD $0x8dd9472bf3fefaa8 // .quad -8225464990312760664 - QUAD $0xfa856334878fc150 // .quad -394800315061255856 - QUAD $0xb14f98f6f0feb952 // .quad -5670145219463562926 - QUAD $0x9c935e00d4b9d8d2 // .quad -7164279224554366766 - QUAD $0x6ed1bf9a569f33d4 // .quad 7985374283903742932 - QUAD $0xc3b8358109e84f07 // .quad -4343663012265570553 - QUAD $0x0a862f80ec4700c9 // .quad 758345818024902857 - QUAD $0xf4a642e14c6262c8 // .quad -817892746904575288 - QUAD $0xcd27bb612758c0fb // .quad -3663753745896259333 - QUAD $0x98e7e9cccfbd7dbd // .quad -7428711994456441411 - QUAD $0x8038d51cb897789d // .quad -9207375118826243939 - QUAD $0xbf21e44003acdd2c // .quad -4674203974643163860 - QUAD $0xe0470a63e6bd56c4 // .quad -2285846861678029116 - QUAD $0xeeea5d5004981478 // .quad -1231068949876566920 - QUAD $0x1858ccfce06cac75 // .quad 1754377441329851509 - QUAD $0x95527a5202df0ccb // .quad -7686947121313936181 - QUAD $0x0f37801e0c43ebc9 // .quad 1096485900831157193 - QUAD $0xbaa718e68396cffd // .quad -4996997883215032323 - QUAD $0xd30560258f54e6bb // .quad -3241078642388441413 - QUAD $0xe950df20247c83fd // .quad -1634561335591402499 - QUAD $0x47c6b82ef32a206a // .quad 5172023733869224042 - QUAD $0x91d28b7416cdd27e // .quad -7939129862385708418 - QUAD $0x4cdc331d57fa5442 // .quad 5538357842881958978 - QUAD $0xb6472e511c81471d // .quad -5312226309554747619 - QUAD $0xe0133fe4adf8e953 // .quad -2300424733252327085 - QUAD $0xe3d8f9e563a198e5 // .quad -2028596868516046619 - QUAD $0x58180fddd97723a7 // .quad 6347841120289366951 - QUAD $0x8e679c2f5e44ff8f // .quad -8185402070463610993 - QUAD $0x570f09eaa7ea7649 // .quad 6273243709394548297 - QUAD $0xb201833b35d63f73 // .quad -5620066569652125837 - QUAD $0x2cd2cc6551e513db // .quad 3229868618315797467 - QUAD $0xde81e40a034bcf4f // .quad -2413397193637769393 - QUAD $0xf8077f7ea65e58d2 // .quad -574350245532641070 - QUAD $0x8b112e86420f6191 // .quad -8425902273664687727 - QUAD $0xfb04afaf27faf783 // .quad -358968903457900669 - QUAD $0xadd57a27d29339f6 // .quad -5920691823653471754 - QUAD $0x79c5db9af1f9b564 // .quad 8774660907532399972 - QUAD $0xd94ad8b1c7380874 // .quad -2789178761139451788 - QUAD $0x18375281ae7822bd // .quad 1744954097560724157 - QUAD $0x87cec76f1c830548 // .quad -8660765753353239224 - QUAD $0x8f2293910d0b15b6 // .quad -8132775725879323210 - QUAD $0xa9c2794ae3a3c69a // .quad -6214271173264161126 - QUAD $0xb2eb3875504ddb23 // .quad -5554283638921766109 - QUAD $0xd433179d9c8cb841 // .quad -3156152948152813503 - QUAD $0x5fa60692a46151ec // .quad 6892203506629956076 - QUAD $0x849feec281d7f328 // .quad -8890124620236590296 - QUAD $0xdbc7c41ba6bcd334 // .quad -2609901835997359308 - QUAD $0xa5c7ea73224deff3 // .quad -6500969756868349965 - QUAD $0x12b9b522906c0801 // .quad 1349308723430688769 - QUAD $0xcf39e50feae16bef // .quad -3514526177658049553 - QUAD $0xd768226b34870a01 // .quad -2925050114139026943 - QUAD $0x81842f29f2cce375 // .quad -9114107888677362827 - QUAD $0xe6a1158300d46641 // .quad -1828156321336891839 - QUAD $0xa1e53af46f801c53 // .quad -6780948842419315629 - QUAD $0x60495ae3c1097fd1 // .quad 6938176635183661009 - QUAD $0xca5e89b18b602368 // .quad -3864500034596756632 - QUAD $0x385bb19cb14bdfc5 // .quad 4061034775552188357 - QUAD $0xfcf62c1dee382c42 // .quad -218939024818557886 - QUAD $0x46729e03dd9ed7b6 // .quad 5076293469440235446 - QUAD $0x9e19db92b4e31ba9 // .quad -7054365918152680535 - QUAD $0x6c07a2c26a8346d2 // .quad 7784369436827535058 - - // .p2align 4, 0x00 -_VecShiftShuffles: - QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' - QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' - QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' - QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' - QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' - QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' - QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' - QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' - QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' - - // .p2align 4, 0x00 -__SingleQuoteTab: - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000002 // .quad 2 - QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -__DoubleQuoteTab: - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' - QUAD $0x0000000000000003 // .quad 3 - QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' - QUAD $0x0000000000000003 // .quad 3 - QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' - QUAD $0x0000000000000003 // .quad 3 - QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' - QUAD $0x0000000000000007 // .quad 7 - QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000004 // .quad 4 - QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000004 // .quad 4 - QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -__EscTab: - QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' - - // .p2align 4, 0x00 -__UnquoteTab: - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' - QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' - LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -__HtmlQuoteTab: - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' - QUAD $0x0000000000000006 // .quad 6 - QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - - // .p2align 4, 0x00 -_LSHIFT_TAB: - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000001 // .long 1 - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000001 // .long 1 - QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000001 // .long 1 - QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000002 // .long 2 - QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000002 // .long 2 - QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000002 // .long 2 - QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000003 // .long 3 - QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000003 // .long 3 - QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000003 // .long 3 - QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000004 // .long 4 - QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000004 // .long 4 - QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000004 // .long 4 - QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000004 // .long 4 - QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000005 // .long 5 - QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000005 // .long 5 - QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000005 // .long 5 - QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000006 // .long 6 - QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000006 // .long 6 - QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000006 // .long 6 - QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000007 // .long 7 - QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000007 // .long 7 - QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000007 // .long 7 - QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000007 // .long 7 - QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000008 // .long 8 - QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000008 // .long 8 - QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' - QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000008 // .long 8 - QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' - QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000009 // .long 9 - QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' - QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000009 // .long 9 - QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' - QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000009 // .long 9 - QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' - QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000a // .long 10 - QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' - QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000a // .long 10 - QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' - QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000a // .long 10 - QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' - QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000a // .long 10 - QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' - QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000b // .long 11 - QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' - QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000b // .long 11 - QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' - QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000b // .long 11 - QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' - QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000c // .long 12 - QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' - QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000c // .long 12 - QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' - QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000c // .long 12 - QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' - QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000d // .long 13 - QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' - QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000d // .long 13 - QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' - QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000d // .long 13 - QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' - QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000d // .long 13 - QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' - QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000e // .long 14 - QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' - QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000e // .long 14 - QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' - QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000e // .long 14 - QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' - QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000f // .long 15 - QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' - QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' - QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000f // .long 15 - QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' - QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' - QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x0000000f // .long 15 - QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' - QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' - QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000010 // .long 16 - QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' - QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' - QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000010 // .long 16 - QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' - QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' - QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000010 // .long 16 - QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' - QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' - QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000010 // .long 16 - QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' - QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' - QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000011 // .long 17 - QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' - QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' - QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000011 // .long 17 - QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' - QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' - QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000011 // .long 17 - QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' - QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' - QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000012 // .long 18 - QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' - QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' - QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000012 // .long 18 - QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' - QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' - QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000012 // .long 18 - QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' - QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' - QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - LONG $0x00000013 // .long 19 - QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' - QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' - QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -_P10_TAB: - QUAD $0x3ff0000000000000 // .quad 0x3ff0000000000000 - QUAD $0x4024000000000000 // .quad 0x4024000000000000 - QUAD $0x4059000000000000 // .quad 0x4059000000000000 - QUAD $0x408f400000000000 // .quad 0x408f400000000000 - QUAD $0x40c3880000000000 // .quad 0x40c3880000000000 - QUAD $0x40f86a0000000000 // .quad 0x40f86a0000000000 - QUAD $0x412e848000000000 // .quad 0x412e848000000000 - QUAD $0x416312d000000000 // .quad 0x416312d000000000 - QUAD $0x4197d78400000000 // .quad 0x4197d78400000000 - QUAD $0x41cdcd6500000000 // .quad 0x41cdcd6500000000 - QUAD $0x4202a05f20000000 // .quad 0x4202a05f20000000 - QUAD $0x42374876e8000000 // .quad 0x42374876e8000000 - QUAD $0x426d1a94a2000000 // .quad 0x426d1a94a2000000 - QUAD $0x42a2309ce5400000 // .quad 0x42a2309ce5400000 - QUAD $0x42d6bcc41e900000 // .quad 0x42d6bcc41e900000 - QUAD $0x430c6bf526340000 // .quad 0x430c6bf526340000 - QUAD $0x4341c37937e08000 // .quad 0x4341c37937e08000 - QUAD $0x4376345785d8a000 // .quad 0x4376345785d8a000 - QUAD $0x43abc16d674ec800 // .quad 0x43abc16d674ec800 - QUAD $0x43e158e460913d00 // .quad 0x43e158e460913d00 - QUAD $0x4415af1d78b58c40 // .quad 0x4415af1d78b58c40 - QUAD $0x444b1ae4d6e2ef50 // .quad 0x444b1ae4d6e2ef50 - QUAD $0x4480f0cf064dd592 // .quad 0x4480f0cf064dd592 - QUAD $0x0000000000000000 // .p2align 4, 0x00 - -_LB_2202da27: // _pow10_ceil_sig_f32.g - QUAD $0x81ceb32c4b43fcf5 // .quad -9093133594791772939 - QUAD $0xa2425ff75e14fc32 // .quad -6754730975062328270 - QUAD $0xcad2f7f5359a3b3f // .quad -3831727700400522433 - QUAD $0xfd87b5f28300ca0e // .quad -177973607073265138 - QUAD $0x9e74d1b791e07e49 // .quad -7028762532061872567 - QUAD $0xc612062576589ddb // .quad -4174267146649952805 - QUAD $0xf79687aed3eec552 // .quad -606147914885053102 - QUAD $0x9abe14cd44753b53 // .quad -7296371474444240045 - QUAD $0xc16d9a0095928a28 // .quad -4508778324627912152 - QUAD $0xf1c90080baf72cb2 // .quad -1024286887357502286 - QUAD $0x971da05074da7bef // .quad -7557708332239520785 - QUAD $0xbce5086492111aeb // .quad -4835449396872013077 - QUAD $0xec1e4a7db69561a6 // .quad -1432625727662628442 - QUAD $0x9392ee8e921d5d08 // .quad -7812920107430224632 - QUAD $0xb877aa3236a4b44a // .quad -5154464115860392886 - QUAD $0xe69594bec44de15c // .quad -1831394126398103204 - QUAD $0x901d7cf73ab0acda // .quad -8062150356639896358 - QUAD $0xb424dc35095cd810 // .quad -5466001927372482544 - QUAD $0xe12e13424bb40e14 // .quad -2220816390788215276 - QUAD $0x8cbccc096f5088cc // .quad -8305539271883716404 - QUAD $0xafebff0bcb24aaff // .quad -5770238071427257601 - QUAD $0xdbe6fecebdedd5bf // .quad -2601111570856684097 - QUAD $0x89705f4136b4a598 // .quad -8543223759426509416 - QUAD $0xabcc77118461cefd // .quad -6067343680855748867 - QUAD $0xd6bf94d5e57a42bd // .quad -2972493582642298179 - QUAD $0x8637bd05af6c69b6 // .quad -8775337516792518218 - QUAD $0xa7c5ac471b478424 // .quad -6357485877563259868 - QUAD $0xd1b71758e219652c // .quad -3335171328526686932 - QUAD $0x83126e978d4fdf3c // .quad -9002011107970261188 - QUAD $0xa3d70a3d70a3d70b // .quad -6640827866535438581 - QUAD $0xcccccccccccccccd // .quad -3689348814741910323 - QUAD $0x8000000000000000 // .quad -9223372036854775808 - QUAD $0xa000000000000000 // .quad -6917529027641081856 - QUAD $0xc800000000000000 // .quad -4035225266123964416 - QUAD $0xfa00000000000000 // .quad -432345564227567616 - QUAD $0x9c40000000000000 // .quad -7187745005283311616 - QUAD $0xc350000000000000 // .quad -4372995238176751616 - QUAD $0xf424000000000000 // .quad -854558029293551616 - QUAD $0x9896800000000000 // .quad -7451627795949551616 - QUAD $0xbebc200000000000 // .quad -4702848726509551616 - QUAD $0xee6b280000000000 // .quad -1266874889709551616 - QUAD $0x9502f90000000000 // .quad -7709325833709551616 - QUAD $0xba43b74000000000 // .quad -5024971273709551616 - QUAD $0xe8d4a51000000000 // .quad -1669528073709551616 - QUAD $0x9184e72a00000000 // .quad -7960984073709551616 - QUAD $0xb5e620f480000000 // .quad -5339544073709551616 - QUAD $0xe35fa931a0000000 // .quad -2062744073709551616 - QUAD $0x8e1bc9bf04000000 // .quad -8206744073709551616 - QUAD $0xb1a2bc2ec5000000 // .quad -5646744073709551616 - QUAD $0xde0b6b3a76400000 // .quad -2446744073709551616 - QUAD $0x8ac7230489e80000 // .quad -8446744073709551616 - QUAD $0xad78ebc5ac620000 // .quad -5946744073709551616 - QUAD $0xd8d726b7177a8000 // .quad -2821744073709551616 - QUAD $0x878678326eac9000 // .quad -8681119073709551616 - QUAD $0xa968163f0a57b400 // .quad -6239712823709551616 - QUAD $0xd3c21bcecceda100 // .quad -3187955011209551616 - QUAD $0x84595161401484a0 // .quad -8910000909647051616 - QUAD $0xa56fa5b99019a5c8 // .quad -6525815118631426616 - QUAD $0xcecb8f27f4200f3a // .quad -3545582879861895366 - QUAD $0x813f3978f8940985 // .quad -9133518327554766459 - QUAD $0xa18f07d736b90be6 // .quad -6805211891016070170 - QUAD $0xc9f2c9cd04674edf // .quad -3894828845342699809 - QUAD $0xfc6f7c4045812297 // .quad -256850038250986857 - QUAD $0x9dc5ada82b70b59e // .quad -7078060301547948642 - QUAD $0xc5371912364ce306 // .quad -4235889358507547898 - QUAD $0xf684df56c3e01bc7 // .quad -683175679707046969 - QUAD $0x9a130b963a6c115d // .quad -7344513827457986211 - QUAD $0xc097ce7bc90715b4 // .quad -4568956265895094860 - QUAD $0xf0bdc21abb48db21 // .quad -1099509313941480671 - QUAD $0x96769950b50d88f5 // .quad -7604722348854507275 - QUAD $0xbc143fa4e250eb32 // .quad -4894216917640746190 - QUAD $0xeb194f8e1ae525fe // .quad -1506085128623544834 - QUAD $0x92efd1b8d0cf37bf // .quad -7858832233030797377 - QUAD $0xb7abc627050305ae // .quad -5211854272861108818 - QUAD $0xe596b7b0c643c71a // .quad -1903131822648998118 - QUAD $0x8f7e32ce7bea5c70 // .quad -8106986416796705680 - QUAD $0xb35dbf821ae4f38c // .quad -5522047002568494196 - -TEXT ·__f32toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -48(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_f32toa: - MOVQ out+0(FP), DI - MOVSD val+8(FP), X0 - CALL ·__native_entry__+33888(SB) // _f32toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__f64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -80(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_f64toa: - MOVQ out+0(FP), DI - MOVSD val+8(FP), X0 - CALL ·__native_entry__+288(SB) // _f64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__get_by_path(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -296(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_get_by_path: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ path+16(FP), DX - MOVQ m+24(FP), CX - CALL ·__native_entry__+28336(SB) // _get_by_path - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__html_escape(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -72(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_html_escape: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ dn+24(FP), CX - CALL ·__native_entry__+10496(SB) // _html_escape - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__i64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_i64toa: - MOVQ out+0(FP), DI - MOVQ val+8(FP), SI - CALL ·__native_entry__+3584(SB) // _i64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__lspace(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -8(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_lspace: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ off+16(FP), DX - CALL ·__native_entry__+64(SB) // _lspace - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__quote(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -56(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_quote: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ dn+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+5072(SB) // _quote - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_array(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_array: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+20688(SB) // _skip_array - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_number(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -72(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_number: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - CALL ·__native_entry__+24912(SB) // _skip_number - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_object(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_object: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+22736(SB) // _skip_object - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_one(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_one: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+25072(SB) // _skip_one - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_one_fast(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -208(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_one_fast: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - CALL ·__native_entry__+25488(SB) // _skip_one_fast - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__u64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -8(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_u64toa: - MOVQ out+0(FP), DI - MOVQ val+8(FP), SI - CALL ·__native_entry__+3696(SB) // _u64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__unquote(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -72(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_unquote: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ ep+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+7888(SB) // _unquote - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_one(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_one: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - CALL ·__native_entry__+25136(SB) // _validate_one - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_utf8(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -48(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_utf8: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - CALL ·__native_entry__+30320(SB) // _validate_utf8 - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_utf8_fast(SB), NOSPLIT | NOFRAME, $0 - 16 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -176(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_utf8_fast: - MOVQ s+0(FP), DI - CALL ·__native_entry__+31280(SB) // _validate_utf8_fast - MOVQ AX, ret+8(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__value(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -328(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_value: - MOVQ s+0(FP), DI - MOVQ n+8(FP), SI - MOVQ p+16(FP), DX - MOVQ v+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+15024(SB) // _value - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vnumber(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -240(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vnumber: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+18352(SB), AX // _vnumber - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vsigned(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vsigned: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+19968(SB), AX // _vsigned - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vstring(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -112(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vstring: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - MOVQ flags+24(FP), CX - LEAQ ·__native_entry__+17024(SB), AX // _vstring - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vunsigned(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vunsigned: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+20336(SB), AX // _vunsigned - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_export_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_export_amd64.go deleted file mode 100644 index 8adf5e91..00000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_export_amd64.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by Makefile, DO NOT EDIT. - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package avx2 - -var ( - S_f64toa = _subr__f64toa - S_f32toa = _subr__f32toa - S_i64toa = _subr__i64toa - S_u64toa = _subr__u64toa - S_lspace = _subr__lspace -) - -var ( - S_quote = _subr__quote - S_unquote = _subr__unquote -) - -var ( - S_value = _subr__value - S_vstring = _subr__vstring - S_vnumber = _subr__vnumber - S_vsigned = _subr__vsigned - S_vunsigned = _subr__vunsigned -) - -var ( - S_skip_one = _subr__skip_one - S_skip_one_fast = _subr__skip_one_fast - S_skip_array = _subr__skip_array - S_skip_object = _subr__skip_object - S_skip_number = _subr__skip_number - S_get_by_path = _subr__get_by_path -) diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go index 10b3d60f..5f85c5b6 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go @@ -3,107 +3,608 @@ package avx2 -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr +import ( + `github.com/bytedance/sonic/loader` +) -var ( - _subr__f32toa = __native_entry__() + 33888 - _subr__f64toa = __native_entry__() + 288 - _subr__get_by_path = __native_entry__() + 28336 - _subr__html_escape = __native_entry__() + 10496 - _subr__i64toa = __native_entry__() + 3584 - _subr__lspace = __native_entry__() + 64 - _subr__quote = __native_entry__() + 5072 - _subr__skip_array = __native_entry__() + 20688 - _subr__skip_number = __native_entry__() + 24912 - _subr__skip_object = __native_entry__() + 22736 - _subr__skip_one = __native_entry__() + 25072 - _subr__skip_one_fast = __native_entry__() + 25488 - _subr__u64toa = __native_entry__() + 3696 - _subr__unquote = __native_entry__() + 7888 - _subr__validate_one = __native_entry__() + 25136 - _subr__validate_utf8 = __native_entry__() + 30320 - _subr__validate_utf8_fast = __native_entry__() + 31280 - _subr__value = __native_entry__() + 15024 - _subr__vnumber = __native_entry__() + 18352 - _subr__vsigned = __native_entry__() + 19968 - _subr__vstring = __native_entry__() + 17024 - _subr__vunsigned = __native_entry__() + 20336 +const ( + _entry__f32toa = 34624 + _entry__f64toa = 320 + _entry__format_significand = 38736 + _entry__format_integer = 3168 + _entry__fsm_exec = 21072 + _entry__advance_ns = 16928 + _entry__advance_string = 17664 + _entry__advance_string_default = 40160 + _entry__do_skip_number = 23696 + _entry__get_by_path = 28864 + _entry__skip_one_fast = 25936 + _entry__html_escape = 10560 + _entry__i64toa = 3600 + _entry__u64toa = 3712 + _entry__lspace = 64 + _entry__quote = 5104 + _entry__skip_array = 21024 + _entry__skip_number = 25392 + _entry__skip_object = 23088 + _entry__skip_one = 25536 + _entry__unquote = 7888 + _entry__validate_one = 25584 + _entry__validate_utf8 = 31040 + _entry__validate_utf8_fast = 31984 + _entry__value = 15376 + _entry__vnumber = 18800 + _entry__atof_eisel_lemire64 = 12624 + _entry__atof_native = 14768 + _entry__decimal_to_f64 = 13056 + _entry__right_shift = 39696 + _entry__left_shift = 39200 + _entry__vsigned = 20352 + _entry__vstring = 17424 + _entry__vunsigned = 20672 ) const ( _stack__f32toa = 48 _stack__f64toa = 80 - _stack__get_by_path = 296 + _stack__format_significand = 24 + _stack__format_integer = 16 + _stack__fsm_exec = 144 + _stack__advance_ns = 8 + _stack__advance_string = 56 + _stack__advance_string_default = 48 + _stack__do_skip_number = 48 + _stack__get_by_path = 272 + _stack__skip_one_fast = 184 _stack__html_escape = 72 _stack__i64toa = 16 + _stack__u64toa = 8 _stack__lspace = 8 _stack__quote = 56 - _stack__skip_array = 128 - _stack__skip_number = 72 - _stack__skip_object = 128 - _stack__skip_one = 128 - _stack__skip_one_fast = 208 - _stack__u64toa = 8 + _stack__skip_array = 152 + _stack__skip_number = 88 + _stack__skip_object = 152 + _stack__skip_one = 152 _stack__unquote = 72 - _stack__validate_one = 128 + _stack__validate_one = 152 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 176 _stack__value = 328 _stack__vnumber = 240 + _stack__atof_eisel_lemire64 = 32 + _stack__atof_native = 136 + _stack__decimal_to_f64 = 80 + _stack__right_shift = 8 + _stack__left_shift = 24 _stack__vsigned = 16 _stack__vstring = 112 - _stack__vunsigned = 16 + _stack__vunsigned = 8 ) -var ( - _ = _subr__f32toa - _ = _subr__f64toa - _ = _subr__get_by_path - _ = _subr__html_escape - _ = _subr__i64toa - _ = _subr__lspace - _ = _subr__quote - _ = _subr__skip_array - _ = _subr__skip_number - _ = _subr__skip_object - _ = _subr__skip_one - _ = _subr__skip_one_fast - _ = _subr__u64toa - _ = _subr__unquote - _ = _subr__validate_one - _ = _subr__validate_utf8 - _ = _subr__validate_utf8_fast - _ = _subr__value - _ = _subr__vnumber - _ = _subr__vsigned - _ = _subr__vstring - _ = _subr__vunsigned +const ( + _size__f32toa = 3392 + _size__f64toa = 2848 + _size__format_significand = 464 + _size__format_integer = 432 + _size__fsm_exec = 1468 + _size__advance_ns = 496 + _size__advance_string = 1088 + _size__advance_string_default = 768 + _size__do_skip_number = 1360 + _size__get_by_path = 2176 + _size__skip_one_fast = 2428 + _size__html_escape = 2064 + _size__i64toa = 48 + _size__u64toa = 1248 + _size__lspace = 224 + _size__quote = 2736 + _size__skip_array = 48 + _size__skip_number = 144 + _size__skip_object = 48 + _size__skip_one = 48 + _size__unquote = 2480 + _size__validate_one = 48 + _size__validate_utf8 = 672 + _size__validate_utf8_fast = 2608 + _size__value = 1004 + _size__vnumber = 1552 + _size__atof_eisel_lemire64 = 368 + _size__atof_native = 608 + _size__decimal_to_f64 = 1712 + _size__right_shift = 400 + _size__left_shift = 496 + _size__vsigned = 320 + _size__vstring = 144 + _size__vunsigned = 336 ) -const ( - _ = _stack__f32toa - _ = _stack__f64toa - _ = _stack__get_by_path - _ = _stack__html_escape - _ = _stack__i64toa - _ = _stack__lspace - _ = _stack__quote - _ = _stack__skip_array - _ = _stack__skip_number - _ = _stack__skip_object - _ = _stack__skip_one - _ = _stack__skip_one_fast - _ = _stack__u64toa - _ = _stack__unquote - _ = _stack__validate_one - _ = _stack__validate_utf8 - _ = _stack__validate_utf8_fast - _ = _stack__value - _ = _stack__vnumber - _ = _stack__vsigned - _ = _stack__vstring - _ = _stack__vunsigned +var ( + _pcsp__f32toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {3350, 48}, + {3351, 40}, + {3353, 32}, + {3355, 24}, + {3357, 16}, + {3359, 8}, + {3363, 0}, + {3385, 48}, + } + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2788, 56}, + {2792, 48}, + {2793, 40}, + {2795, 32}, + {2797, 24}, + {2799, 16}, + {2801, 8}, + {2805, 0}, + {2843, 56}, + } + _pcsp__format_significand = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {452, 24}, + {453, 16}, + {455, 8}, + {457, 0}, + } + _pcsp__format_integer = [][2]uint32{ + {1, 0}, + {4, 8}, + {412, 16}, + {413, 8}, + {414, 0}, + {423, 16}, + {424, 8}, + {426, 0}, + } + _pcsp__fsm_exec = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1157, 88}, + {1161, 48}, + {1162, 40}, + {1164, 32}, + {1166, 24}, + {1168, 16}, + {1170, 8}, + {1171, 0}, + {1468, 88}, + } + _pcsp__advance_ns = [][2]uint32{ + {1, 0}, + {453, 8}, + {457, 0}, + {481, 8}, + {486, 0}, + } + _pcsp__advance_string = [][2]uint32{ + {14, 0}, + {18, 8}, + {20, 16}, + {22, 24}, + {24, 32}, + {26, 40}, + {27, 48}, + {433, 56}, + {437, 48}, + {438, 40}, + {440, 32}, + {442, 24}, + {444, 16}, + {446, 8}, + {450, 0}, + {1078, 56}, + } + _pcsp__advance_string_default = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {332, 48}, + {333, 40}, + {335, 32}, + {337, 24}, + {339, 16}, + {341, 8}, + {345, 0}, + {757, 48}, + } + _pcsp__do_skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {1274, 48}, + {1275, 40}, + {1277, 32}, + {1279, 24}, + {1281, 16}, + {1283, 8}, + {1287, 0}, + {1360, 48}, + } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2049, 88}, + {2053, 48}, + {2054, 40}, + {2056, 32}, + {2058, 24}, + {2060, 16}, + {2062, 8}, + {2063, 0}, + {2170, 88}, + } + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {418, 176}, + {419, 168}, + {421, 160}, + {423, 152}, + {425, 144}, + {427, 136}, + {431, 128}, + {2428, 176}, + } + _pcsp__html_escape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2045, 72}, + {2049, 48}, + {2050, 40}, + {2052, 32}, + {2054, 24}, + {2056, 16}, + {2058, 8}, + {2063, 0}, + } + _pcsp__i64toa = [][2]uint32{ + {14, 0}, + {34, 8}, + {36, 0}, + } + _pcsp__u64toa = [][2]uint32{ + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {758, 8}, + {759, 0}, + {1225, 8}, + {1227, 0}, + } + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {184, 8}, + {188, 0}, + {204, 8}, + {208, 0}, + {215, 8}, + {220, 0}, + } + _pcsp__quote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2687, 56}, + {2691, 48}, + {2692, 40}, + {2694, 32}, + {2696, 24}, + {2698, 16}, + {2700, 8}, + {2704, 0}, + {2731, 56}, + } + _pcsp__skip_array = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {100, 40}, + {101, 32}, + {103, 24}, + {105, 16}, + {107, 8}, + {108, 0}, + {139, 40}, + } + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {30, 8}, + {36, 0}, + } + _pcsp__unquote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {79, 72}, + {83, 48}, + {84, 40}, + {86, 32}, + {88, 24}, + {90, 16}, + {92, 8}, + {96, 0}, + {2464, 72}, + } + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {35, 8}, + {41, 0}, + } + _pcsp__validate_utf8 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {623, 48}, + {627, 40}, + {628, 32}, + {630, 24}, + {632, 16}, + {634, 8}, + {635, 0}, + {666, 48}, + } + _pcsp__validate_utf8_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {5, 16}, + {1738, 176}, + {1739, 168}, + {1743, 160}, + {2018, 176}, + {2019, 168}, + {2023, 160}, + {2600, 176}, + } + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {988, 88}, + {992, 48}, + {993, 40}, + {995, 32}, + {997, 24}, + {999, 16}, + {1001, 8}, + {1004, 0}, + } + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {803, 104}, + {807, 48}, + {808, 40}, + {810, 32}, + {812, 24}, + {814, 16}, + {816, 8}, + {817, 0}, + {1547, 104}, + } + _pcsp__atof_eisel_lemire64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {292, 32}, + {293, 24}, + {295, 16}, + {297, 8}, + {298, 0}, + {362, 32}, + } + _pcsp__atof_native = [][2]uint32{ + {1, 0}, + {4, 8}, + {587, 56}, + {591, 8}, + {593, 0}, + } + _pcsp__decimal_to_f64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1673, 56}, + {1677, 48}, + {1678, 40}, + {1680, 32}, + {1682, 24}, + {1684, 16}, + {1686, 8}, + {1690, 0}, + {1702, 56}, + } + _pcsp__right_shift = [][2]uint32{ + {1, 0}, + {318, 8}, + {319, 0}, + {387, 8}, + {388, 0}, + {396, 8}, + {398, 0}, + } + _pcsp__left_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {363, 24}, + {364, 16}, + {366, 8}, + {367, 0}, + {470, 24}, + {471, 16}, + {473, 8}, + {474, 0}, + {486, 24}, + } + _pcsp__vsigned = [][2]uint32{ + {1, 0}, + {4, 8}, + {112, 16}, + {113, 8}, + {114, 0}, + {125, 16}, + {126, 8}, + {127, 0}, + {260, 16}, + {261, 8}, + {262, 0}, + {266, 16}, + {267, 8}, + {268, 0}, + {306, 16}, + {307, 8}, + {308, 0}, + {316, 16}, + {317, 8}, + {319, 0}, + } + _pcsp__vstring = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {105, 56}, + {109, 40}, + {110, 32}, + {112, 24}, + {114, 16}, + {116, 8}, + {118, 0}, + } + _pcsp__vunsigned = [][2]uint32{ + {1, 0}, + {71, 8}, + {72, 0}, + {83, 8}, + {84, 0}, + {107, 8}, + {108, 0}, + {273, 8}, + {274, 0}, + {312, 8}, + {313, 0}, + {320, 8}, + {322, 0}, + } ) + +var Funcs = []loader.CFunc{ + {"__native_entry__", 0, 67, 0, nil}, + {"_f32toa", _entry__f32toa, _size__f32toa, _stack__f32toa, _pcsp__f32toa}, + {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, + {"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand}, + {"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer}, + {"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec}, + {"_advance_ns", _entry__advance_ns, _size__advance_ns, _stack__advance_ns, _pcsp__advance_ns}, + {"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string}, + {"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default}, + {"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, + {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, + {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, + {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, + {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, + {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, + {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, + {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, + {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, + {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, + {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, + {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, + {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, + {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, + {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, + {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, + {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, + {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, + {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, + {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, + {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, + {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, + {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, + {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go new file mode 100644 index 00000000..927c0e52 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go @@ -0,0 +1,14800 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var Text__native_entry__ = []byte{ + 0x48, 0x8d, 0x05, 0xf9, 0xff, 0xff, 0xff, // leaq $-7(%rip), %rax + 0x48, 0x89, 0x44, 0x24, 0x08, //0x00000007 movq %rax, $8(%rsp) + 0xc3, //0x0000000c retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000000d .p2align 5, 0x00 + //0x00000020 LCPI0_0 + 0x20, //0x00000020 .byte 32 + 0x00, //0x00000021 .byte 0 + 0x00, //0x00000022 .byte 0 + 0x00, //0x00000023 .byte 0 + 0x00, //0x00000024 .byte 0 + 0x00, //0x00000025 .byte 0 + 0x00, //0x00000026 .byte 0 + 0x00, //0x00000027 .byte 0 + 0x00, //0x00000028 .byte 0 + 0x09, //0x00000029 .byte 9 + 0x0a, //0x0000002a .byte 10 + 0x00, //0x0000002b .byte 0 + 0x00, //0x0000002c .byte 0 + 0x0d, //0x0000002d .byte 13 + 0x00, //0x0000002e .byte 0 + 0x00, //0x0000002f .byte 0 + 0x20, //0x00000030 .byte 32 + 0x00, //0x00000031 .byte 0 + 0x00, //0x00000032 .byte 0 + 0x00, //0x00000033 .byte 0 + 0x00, //0x00000034 .byte 0 + 0x00, //0x00000035 .byte 0 + 0x00, //0x00000036 .byte 0 + 0x00, //0x00000037 .byte 0 + 0x00, //0x00000038 .byte 0 + 0x09, //0x00000039 .byte 9 + 0x0a, //0x0000003a .byte 10 + 0x00, //0x0000003b .byte 0 + 0x00, //0x0000003c .byte 0 + 0x0d, //0x0000003d .byte 13 + 0x00, //0x0000003e .byte 0 + 0x00, //0x0000003f .byte 0 + //0x00000040 .p2align 4, 0x90 + //0x00000040 _lspace + 0x55, //0x00000040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp + 0x48, 0x8d, 0x04, 0x17, //0x00000044 leaq (%rdi,%rdx), %rax + 0x49, 0x89, 0xf1, //0x00000048 movq %rsi, %r9 + 0x49, 0x29, 0xd1, //0x0000004b subq %rdx, %r9 + 0x49, 0x83, 0xf9, 0x20, //0x0000004e cmpq $32, %r9 + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00000052 jb LBB0_4 + 0x48, 0x29, 0xd6, //0x00000058 subq %rdx, %rsi + 0x48, 0x83, 0xc6, 0xe0, //0x0000005b addq $-32, %rsi + 0x48, 0x89, 0xf1, //0x0000005f movq %rsi, %rcx + 0x48, 0x83, 0xe1, 0xe0, //0x00000062 andq $-32, %rcx + 0x48, 0x01, 0xd1, //0x00000066 addq %rdx, %rcx + 0x4c, 0x8d, 0x44, 0x0f, 0x20, //0x00000069 leaq $32(%rdi,%rcx), %r8 + 0x83, 0xe6, 0x1f, //0x0000006e andl $31, %esi + 0xc5, 0xfd, 0x6f, 0x05, 0xa7, 0xff, 0xff, 0xff, //0x00000071 vmovdqa $-89(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000079 .p2align 4, 0x90 + //0x00000080 LBB0_2 + 0xc5, 0xfe, 0x6f, 0x08, //0x00000080 vmovdqu (%rax), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000084 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x00000089 vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x0000008d vpmovmskb %ymm1, %edx + 0x83, 0xfa, 0xff, //0x00000091 cmpl $-1, %edx + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x00000094 jne LBB0_3 + 0x48, 0x83, 0xc0, 0x20, //0x0000009a addq $32, %rax + 0x49, 0x83, 0xc1, 0xe0, //0x0000009e addq $-32, %r9 + 0x49, 0x83, 0xf9, 0x1f, //0x000000a2 cmpq $31, %r9 + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x000000a6 ja LBB0_2 + 0x49, 0x89, 0xf1, //0x000000ac movq %rsi, %r9 + 0x4c, 0x89, 0xc0, //0x000000af movq %r8, %rax + //0x000000b2 LBB0_4 + 0x4d, 0x85, 0xc9, //0x000000b2 testq %r9, %r9 + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000000b5 je LBB0_13 + 0x4e, 0x8d, 0x04, 0x08, //0x000000bb leaq (%rax,%r9), %r8 + 0x48, 0xff, 0xc0, //0x000000bf incq %rax + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000000c2 movabsq $4294977024, %rsi + //0x000000cc LBB0_6 + 0x0f, 0xbe, 0x50, 0xff, //0x000000cc movsbl $-1(%rax), %edx + 0x83, 0xfa, 0x20, //0x000000d0 cmpl $32, %edx + 0x0f, 0x87, 0x38, 0x00, 0x00, 0x00, //0x000000d3 ja LBB0_8 + 0x48, 0x0f, 0xa3, 0xd6, //0x000000d9 btq %rdx, %rsi + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x000000dd jae LBB0_8 + 0x49, 0xff, 0xc9, //0x000000e3 decq %r9 + 0x48, 0xff, 0xc0, //0x000000e6 incq %rax + 0x4d, 0x85, 0xc9, //0x000000e9 testq %r9, %r9 + 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x000000ec jne LBB0_6 + 0x4c, 0x89, 0xc0, //0x000000f2 movq %r8, %rax + //0x000000f5 LBB0_13 + 0x48, 0x29, 0xf8, //0x000000f5 subq %rdi, %rax + 0x5d, //0x000000f8 popq %rbp + 0xc5, 0xf8, 0x77, //0x000000f9 vzeroupper + 0xc3, //0x000000fc retq + //0x000000fd LBB0_3 + 0x48, 0x29, 0xf8, //0x000000fd subq %rdi, %rax + 0xf7, 0xd2, //0x00000100 notl %edx + 0x48, 0x63, 0xca, //0x00000102 movslq %edx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00000105 bsfq %rcx, %rcx + 0x48, 0x01, 0xc8, //0x00000109 addq %rcx, %rax + 0x5d, //0x0000010c popq %rbp + 0xc5, 0xf8, 0x77, //0x0000010d vzeroupper + 0xc3, //0x00000110 retq + //0x00000111 LBB0_8 + 0x48, 0xf7, 0xd7, //0x00000111 notq %rdi + 0x48, 0x01, 0xf8, //0x00000114 addq %rdi, %rax + 0x5d, //0x00000117 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000118 vzeroupper + 0xc3, //0x0000011b retq + 0x00, 0x00, 0x00, 0x00, //0x0000011c .p2align 5, 0x00 + //0x00000120 LCPI1_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000120 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000130 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000140 .p2align 4, 0x90 + //0x00000140 _f64toa + 0x55, //0x00000140 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000141 movq %rsp, %rbp + 0x41, 0x57, //0x00000144 pushq %r15 + 0x41, 0x56, //0x00000146 pushq %r14 + 0x41, 0x55, //0x00000148 pushq %r13 + 0x41, 0x54, //0x0000014a pushq %r12 + 0x53, //0x0000014c pushq %rbx + 0x50, //0x0000014d pushq %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x0000014e vmovq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x00000153 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000156 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000015a andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000015f cmpl $2047, %eax + 0x0f, 0x84, 0xcc, 0x0a, 0x00, 0x00, //0x00000164 je LBB1_114 + 0x49, 0x89, 0xfe, //0x0000016a movq %rdi, %r14 + 0xc6, 0x07, 0x2d, //0x0000016d movb $45, (%rdi) + 0x49, 0x89, 0xd4, //0x00000170 movq %rdx, %r12 + 0x49, 0xc1, 0xec, 0x3f, //0x00000173 shrq $63, %r12 + 0x4e, 0x8d, 0x3c, 0x27, //0x00000177 leaq (%rdi,%r12), %r15 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x0000017b leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x00000183 testq %rcx, %rcx + 0x0f, 0x84, 0x75, 0x02, 0x00, 0x00, //0x00000186 je LBB1_19 + 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000018c movabsq $4503599627370495, %rdi + 0x48, 0x21, 0xfa, //0x00000196 andq %rdi, %rdx + 0x85, 0xc0, //0x00000199 testl %eax, %eax + 0x0f, 0x84, 0x9c, 0x0a, 0x00, 0x00, //0x0000019b je LBB1_115 + 0x48, 0xff, 0xc7, //0x000001a1 incq %rdi + 0x48, 0x09, 0xd7, //0x000001a4 orq %rdx, %rdi + 0x8d, 0x98, 0xcd, 0xfb, 0xff, 0xff, //0x000001a7 leal $-1075(%rax), %ebx + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x000001ad leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x000001b3 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x000001b6 ja LBB1_5 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x000001bc movl $1075, %ecx + 0x29, 0xc1, //0x000001c1 subl %eax, %ecx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000001c3 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x000001ca shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x000001cd notq %rsi + 0x48, 0x85, 0xf7, //0x000001d0 testq %rsi, %rdi + 0x0f, 0x84, 0x10, 0x04, 0x00, 0x00, //0x000001d3 je LBB1_43 + //0x000001d9 LBB1_5 + 0x48, 0x85, 0xd2, //0x000001d9 testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x000001dc sete %cl + 0x83, 0xf8, 0x01, //0x000001df cmpl $1, %eax + 0x0f, 0x97, 0xc0, //0x000001e2 seta %al + 0x20, 0xc8, //0x000001e5 andb %cl, %al + 0x0f, 0xb6, 0xc0, //0x000001e7 movzbl %al, %eax + 0x48, 0x8d, 0x74, 0xb8, 0xfe, //0x000001ea leaq $-2(%rax,%rdi,4), %rsi + 0x44, 0x69, 0xcb, 0x13, 0x44, 0x13, 0x00, //0x000001ef imull $1262611, %ebx, %r9d + 0x31, 0xc9, //0x000001f6 xorl %ecx, %ecx + 0x84, 0xc0, //0x000001f8 testb %al, %al + 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x000001fa movl $524031, %eax + 0x0f, 0x44, 0xc1, //0x000001ff cmovel %ecx, %eax + 0x41, 0x29, 0xc1, //0x00000202 subl %eax, %r9d + 0x41, 0xc1, 0xf9, 0x16, //0x00000205 sarl $22, %r9d + 0x41, 0x69, 0xc9, 0xb1, 0x6c, 0xe5, 0xff, //0x00000209 imull $-1741647, %r9d, %ecx + 0xc1, 0xe9, 0x13, //0x00000210 shrl $19, %ecx + 0x01, 0xd9, //0x00000213 addl %ebx, %ecx + 0xb8, 0x24, 0x01, 0x00, 0x00, //0x00000215 movl $292, %eax + 0x44, 0x29, 0xc8, //0x0000021a subl %r9d, %eax + 0x48, 0x98, //0x0000021d cltq + 0x48, 0xc1, 0xe0, 0x04, //0x0000021f shlq $4, %rax + 0x48, 0x8d, 0x15, 0x46, 0xca, 0x00, 0x00, //0x00000223 leaq $51782(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ + 0x4c, 0x8b, 0x1c, 0x10, //0x0000022a movq (%rax,%rdx), %r11 + 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x0000022e movq $8(%rax,%rdx), %r13 + 0xfe, 0xc1, //0x00000233 incb %cl + 0x48, 0xd3, 0xe6, //0x00000235 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000238 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000023b mulq %r13 + 0x48, 0x89, 0xd3, //0x0000023e movq %rdx, %rbx + 0x48, 0x89, 0xf0, //0x00000241 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00000244 mulq %r11 + 0x48, 0x8d, 0x34, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x00000247 leaq (,%rdi,4), %rsi + 0x48, 0x01, 0xd8, //0x0000024f addq %rbx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000252 adcq $0, %rdx + 0x31, 0xdb, //0x00000256 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x01, //0x00000258 cmpq $1, %rax + 0x0f, 0x97, 0xc3, //0x0000025c seta %bl + 0x48, 0x09, 0xd3, //0x0000025f orq %rdx, %rbx + 0x48, 0xd3, 0xe6, //0x00000262 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000265 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x00000268 mulq %r13 + 0x49, 0x89, 0xd2, //0x0000026b movq %rdx, %r10 + 0x48, 0x89, 0xf0, //0x0000026e movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00000271 mulq %r11 + 0x49, 0x89, 0xd0, //0x00000274 movq %rdx, %r8 + 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x00000277 leaq $2(,%rdi,4), %rsi + 0x4c, 0x01, 0xd0, //0x0000027f addq %r10, %rax + 0x49, 0x83, 0xd0, 0x00, //0x00000282 adcq $0, %r8 + 0x45, 0x31, 0xd2, //0x00000286 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x01, //0x00000289 cmpq $1, %rax + 0x41, 0x0f, 0x97, 0xc2, //0x0000028d seta %r10b + 0x4d, 0x09, 0xc2, //0x00000291 orq %r8, %r10 + 0x48, 0xd3, 0xe6, //0x00000294 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000297 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000029a mulq %r13 + 0x48, 0x89, 0xd1, //0x0000029d movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x000002a0 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000002a3 mulq %r11 + 0x48, 0x01, 0xc8, //0x000002a6 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x000002a9 adcq $0, %rdx + 0x31, 0xc9, //0x000002ad xorl %ecx, %ecx + 0x48, 0x83, 0xf8, 0x01, //0x000002af cmpq $1, %rax + 0x0f, 0x97, 0xc1, //0x000002b3 seta %cl + 0x48, 0x09, 0xd1, //0x000002b6 orq %rdx, %rcx + 0x83, 0xe7, 0x01, //0x000002b9 andl $1, %edi + 0x48, 0x01, 0xfb, //0x000002bc addq %rdi, %rbx + 0x48, 0x29, 0xf9, //0x000002bf subq %rdi, %rcx + 0x49, 0x83, 0xfa, 0x28, //0x000002c2 cmpq $40, %r10 + 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x000002c6 jb LBB1_17 + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000002cc movabsq $-3689348814741910323, %rdx + 0x4c, 0x89, 0xc0, //0x000002d6 movq %r8, %rax + 0x48, 0xf7, 0xe2, //0x000002d9 mulq %rdx + 0x48, 0x89, 0xd7, //0x000002dc movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x000002df shrq $5, %rdi + 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x000002e3 leaq (,%rdi,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000002eb leaq (%rax,%rax,4), %rdx + 0x48, 0x39, 0xd3, //0x000002ef cmpq %rdx, %rbx + 0x40, 0x0f, 0x96, 0xc6, //0x000002f2 setbe %sil + 0x48, 0x8d, 0x44, 0x80, 0x28, //0x000002f6 leaq $40(%rax,%rax,4), %rax + 0x48, 0x39, 0xc8, //0x000002fb cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x000002fe setbe %dl + 0x40, 0x38, 0xd6, //0x00000301 cmpb %dl, %sil + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000304 je LBB1_17 + 0x31, 0xd2, //0x0000030a xorl %edx, %edx + 0x48, 0x39, 0xc8, //0x0000030c cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000030f setbe %dl + 0x48, 0x01, 0xd7, //0x00000312 addq %rdx, %rdi + 0x41, 0xff, 0xc1, //0x00000315 incl %r9d + 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000318 movabsq $8589934464, %rbx + 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x00000322 leaq $1410065535(%rbx), %rax + 0x48, 0x39, 0xc7, //0x00000329 cmpq %rax, %rdi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x0000032c ja LBB1_23 + //0x00000332 LBB1_8 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000332 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x00000337 cmpq $10, %rdi + 0x0f, 0x82, 0x9c, 0x01, 0x00, 0x00, //0x0000033b jb LBB1_30 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000341 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x00000346 cmpq $100, %rdi + 0x0f, 0x82, 0x8d, 0x01, 0x00, 0x00, //0x0000034a jb LBB1_30 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000350 movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x00000355 cmpq $1000, %rdi + 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x0000035c jb LBB1_30 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000362 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000367 cmpq $10000, %rdi + 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x0000036e jb LBB1_30 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000374 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000379 cmpq $100000, %rdi + 0x0f, 0x82, 0x57, 0x01, 0x00, 0x00, //0x00000380 jb LBB1_30 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000386 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x0000038b cmpq $1000000, %rdi + 0x0f, 0x82, 0x45, 0x01, 0x00, 0x00, //0x00000392 jb LBB1_30 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000398 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000039d cmpq $10000000, %rdi + 0x0f, 0x82, 0x33, 0x01, 0x00, 0x00, //0x000003a4 jb LBB1_30 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x000003aa movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000003af cmpq $100000000, %rdi + 0x0f, 0x82, 0x21, 0x01, 0x00, 0x00, //0x000003b6 jb LBB1_30 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x000003bc cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x000003c3 movl $10, %edx + 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x000003c8 jmp LBB1_29 + //0x000003cd LBB1_17 + 0x4d, 0x89, 0xc3, //0x000003cd movq %r8, %r11 + 0x49, 0xc1, 0xeb, 0x02, //0x000003d0 shrq $2, %r11 + 0x4c, 0x89, 0xc2, //0x000003d4 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x000003d7 andq $-4, %rdx + 0x48, 0x39, 0xd3, //0x000003db cmpq %rdx, %rbx + 0x0f, 0x96, 0xc3, //0x000003de setbe %bl + 0x48, 0x8d, 0x72, 0x04, //0x000003e1 leaq $4(%rdx), %rsi + 0x48, 0x39, 0xce, //0x000003e5 cmpq %rcx, %rsi + 0x0f, 0x96, 0xc0, //0x000003e8 setbe %al + 0x38, 0xc3, //0x000003eb cmpb %al, %bl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000003ed je LBB1_20 + 0x31, 0xff, //0x000003f3 xorl %edi, %edi + 0x48, 0x39, 0xce, //0x000003f5 cmpq %rcx, %rsi + 0x40, 0x0f, 0x96, 0xc7, //0x000003f8 setbe %dil + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x000003fc jmp LBB1_22 + //0x00000401 LBB1_19 + 0x41, 0xc6, 0x07, 0x30, //0x00000401 movb $48, (%r15) + 0x45, 0x29, 0xf7, //0x00000405 subl %r14d, %r15d + 0x41, 0xff, 0xc7, //0x00000408 incl %r15d + 0x44, 0x89, 0xfb, //0x0000040b movl %r15d, %ebx + 0xe9, 0x0f, 0x08, 0x00, 0x00, //0x0000040e jmp LBB1_113 + //0x00000413 LBB1_20 + 0x48, 0x83, 0xca, 0x02, //0x00000413 orq $2, %rdx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000417 movl $1, %edi + 0x49, 0x39, 0xd2, //0x0000041c cmpq %rdx, %r10 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000041f ja LBB1_22 + 0x0f, 0x94, 0xc0, //0x00000425 sete %al + 0x41, 0xc0, 0xe8, 0x02, //0x00000428 shrb $2, %r8b + 0x41, 0x20, 0xc0, //0x0000042c andb %al, %r8b + 0x41, 0x0f, 0xb6, 0xf8, //0x0000042f movzbl %r8b, %edi + //0x00000433 LBB1_22 + 0x4c, 0x01, 0xdf, //0x00000433 addq %r11, %rdi + 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000436 movabsq $8589934464, %rbx + 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x00000440 leaq $1410065535(%rbx), %rax + 0x48, 0x39, 0xc7, //0x00000447 cmpq %rax, %rdi + 0x0f, 0x86, 0xe2, 0xfe, 0xff, 0xff, //0x0000044a jbe LBB1_8 + //0x00000450 LBB1_23 + 0x48, 0x89, 0xf8, //0x00000450 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000453 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x00000457 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x0000045c cmpq $48828125, %rax + 0x0f, 0x82, 0x75, 0x00, 0x00, 0x00, //0x00000462 jb LBB1_30 + 0x48, 0x89, 0xf8, //0x00000468 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x0000046b shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x0000046f movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000474 cmpq $244140625, %rax + 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x0000047a jb LBB1_30 + 0x48, 0x89, 0xf8, //0x00000480 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000483 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000487 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000048c cmpq $1220703125, %rax + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000492 jb LBB1_30 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000498 movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000049d movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x000004a7 cmpq %rax, %rdi + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x000004aa jb LBB1_30 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000004b0 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000004b5 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000004bf cmpq %rax, %rdi + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x000004c2 jb LBB1_30 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000004c8 movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000004d2 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x000004d5 movl $17, %edx + //0x000004da LBB1_29 + 0x83, 0xda, 0x00, //0x000004da sbbl $0, %edx + //0x000004dd LBB1_30 + 0x46, 0x8d, 0x2c, 0x0a, //0x000004dd leal (%rdx,%r9), %r13d + 0x42, 0x8d, 0x44, 0x0a, 0x05, //0x000004e1 leal $5(%rdx,%r9), %eax + 0x83, 0xf8, 0x1b, //0x000004e6 cmpl $27, %eax + 0x0f, 0x82, 0x95, 0x00, 0x00, 0x00, //0x000004e9 jb LBB1_38 + 0x4d, 0x8d, 0x67, 0x01, //0x000004ef leaq $1(%r15), %r12 + 0x4c, 0x89, 0xe6, //0x000004f3 movq %r12, %rsi + 0xe8, 0x55, 0x92, 0x00, 0x00, //0x000004f6 callq _format_significand + 0x48, 0x89, 0xc3, //0x000004fb movq %rax, %rbx + 0x90, 0x90, //0x000004fe .p2align 4, 0x90 + //0x00000500 LBB1_32 + 0x80, 0x7b, 0xff, 0x30, //0x00000500 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000504 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000508 je LBB1_32 + 0x41, 0x8a, 0x47, 0x01, //0x0000050e movb $1(%r15), %al + 0x41, 0x88, 0x07, //0x00000512 movb %al, (%r15) + 0x48, 0x8d, 0x43, 0x01, //0x00000515 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00000519 movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x0000051c subq %r12, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000051f cmpq $2, %rcx + 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x00000523 jl LBB1_35 + 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000529 movb $46, (%r12) + 0x48, 0x89, 0xc3, //0x0000052e movq %rax, %rbx + //0x00000531 LBB1_35 + 0xc6, 0x03, 0x65, //0x00000531 movb $101, (%rbx) + 0x45, 0x85, 0xed, //0x00000534 testl %r13d, %r13d + 0x0f, 0x8e, 0x5a, 0x01, 0x00, 0x00, //0x00000537 jle LBB1_51 + 0x41, 0xff, 0xcd, //0x0000053d decl %r13d + 0xc6, 0x43, 0x01, 0x2b, //0x00000540 movb $43, $1(%rbx) + 0x44, 0x89, 0xe8, //0x00000544 movl %r13d, %eax + 0x83, 0xf8, 0x64, //0x00000547 cmpl $100, %eax + 0x0f, 0x8c, 0x5c, 0x01, 0x00, 0x00, //0x0000054a jl LBB1_52 + //0x00000550 LBB1_37 + 0x89, 0xc1, //0x00000550 movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00000552 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00000557 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x0000055b shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x0000055f leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x00000562 leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x00000565 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x32, 0xc6, 0x00, 0x00, //0x00000567 leaq $50738(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x0000056e movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x00000572 movw %cx, $2(%rbx) + 0x0c, 0x30, //0x00000576 orb $48, %al + 0x88, 0x43, 0x04, //0x00000578 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x0000057b addq $5, %rbx + 0xe9, 0x9b, 0x06, 0x00, 0x00, //0x0000057f jmp LBB1_112 + //0x00000584 LBB1_38 + 0x45, 0x85, 0xc9, //0x00000584 testl %r9d, %r9d + 0x0f, 0x88, 0x42, 0x01, 0x00, 0x00, //0x00000587 js LBB1_54 + 0x4d, 0x63, 0xed, //0x0000058d movslq %r13d, %r13 + 0x4b, 0x8d, 0x1c, 0x2f, //0x00000590 leaq (%r15,%r13), %rbx + 0x4c, 0x89, 0xfe, //0x00000594 movq %r15, %rsi + 0xe8, 0xc4, 0x06, 0x00, 0x00, //0x00000597 callq _format_integer + 0x48, 0x39, 0xd8, //0x0000059c cmpq %rbx, %rax + 0x0f, 0x83, 0x7a, 0x06, 0x00, 0x00, //0x0000059f jae LBB1_112 + 0x4d, 0x01, 0xec, //0x000005a5 addq %r13, %r12 + 0x49, 0x29, 0xc4, //0x000005a8 subq %rax, %r12 + 0x4d, 0x01, 0xf4, //0x000005ab addq %r14, %r12 + 0x49, 0x81, 0xfc, 0x80, 0x00, 0x00, 0x00, //0x000005ae cmpq $128, %r12 + 0x0f, 0x82, 0x15, 0x03, 0x00, 0x00, //0x000005b5 jb LBB1_76 + 0x4c, 0x89, 0xe1, //0x000005bb movq %r12, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x000005be andq $-128, %rcx + 0x48, 0x8d, 0x79, 0x80, //0x000005c2 leaq $-128(%rcx), %rdi + 0x48, 0x89, 0xfe, //0x000005c6 movq %rdi, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x000005c9 shrq $7, %rsi + 0x48, 0xff, 0xc6, //0x000005cd incq %rsi + 0x89, 0xf2, //0x000005d0 movl %esi, %edx + 0x83, 0xe2, 0x03, //0x000005d2 andl $3, %edx + 0x48, 0x81, 0xff, 0x80, 0x01, 0x00, 0x00, //0x000005d5 cmpq $384, %rdi + 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x000005dc jae LBB1_69 + 0x31, 0xff, //0x000005e2 xorl %edi, %edi + 0xe9, 0x9b, 0x02, 0x00, 0x00, //0x000005e4 jmp LBB1_71 + //0x000005e9 LBB1_43 + 0x48, 0xd3, 0xef, //0x000005e9 shrq %cl, %rdi + 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000005ec movabsq $8589934464, %rax + 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x000005f6 addq $1410065535, %rax + 0x48, 0x39, 0xc7, //0x000005fc cmpq %rax, %rdi + 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x000005ff jbe LBB1_60 + 0x48, 0x89, 0xf8, //0x00000605 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000608 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000060c movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000611 cmpq $48828125, %rax + 0x0f, 0x82, 0xad, 0x01, 0x00, 0x00, //0x00000617 jb LBB1_68 + 0x48, 0x89, 0xf8, //0x0000061d movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x00000620 shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000624 movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000629 cmpq $244140625, %rax + 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x0000062f jb LBB1_68 + 0x48, 0x89, 0xf8, //0x00000635 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000638 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000063c movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000641 cmpq $1220703125, %rax + 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x00000647 jb LBB1_68 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x0000064d movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000652 movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000065c cmpq %rax, %rdi + 0x0f, 0x82, 0x65, 0x01, 0x00, 0x00, //0x0000065f jb LBB1_68 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000665 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x0000066a movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000674 cmpq %rax, %rdi + 0x0f, 0x82, 0x4d, 0x01, 0x00, 0x00, //0x00000677 jb LBB1_68 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000067d movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000687 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x0000068a movl $17, %edx + //0x0000068f LBB1_50 + 0x83, 0xda, 0x00, //0x0000068f sbbl $0, %edx + 0xe9, 0x33, 0x01, 0x00, 0x00, //0x00000692 jmp LBB1_68 + //0x00000697 LBB1_51 + 0xc6, 0x43, 0x01, 0x2d, //0x00000697 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000069b movl $1, %eax + 0x44, 0x29, 0xe8, //0x000006a0 subl %r13d, %eax + 0x83, 0xf8, 0x64, //0x000006a3 cmpl $100, %eax + 0x0f, 0x8d, 0xa4, 0xfe, 0xff, 0xff, //0x000006a6 jge LBB1_37 + //0x000006ac LBB1_52 + 0x83, 0xf8, 0x0a, //0x000006ac cmpl $10, %eax + 0x0f, 0x8c, 0x7d, 0x00, 0x00, 0x00, //0x000006af jl LBB1_59 + 0x48, 0x98, //0x000006b5 cltq + 0x48, 0x8d, 0x0d, 0xe2, 0xc4, 0x00, 0x00, //0x000006b7 leaq $50402(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000006be movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x000006c2 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x000006c6 addq $4, %rbx + 0xe9, 0x50, 0x05, 0x00, 0x00, //0x000006ca jmp LBB1_112 + //0x000006cf LBB1_54 + 0x45, 0x85, 0xed, //0x000006cf testl %r13d, %r13d + 0x0f, 0x8f, 0x19, 0x03, 0x00, 0x00, //0x000006d2 jg LBB1_85 + 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x000006d8 movw $11824, (%r15) + 0x49, 0x83, 0xc7, 0x02, //0x000006de addq $2, %r15 + 0x45, 0x85, 0xed, //0x000006e2 testl %r13d, %r13d + 0x0f, 0x89, 0x06, 0x03, 0x00, 0x00, //0x000006e5 jns LBB1_85 + 0x31, 0xc0, //0x000006eb xorl %eax, %eax + 0x41, 0x83, 0xfd, 0x80, //0x000006ed cmpl $-128, %r13d + 0x0f, 0x87, 0xe1, 0x02, 0x00, 0x00, //0x000006f1 ja LBB1_83 + 0x45, 0x89, 0xe8, //0x000006f7 movl %r13d, %r8d + 0x41, 0xf7, 0xd0, //0x000006fa notl %r8d + 0x49, 0xff, 0xc0, //0x000006fd incq %r8 + 0x4c, 0x89, 0xc0, //0x00000700 movq %r8, %rax + 0x49, 0x89, 0xda, //0x00000703 movq %rbx, %r10 + 0x48, 0x21, 0xd8, //0x00000706 andq %rbx, %rax + 0x48, 0x8d, 0x48, 0x80, //0x00000709 leaq $-128(%rax), %rcx + 0x48, 0x89, 0xcb, //0x0000070d movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00000710 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x00000714 incq %rbx + 0x41, 0x89, 0xd9, //0x00000717 movl %ebx, %r9d + 0x41, 0x83, 0xe1, 0x03, //0x0000071a andl $3, %r9d + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000071e cmpq $384, %rcx + 0x0f, 0x83, 0xb9, 0x01, 0x00, 0x00, //0x00000725 jae LBB1_77 + 0x31, 0xdb, //0x0000072b xorl %ebx, %ebx + 0xe9, 0x5b, 0x02, 0x00, 0x00, //0x0000072d jmp LBB1_79 + //0x00000732 LBB1_59 + 0x04, 0x30, //0x00000732 addb $48, %al + 0x88, 0x43, 0x02, //0x00000734 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x00000737 addq $3, %rbx + 0xe9, 0xdf, 0x04, 0x00, 0x00, //0x0000073b jmp LBB1_112 + //0x00000740 LBB1_60 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000740 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x00000745 cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000749 jb LBB1_68 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x0000074f movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x00000754 cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x00000758 jb LBB1_68 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x0000075e movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x00000763 cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x0000076a jb LBB1_68 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000770 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000775 cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x0000077c jb LBB1_68 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000782 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000787 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x0000078e jb LBB1_68 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000794 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x00000799 cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000007a0 jb LBB1_68 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x000007a6 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000007ab cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000007b2 jb LBB1_68 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x000007b8 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000007bd cmpq $100000000, %rdi + 0x0f, 0x83, 0x80, 0x04, 0x00, 0x00, //0x000007c4 jae LBB1_116 + //0x000007ca LBB1_68 + 0x4c, 0x89, 0xfe, //0x000007ca movq %r15, %rsi + 0xe8, 0x8e, 0x04, 0x00, 0x00, //0x000007cd callq _format_integer + 0x48, 0x89, 0xc3, //0x000007d2 movq %rax, %rbx + 0xe9, 0x45, 0x04, 0x00, 0x00, //0x000007d5 jmp LBB1_112 + //0x000007da LBB1_69 + 0x48, 0x29, 0xd6, //0x000007da subq %rdx, %rsi + 0x31, 0xff, //0x000007dd xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x39, 0xf9, 0xff, 0xff, //0x000007df vmovdqa $-1735(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007e7 .p2align 4, 0x90 + //0x000007f0 LBB1_70 + 0xc5, 0xfe, 0x7f, 0x04, 0x38, //0x000007f0 vmovdqu %ymm0, (%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x20, //0x000007f5 vmovdqu %ymm0, $32(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x40, //0x000007fb vmovdqu %ymm0, $64(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x60, //0x00000801 vmovdqu %ymm0, $96(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x00, 0x00, 0x00, //0x00000807 vmovdqu %ymm0, $128(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x00, 0x00, 0x00, //0x00000810 vmovdqu %ymm0, $160(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x00, 0x00, 0x00, //0x00000819 vmovdqu %ymm0, $192(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x00, 0x00, 0x00, //0x00000822 vmovdqu %ymm0, $224(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x00, 0x01, 0x00, 0x00, //0x0000082b vmovdqu %ymm0, $256(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x20, 0x01, 0x00, 0x00, //0x00000834 vmovdqu %ymm0, $288(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x40, 0x01, 0x00, 0x00, //0x0000083d vmovdqu %ymm0, $320(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x60, 0x01, 0x00, 0x00, //0x00000846 vmovdqu %ymm0, $352(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x01, 0x00, 0x00, //0x0000084f vmovdqu %ymm0, $384(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x01, 0x00, 0x00, //0x00000858 vmovdqu %ymm0, $416(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x01, 0x00, 0x00, //0x00000861 vmovdqu %ymm0, $448(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x01, 0x00, 0x00, //0x0000086a vmovdqu %ymm0, $480(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000873 addq $512, %rdi + 0x48, 0x83, 0xc6, 0xfc, //0x0000087a addq $-4, %rsi + 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x0000087e jne LBB1_70 + //0x00000884 LBB1_71 + 0x48, 0x85, 0xd2, //0x00000884 testq %rdx, %rdx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000887 je LBB1_74 + 0x48, 0x8d, 0x74, 0x07, 0x60, //0x0000088d leaq $96(%rdi,%rax), %rsi + 0x48, 0xf7, 0xda, //0x00000892 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x83, 0xf8, 0xff, 0xff, //0x00000895 vmovdqa $-1917(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, //0x0000089d .p2align 4, 0x90 + //0x000008a0 LBB1_73 + 0xc5, 0xfe, 0x7f, 0x46, 0xa0, //0x000008a0 vmovdqu %ymm0, $-96(%rsi) + 0xc5, 0xfe, 0x7f, 0x46, 0xc0, //0x000008a5 vmovdqu %ymm0, $-64(%rsi) + 0xc5, 0xfe, 0x7f, 0x46, 0xe0, //0x000008aa vmovdqu %ymm0, $-32(%rsi) + 0xc5, 0xfe, 0x7f, 0x06, //0x000008af vmovdqu %ymm0, (%rsi) + 0x48, 0x83, 0xee, 0x80, //0x000008b3 subq $-128, %rsi + 0x48, 0xff, 0xc2, //0x000008b7 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000008ba jne LBB1_73 + //0x000008c0 LBB1_74 + 0x4c, 0x39, 0xe1, //0x000008c0 cmpq %r12, %rcx + 0x0f, 0x84, 0x56, 0x03, 0x00, 0x00, //0x000008c3 je LBB1_112 + 0x48, 0x01, 0xc8, //0x000008c9 addq %rcx, %rax + 0x90, 0x90, 0x90, 0x90, //0x000008cc .p2align 4, 0x90 + //0x000008d0 LBB1_76 + 0xc6, 0x00, 0x30, //0x000008d0 movb $48, (%rax) + 0x48, 0xff, 0xc0, //0x000008d3 incq %rax + 0x48, 0x39, 0xc3, //0x000008d6 cmpq %rax, %rbx + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x000008d9 jne LBB1_76 + 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x000008df jmp LBB1_112 + //0x000008e4 LBB1_77 + 0x4b, 0x8d, 0x8c, 0x34, 0xe2, 0x01, 0x00, 0x00, //0x000008e4 leaq $482(%r12,%r14), %rcx + 0x4c, 0x89, 0xce, //0x000008ec movq %r9, %rsi + 0x48, 0x29, 0xde, //0x000008ef subq %rbx, %rsi + 0x31, 0xdb, //0x000008f2 xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x05, 0x24, 0xf8, 0xff, 0xff, //0x000008f4 vmovdqa $-2012(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x000008fc LBB1_78 + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xfe, 0xff, 0xff, //0x000008fc vmovdqu %ymm0, $-480(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xfe, 0xff, 0xff, //0x00000905 vmovdqu %ymm0, $-448(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xfe, 0xff, 0xff, //0x0000090e vmovdqu %ymm0, $-416(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x80, 0xfe, 0xff, 0xff, //0x00000917 vmovdqu %ymm0, $-384(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xa0, 0xfe, 0xff, 0xff, //0x00000920 vmovdqu %ymm0, $-352(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xc0, 0xfe, 0xff, 0xff, //0x00000929 vmovdqu %ymm0, $-320(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xe0, 0xfe, 0xff, 0xff, //0x00000932 vmovdqu %ymm0, $-288(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x00, 0xff, 0xff, 0xff, //0x0000093b vmovdqu %ymm0, $-256(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xff, 0xff, 0xff, //0x00000944 vmovdqu %ymm0, $-224(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xff, 0xff, 0xff, //0x0000094d vmovdqu %ymm0, $-192(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xff, 0xff, 0xff, //0x00000956 vmovdqu %ymm0, $-160(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0x80, //0x0000095f vmovdqu %ymm0, $-128(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x00000965 vmovdqu %ymm0, $-96(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x0000096b vmovdqu %ymm0, $-64(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x00000971 vmovdqu %ymm0, $-32(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x00000977 vmovdqu %ymm0, (%rcx,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x0000097c addq $512, %rbx + 0x48, 0x83, 0xc6, 0x04, //0x00000983 addq $4, %rsi + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000987 jne LBB1_78 + //0x0000098d LBB1_79 + 0x4d, 0x85, 0xc9, //0x0000098d testq %r9, %r9 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000990 je LBB1_82 + 0x4c, 0x01, 0xe3, //0x00000996 addq %r12, %rbx + 0x49, 0x8d, 0x4c, 0x1e, 0x62, //0x00000999 leaq $98(%r14,%rbx), %rcx + 0x49, 0xf7, 0xd9, //0x0000099e negq %r9 + 0xc5, 0xfd, 0x6f, 0x05, 0x77, 0xf7, 0xff, 0xff, //0x000009a1 vmovdqa $-2185(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x000009a9 LBB1_81 + 0xc5, 0xfe, 0x7f, 0x41, 0xa0, //0x000009a9 vmovdqu %ymm0, $-96(%rcx) + 0xc5, 0xfe, 0x7f, 0x41, 0xc0, //0x000009ae vmovdqu %ymm0, $-64(%rcx) + 0xc5, 0xfe, 0x7f, 0x41, 0xe0, //0x000009b3 vmovdqu %ymm0, $-32(%rcx) + 0xc5, 0xfe, 0x7f, 0x01, //0x000009b8 vmovdqu %ymm0, (%rcx) + 0x48, 0x83, 0xe9, 0x80, //0x000009bc subq $-128, %rcx + 0x49, 0xff, 0xc1, //0x000009c0 incq %r9 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000009c3 jne LBB1_81 + //0x000009c9 LBB1_82 + 0x49, 0x01, 0xc7, //0x000009c9 addq %rax, %r15 + 0x49, 0x39, 0xc0, //0x000009cc cmpq %rax, %r8 + 0x4c, 0x89, 0xd3, //0x000009cf movq %r10, %rbx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009d2 je LBB1_85 + //0x000009d8 LBB1_83 + 0x44, 0x89, 0xe9, //0x000009d8 movl %r13d, %ecx + 0xf7, 0xd9, //0x000009db negl %ecx + 0x90, 0x90, 0x90, //0x000009dd .p2align 4, 0x90 + //0x000009e0 LBB1_84 + 0x41, 0xc6, 0x07, 0x30, //0x000009e0 movb $48, (%r15) + 0x49, 0xff, 0xc7, //0x000009e4 incq %r15 + 0xff, 0xc0, //0x000009e7 incl %eax + 0x39, 0xc8, //0x000009e9 cmpl %ecx, %eax + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x000009eb jl LBB1_84 + //0x000009f1 LBB1_85 + 0x4c, 0x89, 0xfe, //0x000009f1 movq %r15, %rsi + 0xc5, 0xf8, 0x77, //0x000009f4 vzeroupper + 0xe8, 0x54, 0x8d, 0x00, 0x00, //0x000009f7 callq _format_significand + 0x90, 0x90, 0x90, 0x90, //0x000009fc .p2align 4, 0x90 + //0x00000a00 LBB1_86 + 0x80, 0x78, 0xff, 0x30, //0x00000a00 cmpb $48, $-1(%rax) + 0x48, 0x8d, 0x40, 0xff, //0x00000a04 leaq $-1(%rax), %rax + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000a08 je LBB1_86 + 0x48, 0x8d, 0x48, 0x01, //0x00000a0e leaq $1(%rax), %rcx + 0x45, 0x85, 0xed, //0x00000a12 testl %r13d, %r13d + 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, //0x00000a15 jle LBB1_91 + 0x89, 0xca, //0x00000a1b movl %ecx, %edx + 0x44, 0x29, 0xfa, //0x00000a1d subl %r15d, %edx + 0x41, 0x39, 0xd5, //0x00000a20 cmpl %edx, %r13d + 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x00000a23 jge LBB1_92 + 0x43, 0x8d, 0x54, 0x3d, 0x00, //0x00000a29 leal (%r13,%r15), %edx + 0x29, 0xd1, //0x00000a2e subl %edx, %ecx + 0x48, 0x8d, 0x71, 0xff, //0x00000a30 leaq $-1(%rcx), %rsi + 0x89, 0xca, //0x00000a34 movl %ecx, %edx + 0x83, 0xe2, 0x03, //0x00000a36 andl $3, %edx + 0x48, 0x83, 0xfe, 0x03, //0x00000a39 cmpq $3, %rsi + 0x0f, 0x83, 0x63, 0x00, 0x00, 0x00, //0x00000a3d jae LBB1_96 + 0x31, 0xc9, //0x00000a43 xorl %ecx, %ecx + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x00000a45 jmp LBB1_99 + //0x00000a4a LBB1_92 + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x00000a4a jle LBB1_91 + 0x48, 0x89, 0xde, //0x00000a50 movq %rbx, %rsi + 0x45, 0x01, 0xfd, //0x00000a53 addl %r15d, %r13d + 0x41, 0x89, 0xc8, //0x00000a56 movl %ecx, %r8d + 0x41, 0xf7, 0xd0, //0x00000a59 notl %r8d + 0x45, 0x01, 0xe8, //0x00000a5c addl %r13d, %r8d + 0x31, 0xd2, //0x00000a5f xorl %edx, %edx + 0x48, 0x89, 0xcb, //0x00000a61 movq %rcx, %rbx + 0x41, 0x83, 0xf8, 0x7e, //0x00000a64 cmpl $126, %r8d + 0x0f, 0x86, 0x8f, 0x01, 0x00, 0x00, //0x00000a68 jbe LBB1_110 + 0x49, 0xff, 0xc0, //0x00000a6e incq %r8 + 0x48, 0x89, 0xf3, //0x00000a71 movq %rsi, %rbx + 0x4c, 0x21, 0xc3, //0x00000a74 andq %r8, %rbx + 0x48, 0x8d, 0x73, 0x80, //0x00000a77 leaq $-128(%rbx), %rsi + 0x48, 0x89, 0xf7, //0x00000a7b movq %rsi, %rdi + 0x48, 0xc1, 0xef, 0x07, //0x00000a7e shrq $7, %rdi + 0x48, 0xff, 0xc7, //0x00000a82 incq %rdi + 0x89, 0xfa, //0x00000a85 movl %edi, %edx + 0x83, 0xe2, 0x03, //0x00000a87 andl $3, %edx + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000a8a cmpq $384, %rsi + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00000a91 jae LBB1_104 + 0x31, 0xff, //0x00000a97 xorl %edi, %edi + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000a99 jmp LBB1_106 + //0x00000a9e LBB1_91 + 0x48, 0x89, 0xcb, //0x00000a9e movq %rcx, %rbx + 0xe9, 0x79, 0x01, 0x00, 0x00, //0x00000aa1 jmp LBB1_112 + //0x00000aa6 LBB1_96 + 0x48, 0x89, 0xd6, //0x00000aa6 movq %rdx, %rsi + 0x48, 0x29, 0xce, //0x00000aa9 subq %rcx, %rsi + 0x31, 0xc9, //0x00000aac xorl %ecx, %ecx + 0x90, 0x90, //0x00000aae .p2align 4, 0x90 + //0x00000ab0 LBB1_97 + 0x8b, 0x7c, 0x08, 0xfd, //0x00000ab0 movl $-3(%rax,%rcx), %edi + 0x89, 0x7c, 0x08, 0xfe, //0x00000ab4 movl %edi, $-2(%rax,%rcx) + 0x48, 0x83, 0xc1, 0xfc, //0x00000ab8 addq $-4, %rcx + 0x48, 0x39, 0xce, //0x00000abc cmpq %rcx, %rsi + 0x0f, 0x85, 0xeb, 0xff, 0xff, 0xff, //0x00000abf jne LBB1_97 + 0x48, 0xf7, 0xd9, //0x00000ac5 negq %rcx + //0x00000ac8 LBB1_99 + 0x48, 0x85, 0xd2, //0x00000ac8 testq %rdx, %rdx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000acb je LBB1_102 + 0x48, 0xf7, 0xd9, //0x00000ad1 negq %rcx + 0x48, 0xf7, 0xda, //0x00000ad4 negq %rdx + 0x31, 0xf6, //0x00000ad7 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ad9 .p2align 4, 0x90 + //0x00000ae0 LBB1_101 + 0x48, 0x8d, 0x3c, 0x31, //0x00000ae0 leaq (%rcx,%rsi), %rdi + 0x0f, 0xb6, 0x1c, 0x38, //0x00000ae4 movzbl (%rax,%rdi), %ebx + 0x88, 0x5c, 0x38, 0x01, //0x00000ae8 movb %bl, $1(%rax,%rdi) + 0x48, 0xff, 0xce, //0x00000aec decq %rsi + 0x48, 0x39, 0xf2, //0x00000aef cmpq %rsi, %rdx + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000af2 jne LBB1_101 + //0x00000af8 LBB1_102 + 0x49, 0x63, 0xcd, //0x00000af8 movslq %r13d, %rcx + 0x41, 0xc6, 0x04, 0x0f, 0x2e, //0x00000afb movb $46, (%r15,%rcx) + 0x48, 0x83, 0xc0, 0x02, //0x00000b00 addq $2, %rax + 0x48, 0x89, 0xc3, //0x00000b04 movq %rax, %rbx + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000b07 jmp LBB1_112 + //0x00000b0c LBB1_104 + 0x48, 0x89, 0xd6, //0x00000b0c movq %rdx, %rsi + 0x48, 0x29, 0xfe, //0x00000b0f subq %rdi, %rsi + 0x31, 0xff, //0x00000b12 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x04, 0xf6, 0xff, 0xff, //0x00000b14 vmovdqa $-2556(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000b1c LBB1_105 + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x01, //0x00000b1c vmovdqu %ymm0, $1(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x21, //0x00000b22 vmovdqu %ymm0, $33(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x41, //0x00000b28 vmovdqu %ymm0, $65(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x61, //0x00000b2e vmovdqu %ymm0, $97(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x00, 0x00, 0x00, //0x00000b34 vmovdqu %ymm0, $129(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x00, 0x00, 0x00, //0x00000b3d vmovdqu %ymm0, $161(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x00, 0x00, 0x00, //0x00000b46 vmovdqu %ymm0, $193(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x00, 0x00, 0x00, //0x00000b4f vmovdqu %ymm0, $225(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x01, 0x01, 0x00, 0x00, //0x00000b58 vmovdqu %ymm0, $257(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x21, 0x01, 0x00, 0x00, //0x00000b61 vmovdqu %ymm0, $289(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x41, 0x01, 0x00, 0x00, //0x00000b6a vmovdqu %ymm0, $321(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x61, 0x01, 0x00, 0x00, //0x00000b73 vmovdqu %ymm0, $353(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x01, 0x00, 0x00, //0x00000b7c vmovdqu %ymm0, $385(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x01, 0x00, 0x00, //0x00000b85 vmovdqu %ymm0, $417(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x01, 0x00, 0x00, //0x00000b8e vmovdqu %ymm0, $449(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x01, 0x00, 0x00, //0x00000b97 vmovdqu %ymm0, $481(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000ba0 addq $512, %rdi + 0x48, 0x83, 0xc6, 0x04, //0x00000ba7 addq $4, %rsi + 0x0f, 0x85, 0x6b, 0xff, 0xff, 0xff, //0x00000bab jne LBB1_105 + //0x00000bb1 LBB1_106 + 0x48, 0x89, 0xde, //0x00000bb1 movq %rbx, %rsi + 0x48, 0x8d, 0x5c, 0x18, 0x01, //0x00000bb4 leaq $1(%rax,%rbx), %rbx + 0x48, 0x85, 0xd2, //0x00000bb9 testq %rdx, %rdx + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00000bbc je LBB1_109 + 0x48, 0x8d, 0x44, 0x38, 0x61, //0x00000bc2 leaq $97(%rax,%rdi), %rax + 0x48, 0xf7, 0xda, //0x00000bc7 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x4e, 0xf5, 0xff, 0xff, //0x00000bca vmovdqa $-2738(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000bd2 LBB1_108 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000bd2 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000bd7 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00000bdc vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x00000be1 vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00000be5 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00000be9 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000bec jne LBB1_108 + //0x00000bf2 LBB1_109 + 0x89, 0xf2, //0x00000bf2 movl %esi, %edx + 0x49, 0x39, 0xf0, //0x00000bf4 cmpq %rsi, %r8 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000bf7 je LBB1_112 + //0x00000bfd LBB1_110 + 0x41, 0x29, 0xd5, //0x00000bfd subl %edx, %r13d + 0x41, 0x29, 0xcd, //0x00000c00 subl %ecx, %r13d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c03 .p2align 4, 0x90 + //0x00000c10 LBB1_111 + 0xc6, 0x03, 0x30, //0x00000c10 movb $48, (%rbx) + 0x48, 0xff, 0xc3, //0x00000c13 incq %rbx + 0x41, 0xff, 0xcd, //0x00000c16 decl %r13d + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000c19 jne LBB1_111 + //0x00000c1f LBB1_112 + 0x44, 0x29, 0xf3, //0x00000c1f subl %r14d, %ebx + //0x00000c22 LBB1_113 + 0x89, 0xd8, //0x00000c22 movl %ebx, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00000c24 addq $8, %rsp + 0x5b, //0x00000c28 popq %rbx + 0x41, 0x5c, //0x00000c29 popq %r12 + 0x41, 0x5d, //0x00000c2b popq %r13 + 0x41, 0x5e, //0x00000c2d popq %r14 + 0x41, 0x5f, //0x00000c2f popq %r15 + 0x5d, //0x00000c31 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000c32 vzeroupper + 0xc3, //0x00000c35 retq + //0x00000c36 LBB1_114 + 0x31, 0xdb, //0x00000c36 xorl %ebx, %ebx + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00000c38 jmp LBB1_113 + //0x00000c3d LBB1_115 + 0xbb, 0xce, 0xfb, 0xff, 0xff, //0x00000c3d movl $-1074, %ebx + 0x48, 0x89, 0xd7, //0x00000c42 movq %rdx, %rdi + 0xe9, 0x8f, 0xf5, 0xff, 0xff, //0x00000c45 jmp LBB1_5 + //0x00000c4a LBB1_116 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000c4a cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000c51 movl $10, %edx + 0xe9, 0x34, 0xfa, 0xff, 0xff, //0x00000c56 jmp LBB1_50 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c5b .p2align 4, 0x90 + //0x00000c60 _format_integer + 0x55, //0x00000c60 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000c61 movq %rsp, %rbp + 0x53, //0x00000c64 pushq %rbx + 0x41, 0x89, 0xd0, //0x00000c65 movl %edx, %r8d + 0x49, 0x01, 0xf0, //0x00000c68 addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00000c6b movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000c6e shrq $32, %rax + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000c72 je LBB2_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000c78 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00000c82 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00000c85 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000c88 shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000c8c imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00000c92 addl %edi, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000c94 movl $3518437209, %r9d + 0x48, 0x89, 0xc8, //0x00000c9a movq %rcx, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x00000c9d imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000ca1 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000ca5 imull $10000, %eax, %edi + 0x29, 0xf9, //0x00000cab subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00000cad movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00000cb0 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00000cb4 shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000cb8 imull $10000, %edi, %edi + 0x29, 0xf8, //0x00000cbe subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00000cc0 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00000cc3 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000cc6 imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00000ccd shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00000cd1 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00000cd5 subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00000cd7 movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00000cdb movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00000cde shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000ce1 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00000ce7 shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00000cea imull $100, %edi, %ecx + 0x29, 0xc8, //0x00000ced subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00000cef movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0xa6, 0xbe, 0x00, 0x00, //0x00000cf3 leaq $48806(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000cfa movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000cff movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000d04 movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000d09 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000d0e movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000d13 movw %ax, $-6(%r8) + 0x4d, 0x8d, 0x58, 0xf8, //0x00000d18 leaq $-8(%r8), %r11 + 0x0f, 0xb7, 0x0c, 0x79, //0x00000d1c movzwl (%rcx,%rdi,2), %ecx + 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000d20 movw %cx, $-8(%r8) + 0x48, 0x89, 0xd7, //0x00000d25 movq %rdx, %rdi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d28 cmpl $10000, %edi + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000d2e jae LBB2_5 + //0x00000d34 LBB2_4 + 0x89, 0xfa, //0x00000d34 movl %edi, %edx + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000d36 jmp LBB2_7 + //0x00000d3b LBB2_1 + 0x4d, 0x89, 0xc3, //0x00000d3b movq %r8, %r11 + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d3e cmpl $10000, %edi + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000d44 jb LBB2_4 + //0x00000d4a LBB2_5 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000d4a movl $3518437209, %r9d + 0x4c, 0x8d, 0x15, 0x49, 0xbe, 0x00, 0x00, //0x00000d50 leaq $48713(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d57 .p2align 4, 0x90 + //0x00000d60 LBB2_6 + 0x89, 0xfa, //0x00000d60 movl %edi, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000d62 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000d66 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000d6a imull $-10000, %edx, %ecx + 0x01, 0xf9, //0x00000d70 addl %edi, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000d72 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000d79 shrq $37, %rax + 0x6b, 0xd8, 0x64, //0x00000d7d imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000d80 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000d82 movzwl (%r10,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d87 movw %cx, $-2(%r11) + 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000d8c movzwl (%r10,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000d91 movw %ax, $-4(%r11) + 0x49, 0x83, 0xc3, 0xfc, //0x00000d96 addq $-4, %r11 + 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000d9a cmpl $99999999, %edi + 0x89, 0xd7, //0x00000da0 movl %edx, %edi + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000da2 ja LBB2_6 + //0x00000da8 LBB2_7 + 0x83, 0xfa, 0x64, //0x00000da8 cmpl $100, %edx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000dab jb LBB2_9 + 0x0f, 0xb7, 0xc2, //0x00000db1 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000db4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000db7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000dbd shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000dc0 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000dc3 subl %ecx, %edx + 0x0f, 0xb7, 0xca, //0x00000dc5 movzwl %dx, %ecx + 0x48, 0x8d, 0x15, 0xd1, 0xbd, 0x00, 0x00, //0x00000dc8 leaq $48593(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000dcf movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000dd3 movw %cx, $-2(%r11) + 0x49, 0x83, 0xc3, 0xfe, //0x00000dd8 addq $-2, %r11 + 0x89, 0xc2, //0x00000ddc movl %eax, %edx + //0x00000dde LBB2_9 + 0x83, 0xfa, 0x0a, //0x00000dde cmpl $10, %edx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000de1 jb LBB2_11 + 0x89, 0xd0, //0x00000de7 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0xb0, 0xbd, 0x00, 0x00, //0x00000de9 leaq $48560(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000df0 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000df4 movw %ax, $-2(%r11) + 0x4c, 0x89, 0xc0, //0x00000df9 movq %r8, %rax + 0x5b, //0x00000dfc popq %rbx + 0x5d, //0x00000dfd popq %rbp + 0xc3, //0x00000dfe retq + //0x00000dff LBB2_11 + 0x80, 0xc2, 0x30, //0x00000dff addb $48, %dl + 0x88, 0x16, //0x00000e02 movb %dl, (%rsi) + 0x4c, 0x89, 0xc0, //0x00000e04 movq %r8, %rax + 0x5b, //0x00000e07 popq %rbx + 0x5d, //0x00000e08 popq %rbp + 0xc3, //0x00000e09 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e0a .p2align 4, 0x90 + //0x00000e10 _i64toa + 0x48, 0x85, 0xf6, //0x00000e10 testq %rsi, %rsi + 0x0f, 0x88, 0x05, 0x00, 0x00, 0x00, //0x00000e13 js LBB3_1 + 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00000e19 jmp _u64toa + //0x00000e1e LBB3_1 + 0x55, //0x00000e1e pushq %rbp + 0x48, 0x89, 0xe5, //0x00000e1f movq %rsp, %rbp + 0xc6, 0x07, 0x2d, //0x00000e22 movb $45, (%rdi) + 0x48, 0xff, 0xc7, //0x00000e25 incq %rdi + 0x48, 0xf7, 0xde, //0x00000e28 negq %rsi + 0xe8, 0x50, 0x00, 0x00, 0x00, //0x00000e2b callq _u64toa + 0xff, 0xc0, //0x00000e30 incl %eax + 0x5d, //0x00000e32 popq %rbp + 0xc3, //0x00000e33 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e34 .p2align 4, 0x00 + //0x00000e40 LCPI4_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000e40 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000e48 .quad 3518437209 + //0x00000e50 LCPI4_3 + 0x0a, 0x00, //0x00000e50 .word 10 + 0x0a, 0x00, //0x00000e52 .word 10 + 0x0a, 0x00, //0x00000e54 .word 10 + 0x0a, 0x00, //0x00000e56 .word 10 + 0x0a, 0x00, //0x00000e58 .word 10 + 0x0a, 0x00, //0x00000e5a .word 10 + 0x0a, 0x00, //0x00000e5c .word 10 + 0x0a, 0x00, //0x00000e5e .word 10 + //0x00000e60 LCPI4_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000e60 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000e70 .p2align 3, 0x00 + //0x00000e70 LCPI4_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000e70 .quad -9223315738079846203 + //0x00000e78 LCPI4_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000e78 .quad -9223336852348469120 + //0x00000e80 .p2align 4, 0x90 + //0x00000e80 _u64toa + 0x55, //0x00000e80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000e81 movq %rsp, %rbp + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000e84 cmpq $9999, %rsi + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000e8b ja LBB4_8 + 0x0f, 0xb7, 0xc6, //0x00000e91 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000e94 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000e97 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000e9d shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000ea0 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000ea4 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000ea7 movl %esi, %ecx + 0x29, 0xc1, //0x00000ea9 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000eab movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x00000eae addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000eb1 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000eb7 jb LBB4_3 + 0x48, 0x8d, 0x0d, 0xdc, 0xbc, 0x00, 0x00, //0x00000ebd leaq $48348(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000ec4 movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000ec7 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000ec9 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000ece jmp LBB4_4 + //0x00000ed3 LBB4_3 + 0x31, 0xc9, //0x00000ed3 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x00000ed5 cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000ed8 jb LBB4_5 + //0x00000ede LBB4_4 + 0x0f, 0xb7, 0xd2, //0x00000ede movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000ee1 orq $1, %rdx + 0x48, 0x8d, 0x35, 0xb4, 0xbc, 0x00, 0x00, //0x00000ee5 leaq $48308(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00000eec movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x00000eef movl %ecx, %esi + 0xff, 0xc1, //0x00000ef1 incl %ecx + 0x88, 0x14, 0x37, //0x00000ef3 movb %dl, (%rdi,%rsi) + //0x00000ef6 LBB4_6 + 0x48, 0x8d, 0x15, 0xa3, 0xbc, 0x00, 0x00, //0x00000ef6 leaq $48291(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x00000efd movb (%rax,%rdx), %dl + 0x89, 0xce, //0x00000f00 movl %ecx, %esi + 0xff, 0xc1, //0x00000f02 incl %ecx + 0x88, 0x14, 0x37, //0x00000f04 movb %dl, (%rdi,%rsi) + //0x00000f07 LBB4_7 + 0x0f, 0xb7, 0xc0, //0x00000f07 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f0a orq $1, %rax + 0x48, 0x8d, 0x15, 0x8b, 0xbc, 0x00, 0x00, //0x00000f0e leaq $48267(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x00000f15 movb (%rax,%rdx), %al + 0x89, 0xca, //0x00000f18 movl %ecx, %edx + 0xff, 0xc1, //0x00000f1a incl %ecx + 0x88, 0x04, 0x17, //0x00000f1c movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x00000f1f movl %ecx, %eax + 0x5d, //0x00000f21 popq %rbp + 0xc3, //0x00000f22 retq + //0x00000f23 LBB4_5 + 0x31, 0xc9, //0x00000f23 xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x00000f25 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000f28 jae LBB4_6 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000f2e jmp LBB4_7 + //0x00000f33 LBB4_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000f33 cmpq $99999999, %rsi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x00000f3a ja LBB4_16 + 0x89, 0xf0, //0x00000f40 movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000f42 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000f47 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000f4b shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000f4f imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000f56 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000f58 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x00000f5b imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000f62 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000f66 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000f6a movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000f6d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f70 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f76 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000f79 imull $100, %eax, %eax + 0x29, 0xc2, //0x00000f7c subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x00000f7e movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000f82 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000f85 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000f88 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f8b imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f91 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000f94 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000f98 imull $100, %eax, %eax + 0x29, 0xc1, //0x00000f9b subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x00000f9d movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000fa1 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000fa4 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000faa jb LBB4_11 + 0x48, 0x8d, 0x05, 0xe9, 0xbb, 0x00, 0x00, //0x00000fb0 leaq $48105(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000fb7 movb (%r10,%rax), %al + 0x88, 0x07, //0x00000fbb movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000fbd movl $1, %ecx + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000fc2 jmp LBB4_12 + //0x00000fc7 LBB4_11 + 0x31, 0xc9, //0x00000fc7 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000fc9 cmpl $1000000, %esi + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x00000fcf jb LBB4_13 + //0x00000fd5 LBB4_12 + 0x44, 0x89, 0xd0, //0x00000fd5 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000fd8 orq $1, %rax + 0x48, 0x8d, 0x35, 0xbd, 0xbb, 0x00, 0x00, //0x00000fdc leaq $48061(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000fe3 movb (%rax,%rsi), %al + 0x89, 0xce, //0x00000fe6 movl %ecx, %esi + 0xff, 0xc1, //0x00000fe8 incl %ecx + 0x88, 0x04, 0x37, //0x00000fea movb %al, (%rdi,%rsi) + //0x00000fed LBB4_14 + 0x48, 0x8d, 0x05, 0xac, 0xbb, 0x00, 0x00, //0x00000fed leaq $48044(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x00000ff4 movb (%r9,%rax), %al + 0x89, 0xce, //0x00000ff8 movl %ecx, %esi + 0xff, 0xc1, //0x00000ffa incl %ecx + 0x88, 0x04, 0x37, //0x00000ffc movb %al, (%rdi,%rsi) + //0x00000fff LBB4_15 + 0x41, 0x0f, 0xb7, 0xc1, //0x00000fff movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00001003 orq $1, %rax + 0x48, 0x8d, 0x35, 0x92, 0xbb, 0x00, 0x00, //0x00001007 leaq $48018(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x0000100e movb (%rax,%rsi), %al + 0x89, 0xca, //0x00001011 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x00001013 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x00001016 movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x0000101a movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x0000101e movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00001022 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00001026 movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x00001029 movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x0000102d movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x00001031 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x00001035 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00001039 orq $1, %rax + 0x8a, 0x04, 0x30, //0x0000103d movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x00001040 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x00001043 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x00001047 movl %ecx, %eax + 0x5d, //0x00001049 popq %rbp + 0xc3, //0x0000104a retq + //0x0000104b LBB4_13 + 0x31, 0xc9, //0x0000104b xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000104d cmpl $100000, %esi + 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00001053 jae LBB4_14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00001059 jmp LBB4_15 + //0x0000105e LBB4_16 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000105e movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00001068 cmpq %rax, %rsi + 0x0f, 0x87, 0x07, 0x01, 0x00, 0x00, //0x0000106b ja LBB4_18 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001071 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x0000107b movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x0000107e mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00001081 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001085 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000108b subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000108d vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xa7, 0xfd, 0xff, 0xff, //0x00001091 vmovdqa $-601(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00001099 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000109d vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000010a2 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x000010a7 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x000010ac vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x000010b0 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x000010b4 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000010b8 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000010bd vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000010c2 vpshufd $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xa0, 0xfd, 0xff, 0xff, //0x000010c7 vpbroadcastq $-608(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x9f, 0xfd, 0xff, 0xff, //0x000010d0 vpbroadcastq $-609(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x000010d9 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc4, //0x000010dd vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x67, 0xfd, 0xff, 0xff, //0x000010e1 vmovdqa $-665(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000010e9 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000010ed vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000010f2 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x000010f6 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000010fa vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000010fe vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x00001103 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00001107 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x0000110b vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x0000110f vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001114 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001119 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x0000111e vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x00001122 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x00001126 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000112a vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x0000112f vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00001133 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x21, 0xfd, 0xff, 0xff, //0x00001137 vpaddb $-735(%rip), %xmm0, %xmm1 /* LCPI4_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x0000113f vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x00001143 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00001147 vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x0000114b orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x00001150 xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x00001155 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001158 movl $16, %ecx + 0x29, 0xc1, //0x0000115d subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x0000115f shlq $4, %rax + 0x48, 0x8d, 0x15, 0x96, 0xe1, 0x00, 0x00, //0x00001163 leaq $57750(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x0000116a vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x00001170 vmovdqu %xmm0, (%rdi) + 0x89, 0xc8, //0x00001174 movl %ecx, %eax + 0x5d, //0x00001176 popq %rbp + 0xc3, //0x00001177 retq + //0x00001178 LBB4_18 + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00001178 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x00001182 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00001185 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x00001188 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000118c movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x00001196 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x0000119a subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x0000119d cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000011a0 ja LBB4_20 + 0x80, 0xc2, 0x30, //0x000011a6 addb $48, %dl + 0x88, 0x17, //0x000011a9 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000011ab movl $1, %ecx + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x000011b0 jmp LBB4_25 + //0x000011b5 LBB4_20 + 0x83, 0xfa, 0x63, //0x000011b5 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x000011b8 ja LBB4_22 + 0x89, 0xd0, //0x000011be movl %edx, %eax + 0x48, 0x8d, 0x0d, 0xd9, 0xb9, 0x00, 0x00, //0x000011c0 leaq $47577(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000011c7 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000011ca movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x000011ce movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x000011d0 movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000011d3 movl $2, %ecx + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x000011d8 jmp LBB4_25 + //0x000011dd LBB4_22 + 0x89, 0xd0, //0x000011dd movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x000011df shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000011e2 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000011e8 shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000011eb cmpl $999, %edx + 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x000011f1 ja LBB4_24 + 0x83, 0xc0, 0x30, //0x000011f7 addl $48, %eax + 0x88, 0x07, //0x000011fa movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x000011fc movzwl %dx, %eax + 0x89, 0xc1, //0x000011ff movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x00001201 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00001204 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x0000120a shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x0000120d imull $100, %ecx, %ecx + 0x29, 0xc8, //0x00001210 subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x00001212 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x84, 0xb9, 0x00, 0x00, //0x00001215 leaq $47492(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000121c movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000121f movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x00001223 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x00001226 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00001229 movl $3, %ecx + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000122e jmp LBB4_25 + //0x00001233 LBB4_24 + 0x6b, 0xc8, 0x64, //0x00001233 imull $100, %eax, %ecx + 0x29, 0xca, //0x00001236 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x00001238 movzwl %ax, %eax + 0x4c, 0x8d, 0x05, 0x5e, 0xb9, 0x00, 0x00, //0x0000123b leaq $47454(%rip), %r8 /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x0c, 0x40, //0x00001242 movb (%r8,%rax,2), %cl + 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00001246 movb $1(%r8,%rax,2), %al + 0x88, 0x0f, //0x0000124b movb %cl, (%rdi) + 0x88, 0x47, 0x01, //0x0000124d movb %al, $1(%rdi) + 0x0f, 0xb7, 0xc2, //0x00001250 movzwl %dx, %eax + 0x41, 0x8a, 0x0c, 0x40, //0x00001253 movb (%r8,%rax,2), %cl + 0x48, 0x01, 0xc0, //0x00001257 addq %rax, %rax + 0x88, 0x4f, 0x02, //0x0000125a movb %cl, $2(%rdi) + 0x83, 0xc8, 0x01, //0x0000125d orl $1, %eax + 0x0f, 0xb7, 0xc0, //0x00001260 movzwl %ax, %eax + 0x42, 0x8a, 0x04, 0x00, //0x00001263 movb (%rax,%r8), %al + 0x88, 0x47, 0x03, //0x00001267 movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x0000126a movl $4, %ecx + //0x0000126f LBB4_25 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000126f movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x00001279 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x0000127c mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x0000127f shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x00001283 vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xb1, 0xfb, 0xff, 0xff, //0x00001287 vmovdqa $-1103(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x0000128f vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00001293 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001298 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000129d vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x000012a2 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x000012a6 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x000012aa vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000012ae vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000012b3 vpshuflw $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x000012b8 vpbroadcastq $-1105(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000012c1 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc2, //0x000012c6 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0xa5, 0xfb, 0xff, 0xff, //0x000012ca vpbroadcastq $-1115(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x000012d3 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x71, 0xfb, 0xff, 0xff, //0x000012d7 vmovdqa $-1167(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000012df vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000012e3 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000012e8 vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000012ec imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000012f2 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x000012f4 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000012f8 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000012fc vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x00001301 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00001305 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00001309 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x0000130d vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001312 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001317 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x0000131c vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x00001320 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x00001324 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x00001328 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x0000132d vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00001331 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x23, 0xfb, 0xff, 0xff, //0x00001335 vpaddb $-1245(%rip), %xmm0, %xmm0 /* LCPI4_4+0(%rip) */ + 0x89, 0xc8, //0x0000133d movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x0000133f vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x00001344 orl $16, %ecx + 0x89, 0xc8, //0x00001347 movl %ecx, %eax + 0x5d, //0x00001349 popq %rbp + 0xc3, //0x0000134a retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000134b .p2align 5, 0x00 + //0x00001360 LCPI5_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001360 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001370 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00001380 LCPI5_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001380 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001390 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000013a0 LCPI5_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000013a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000013b0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000013c0 .p2align 4, 0x00 + //0x000013c0 LCPI5_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000013c0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000013d0 LCPI5_4 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000013d0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000013e0 LCPI5_5 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000013e0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000013f0 .p2align 4, 0x90 + //0x000013f0 _quote + 0x55, //0x000013f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000013f1 movq %rsp, %rbp + 0x41, 0x57, //0x000013f4 pushq %r15 + 0x41, 0x56, //0x000013f6 pushq %r14 + 0x41, 0x55, //0x000013f8 pushq %r13 + 0x41, 0x54, //0x000013fa pushq %r12 + 0x53, //0x000013fc pushq %rbx + 0x50, //0x000013fd pushq %rax + 0x49, 0x89, 0xcf, //0x000013fe movq %rcx, %r15 + 0x49, 0x89, 0xf6, //0x00001401 movq %rsi, %r14 + 0x4c, 0x8b, 0x09, //0x00001404 movq (%rcx), %r9 + 0x41, 0xf6, 0xc0, 0x01, //0x00001407 testb $1, %r8b + 0x48, 0x8d, 0x05, 0x7e, 0xdf, 0x00, 0x00, //0x0000140b leaq $57214(%rip), %rax /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0x77, 0xef, 0x00, 0x00, //0x00001412 leaq $61303(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc0, //0x00001419 cmoveq %rax, %r8 + 0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x0000141d leaq (,%rsi,8), %rax + 0x49, 0x39, 0xc1, //0x00001425 cmpq %rax, %r9 + 0x0f, 0x8d, 0xd8, 0x06, 0x00, 0x00, //0x00001428 jge LBB5_86 + 0x49, 0x89, 0xd4, //0x0000142e movq %rdx, %r12 + 0x49, 0x89, 0xfb, //0x00001431 movq %rdi, %r11 + 0x4d, 0x85, 0xf6, //0x00001434 testq %r14, %r14 + 0x0f, 0x84, 0x12, 0x0a, 0x00, 0x00, //0x00001437 je LBB5_118 + 0xc5, 0xfd, 0x6f, 0x25, 0x1b, 0xff, 0xff, 0xff, //0x0000143d vmovdqa $-229(%rip), %ymm4 /* LCPI5_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x33, 0xff, 0xff, 0xff, //0x00001445 vmovdqa $-205(%rip), %ymm5 /* LCPI5_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x4b, 0xff, 0xff, 0xff, //0x0000144d vmovdqa $-181(%rip), %ymm6 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001455 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x49, 0x89, 0xfb, //0x0000145a movq %rdi, %r11 + 0x49, 0x89, 0xd4, //0x0000145d movq %rdx, %r12 + 0x48, 0x89, 0x55, 0xd0, //0x00001460 movq %rdx, $-48(%rbp) + //0x00001464 LBB5_3 + 0x49, 0x83, 0xfe, 0x1f, //0x00001464 cmpq $31, %r14 + 0x0f, 0x9f, 0xc1, //0x00001468 setg %cl + 0x4d, 0x89, 0xca, //0x0000146b movq %r9, %r10 + 0x4c, 0x89, 0xe6, //0x0000146e movq %r12, %rsi + 0x4c, 0x89, 0xf0, //0x00001471 movq %r14, %rax + 0x4d, 0x89, 0xdd, //0x00001474 movq %r11, %r13 + 0x49, 0x83, 0xf9, 0x20, //0x00001477 cmpq $32, %r9 + 0x0f, 0x8c, 0x8f, 0x00, 0x00, 0x00, //0x0000147b jl LBB5_9 + 0x49, 0x83, 0xfe, 0x20, //0x00001481 cmpq $32, %r14 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x00001485 jl LBB5_9 + 0x4d, 0x89, 0xdd, //0x0000148b movq %r11, %r13 + 0x4c, 0x89, 0xf0, //0x0000148e movq %r14, %rax + 0x4c, 0x89, 0xe6, //0x00001491 movq %r12, %rsi + 0x4c, 0x89, 0xcb, //0x00001494 movq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001497 .p2align 4, 0x90 + //0x000014a0 LBB5_6 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000014a0 vmovdqu (%r13), %ymm0 + 0xc5, 0xdd, 0x64, 0xc8, //0x000014a6 vpcmpgtb %ymm0, %ymm4, %ymm1 + 0xc5, 0xfd, 0x74, 0xd5, //0x000014aa vpcmpeqb %ymm5, %ymm0, %ymm2 + 0xc5, 0xfd, 0x74, 0xde, //0x000014ae vpcmpeqb %ymm6, %ymm0, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000014b2 vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x06, //0x000014b6 vmovdqu %ymm0, (%rsi) + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x000014ba vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x000014bf vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x000014c3 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x000014c7 vpmovmskb %ymm0, %ecx + 0x85, 0xc9, //0x000014cb testl %ecx, %ecx + 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x000014cd jne LBB5_19 + 0x49, 0x83, 0xc5, 0x20, //0x000014d3 addq $32, %r13 + 0x48, 0x83, 0xc6, 0x20, //0x000014d7 addq $32, %rsi + 0x4c, 0x8d, 0x53, 0xe0, //0x000014db leaq $-32(%rbx), %r10 + 0x48, 0x83, 0xf8, 0x3f, //0x000014df cmpq $63, %rax + 0x0f, 0x9f, 0xc1, //0x000014e3 setg %cl + 0x48, 0x83, 0xf8, 0x40, //0x000014e6 cmpq $64, %rax + 0x48, 0x8d, 0x40, 0xe0, //0x000014ea leaq $-32(%rax), %rax + 0x0f, 0x8c, 0x1c, 0x00, 0x00, 0x00, //0x000014ee jl LBB5_9 + 0x48, 0x83, 0xfb, 0x3f, //0x000014f4 cmpq $63, %rbx + 0x4c, 0x89, 0xd3, //0x000014f8 movq %r10, %rbx + 0x0f, 0x8f, 0x9f, 0xff, 0xff, 0xff, //0x000014fb jg LBB5_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001501 .p2align 4, 0x90 + //0x00001510 LBB5_9 + 0x84, 0xc9, //0x00001510 testb %cl, %cl + 0x0f, 0x84, 0x7e, 0x00, 0x00, 0x00, //0x00001512 je LBB5_13 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00001518 vmovdqu (%r13), %ymm0 + 0xc5, 0xdd, 0x64, 0xc8, //0x0000151e vpcmpgtb %ymm0, %ymm4, %ymm1 + 0xc5, 0xfd, 0x74, 0xd5, //0x00001522 vpcmpeqb %ymm5, %ymm0, %ymm2 + 0xc5, 0xfd, 0x74, 0xde, //0x00001526 vpcmpeqb %ymm6, %ymm0, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x0000152a vpor %ymm2, %ymm3, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x0000152e vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001533 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x00001537 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x0000153b vpmovmskb %ymm0, %eax + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000153f movabsq $4294967296, %rcx + 0x48, 0x09, 0xc8, //0x00001549 orq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x0000154c bsfq %rax, %rcx + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001550 vmovdqu (%r13), %xmm0 + 0xc4, 0xe3, 0xf9, 0x16, 0xc0, 0x01, //0x00001556 vpextrq $1, %xmm0, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x0000155c vmovq %xmm0, %rbx + 0x4c, 0x39, 0xd1, //0x00001561 cmpq %r10, %rcx + 0x0f, 0x8e, 0x6f, 0x01, 0x00, 0x00, //0x00001564 jle LBB5_20 + 0x49, 0x83, 0xfa, 0x10, //0x0000156a cmpq $16, %r10 + 0x0f, 0x82, 0xa5, 0x01, 0x00, 0x00, //0x0000156e jb LBB5_23 + 0x48, 0x89, 0x1e, //0x00001574 movq %rbx, (%rsi) + 0x48, 0x89, 0x46, 0x08, //0x00001577 movq %rax, $8(%rsi) + 0x49, 0x8d, 0x4d, 0x10, //0x0000157b leaq $16(%r13), %rcx + 0x48, 0x83, 0xc6, 0x10, //0x0000157f addq $16, %rsi + 0x49, 0x8d, 0x42, 0xf0, //0x00001583 leaq $-16(%r10), %rax + 0x48, 0x83, 0xf8, 0x08, //0x00001587 cmpq $8, %rax + 0x0f, 0x83, 0x98, 0x01, 0x00, 0x00, //0x0000158b jae LBB5_24 + 0xe9, 0xa5, 0x01, 0x00, 0x00, //0x00001591 jmp LBB5_25 + //0x00001596 LBB5_13 + 0x4c, 0x89, 0xfa, //0x00001596 movq %r15, %rdx + 0xc5, 0xf8, 0x77, //0x00001599 vzeroupper + 0x48, 0x83, 0xf8, 0x0f, //0x0000159c cmpq $15, %rax + 0x41, 0x0f, 0x9f, 0xc7, //0x000015a0 setg %r15b + 0x49, 0x83, 0xfa, 0x10, //0x000015a4 cmpq $16, %r10 + 0x0f, 0x8c, 0xf6, 0x01, 0x00, 0x00, //0x000015a8 jl LBB5_30 + 0x48, 0x83, 0xf8, 0x10, //0x000015ae cmpq $16, %rax + 0xc5, 0xf9, 0x6f, 0x3d, 0x06, 0xfe, 0xff, 0xff, //0x000015b2 vmovdqa $-506(%rip), %xmm7 /* LCPI5_3+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x0e, 0xfe, 0xff, 0xff, //0x000015ba vmovdqa $-498(%rip), %xmm9 /* LCPI5_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x16, 0xfe, 0xff, 0xff, //0x000015c2 vmovdqa $-490(%rip), %xmm10 /* LCPI5_5+0(%rip) */ + 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x000015ca vpcmpeqd %xmm11, %xmm11, %xmm11 + 0x0f, 0x8c, 0x1a, 0x02, 0x00, 0x00, //0x000015cf jl LBB5_35 + 0xc5, 0xfd, 0x6f, 0x25, 0x83, 0xfd, 0xff, 0xff, //0x000015d5 vmovdqa $-637(%rip), %ymm4 /* LCPI5_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x9b, 0xfd, 0xff, 0xff, //0x000015dd vmovdqa $-613(%rip), %ymm5 /* LCPI5_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xb3, 0xfd, 0xff, 0xff, //0x000015e5 vmovdqa $-589(%rip), %ymm6 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000015ed vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000015f2 .p2align 4, 0x90 + //0x00001600 LBB5_16 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001600 vmovdqu (%r13), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x00001606 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xb1, 0x74, 0xd0, //0x0000160a vpcmpeqb %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd8, //0x0000160e vpcmpeqb %xmm0, %xmm10, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x00001612 vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xfa, 0x7f, 0x06, //0x00001616 vmovdqu %xmm0, (%rsi) + 0xc4, 0xc1, 0x79, 0x64, 0xc3, //0x0000161a vpcmpgtb %xmm11, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc1, //0x0000161f vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xe9, 0xeb, 0xc0, //0x00001623 vpor %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00001627 vpmovmskb %xmm0, %ecx + 0x66, 0x85, 0xc9, //0x0000162b testw %cx, %cx + 0x0f, 0x85, 0xd0, 0x00, 0x00, 0x00, //0x0000162e jne LBB5_22 + 0x49, 0x83, 0xc5, 0x10, //0x00001634 addq $16, %r13 + 0x48, 0x83, 0xc6, 0x10, //0x00001638 addq $16, %rsi + 0x49, 0x8d, 0x4a, 0xf0, //0x0000163c leaq $-16(%r10), %rcx + 0x48, 0x83, 0xf8, 0x1f, //0x00001640 cmpq $31, %rax + 0x41, 0x0f, 0x9f, 0xc7, //0x00001644 setg %r15b + 0x48, 0x83, 0xf8, 0x20, //0x00001648 cmpq $32, %rax + 0x48, 0x8d, 0x40, 0xf0, //0x0000164c leaq $-16(%rax), %rax + 0x0f, 0x8c, 0x0d, 0x00, 0x00, 0x00, //0x00001650 jl LBB5_31 + 0x49, 0x83, 0xfa, 0x1f, //0x00001656 cmpq $31, %r10 + 0x49, 0x89, 0xca, //0x0000165a movq %rcx, %r10 + 0x0f, 0x8f, 0x9d, 0xff, 0xff, 0xff, //0x0000165d jg LBB5_16 + //0x00001663 LBB5_31 + 0x45, 0x84, 0xff, //0x00001663 testb %r15b, %r15b + 0x0f, 0x84, 0xac, 0x01, 0x00, 0x00, //0x00001666 je LBB5_36 + //0x0000166c LBB5_32 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x0000166c vmovdqu (%r13), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x00001672 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xb1, 0x74, 0xd0, //0x00001676 vpcmpeqb %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd8, //0x0000167a vpcmpeqb %xmm0, %xmm10, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000167e vpor %xmm2, %xmm3, %xmm2 + 0xc4, 0xc1, 0x79, 0x64, 0xdb, //0x00001682 vpcmpgtb %xmm11, %xmm0, %xmm3 + 0xc5, 0xe1, 0xdb, 0xc9, //0x00001687 vpand %xmm1, %xmm3, %xmm1 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000168b vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xf9, 0xd7, 0xc1, //0x0000168f vpmovmskb %xmm1, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x00001693 orl $65536, %eax + 0x0f, 0xbc, 0xd8, //0x00001698 bsfl %eax, %ebx + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x0000169b vmovq %xmm0, %rax + 0x48, 0x39, 0xd9, //0x000016a0 cmpq %rbx, %rcx + 0x49, 0x89, 0xd7, //0x000016a3 movq %rdx, %r15 + 0x0f, 0x8d, 0x68, 0x02, 0x00, 0x00, //0x000016a6 jge LBB5_53 + 0x48, 0x83, 0xf9, 0x08, //0x000016ac cmpq $8, %rcx + 0x0f, 0x82, 0x83, 0x02, 0x00, 0x00, //0x000016b0 jb LBB5_56 + 0x48, 0x89, 0x06, //0x000016b6 movq %rax, (%rsi) + 0x49, 0x8d, 0x45, 0x08, //0x000016b9 leaq $8(%r13), %rax + 0x48, 0x83, 0xc6, 0x08, //0x000016bd addq $8, %rsi + 0x48, 0x8d, 0x59, 0xf8, //0x000016c1 leaq $-8(%rcx), %rbx + 0xe9, 0x75, 0x02, 0x00, 0x00, //0x000016c5 jmp LBB5_57 + //0x000016ca LBB5_19 + 0x4d, 0x29, 0xdd, //0x000016ca subq %r11, %r13 + 0x44, 0x0f, 0xbc, 0xd1, //0x000016cd bsfl %ecx, %r10d + 0x4d, 0x01, 0xea, //0x000016d1 addq %r13, %r10 + 0xe9, 0x14, 0x03, 0x00, 0x00, //0x000016d4 jmp LBB5_69 + //0x000016d9 LBB5_20 + 0x83, 0xf9, 0x10, //0x000016d9 cmpl $16, %ecx + 0x0f, 0x82, 0xaa, 0x01, 0x00, 0x00, //0x000016dc jb LBB5_42 + 0x48, 0x89, 0x1e, //0x000016e2 movq %rbx, (%rsi) + 0x48, 0x89, 0x46, 0x08, //0x000016e5 movq %rax, $8(%rsi) + 0x49, 0x8d, 0x5d, 0x10, //0x000016e9 leaq $16(%r13), %rbx + 0x48, 0x83, 0xc6, 0x10, //0x000016ed addq $16, %rsi + 0x48, 0x8d, 0x41, 0xf0, //0x000016f1 leaq $-16(%rcx), %rax + 0x48, 0x83, 0xf8, 0x08, //0x000016f5 cmpq $8, %rax + 0x0f, 0x83, 0x9d, 0x01, 0x00, 0x00, //0x000016f9 jae LBB5_43 + 0xe9, 0xaa, 0x01, 0x00, 0x00, //0x000016ff jmp LBB5_44 + //0x00001704 LBB5_22 + 0x0f, 0xb7, 0xc1, //0x00001704 movzwl %cx, %eax + 0x4d, 0x29, 0xdd, //0x00001707 subq %r11, %r13 + 0x44, 0x0f, 0xbc, 0xd0, //0x0000170a bsfl %eax, %r10d + 0x4d, 0x01, 0xea, //0x0000170e addq %r13, %r10 + 0x49, 0x89, 0xd7, //0x00001711 movq %rdx, %r15 + 0xe9, 0xd4, 0x02, 0x00, 0x00, //0x00001714 jmp LBB5_69 + //0x00001719 LBB5_23 + 0x4c, 0x89, 0xe9, //0x00001719 movq %r13, %rcx + 0x4c, 0x89, 0xd0, //0x0000171c movq %r10, %rax + 0x48, 0x83, 0xf8, 0x08, //0x0000171f cmpq $8, %rax + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001723 jb LBB5_25 + //0x00001729 LBB5_24 + 0x48, 0x8b, 0x11, //0x00001729 movq (%rcx), %rdx + 0x48, 0x89, 0x16, //0x0000172c movq %rdx, (%rsi) + 0x48, 0x83, 0xc1, 0x08, //0x0000172f addq $8, %rcx + 0x48, 0x83, 0xc6, 0x08, //0x00001733 addq $8, %rsi + 0x48, 0x83, 0xc0, 0xf8, //0x00001737 addq $-8, %rax + //0x0000173b LBB5_25 + 0x48, 0x83, 0xf8, 0x04, //0x0000173b cmpq $4, %rax + 0x0f, 0x8c, 0x35, 0x00, 0x00, 0x00, //0x0000173f jl LBB5_26 + 0x8b, 0x11, //0x00001745 movl (%rcx), %edx + 0x89, 0x16, //0x00001747 movl %edx, (%rsi) + 0x48, 0x83, 0xc1, 0x04, //0x00001749 addq $4, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x0000174d addq $4, %rsi + 0x48, 0x83, 0xc0, 0xfc, //0x00001751 addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x00001755 cmpq $2, %rax + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00001759 jae LBB5_50 + //0x0000175f LBB5_27 + 0x48, 0x85, 0xc0, //0x0000175f testq %rax, %rax + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001762 je LBB5_29 + //0x00001768 LBB5_28 + 0x8a, 0x01, //0x00001768 movb (%rcx), %al + 0x88, 0x06, //0x0000176a movb %al, (%rsi) + //0x0000176c LBB5_29 + 0x4d, 0x29, 0xda, //0x0000176c subq %r11, %r10 + 0x4d, 0x01, 0xea, //0x0000176f addq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x00001772 notq %r10 + 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00001775 jmp LBB5_69 + //0x0000177a LBB5_26 + 0x48, 0x83, 0xf8, 0x02, //0x0000177a cmpq $2, %rax + 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x0000177e jb LBB5_27 + //0x00001784 LBB5_50 + 0x0f, 0xb7, 0x11, //0x00001784 movzwl (%rcx), %edx + 0x66, 0x89, 0x16, //0x00001787 movw %dx, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x0000178a addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x0000178e addq $2, %rsi + 0x48, 0x83, 0xc0, 0xfe, //0x00001792 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00001796 testq %rax, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001799 jne LBB5_28 + 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x0000179f jmp LBB5_29 + //0x000017a4 LBB5_30 + 0x4c, 0x89, 0xd1, //0x000017a4 movq %r10, %rcx + 0xc5, 0xfd, 0x6f, 0x25, 0xb1, 0xfb, 0xff, 0xff, //0x000017a7 vmovdqa $-1103(%rip), %ymm4 /* LCPI5_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0xc9, 0xfb, 0xff, 0xff, //0x000017af vmovdqa $-1079(%rip), %ymm5 /* LCPI5_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xe1, 0xfb, 0xff, 0xff, //0x000017b7 vmovdqa $-1055(%rip), %ymm6 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000017bf vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0xf9, 0x6f, 0x3d, 0xf4, 0xfb, 0xff, 0xff, //0x000017c4 vmovdqa $-1036(%rip), %xmm7 /* LCPI5_3+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0xfc, 0xfb, 0xff, 0xff, //0x000017cc vmovdqa $-1028(%rip), %xmm9 /* LCPI5_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x04, 0xfc, 0xff, 0xff, //0x000017d4 vmovdqa $-1020(%rip), %xmm10 /* LCPI5_5+0(%rip) */ + 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x000017dc vpcmpeqd %xmm11, %xmm11, %xmm11 + 0x45, 0x84, 0xff, //0x000017e1 testb %r15b, %r15b + 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x000017e4 je LBB5_36 + 0xe9, 0x7d, 0xfe, 0xff, 0xff, //0x000017ea jmp LBB5_32 + //0x000017ef LBB5_35 + 0x4c, 0x89, 0xd1, //0x000017ef movq %r10, %rcx + 0xc5, 0xfd, 0x6f, 0x25, 0x66, 0xfb, 0xff, 0xff, //0x000017f2 vmovdqa $-1178(%rip), %ymm4 /* LCPI5_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x7e, 0xfb, 0xff, 0xff, //0x000017fa vmovdqa $-1154(%rip), %ymm5 /* LCPI5_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x96, 0xfb, 0xff, 0xff, //0x00001802 vmovdqa $-1130(%rip), %ymm6 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x0000180a vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x45, 0x84, 0xff, //0x0000180f testb %r15b, %r15b + 0x0f, 0x85, 0x54, 0xfe, 0xff, 0xff, //0x00001812 jne LBB5_32 + //0x00001818 LBB5_36 + 0x48, 0x85, 0xc9, //0x00001818 testq %rcx, %rcx + 0x49, 0x89, 0xd7, //0x0000181b movq %rdx, %r15 + 0x4c, 0x8d, 0x15, 0x6b, 0xdb, 0x00, 0x00, //0x0000181e leaq $56171(%rip), %r10 /* __SingleQuoteTab+0(%rip) */ + 0x0f, 0x8e, 0x50, 0x00, 0x00, 0x00, //0x00001825 jle LBB5_41 + 0x48, 0x85, 0xc0, //0x0000182b testq %rax, %rax + 0x0f, 0x8e, 0x47, 0x00, 0x00, 0x00, //0x0000182e jle LBB5_41 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001834 .p2align 4, 0x90 + //0x00001840 LBB5_38 + 0x41, 0x0f, 0xb6, 0x5d, 0x00, //0x00001840 movzbl (%r13), %ebx + 0x48, 0x89, 0xda, //0x00001845 movq %rbx, %rdx + 0x48, 0xc1, 0xe2, 0x04, //0x00001848 shlq $4, %rdx + 0x4a, 0x83, 0x3c, 0x12, 0x00, //0x0000184c cmpq $0, (%rdx,%r10) + 0x0f, 0x85, 0xda, 0x00, 0x00, 0x00, //0x00001851 jne LBB5_55 + 0x49, 0xff, 0xc5, //0x00001857 incq %r13 + 0x88, 0x1e, //0x0000185a movb %bl, (%rsi) + 0x48, 0x83, 0xf8, 0x02, //0x0000185c cmpq $2, %rax + 0x48, 0x8d, 0x40, 0xff, //0x00001860 leaq $-1(%rax), %rax + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00001864 jl LBB5_41 + 0x48, 0xff, 0xc6, //0x0000186a incq %rsi + 0x48, 0x83, 0xf9, 0x01, //0x0000186d cmpq $1, %rcx + 0x48, 0x8d, 0x49, 0xff, //0x00001871 leaq $-1(%rcx), %rcx + 0x0f, 0x8f, 0xc5, 0xff, 0xff, 0xff, //0x00001875 jg LBB5_38 + //0x0000187b LBB5_41 + 0x4d, 0x29, 0xdd, //0x0000187b subq %r11, %r13 + 0x48, 0xf7, 0xd8, //0x0000187e negq %rax + 0x4d, 0x19, 0xd2, //0x00001881 sbbq %r10, %r10 + 0x4d, 0x31, 0xea, //0x00001884 xorq %r13, %r10 + 0xe9, 0x61, 0x01, 0x00, 0x00, //0x00001887 jmp LBB5_69 + //0x0000188c LBB5_42 + 0x4c, 0x89, 0xeb, //0x0000188c movq %r13, %rbx + 0x48, 0x89, 0xc8, //0x0000188f movq %rcx, %rax + 0x48, 0x83, 0xf8, 0x08, //0x00001892 cmpq $8, %rax + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001896 jb LBB5_44 + //0x0000189c LBB5_43 + 0x48, 0x8b, 0x13, //0x0000189c movq (%rbx), %rdx + 0x48, 0x89, 0x16, //0x0000189f movq %rdx, (%rsi) + 0x48, 0x83, 0xc3, 0x08, //0x000018a2 addq $8, %rbx + 0x48, 0x83, 0xc6, 0x08, //0x000018a6 addq $8, %rsi + 0x48, 0x83, 0xc0, 0xf8, //0x000018aa addq $-8, %rax + //0x000018ae LBB5_44 + 0x48, 0x83, 0xf8, 0x04, //0x000018ae cmpq $4, %rax + 0x0f, 0x8c, 0x32, 0x00, 0x00, 0x00, //0x000018b2 jl LBB5_45 + 0x8b, 0x13, //0x000018b8 movl (%rbx), %edx + 0x89, 0x16, //0x000018ba movl %edx, (%rsi) + 0x48, 0x83, 0xc3, 0x04, //0x000018bc addq $4, %rbx + 0x48, 0x83, 0xc6, 0x04, //0x000018c0 addq $4, %rsi + 0x48, 0x83, 0xc0, 0xfc, //0x000018c4 addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x000018c8 cmpq $2, %rax + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000018cc jae LBB5_52 + //0x000018d2 LBB5_46 + 0x48, 0x85, 0xc0, //0x000018d2 testq %rax, %rax + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000018d5 je LBB5_48 + //0x000018db LBB5_47 + 0x8a, 0x03, //0x000018db movb (%rbx), %al + 0x88, 0x06, //0x000018dd movb %al, (%rsi) + //0x000018df LBB5_48 + 0x4d, 0x29, 0xdd, //0x000018df subq %r11, %r13 + 0x49, 0x01, 0xcd, //0x000018e2 addq %rcx, %r13 + 0xe9, 0x00, 0x01, 0x00, 0x00, //0x000018e5 jmp LBB5_68 + //0x000018ea LBB5_45 + 0x48, 0x83, 0xf8, 0x02, //0x000018ea cmpq $2, %rax + 0x0f, 0x82, 0xde, 0xff, 0xff, 0xff, //0x000018ee jb LBB5_46 + //0x000018f4 LBB5_52 + 0x0f, 0xb7, 0x13, //0x000018f4 movzwl (%rbx), %edx + 0x66, 0x89, 0x16, //0x000018f7 movw %dx, (%rsi) + 0x48, 0x83, 0xc3, 0x02, //0x000018fa addq $2, %rbx + 0x48, 0x83, 0xc6, 0x02, //0x000018fe addq $2, %rsi + 0x48, 0x83, 0xc0, 0xfe, //0x00001902 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00001906 testq %rax, %rax + 0x0f, 0x85, 0xcc, 0xff, 0xff, 0xff, //0x00001909 jne LBB5_47 + 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x0000190f jmp LBB5_48 + //0x00001914 LBB5_53 + 0x83, 0xfb, 0x08, //0x00001914 cmpl $8, %ebx + 0x0f, 0x82, 0x8e, 0x00, 0x00, 0x00, //0x00001917 jb LBB5_62 + 0x48, 0x89, 0x06, //0x0000191d movq %rax, (%rsi) + 0x4d, 0x8d, 0x55, 0x08, //0x00001920 leaq $8(%r13), %r10 + 0x48, 0x83, 0xc6, 0x08, //0x00001924 addq $8, %rsi + 0x48, 0x8d, 0x43, 0xf8, //0x00001928 leaq $-8(%rbx), %rax + 0xe9, 0x80, 0x00, 0x00, 0x00, //0x0000192c jmp LBB5_63 + //0x00001931 LBB5_55 + 0x4d, 0x29, 0xdd, //0x00001931 subq %r11, %r13 + 0xe9, 0xb1, 0x00, 0x00, 0x00, //0x00001934 jmp LBB5_68 + //0x00001939 LBB5_56 + 0x4c, 0x89, 0xe8, //0x00001939 movq %r13, %rax + 0x48, 0x89, 0xcb, //0x0000193c movq %rcx, %rbx + //0x0000193f LBB5_57 + 0x48, 0x83, 0xfb, 0x04, //0x0000193f cmpq $4, %rbx + 0x0f, 0x8c, 0x38, 0x00, 0x00, 0x00, //0x00001943 jl LBB5_58 + 0x8b, 0x10, //0x00001949 movl (%rax), %edx + 0x89, 0x16, //0x0000194b movl %edx, (%rsi) + 0x48, 0x83, 0xc0, 0x04, //0x0000194d addq $4, %rax + 0x48, 0x83, 0xc6, 0x04, //0x00001951 addq $4, %rsi + 0x48, 0x83, 0xc3, 0xfc, //0x00001955 addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00001959 cmpq $2, %rbx + 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x0000195d jae LBB5_83 + //0x00001963 LBB5_59 + 0x48, 0x85, 0xdb, //0x00001963 testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001966 je LBB5_61 + //0x0000196c LBB5_60 + 0x8a, 0x00, //0x0000196c movb (%rax), %al + 0x88, 0x06, //0x0000196e movb %al, (%rsi) + //0x00001970 LBB5_61 + 0x4c, 0x29, 0xd9, //0x00001970 subq %r11, %rcx + 0x4c, 0x01, 0xe9, //0x00001973 addq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00001976 notq %rcx + 0x49, 0x89, 0xca, //0x00001979 movq %rcx, %r10 + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x0000197c jmp LBB5_69 + //0x00001981 LBB5_58 + 0x48, 0x83, 0xfb, 0x02, //0x00001981 cmpq $2, %rbx + 0x0f, 0x82, 0xd8, 0xff, 0xff, 0xff, //0x00001985 jb LBB5_59 + //0x0000198b LBB5_83 + 0x0f, 0xb7, 0x10, //0x0000198b movzwl (%rax), %edx + 0x66, 0x89, 0x16, //0x0000198e movw %dx, (%rsi) + 0x48, 0x83, 0xc0, 0x02, //0x00001991 addq $2, %rax + 0x48, 0x83, 0xc6, 0x02, //0x00001995 addq $2, %rsi + 0x48, 0x83, 0xc3, 0xfe, //0x00001999 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x0000199d testq %rbx, %rbx + 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x000019a0 jne LBB5_60 + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x000019a6 jmp LBB5_61 + //0x000019ab LBB5_62 + 0x4d, 0x89, 0xea, //0x000019ab movq %r13, %r10 + 0x48, 0x89, 0xd8, //0x000019ae movq %rbx, %rax + //0x000019b1 LBB5_63 + 0x48, 0x83, 0xf8, 0x04, //0x000019b1 cmpq $4, %rax + 0x0f, 0x8c, 0x20, 0x01, 0x00, 0x00, //0x000019b5 jl LBB5_64 + 0x41, 0x8b, 0x0a, //0x000019bb movl (%r10), %ecx + 0x89, 0x0e, //0x000019be movl %ecx, (%rsi) + 0x49, 0x83, 0xc2, 0x04, //0x000019c0 addq $4, %r10 + 0x48, 0x83, 0xc6, 0x04, //0x000019c4 addq $4, %rsi + 0x48, 0x83, 0xc0, 0xfc, //0x000019c8 addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x000019cc cmpq $2, %rax + 0x0f, 0x83, 0x0f, 0x01, 0x00, 0x00, //0x000019d0 jae LBB5_85 + //0x000019d6 LBB5_65 + 0x48, 0x85, 0xc0, //0x000019d6 testq %rax, %rax + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000019d9 je LBB5_67 + //0x000019df LBB5_66 + 0x41, 0x8a, 0x02, //0x000019df movb (%r10), %al + 0x88, 0x06, //0x000019e2 movb %al, (%rsi) + //0x000019e4 LBB5_67 + 0x4d, 0x29, 0xdd, //0x000019e4 subq %r11, %r13 + 0x49, 0x01, 0xdd, //0x000019e7 addq %rbx, %r13 + //0x000019ea LBB5_68 + 0x4d, 0x89, 0xea, //0x000019ea movq %r13, %r10 + //0x000019ed LBB5_69 + 0x4d, 0x85, 0xd2, //0x000019ed testq %r10, %r10 + 0x48, 0x8b, 0x55, 0xd0, //0x000019f0 movq $-48(%rbp), %rdx + 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x000019f4 movabsq $12884901889, %r13 + 0x0f, 0x88, 0x7d, 0x04, 0x00, 0x00, //0x000019fe js LBB5_122 + 0x4d, 0x01, 0xd3, //0x00001a04 addq %r10, %r11 + 0x4d, 0x01, 0xd4, //0x00001a07 addq %r10, %r12 + 0x4d, 0x39, 0xd6, //0x00001a0a cmpq %r10, %r14 + 0x0f, 0x84, 0x3c, 0x04, 0x00, 0x00, //0x00001a0d je LBB5_118 + 0x4d, 0x29, 0xd1, //0x00001a13 subq %r10, %r9 + 0x4d, 0x29, 0xf2, //0x00001a16 subq %r14, %r10 + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00001a19 jmp LBB5_73 + 0x90, 0x90, //0x00001a1e .p2align 4, 0x90 + //0x00001a20 LBB5_72 + 0x49, 0xff, 0xc3, //0x00001a20 incq %r11 + 0x49, 0x01, 0xc4, //0x00001a23 addq %rax, %r12 + 0x49, 0xff, 0xc2, //0x00001a26 incq %r10 + 0x0f, 0x84, 0x20, 0x04, 0x00, 0x00, //0x00001a29 je LBB5_118 + //0x00001a2f LBB5_73 + 0x41, 0x0f, 0xb6, 0x33, //0x00001a2f movzbl (%r11), %esi + 0x48, 0xc1, 0xe6, 0x04, //0x00001a33 shlq $4, %rsi + 0x49, 0x8b, 0x1c, 0x30, //0x00001a37 movq (%r8,%rsi), %rbx + 0x85, 0xdb, //0x00001a3b testl %ebx, %ebx + 0x0f, 0x84, 0x84, 0x00, 0x00, 0x00, //0x00001a3d je LBB5_81 + 0x48, 0x63, 0xc3, //0x00001a43 movslq %ebx, %rax + 0x49, 0x29, 0xc1, //0x00001a46 subq %rax, %r9 + 0x0f, 0x8c, 0x0e, 0x04, 0x00, 0x00, //0x00001a49 jl LBB5_119 + 0x48, 0xc1, 0xe3, 0x20, //0x00001a4f shlq $32, %rbx + 0x49, 0x8d, 0x4c, 0x30, 0x08, //0x00001a53 leaq $8(%r8,%rsi), %rcx + 0x4c, 0x39, 0xeb, //0x00001a58 cmpq %r13, %rbx + 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x00001a5b jl LBB5_77 + 0x8b, 0x09, //0x00001a61 movl (%rcx), %ecx + 0x41, 0x89, 0x0c, 0x24, //0x00001a63 movl %ecx, (%r12) + 0x49, 0x8d, 0x4c, 0x30, 0x0c, //0x00001a67 leaq $12(%r8,%rsi), %rcx + 0x4d, 0x8d, 0x74, 0x24, 0x04, //0x00001a6c leaq $4(%r12), %r14 + 0x48, 0x8d, 0x58, 0xfc, //0x00001a71 leaq $-4(%rax), %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00001a75 cmpq $2, %rbx + 0x0f, 0x83, 0x21, 0x00, 0x00, 0x00, //0x00001a79 jae LBB5_78 + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00001a7f jmp LBB5_79 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a84 .p2align 4, 0x90 + //0x00001a90 LBB5_77 + 0x4d, 0x89, 0xe6, //0x00001a90 movq %r12, %r14 + 0x48, 0x89, 0xc3, //0x00001a93 movq %rax, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00001a96 cmpq $2, %rbx + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00001a9a jb LBB5_79 + //0x00001aa0 LBB5_78 + 0x0f, 0xb7, 0x31, //0x00001aa0 movzwl (%rcx), %esi + 0x66, 0x41, 0x89, 0x36, //0x00001aa3 movw %si, (%r14) + 0x48, 0x83, 0xc1, 0x02, //0x00001aa7 addq $2, %rcx + 0x49, 0x83, 0xc6, 0x02, //0x00001aab addq $2, %r14 + 0x48, 0x83, 0xc3, 0xfe, //0x00001aaf addq $-2, %rbx + //0x00001ab3 LBB5_79 + 0x48, 0x85, 0xdb, //0x00001ab3 testq %rbx, %rbx + 0x0f, 0x84, 0x64, 0xff, 0xff, 0xff, //0x00001ab6 je LBB5_72 + 0x0f, 0xb6, 0x09, //0x00001abc movzbl (%rcx), %ecx + 0x41, 0x88, 0x0e, //0x00001abf movb %cl, (%r14) + 0xe9, 0x59, 0xff, 0xff, 0xff, //0x00001ac2 jmp LBB5_72 + //0x00001ac7 LBB5_81 + 0x4d, 0x89, 0xd6, //0x00001ac7 movq %r10, %r14 + 0x49, 0xf7, 0xde, //0x00001aca negq %r14 + 0x4d, 0x85, 0xd2, //0x00001acd testq %r10, %r10 + 0x0f, 0x85, 0x8e, 0xf9, 0xff, 0xff, //0x00001ad0 jne LBB5_3 + 0xe9, 0x74, 0x03, 0x00, 0x00, //0x00001ad6 jmp LBB5_118 + //0x00001adb LBB5_64 + 0x48, 0x83, 0xf8, 0x02, //0x00001adb cmpq $2, %rax + 0x0f, 0x82, 0xf1, 0xfe, 0xff, 0xff, //0x00001adf jb LBB5_65 + //0x00001ae5 LBB5_85 + 0x41, 0x0f, 0xb7, 0x0a, //0x00001ae5 movzwl (%r10), %ecx + 0x66, 0x89, 0x0e, //0x00001ae9 movw %cx, (%rsi) + 0x49, 0x83, 0xc2, 0x02, //0x00001aec addq $2, %r10 + 0x48, 0x83, 0xc6, 0x02, //0x00001af0 addq $2, %rsi + 0x48, 0x83, 0xc0, 0xfe, //0x00001af4 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00001af8 testq %rax, %rax + 0x0f, 0x85, 0xde, 0xfe, 0xff, 0xff, //0x00001afb jne LBB5_66 + 0xe9, 0xde, 0xfe, 0xff, 0xff, //0x00001b01 jmp LBB5_67 + //0x00001b06 LBB5_86 + 0x4c, 0x8d, 0x0d, 0x83, 0xf8, 0x00, 0x00, //0x00001b06 leaq $63619(%rip), %r9 /* __EscTab+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x4b, 0xf8, 0xff, 0xff, //0x00001b0d vmovdqa $-1973(%rip), %ymm10 /* LCPI5_0+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0x63, 0xf8, 0xff, 0xff, //0x00001b15 vmovdqa $-1949(%rip), %ymm9 /* LCPI5_1+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x1d, 0x7b, 0xf8, 0xff, 0xff, //0x00001b1d vmovdqa $-1925(%rip), %ymm11 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001b25 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x48, 0x89, 0xd3, //0x00001b2a movq %rdx, %rbx + 0x4d, 0x89, 0xf2, //0x00001b2d movq %r14, %r10 + //0x00001b30 LBB5_87 + 0x49, 0x83, 0xfa, 0x10, //0x00001b30 cmpq $16, %r10 + 0x0f, 0x8d, 0x26, 0x01, 0x00, 0x00, //0x00001b34 jge LBB5_88 + //0x00001b3a LBB5_93 + 0x49, 0x83, 0xfa, 0x08, //0x00001b3a cmpq $8, %r10 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x00001b3e jl LBB5_97 + //0x00001b44 LBB5_94 + 0x0f, 0xb6, 0x07, //0x00001b44 movzbl (%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001b47 movzbl (%rax,%r9), %eax + 0x0f, 0xb6, 0x4f, 0x01, //0x00001b4c movzbl $1(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001b50 movzbl (%rcx,%r9), %ecx + 0x01, 0xc9, //0x00001b55 addl %ecx, %ecx + 0x09, 0xc1, //0x00001b57 orl %eax, %ecx + 0x0f, 0xb6, 0x47, 0x02, //0x00001b59 movzbl $2(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x00001b5d movzbl (%rax,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001b62 shll $2, %esi + 0x0f, 0xb6, 0x47, 0x03, //0x00001b65 movzbl $3(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001b69 movzbl (%rax,%r9), %eax + 0xc1, 0xe0, 0x03, //0x00001b6e shll $3, %eax + 0x09, 0xf0, //0x00001b71 orl %esi, %eax + 0x09, 0xc8, //0x00001b73 orl %ecx, %eax + 0x48, 0x8b, 0x0f, //0x00001b75 movq (%rdi), %rcx + 0x48, 0x89, 0x0b, //0x00001b78 movq %rcx, (%rbx) + 0x84, 0xc0, //0x00001b7b testb %al, %al + 0x0f, 0x85, 0x9a, 0x02, 0x00, 0x00, //0x00001b7d jne LBB5_115 + 0x0f, 0xb6, 0x47, 0x04, //0x00001b83 movzbl $4(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001b87 movzbl (%rax,%r9), %eax + 0x0f, 0xb6, 0x4f, 0x05, //0x00001b8c movzbl $5(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001b90 movzbl (%rcx,%r9), %ecx + 0x01, 0xc9, //0x00001b95 addl %ecx, %ecx + 0x09, 0xc1, //0x00001b97 orl %eax, %ecx + 0x0f, 0xb6, 0x47, 0x06, //0x00001b99 movzbl $6(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x00001b9d movzbl (%rax,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001ba2 shll $2, %esi + 0x0f, 0xb6, 0x47, 0x07, //0x00001ba5 movzbl $7(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001ba9 movzbl (%rax,%r9), %eax + 0xc1, 0xe0, 0x03, //0x00001bae shll $3, %eax + 0x09, 0xf0, //0x00001bb1 orl %esi, %eax + 0x09, 0xc8, //0x00001bb3 orl %ecx, %eax + 0x84, 0xc0, //0x00001bb5 testb %al, %al + 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x00001bb7 jne LBB5_116 + 0x48, 0x83, 0xc3, 0x08, //0x00001bbd addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x00001bc1 addq $8, %rdi + 0x49, 0x83, 0xc2, 0xf8, //0x00001bc5 addq $-8, %r10 + //0x00001bc9 LBB5_97 + 0x49, 0x83, 0xfa, 0x04, //0x00001bc9 cmpq $4, %r10 + 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00001bcd jl LBB5_100 + 0x0f, 0xb6, 0x07, //0x00001bd3 movzbl (%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001bd6 movzbl (%rax,%r9), %eax + 0x0f, 0xb6, 0x4f, 0x01, //0x00001bdb movzbl $1(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001bdf movzbl (%rcx,%r9), %ecx + 0x01, 0xc9, //0x00001be4 addl %ecx, %ecx + 0x09, 0xc1, //0x00001be6 orl %eax, %ecx + 0x0f, 0xb6, 0x47, 0x02, //0x00001be8 movzbl $2(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x00001bec movzbl (%rax,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001bf1 shll $2, %esi + 0x0f, 0xb6, 0x47, 0x03, //0x00001bf4 movzbl $3(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001bf8 movzbl (%rax,%r9), %eax + 0xc1, 0xe0, 0x03, //0x00001bfd shll $3, %eax + 0x09, 0xf0, //0x00001c00 orl %esi, %eax + 0x09, 0xc8, //0x00001c02 orl %ecx, %eax + 0x8b, 0x0f, //0x00001c04 movl (%rdi), %ecx + 0x89, 0x0b, //0x00001c06 movl %ecx, (%rbx) + 0x84, 0xc0, //0x00001c08 testb %al, %al + 0x0f, 0x85, 0x0d, 0x02, 0x00, 0x00, //0x00001c0a jne LBB5_115 + 0x48, 0x83, 0xc3, 0x04, //0x00001c10 addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x00001c14 addq $4, %rdi + 0x49, 0x83, 0xc2, 0xfc, //0x00001c18 addq $-4, %r10 + //0x00001c1c LBB5_100 + 0x4d, 0x85, 0xd2, //0x00001c1c testq %r10, %r10 + 0x0f, 0x8e, 0x1f, 0x02, 0x00, 0x00, //0x00001c1f jle LBB5_117 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c25 .p2align 4, 0x90 + //0x00001c30 LBB5_101 + 0x0f, 0xb6, 0x07, //0x00001c30 movzbl (%rdi), %eax + 0x42, 0x80, 0x3c, 0x08, 0x00, //0x00001c33 cmpb $0, (%rax,%r9) + 0x0f, 0x85, 0x94, 0x01, 0x00, 0x00, //0x00001c38 jne LBB5_112 + 0x48, 0xff, 0xc7, //0x00001c3e incq %rdi + 0x88, 0x03, //0x00001c41 movb %al, (%rbx) + 0x48, 0xff, 0xc3, //0x00001c43 incq %rbx + 0x49, 0x83, 0xfa, 0x01, //0x00001c46 cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x00001c4a leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x00001c4e jg LBB5_101 + 0xe9, 0xeb, 0x01, 0x00, 0x00, //0x00001c54 jmp LBB5_117 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c59 .p2align 4, 0x90 + //0x00001c60 LBB5_88 + 0x49, 0x83, 0xfa, 0x20, //0x00001c60 cmpq $32, %r10 + 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x00001c64 jl LBB5_103 + 0x49, 0x8d, 0x4a, 0x20, //0x00001c6a leaq $32(%r10), %rcx + 0x31, 0xc0, //0x00001c6e xorl %eax, %eax + //0x00001c70 .p2align 4, 0x90 + //0x00001c70 LBB5_90 + 0xc5, 0xfe, 0x6f, 0x04, 0x07, //0x00001c70 vmovdqu (%rdi,%rax), %ymm0 + 0xc5, 0xad, 0x64, 0xc8, //0x00001c75 vpcmpgtb %ymm0, %ymm10, %ymm1 + 0xc5, 0xb5, 0x74, 0xd0, //0x00001c79 vpcmpeqb %ymm0, %ymm9, %ymm2 + 0xc5, 0xa5, 0x74, 0xd8, //0x00001c7d vpcmpeqb %ymm0, %ymm11, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x00001c81 vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x04, 0x03, //0x00001c85 vmovdqu %ymm0, (%rbx,%rax) + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x00001c8a vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001c8f vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x00001c93 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001c97 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001c9b testl %esi, %esi + 0x0f, 0x85, 0x1a, 0x01, 0x00, 0x00, //0x00001c9d jne LBB5_109 + 0x48, 0x83, 0xc0, 0x20, //0x00001ca3 addq $32, %rax + 0x48, 0x83, 0xc1, 0xe0, //0x00001ca7 addq $-32, %rcx + 0x48, 0x83, 0xf9, 0x3f, //0x00001cab cmpq $63, %rcx + 0x0f, 0x8f, 0xbb, 0xff, 0xff, 0xff, //0x00001caf jg LBB5_90 + 0xc5, 0xf8, 0x77, //0x00001cb5 vzeroupper + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001cb8 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0x7d, 0x6f, 0x1d, 0xdb, 0xf6, 0xff, 0xff, //0x00001cbd vmovdqa $-2341(%rip), %ymm11 /* LCPI5_2+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0xb3, 0xf6, 0xff, 0xff, //0x00001cc5 vmovdqa $-2381(%rip), %ymm9 /* LCPI5_1+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x8b, 0xf6, 0xff, 0xff, //0x00001ccd vmovdqa $-2421(%rip), %ymm10 /* LCPI5_0+0(%rip) */ + 0x48, 0x01, 0xc7, //0x00001cd5 addq %rax, %rdi + 0x49, 0x29, 0xc2, //0x00001cd8 subq %rax, %r10 + 0x48, 0x01, 0xc3, //0x00001cdb addq %rax, %rbx + 0x48, 0x83, 0xf9, 0x30, //0x00001cde cmpq $48, %rcx + 0xc5, 0xf9, 0x6f, 0x3d, 0xd6, 0xf6, 0xff, 0xff, //0x00001ce2 vmovdqa $-2346(%rip), %xmm7 /* LCPI5_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0xde, 0xf6, 0xff, 0xff, //0x00001cea vmovdqa $-2338(%rip), %xmm5 /* LCPI5_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0xe6, 0xf6, 0xff, 0xff, //0x00001cf2 vmovdqa $-2330(%rip), %xmm4 /* LCPI5_5+0(%rip) */ + 0xc5, 0xc9, 0x76, 0xf6, //0x00001cfa vpcmpeqd %xmm6, %xmm6, %xmm6 + 0x0f, 0x8d, 0x41, 0x00, 0x00, 0x00, //0x00001cfe jge LBB5_104 + 0xe9, 0x31, 0xfe, 0xff, 0xff, //0x00001d04 jmp LBB5_93 + //0x00001d09 LBB5_103 + 0xc5, 0xf8, 0x77, //0x00001d09 vzeroupper + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001d0c vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0x7d, 0x6f, 0x1d, 0x87, 0xf6, 0xff, 0xff, //0x00001d11 vmovdqa $-2425(%rip), %ymm11 /* LCPI5_2+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0x5f, 0xf6, 0xff, 0xff, //0x00001d19 vmovdqa $-2465(%rip), %ymm9 /* LCPI5_1+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x37, 0xf6, 0xff, 0xff, //0x00001d21 vmovdqa $-2505(%rip), %ymm10 /* LCPI5_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x3d, 0x8f, 0xf6, 0xff, 0xff, //0x00001d29 vmovdqa $-2417(%rip), %xmm7 /* LCPI5_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0x97, 0xf6, 0xff, 0xff, //0x00001d31 vmovdqa $-2409(%rip), %xmm5 /* LCPI5_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x9f, 0xf6, 0xff, 0xff, //0x00001d39 vmovdqa $-2401(%rip), %xmm4 /* LCPI5_5+0(%rip) */ + 0xc5, 0xc9, 0x76, 0xf6, //0x00001d41 vpcmpeqd %xmm6, %xmm6, %xmm6 + //0x00001d45 LBB5_104 + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001d45 movl $16, %ecx + 0x31, 0xc0, //0x00001d4a xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, //0x00001d4c .p2align 4, 0x90 + //0x00001d50 LBB5_105 + 0xc5, 0xfa, 0x6f, 0x04, 0x07, //0x00001d50 vmovdqu (%rdi,%rax), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x00001d55 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xf9, 0x74, 0xd5, //0x00001d59 vpcmpeqb %xmm5, %xmm0, %xmm2 + 0xc5, 0xf9, 0x74, 0xdc, //0x00001d5d vpcmpeqb %xmm4, %xmm0, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x00001d61 vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xfa, 0x7f, 0x04, 0x03, //0x00001d65 vmovdqu %xmm0, (%rbx,%rax) + 0xc5, 0xf9, 0x64, 0xc6, //0x00001d6a vpcmpgtb %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc1, //0x00001d6e vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xe9, 0xeb, 0xc0, //0x00001d72 vpor %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x00001d76 vpmovmskb %xmm0, %esi + 0x66, 0x85, 0xf6, //0x00001d7a testw %si, %si + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00001d7d jne LBB5_108 + 0x48, 0x83, 0xc0, 0x10, //0x00001d83 addq $16, %rax + 0x49, 0x8d, 0x74, 0x0a, 0xf0, //0x00001d87 leaq $-16(%r10,%rcx), %rsi + 0x48, 0x83, 0xc1, 0xf0, //0x00001d8c addq $-16, %rcx + 0x48, 0x83, 0xfe, 0x1f, //0x00001d90 cmpq $31, %rsi + 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x00001d94 jg LBB5_105 + 0x48, 0x01, 0xc7, //0x00001d9a addq %rax, %rdi + 0x49, 0x29, 0xc2, //0x00001d9d subq %rax, %r10 + 0x48, 0x01, 0xc3, //0x00001da0 addq %rax, %rbx + 0x49, 0x83, 0xfa, 0x08, //0x00001da3 cmpq $8, %r10 + 0x0f, 0x8d, 0x97, 0xfd, 0xff, 0xff, //0x00001da7 jge LBB5_94 + 0xe9, 0x17, 0xfe, 0xff, 0xff, //0x00001dad jmp LBB5_97 + //0x00001db2 LBB5_108 + 0x0f, 0xb7, 0xce, //0x00001db2 movzwl %si, %ecx + 0x0f, 0xbc, 0xc9, //0x00001db5 bsfl %ecx, %ecx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00001db8 jmp LBB5_110 + //0x00001dbd LBB5_109 + 0x0f, 0xbc, 0xce, //0x00001dbd bsfl %esi, %ecx + //0x00001dc0 LBB5_110 + 0x48, 0x01, 0xcf, //0x00001dc0 addq %rcx, %rdi + 0x48, 0x01, 0xc7, //0x00001dc3 addq %rax, %rdi + 0x49, 0x29, 0xca, //0x00001dc6 subq %rcx, %r10 + 0x49, 0x29, 0xc2, //0x00001dc9 subq %rax, %r10 + 0x48, 0x01, 0xcb, //0x00001dcc addq %rcx, %rbx + //0x00001dcf LBB5_111 + 0x48, 0x01, 0xc3, //0x00001dcf addq %rax, %rbx + //0x00001dd2 LBB5_112 + 0x8a, 0x07, //0x00001dd2 movb (%rdi), %al + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001dd4 .p2align 4, 0x90 + //0x00001de0 LBB5_113 + 0x48, 0x89, 0xd9, //0x00001de0 movq %rbx, %rcx + 0x0f, 0xb6, 0xc0, //0x00001de3 movzbl %al, %eax + 0x48, 0xc1, 0xe0, 0x04, //0x00001de6 shlq $4, %rax + 0x49, 0x63, 0x1c, 0x00, //0x00001dea movslq (%r8,%rax), %rbx + 0x49, 0x8b, 0x44, 0x00, 0x08, //0x00001dee movq $8(%r8,%rax), %rax + 0x48, 0x89, 0x01, //0x00001df3 movq %rax, (%rcx) + 0x48, 0x01, 0xcb, //0x00001df6 addq %rcx, %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00001df9 cmpq $2, %r10 + 0x0f, 0x8c, 0x41, 0x00, 0x00, 0x00, //0x00001dfd jl LBB5_117 + 0x49, 0xff, 0xca, //0x00001e03 decq %r10 + 0x0f, 0xb6, 0x47, 0x01, //0x00001e06 movzbl $1(%rdi), %eax + 0x48, 0xff, 0xc7, //0x00001e0a incq %rdi + 0x42, 0x80, 0x3c, 0x08, 0x00, //0x00001e0d cmpb $0, (%rax,%r9) + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00001e12 jne LBB5_113 + 0xe9, 0x13, 0xfd, 0xff, 0xff, //0x00001e18 jmp LBB5_87 + //0x00001e1d LBB5_115 + 0x0f, 0xbc, 0xc0, //0x00001e1d bsfl %eax, %eax + 0x48, 0x01, 0xc7, //0x00001e20 addq %rax, %rdi + 0x49, 0x29, 0xc2, //0x00001e23 subq %rax, %r10 + 0xe9, 0xa4, 0xff, 0xff, 0xff, //0x00001e26 jmp LBB5_111 + //0x00001e2b LBB5_116 + 0x0f, 0xbc, 0xc0, //0x00001e2b bsfl %eax, %eax + 0x48, 0x8d, 0x48, 0x04, //0x00001e2e leaq $4(%rax), %rcx + 0x48, 0x8d, 0x7c, 0x07, 0x04, //0x00001e32 leaq $4(%rdi,%rax), %rdi + 0x49, 0x29, 0xca, //0x00001e37 subq %rcx, %r10 + 0x48, 0x8d, 0x5c, 0x03, 0x04, //0x00001e3a leaq $4(%rbx,%rax), %rbx + 0xe9, 0x8e, 0xff, 0xff, 0xff, //0x00001e3f jmp LBB5_112 + //0x00001e44 LBB5_117 + 0x48, 0x29, 0xd3, //0x00001e44 subq %rdx, %rbx + 0x49, 0x89, 0x1f, //0x00001e47 movq %rbx, (%r15) + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00001e4a jmp LBB5_121 + //0x00001e4f LBB5_118 + 0x49, 0x29, 0xd4, //0x00001e4f subq %rdx, %r12 + 0x4d, 0x89, 0x27, //0x00001e52 movq %r12, (%r15) + 0x49, 0x29, 0xfb, //0x00001e55 subq %rdi, %r11 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00001e58 jmp LBB5_120 + //0x00001e5d LBB5_119 + 0x49, 0x29, 0xd4, //0x00001e5d subq %rdx, %r12 + 0x4d, 0x89, 0x27, //0x00001e60 movq %r12, (%r15) + 0x49, 0xf7, 0xd3, //0x00001e63 notq %r11 + 0x49, 0x01, 0xfb, //0x00001e66 addq %rdi, %r11 + //0x00001e69 LBB5_120 + 0x4d, 0x89, 0xde, //0x00001e69 movq %r11, %r14 + //0x00001e6c LBB5_121 + 0x4c, 0x89, 0xf0, //0x00001e6c movq %r14, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00001e6f addq $8, %rsp + 0x5b, //0x00001e73 popq %rbx + 0x41, 0x5c, //0x00001e74 popq %r12 + 0x41, 0x5d, //0x00001e76 popq %r13 + 0x41, 0x5e, //0x00001e78 popq %r14 + 0x41, 0x5f, //0x00001e7a popq %r15 + 0x5d, //0x00001e7c popq %rbp + 0xc5, 0xf8, 0x77, //0x00001e7d vzeroupper + 0xc3, //0x00001e80 retq + //0x00001e81 LBB5_122 + 0x49, 0x29, 0xd4, //0x00001e81 subq %rdx, %r12 + 0x49, 0xf7, 0xd2, //0x00001e84 notq %r10 + 0x4d, 0x01, 0xd4, //0x00001e87 addq %r10, %r12 + 0x4d, 0x89, 0x27, //0x00001e8a movq %r12, (%r15) + 0x49, 0x29, 0xfb, //0x00001e8d subq %rdi, %r11 + 0x4d, 0x01, 0xd3, //0x00001e90 addq %r10, %r11 + 0x49, 0xf7, 0xd3, //0x00001e93 notq %r11 + 0xe9, 0xce, 0xff, 0xff, 0xff, //0x00001e96 jmp LBB5_120 + 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e9b .p2align 5, 0x00 + //0x00001ea0 LCPI6_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001ea0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001eb0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00001ec0 .p2align 4, 0x00 + //0x00001ec0 LCPI6_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001ec0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00001ed0 .p2align 4, 0x90 + //0x00001ed0 _unquote + 0x55, //0x00001ed0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001ed1 movq %rsp, %rbp + 0x41, 0x57, //0x00001ed4 pushq %r15 + 0x41, 0x56, //0x00001ed6 pushq %r14 + 0x41, 0x55, //0x00001ed8 pushq %r13 + 0x41, 0x54, //0x00001eda pushq %r12 + 0x53, //0x00001edc pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x00001edd subq $24, %rsp + 0x48, 0x85, 0xf6, //0x00001ee1 testq %rsi, %rsi + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00001ee4 je LBB6_2 + 0x48, 0x89, 0x4d, 0xd0, //0x00001eea movq %rcx, $-48(%rbp) + 0x45, 0x89, 0xc2, //0x00001eee movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x00001ef1 andl $1, %r10d + 0xc5, 0xfd, 0x6f, 0x0d, 0xa3, 0xff, 0xff, 0xff, //0x00001ef5 vmovdqa $-93(%rip), %ymm1 /* LCPI6_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xbb, 0xff, 0xff, 0xff, //0x00001efd vmovdqa $-69(%rip), %xmm2 /* LCPI6_1+0(%rip) */ + 0x49, 0x89, 0xf9, //0x00001f05 movq %rdi, %r9 + 0x49, 0x89, 0xf5, //0x00001f08 movq %rsi, %r13 + 0x48, 0x89, 0xd0, //0x00001f0b movq %rdx, %rax + 0xe9, 0x59, 0x00, 0x00, 0x00, //0x00001f0e jmp LBB6_8 + //0x00001f13 LBB6_2 + 0x45, 0x31, 0xed, //0x00001f13 xorl %r13d, %r13d + 0x48, 0x89, 0xd0, //0x00001f16 movq %rdx, %rax + //0x00001f19 LBB6_3 + 0x4c, 0x01, 0xe8, //0x00001f19 addq %r13, %rax + 0x48, 0x29, 0xd0, //0x00001f1c subq %rdx, %rax + //0x00001f1f LBB6_4 + 0x48, 0x83, 0xc4, 0x18, //0x00001f1f addq $24, %rsp + 0x5b, //0x00001f23 popq %rbx + 0x41, 0x5c, //0x00001f24 popq %r12 + 0x41, 0x5d, //0x00001f26 popq %r13 + 0x41, 0x5e, //0x00001f28 popq %r14 + 0x41, 0x5f, //0x00001f2a popq %r15 + 0x5d, //0x00001f2c popq %rbp + 0xc5, 0xf8, 0x77, //0x00001f2d vzeroupper + 0xc3, //0x00001f30 retq + //0x00001f31 LBB6_5 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f31 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001f36 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001f39 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00001f3c orb $-64, %cl + 0x88, 0x08, //0x00001f3f movb %cl, (%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001f41 andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001f45 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x01, //0x00001f49 movb %r15b, $1(%rax) + 0x48, 0x83, 0xc0, 0x02, //0x00001f4d addq $2, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001f51 .p2align 4, 0x90 + //0x00001f60 LBB6_6 + 0x4d, 0x89, 0xf5, //0x00001f60 movq %r14, %r13 + //0x00001f63 LBB6_7 + 0x4d, 0x85, 0xed, //0x00001f63 testq %r13, %r13 + 0x0f, 0x84, 0x9d, 0x07, 0x00, 0x00, //0x00001f66 je LBB6_101 + //0x00001f6c LBB6_8 + 0x41, 0x80, 0x39, 0x5c, //0x00001f6c cmpb $92, (%r9) + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x00001f70 jne LBB6_10 + 0x31, 0xdb, //0x00001f76 xorl %ebx, %ebx + 0xe9, 0x43, 0x01, 0x00, 0x00, //0x00001f78 jmp LBB6_24 + 0x90, 0x90, 0x90, //0x00001f7d .p2align 4, 0x90 + //0x00001f80 LBB6_10 + 0x4d, 0x89, 0xec, //0x00001f80 movq %r13, %r12 + 0x49, 0x89, 0xc7, //0x00001f83 movq %rax, %r15 + 0x4d, 0x89, 0xce, //0x00001f86 movq %r9, %r14 + 0x49, 0x83, 0xfd, 0x20, //0x00001f89 cmpq $32, %r13 + 0x0f, 0x8c, 0x3e, 0x00, 0x00, 0x00, //0x00001f8d jl LBB6_14 + 0x4d, 0x89, 0xce, //0x00001f93 movq %r9, %r14 + 0x49, 0x89, 0xc7, //0x00001f96 movq %rax, %r15 + 0x4d, 0x89, 0xec, //0x00001f99 movq %r13, %r12 + 0x90, 0x90, 0x90, 0x90, //0x00001f9c .p2align 4, 0x90 + //0x00001fa0 LBB6_12 + 0xc4, 0xc1, 0x7e, 0x6f, 0x06, //0x00001fa0 vmovdqu (%r14), %ymm0 + 0xc4, 0xc1, 0x7e, 0x7f, 0x07, //0x00001fa5 vmovdqu %ymm0, (%r15) + 0xc5, 0xfd, 0x74, 0xc1, //0x00001faa vpcmpeqb %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xd8, //0x00001fae vpmovmskb %ymm0, %ebx + 0x85, 0xdb, //0x00001fb2 testl %ebx, %ebx + 0x0f, 0x85, 0xc2, 0x00, 0x00, 0x00, //0x00001fb4 jne LBB6_22 + 0x49, 0x83, 0xc6, 0x20, //0x00001fba addq $32, %r14 + 0x49, 0x83, 0xc7, 0x20, //0x00001fbe addq $32, %r15 + 0x49, 0x83, 0xfc, 0x3f, //0x00001fc2 cmpq $63, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xe0, //0x00001fc6 leaq $-32(%r12), %r12 + 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x00001fcb jg LBB6_12 + //0x00001fd1 LBB6_14 + 0xc5, 0xf8, 0x77, //0x00001fd1 vzeroupper + 0xc5, 0xf9, 0x6f, 0x15, 0xe4, 0xfe, 0xff, 0xff, //0x00001fd4 vmovdqa $-284(%rip), %xmm2 /* LCPI6_1+0(%rip) */ + 0x49, 0x83, 0xfc, 0x10, //0x00001fdc cmpq $16, %r12 + 0x0f, 0x8c, 0x3c, 0x00, 0x00, 0x00, //0x00001fe0 jl LBB6_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001fe6 .p2align 4, 0x90 + //0x00001ff0 LBB6_15 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00001ff0 vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x07, //0x00001ff5 vmovdqu %xmm0, (%r15) + 0xc5, 0xf9, 0x74, 0xc2, //0x00001ffa vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00001ffe vpmovmskb %xmm0, %ebx + 0x66, 0x85, 0xdb, //0x00002002 testw %bx, %bx + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x00002005 jne LBB6_23 + 0x49, 0x83, 0xc6, 0x10, //0x0000200b addq $16, %r14 + 0x49, 0x83, 0xc7, 0x10, //0x0000200f addq $16, %r15 + 0x49, 0x83, 0xfc, 0x1f, //0x00002013 cmpq $31, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xf0, //0x00002017 leaq $-16(%r12), %r12 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x0000201c jg LBB6_15 + //0x00002022 LBB6_17 + 0x4d, 0x85, 0xe4, //0x00002022 testq %r12, %r12 + 0x0f, 0x84, 0xee, 0xfe, 0xff, 0xff, //0x00002025 je LBB6_3 + 0x31, 0xdb, //0x0000202b xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x0d, 0x6b, 0xfe, 0xff, 0xff, //0x0000202d vmovdqa $-405(%rip), %ymm1 /* LCPI6_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002035 .p2align 4, 0x90 + //0x00002040 LBB6_19 + 0x45, 0x0f, 0xb6, 0x1c, 0x1e, //0x00002040 movzbl (%r14,%rbx), %r11d + 0x41, 0x80, 0xfb, 0x5c, //0x00002045 cmpb $92, %r11b + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00002049 je LBB6_21 + 0x45, 0x88, 0x1c, 0x1f, //0x0000204f movb %r11b, (%r15,%rbx) + 0x48, 0xff, 0xc3, //0x00002053 incq %rbx + 0x49, 0x39, 0xdc, //0x00002056 cmpq %rbx, %r12 + 0x0f, 0x85, 0xe1, 0xff, 0xff, 0xff, //0x00002059 jne LBB6_19 + 0xe9, 0xb5, 0xfe, 0xff, 0xff, //0x0000205f jmp LBB6_3 + //0x00002064 LBB6_21 + 0x49, 0x01, 0xde, //0x00002064 addq %rbx, %r14 + 0x4d, 0x29, 0xce, //0x00002067 subq %r9, %r14 + 0x4c, 0x89, 0xf3, //0x0000206a movq %r14, %rbx + 0x48, 0x83, 0xfb, 0xff, //0x0000206d cmpq $-1, %rbx + 0x0f, 0x85, 0x49, 0x00, 0x00, 0x00, //0x00002071 jne LBB6_24 + 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x00002077 jmp LBB6_3 + //0x0000207c LBB6_22 + 0x48, 0x63, 0xdb, //0x0000207c movslq %ebx, %rbx + 0x4d, 0x29, 0xce, //0x0000207f subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xdb, //0x00002082 bsfq %rbx, %rbx + 0x4c, 0x01, 0xf3, //0x00002086 addq %r14, %rbx + 0x48, 0x83, 0xfb, 0xff, //0x00002089 cmpq $-1, %rbx + 0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x0000208d jne LBB6_24 + 0xe9, 0x81, 0xfe, 0xff, 0xff, //0x00002093 jmp LBB6_3 + //0x00002098 LBB6_23 + 0x0f, 0xb7, 0xdb, //0x00002098 movzwl %bx, %ebx + 0x4d, 0x29, 0xce, //0x0000209b subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xdb, //0x0000209e bsfq %rbx, %rbx + 0x4c, 0x01, 0xf3, //0x000020a2 addq %r14, %rbx + 0xc5, 0xfd, 0x6f, 0x0d, 0xf3, 0xfd, 0xff, 0xff, //0x000020a5 vmovdqa $-525(%rip), %ymm1 /* LCPI6_0+0(%rip) */ + 0x48, 0x83, 0xfb, 0xff, //0x000020ad cmpq $-1, %rbx + 0x0f, 0x84, 0x62, 0xfe, 0xff, 0xff, //0x000020b1 je LBB6_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000020b7 .p2align 4, 0x90 + //0x000020c0 LBB6_24 + 0x48, 0x8d, 0x4b, 0x02, //0x000020c0 leaq $2(%rbx), %rcx + 0x49, 0x29, 0xcd, //0x000020c4 subq %rcx, %r13 + 0x0f, 0x88, 0x10, 0x06, 0x00, 0x00, //0x000020c7 js LBB6_99 + 0x4d, 0x8d, 0x4c, 0x19, 0x02, //0x000020cd leaq $2(%r9,%rbx), %r9 + 0x4d, 0x85, 0xd2, //0x000020d2 testq %r10, %r10 + 0x0f, 0x85, 0x09, 0x04, 0x00, 0x00, //0x000020d5 jne LBB6_67 + //0x000020db LBB6_26 + 0x48, 0x01, 0xd8, //0x000020db addq %rbx, %rax + 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x000020de movzbl $-1(%r9), %ecx + 0x48, 0x8d, 0x1d, 0xa6, 0xf3, 0x00, 0x00, //0x000020e3 leaq $62374(%rip), %rbx /* __UnquoteTab+0(%rip) */ + 0x8a, 0x1c, 0x19, //0x000020ea movb (%rcx,%rbx), %bl + 0x80, 0xfb, 0xff, //0x000020ed cmpb $-1, %bl + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000020f0 je LBB6_29 + 0x84, 0xdb, //0x000020f6 testb %bl, %bl + 0x0f, 0x84, 0xf2, 0x05, 0x00, 0x00, //0x000020f8 je LBB6_100 + 0x88, 0x18, //0x000020fe movb %bl, (%rax) + 0x48, 0xff, 0xc0, //0x00002100 incq %rax + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x00002103 jmp LBB6_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002108 .p2align 4, 0x90 + //0x00002110 LBB6_29 + 0x49, 0x83, 0xfd, 0x03, //0x00002110 cmpq $3, %r13 + 0x0f, 0x8e, 0xc3, 0x05, 0x00, 0x00, //0x00002114 jle LBB6_99 + 0x45, 0x8b, 0x31, //0x0000211a movl (%r9), %r14d + 0x45, 0x89, 0xf7, //0x0000211d movl %r14d, %r15d + 0x41, 0xf7, 0xd7, //0x00002120 notl %r15d + 0x41, 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002123 leal $-808464432(%r14), %ecx + 0x41, 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000212a andl $-2139062144, %r15d + 0x41, 0x85, 0xcf, //0x00002131 testl %ecx, %r15d + 0x0f, 0x85, 0xe7, 0x04, 0x00, 0x00, //0x00002134 jne LBB6_90 + 0x41, 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x0000213a leal $421075225(%r14), %ecx + 0x44, 0x09, 0xf1, //0x00002141 orl %r14d, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00002144 testl $-2139062144, %ecx + 0x0f, 0x85, 0xd1, 0x04, 0x00, 0x00, //0x0000214a jne LBB6_90 + 0x44, 0x89, 0xf3, //0x00002150 movl %r14d, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002153 andl $2139062143, %ebx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002159 movl $-1061109568, %ecx + 0x29, 0xd9, //0x0000215e subl %ebx, %ecx + 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x00002160 leal $1179010630(%rbx), %r11d + 0x44, 0x21, 0xf9, //0x00002167 andl %r15d, %ecx + 0x44, 0x85, 0xd9, //0x0000216a testl %r11d, %ecx + 0x0f, 0x85, 0xae, 0x04, 0x00, 0x00, //0x0000216d jne LBB6_90 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002173 movl $-522133280, %ecx + 0x29, 0xd9, //0x00002178 subl %ebx, %ecx + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000217a addl $960051513, %ebx + 0x41, 0x21, 0xcf, //0x00002180 andl %ecx, %r15d + 0x41, 0x85, 0xdf, //0x00002183 testl %ebx, %r15d + 0x0f, 0x85, 0x95, 0x04, 0x00, 0x00, //0x00002186 jne LBB6_90 + 0x41, 0x0f, 0xce, //0x0000218c bswapl %r14d + 0x44, 0x89, 0xf1, //0x0000218f movl %r14d, %ecx + 0xc1, 0xe9, 0x04, //0x00002192 shrl $4, %ecx + 0xf7, 0xd1, //0x00002195 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002197 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000219d leal (%rcx,%rcx,8), %ecx + 0x41, 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x000021a0 andl $252645135, %r14d + 0x41, 0x01, 0xce, //0x000021a7 addl %ecx, %r14d + 0x44, 0x89, 0xf1, //0x000021aa movl %r14d, %ecx + 0xc1, 0xe9, 0x04, //0x000021ad shrl $4, %ecx + 0x44, 0x09, 0xf1, //0x000021b0 orl %r14d, %ecx + 0x44, 0x0f, 0xb6, 0xf9, //0x000021b3 movzbl %cl, %r15d + 0xc1, 0xe9, 0x08, //0x000021b7 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000021ba andl $65280, %ecx + 0x41, 0x09, 0xcf, //0x000021c0 orl %ecx, %r15d + 0x4d, 0x8d, 0x75, 0xfc, //0x000021c3 leaq $-4(%r13), %r14 + 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x000021c7 cmpl $128, %r15d + 0x0f, 0x82, 0x61, 0x03, 0x00, 0x00, //0x000021ce jb LBB6_75 + 0x45, 0x31, 0xe4, //0x000021d4 xorl %r12d, %r12d + 0x4d, 0x85, 0xd2, //0x000021d7 testq %r10, %r10 + 0x0f, 0x84, 0x70, 0x01, 0x00, 0x00, //0x000021da je LBB6_51 + //0x000021e0 LBB6_36 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x000021e0 cmpl $2048, %r15d + 0x0f, 0x82, 0x44, 0xfd, 0xff, 0xff, //0x000021e7 jb LBB6_5 + 0x44, 0x89, 0xf9, //0x000021ed movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x000021f0 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x000021f6 cmpl $55296, %ecx + 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x000021fc jne LBB6_65 + 0x4d, 0x85, 0xf6, //0x00002202 testq %r14, %r14 + 0x0f, 0x8e, 0x61, 0x03, 0x00, 0x00, //0x00002205 jle LBB6_80 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x0000220b cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0x64, 0x03, 0x00, 0x00, //0x00002211 jne LBB6_81 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00002217 cmpl $56319, %r15d + 0x0f, 0x87, 0x2a, 0x03, 0x00, 0x00, //0x0000221e ja LBB6_78 + 0x49, 0x83, 0xfe, 0x07, //0x00002224 cmpq $7, %r14 + 0x0f, 0x8c, 0x20, 0x03, 0x00, 0x00, //0x00002228 jl LBB6_78 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x0000222e cmpb $92, $5(%r9,%r12) + 0x0f, 0x85, 0x14, 0x03, 0x00, 0x00, //0x00002234 jne LBB6_78 + 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x0000223a cmpb $117, $6(%r9,%r12) + 0x0f, 0x85, 0x08, 0x03, 0x00, 0x00, //0x00002240 jne LBB6_78 + 0x47, 0x8b, 0x5c, 0x21, 0x07, //0x00002246 movl $7(%r9,%r12), %r11d + 0x44, 0x89, 0xdb, //0x0000224b movl %r11d, %ebx + 0xf7, 0xd3, //0x0000224e notl %ebx + 0x41, 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002250 leal $-808464432(%r11), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00002257 andl $-2139062144, %ebx + 0x89, 0x5d, 0xcc, //0x0000225d movl %ebx, $-52(%rbp) + 0x85, 0xcb, //0x00002260 testl %ecx, %ebx + 0x0f, 0x85, 0xbe, 0x04, 0x00, 0x00, //0x00002262 jne LBB6_104 + 0x41, 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x00002268 leal $421075225(%r11), %ecx + 0x44, 0x09, 0xd9, //0x0000226f orl %r11d, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00002272 testl $-2139062144, %ecx + 0x0f, 0x85, 0xa8, 0x04, 0x00, 0x00, //0x00002278 jne LBB6_104 + 0x44, 0x89, 0xdb, //0x0000227e movl %r11d, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002281 andl $2139062143, %ebx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002287 movl $-1061109568, %ecx + 0x29, 0xd9, //0x0000228c subl %ebx, %ecx + 0x4c, 0x89, 0x5d, 0xc0, //0x0000228e movq %r11, $-64(%rbp) + 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x00002292 leal $1179010630(%rbx), %r11d + 0x23, 0x4d, 0xcc, //0x00002299 andl $-52(%rbp), %ecx + 0x44, 0x85, 0xd9, //0x0000229c testl %r11d, %ecx + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000229f movq $-64(%rbp), %r11 + 0x0f, 0x85, 0x7d, 0x04, 0x00, 0x00, //0x000022a3 jne LBB6_104 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x000022a9 movl $-522133280, %ecx + 0x29, 0xd9, //0x000022ae subl %ebx, %ecx + 0x89, 0x4d, 0xc8, //0x000022b0 movl %ecx, $-56(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x000022b3 addl $960051513, %ebx + 0x8b, 0x4d, 0xcc, //0x000022b9 movl $-52(%rbp), %ecx + 0x23, 0x4d, 0xc8, //0x000022bc andl $-56(%rbp), %ecx + 0x85, 0xd9, //0x000022bf testl %ebx, %ecx + 0x0f, 0x85, 0x5f, 0x04, 0x00, 0x00, //0x000022c1 jne LBB6_104 + 0x41, 0x0f, 0xcb, //0x000022c7 bswapl %r11d + 0x44, 0x89, 0xd9, //0x000022ca movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x000022cd shrl $4, %ecx + 0xf7, 0xd1, //0x000022d0 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000022d2 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000022d8 leal (%rcx,%rcx,8), %ecx + 0x41, 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x000022db andl $252645135, %r11d + 0x41, 0x01, 0xcb, //0x000022e2 addl %ecx, %r11d + 0x44, 0x89, 0xd9, //0x000022e5 movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x000022e8 shrl $4, %ecx + 0x44, 0x09, 0xd9, //0x000022eb orl %r11d, %ecx + 0x89, 0xcb, //0x000022ee movl %ecx, %ebx + 0xc1, 0xeb, 0x08, //0x000022f0 shrl $8, %ebx + 0x81, 0xe3, 0x00, 0xff, 0x00, 0x00, //0x000022f3 andl $65280, %ebx + 0x44, 0x0f, 0xb6, 0xd9, //0x000022f9 movzbl %cl, %r11d + 0x41, 0x09, 0xdb, //0x000022fd orl %ebx, %r11d + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00002300 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00002306 cmpl $14417920, %ecx + 0x0f, 0x84, 0x97, 0x02, 0x00, 0x00, //0x0000230c je LBB6_85 + 0x41, 0xf6, 0xc0, 0x02, //0x00002312 testb $2, %r8b + 0x0f, 0x84, 0x1d, 0x05, 0x00, 0x00, //0x00002316 je LBB6_119 + 0x49, 0x83, 0xc6, 0xf9, //0x0000231c addq $-7, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00002320 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00002325 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00002329 addq $3, %rax + 0x49, 0x83, 0xc4, 0x07, //0x0000232d addq $7, %r12 + 0x45, 0x89, 0xdf, //0x00002331 movl %r11d, %r15d + 0x41, 0x83, 0xfb, 0x7f, //0x00002334 cmpl $127, %r11d + 0x0f, 0x87, 0xa2, 0xfe, 0xff, 0xff, //0x00002338 ja LBB6_36 + 0xe9, 0x59, 0x01, 0x00, 0x00, //0x0000233e jmp LBB6_64 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002343 .p2align 4, 0x90 + //0x00002350 LBB6_51 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00002350 cmpl $2048, %r15d + 0x0f, 0x82, 0xd4, 0xfb, 0xff, 0xff, //0x00002357 jb LBB6_5 + 0x44, 0x89, 0xf9, //0x0000235d movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00002360 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00002366 cmpl $55296, %ecx + 0x0f, 0x85, 0x3e, 0x01, 0x00, 0x00, //0x0000236c jne LBB6_65 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00002372 cmpl $56319, %r15d + 0x0f, 0x87, 0xc5, 0x01, 0x00, 0x00, //0x00002379 ja LBB6_77 + 0x49, 0x83, 0xfe, 0x06, //0x0000237f cmpq $6, %r14 + 0x0f, 0x8c, 0xbb, 0x01, 0x00, 0x00, //0x00002383 jl LBB6_77 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00002389 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0xaf, 0x01, 0x00, 0x00, //0x0000238f jne LBB6_77 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x00002395 cmpb $117, $5(%r9,%r12) + 0x0f, 0x85, 0xa3, 0x01, 0x00, 0x00, //0x0000239b jne LBB6_77 + 0x47, 0x8b, 0x5c, 0x21, 0x06, //0x000023a1 movl $6(%r9,%r12), %r11d + 0x44, 0x89, 0xdb, //0x000023a6 movl %r11d, %ebx + 0xf7, 0xd3, //0x000023a9 notl %ebx + 0x41, 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x000023ab leal $-808464432(%r11), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x000023b2 andl $-2139062144, %ebx + 0x89, 0x5d, 0xcc, //0x000023b8 movl %ebx, $-52(%rbp) + 0x85, 0xcb, //0x000023bb testl %ecx, %ebx + 0x0f, 0x85, 0x59, 0x03, 0x00, 0x00, //0x000023bd jne LBB6_103 + 0x41, 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x000023c3 leal $421075225(%r11), %ecx + 0x44, 0x09, 0xd9, //0x000023ca orl %r11d, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000023cd testl $-2139062144, %ecx + 0x0f, 0x85, 0x43, 0x03, 0x00, 0x00, //0x000023d3 jne LBB6_103 + 0x44, 0x89, 0xdb, //0x000023d9 movl %r11d, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x000023dc andl $2139062143, %ebx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000023e2 movl $-1061109568, %ecx + 0x29, 0xd9, //0x000023e7 subl %ebx, %ecx + 0x4c, 0x89, 0x5d, 0xc0, //0x000023e9 movq %r11, $-64(%rbp) + 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x000023ed leal $1179010630(%rbx), %r11d + 0x23, 0x4d, 0xcc, //0x000023f4 andl $-52(%rbp), %ecx + 0x44, 0x85, 0xd9, //0x000023f7 testl %r11d, %ecx + 0x4c, 0x8b, 0x5d, 0xc0, //0x000023fa movq $-64(%rbp), %r11 + 0x0f, 0x85, 0x18, 0x03, 0x00, 0x00, //0x000023fe jne LBB6_103 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002404 movl $-522133280, %ecx + 0x29, 0xd9, //0x00002409 subl %ebx, %ecx + 0x89, 0x4d, 0xc8, //0x0000240b movl %ecx, $-56(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000240e addl $960051513, %ebx + 0x8b, 0x4d, 0xcc, //0x00002414 movl $-52(%rbp), %ecx + 0x23, 0x4d, 0xc8, //0x00002417 andl $-56(%rbp), %ecx + 0x85, 0xd9, //0x0000241a testl %ebx, %ecx + 0x0f, 0x85, 0xfa, 0x02, 0x00, 0x00, //0x0000241c jne LBB6_103 + 0x41, 0x0f, 0xcb, //0x00002422 bswapl %r11d + 0x44, 0x89, 0xd9, //0x00002425 movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x00002428 shrl $4, %ecx + 0xf7, 0xd1, //0x0000242b notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000242d andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00002433 leal (%rcx,%rcx,8), %ecx + 0x41, 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002436 andl $252645135, %r11d + 0x41, 0x01, 0xcb, //0x0000243d addl %ecx, %r11d + 0x44, 0x89, 0xd9, //0x00002440 movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x00002443 shrl $4, %ecx + 0x44, 0x09, 0xd9, //0x00002446 orl %r11d, %ecx + 0x89, 0xcb, //0x00002449 movl %ecx, %ebx + 0xc1, 0xeb, 0x08, //0x0000244b shrl $8, %ebx + 0x81, 0xe3, 0x00, 0xff, 0x00, 0x00, //0x0000244e andl $65280, %ebx + 0x44, 0x0f, 0xb6, 0xd9, //0x00002454 movzbl %cl, %r11d + 0x41, 0x09, 0xdb, //0x00002458 orl %ebx, %r11d + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000245b andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00002461 cmpl $14417920, %ecx + 0x0f, 0x84, 0x2b, 0x01, 0x00, 0x00, //0x00002467 je LBB6_84 + 0x41, 0xf6, 0xc0, 0x02, //0x0000246d testb $2, %r8b + 0x0f, 0x84, 0xb8, 0x03, 0x00, 0x00, //0x00002471 je LBB6_118 + 0x49, 0x83, 0xc6, 0xfa, //0x00002477 addq $-6, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x0000247b movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00002480 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00002484 addq $3, %rax + 0x49, 0x83, 0xc4, 0x06, //0x00002488 addq $6, %r12 + 0x45, 0x89, 0xdf, //0x0000248c movl %r11d, %r15d + 0x41, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000248f cmpl $128, %r11d + 0x0f, 0x83, 0xb4, 0xfe, 0xff, 0xff, //0x00002496 jae LBB6_51 + //0x0000249c LBB6_64 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x0000249c leaq $4(%r9,%r12), %r9 + 0x45, 0x89, 0xdf, //0x000024a1 movl %r11d, %r15d + 0xe9, 0x90, 0x00, 0x00, 0x00, //0x000024a4 jmp LBB6_76 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024a9 .p2align 4, 0x90 + //0x000024b0 LBB6_65 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000024b0 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x000024b5 movl %r15d, %ecx + 0xc1, 0xe9, 0x0c, //0x000024b8 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x000024bb orb $-32, %cl + 0x88, 0x08, //0x000024be movb %cl, (%rax) + 0x44, 0x89, 0xf9, //0x000024c0 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x000024c3 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x000024c6 andb $63, %cl + 0x80, 0xc9, 0x80, //0x000024c9 orb $-128, %cl + 0x88, 0x48, 0x01, //0x000024cc movb %cl, $1(%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x000024cf andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x000024d3 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x02, //0x000024d7 movb %r15b, $2(%rax) + //0x000024db LBB6_66 + 0x48, 0x83, 0xc0, 0x03, //0x000024db addq $3, %rax + 0xe9, 0x7c, 0xfa, 0xff, 0xff, //0x000024df jmp LBB6_6 + //0x000024e4 LBB6_67 + 0x45, 0x85, 0xed, //0x000024e4 testl %r13d, %r13d + 0x0f, 0x84, 0xf0, 0x01, 0x00, 0x00, //0x000024e7 je LBB6_99 + 0x41, 0x80, 0x79, 0xff, 0x5c, //0x000024ed cmpb $92, $-1(%r9) + 0x0f, 0x85, 0x19, 0x02, 0x00, 0x00, //0x000024f2 jne LBB6_102 + 0x41, 0x80, 0x39, 0x5c, //0x000024f8 cmpb $92, (%r9) + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x000024fc jne LBB6_74 + 0x41, 0x83, 0xfd, 0x01, //0x00002502 cmpl $1, %r13d + 0x0f, 0x8e, 0xd1, 0x01, 0x00, 0x00, //0x00002506 jle LBB6_99 + 0x45, 0x8a, 0x59, 0x01, //0x0000250c movb $1(%r9), %r11b + 0x41, 0x80, 0xfb, 0x22, //0x00002510 cmpb $34, %r11b + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002514 je LBB6_73 + 0x41, 0x80, 0xfb, 0x5c, //0x0000251a cmpb $92, %r11b + 0x0f, 0x85, 0xd8, 0x02, 0x00, 0x00, //0x0000251e jne LBB6_114 + //0x00002524 LBB6_73 + 0x49, 0xff, 0xc1, //0x00002524 incq %r9 + 0x49, 0xff, 0xcd, //0x00002527 decq %r13 + //0x0000252a LBB6_74 + 0x49, 0xff, 0xc1, //0x0000252a incq %r9 + 0x49, 0xff, 0xcd, //0x0000252d decq %r13 + 0xe9, 0xa6, 0xfb, 0xff, 0xff, //0x00002530 jmp LBB6_26 + //0x00002535 LBB6_75 + 0x49, 0x83, 0xc1, 0x04, //0x00002535 addq $4, %r9 + //0x00002539 LBB6_76 + 0x44, 0x88, 0x38, //0x00002539 movb %r15b, (%rax) + 0x48, 0xff, 0xc0, //0x0000253c incq %rax + 0xe9, 0x1c, 0xfa, 0xff, 0xff, //0x0000253f jmp LBB6_6 + //0x00002544 LBB6_77 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00002544 leaq $4(%r9,%r12), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00002549 jmp LBB6_79 + //0x0000254e LBB6_78 + 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x0000254e leaq $5(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00002553 subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xfb, //0x00002556 addq $-5, %r13 + 0x4d, 0x89, 0xee, //0x0000255a movq %r13, %r14 + //0x0000255d LBB6_79 + 0x41, 0xf6, 0xc0, 0x02, //0x0000255d testb $2, %r8b + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00002561 jne LBB6_83 + 0xe9, 0xec, 0x02, 0x00, 0x00, //0x00002567 jmp LBB6_121 + //0x0000256c LBB6_80 + 0x41, 0xf6, 0xc0, 0x02, //0x0000256c testb $2, %r8b + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002570 jne LBB6_82 + 0xe9, 0x62, 0x01, 0x00, 0x00, //0x00002576 jmp LBB6_99 + //0x0000257b LBB6_81 + 0x41, 0xf6, 0xc0, 0x02, //0x0000257b testb $2, %r8b + 0x0f, 0x84, 0xe0, 0x02, 0x00, 0x00, //0x0000257f je LBB6_122 + //0x00002585 LBB6_82 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00002585 leaq $4(%r9,%r12), %r9 + //0x0000258a LBB6_83 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x0000258a movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x0000258f movb $-67, $2(%rax) + 0xe9, 0x43, 0xff, 0xff, 0xff, //0x00002593 jmp LBB6_66 + //0x00002598 LBB6_84 + 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00002598 leaq $10(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x0000259d subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf6, //0x000025a0 addq $-10, %r13 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x000025a4 jmp LBB6_86 + //0x000025a9 LBB6_85 + 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x000025a9 leaq $11(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x000025ae subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf5, //0x000025b1 addq $-11, %r13 + //0x000025b5 LBB6_86 + 0x41, 0xc1, 0xe7, 0x0a, //0x000025b5 shll $10, %r15d + 0x43, 0x8d, 0x9c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x000025b9 leal $-56613888(%r15,%r11), %ebx + 0x81, 0xfb, 0x00, 0x00, 0x11, 0x00, //0x000025c1 cmpl $1114112, %ebx + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x000025c7 jb LBB6_89 + 0x41, 0xf6, 0xc0, 0x02, //0x000025cd testb $2, %r8b + 0x0f, 0x84, 0x3e, 0x02, 0x00, 0x00, //0x000025d1 je LBB6_116 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x000025d7 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x000025dc movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x000025e0 addq $3, %rax + 0xe9, 0x7a, 0xf9, 0xff, 0xff, //0x000025e4 jmp LBB6_7 + //0x000025e9 LBB6_89 + 0x89, 0xd9, //0x000025e9 movl %ebx, %ecx + 0xc1, 0xe9, 0x12, //0x000025eb shrl $18, %ecx + 0x80, 0xc9, 0xf0, //0x000025ee orb $-16, %cl + 0x88, 0x08, //0x000025f1 movb %cl, (%rax) + 0x89, 0xd9, //0x000025f3 movl %ebx, %ecx + 0xc1, 0xe9, 0x0c, //0x000025f5 shrl $12, %ecx + 0x80, 0xe1, 0x3f, //0x000025f8 andb $63, %cl + 0x80, 0xc9, 0x80, //0x000025fb orb $-128, %cl + 0x88, 0x48, 0x01, //0x000025fe movb %cl, $1(%rax) + 0x89, 0xd9, //0x00002601 movl %ebx, %ecx + 0xc1, 0xe9, 0x06, //0x00002603 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00002606 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00002609 orb $-128, %cl + 0x88, 0x48, 0x02, //0x0000260c movb %cl, $2(%rax) + 0x80, 0xe3, 0x3f, //0x0000260f andb $63, %bl + 0x80, 0xcb, 0x80, //0x00002612 orb $-128, %bl + 0x88, 0x58, 0x03, //0x00002615 movb %bl, $3(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x00002618 addq $4, %rax + 0xe9, 0x42, 0xf9, 0xff, 0xff, //0x0000261c jmp LBB6_7 + //0x00002621 LBB6_90 + 0x4c, 0x89, 0xca, //0x00002621 movq %r9, %rdx + 0x48, 0x29, 0xfa, //0x00002624 subq %rdi, %rdx + 0x48, 0x8b, 0x7d, 0xd0, //0x00002627 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x17, //0x0000262b movq %rdx, (%rdi) + 0x41, 0x8a, 0x31, //0x0000262e movb (%r9), %sil + 0x8d, 0x4e, 0xd0, //0x00002631 leal $-48(%rsi), %ecx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002634 movq $-2, %rax + 0x80, 0xf9, 0x0a, //0x0000263b cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000263e jb LBB6_92 + 0x40, 0x80, 0xe6, 0xdf, //0x00002644 andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x00002648 addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x0000264c cmpb $5, %sil + 0x0f, 0x87, 0xc9, 0xf8, 0xff, 0xff, //0x00002650 ja LBB6_4 + //0x00002656 LBB6_92 + 0x48, 0x8d, 0x4a, 0x01, //0x00002656 leaq $1(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x0000265a movq %rcx, (%rdi) + 0x41, 0x8a, 0x71, 0x01, //0x0000265d movb $1(%r9), %sil + 0x8d, 0x4e, 0xd0, //0x00002661 leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x00002664 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002667 jb LBB6_94 + 0x40, 0x80, 0xe6, 0xdf, //0x0000266d andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x00002671 addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x00002675 cmpb $5, %sil + 0x0f, 0x87, 0xa0, 0xf8, 0xff, 0xff, //0x00002679 ja LBB6_4 + //0x0000267f LBB6_94 + 0x48, 0x8d, 0x4a, 0x02, //0x0000267f leaq $2(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x00002683 movq %rcx, (%rdi) + 0x41, 0x8a, 0x71, 0x02, //0x00002686 movb $2(%r9), %sil + 0x8d, 0x4e, 0xd0, //0x0000268a leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x0000268d cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002690 jb LBB6_96 + 0x40, 0x80, 0xe6, 0xdf, //0x00002696 andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x0000269a addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x0000269e cmpb $5, %sil + 0x0f, 0x87, 0x77, 0xf8, 0xff, 0xff, //0x000026a2 ja LBB6_4 + //0x000026a8 LBB6_96 + 0x48, 0x8d, 0x4a, 0x03, //0x000026a8 leaq $3(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000026ac movq %rcx, (%rdi) + 0x41, 0x8a, 0x71, 0x03, //0x000026af movb $3(%r9), %sil + 0x8d, 0x4e, 0xd0, //0x000026b3 leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x000026b6 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000026b9 jb LBB6_98 + 0x40, 0x80, 0xe6, 0xdf, //0x000026bf andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x000026c3 addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x000026c7 cmpb $5, %sil + 0x0f, 0x87, 0x4e, 0xf8, 0xff, 0xff, //0x000026cb ja LBB6_4 + //0x000026d1 LBB6_98 + 0x48, 0x83, 0xc2, 0x04, //0x000026d1 addq $4, %rdx + 0x48, 0x89, 0x17, //0x000026d5 movq %rdx, (%rdi) + 0xe9, 0x42, 0xf8, 0xff, 0xff, //0x000026d8 jmp LBB6_4 + //0x000026dd LBB6_99 + 0x48, 0x8b, 0x45, 0xd0, //0x000026dd movq $-48(%rbp), %rax + 0x48, 0x89, 0x30, //0x000026e1 movq %rsi, (%rax) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000026e4 movq $-1, %rax + 0xe9, 0x2f, 0xf8, 0xff, 0xff, //0x000026eb jmp LBB6_4 + //0x000026f0 LBB6_100 + 0x48, 0xf7, 0xd7, //0x000026f0 notq %rdi + 0x49, 0x01, 0xf9, //0x000026f3 addq %rdi, %r9 + 0x48, 0x8b, 0x45, 0xd0, //0x000026f6 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x000026fa movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x000026fd movq $-3, %rax + 0xe9, 0x16, 0xf8, 0xff, 0xff, //0x00002704 jmp LBB6_4 + //0x00002709 LBB6_101 + 0x45, 0x31, 0xed, //0x00002709 xorl %r13d, %r13d + 0xe9, 0x08, 0xf8, 0xff, 0xff, //0x0000270c jmp LBB6_3 + //0x00002711 LBB6_102 + 0x48, 0xf7, 0xd7, //0x00002711 notq %rdi + 0x49, 0x01, 0xf9, //0x00002714 addq %rdi, %r9 + 0xe9, 0xe6, 0x00, 0x00, 0x00, //0x00002717 jmp LBB6_115 + //0x0000271c LBB6_103 + 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x0000271c leaq $4(%r9,%r12), %rsi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002721 jmp LBB6_105 + //0x00002726 LBB6_104 + 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00002726 leaq $5(%r9,%r12), %rsi + //0x0000272b LBB6_105 + 0x48, 0x89, 0xf2, //0x0000272b movq %rsi, %rdx + 0x48, 0x29, 0xfa, //0x0000272e subq %rdi, %rdx + 0x48, 0x83, 0xc2, 0x02, //0x00002731 addq $2, %rdx + 0x48, 0x8b, 0x45, 0xd0, //0x00002735 movq $-48(%rbp), %rax + 0x48, 0x89, 0x10, //0x00002739 movq %rdx, (%rax) + 0x40, 0x8a, 0x7e, 0x02, //0x0000273c movb $2(%rsi), %dil + 0x8d, 0x4f, 0xd0, //0x00002740 leal $-48(%rdi), %ecx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002743 movq $-2, %rax + 0x80, 0xf9, 0x0a, //0x0000274a cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000274d jb LBB6_107 + 0x40, 0x80, 0xe7, 0xdf, //0x00002753 andb $-33, %dil + 0x40, 0x80, 0xc7, 0xbf, //0x00002757 addb $-65, %dil + 0x40, 0x80, 0xff, 0x05, //0x0000275b cmpb $5, %dil + 0x0f, 0x87, 0xba, 0xf7, 0xff, 0xff, //0x0000275f ja LBB6_4 + //0x00002765 LBB6_107 + 0x48, 0x8d, 0x4a, 0x01, //0x00002765 leaq $1(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xd0, //0x00002769 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x0000276d movq %rcx, (%rdi) + 0x40, 0x8a, 0x7e, 0x03, //0x00002770 movb $3(%rsi), %dil + 0x8d, 0x4f, 0xd0, //0x00002774 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00002777 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000277a jb LBB6_109 + 0x40, 0x80, 0xe7, 0xdf, //0x00002780 andb $-33, %dil + 0x40, 0x80, 0xc7, 0xbf, //0x00002784 addb $-65, %dil + 0x40, 0x80, 0xff, 0x05, //0x00002788 cmpb $5, %dil + 0x0f, 0x87, 0x8d, 0xf7, 0xff, 0xff, //0x0000278c ja LBB6_4 + //0x00002792 LBB6_109 + 0x48, 0x8d, 0x4a, 0x02, //0x00002792 leaq $2(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xd0, //0x00002796 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x0000279a movq %rcx, (%rdi) + 0x40, 0x8a, 0x7e, 0x04, //0x0000279d movb $4(%rsi), %dil + 0x8d, 0x4f, 0xd0, //0x000027a1 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x000027a4 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000027a7 jb LBB6_111 + 0x40, 0x80, 0xe7, 0xdf, //0x000027ad andb $-33, %dil + 0x40, 0x80, 0xc7, 0xbf, //0x000027b1 addb $-65, %dil + 0x40, 0x80, 0xff, 0x05, //0x000027b5 cmpb $5, %dil + 0x0f, 0x87, 0x60, 0xf7, 0xff, 0xff, //0x000027b9 ja LBB6_4 + //0x000027bf LBB6_111 + 0x48, 0x8d, 0x4a, 0x03, //0x000027bf leaq $3(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xd0, //0x000027c3 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000027c7 movq %rcx, (%rdi) + 0x40, 0x8a, 0x76, 0x05, //0x000027ca movb $5(%rsi), %sil + 0x8d, 0x4e, 0xd0, //0x000027ce leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x000027d1 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000027d4 jb LBB6_113 + 0x40, 0x80, 0xe6, 0xdf, //0x000027da andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x000027de addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x000027e2 cmpb $5, %sil + 0x0f, 0x87, 0x33, 0xf7, 0xff, 0xff, //0x000027e6 ja LBB6_4 + //0x000027ec LBB6_113 + 0x48, 0x83, 0xc2, 0x04, //0x000027ec addq $4, %rdx + 0x48, 0x8b, 0x4d, 0xd0, //0x000027f0 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x11, //0x000027f4 movq %rdx, (%rcx) + 0xe9, 0x23, 0xf7, 0xff, 0xff, //0x000027f7 jmp LBB6_4 + //0x000027fc LBB6_114 + 0x49, 0x29, 0xf9, //0x000027fc subq %rdi, %r9 + 0x49, 0xff, 0xc1, //0x000027ff incq %r9 + //0x00002802 LBB6_115 + 0x48, 0x8b, 0x45, 0xd0, //0x00002802 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002806 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002809 movq $-2, %rax + 0xe9, 0x0a, 0xf7, 0xff, 0xff, //0x00002810 jmp LBB6_4 + //0x00002815 LBB6_116 + 0x49, 0x29, 0xf9, //0x00002815 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0xfc, //0x00002818 addq $-4, %r9 + //0x0000281c LBB6_117 + 0x48, 0x8b, 0x45, 0xd0, //0x0000281c movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002820 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00002823 movq $-4, %rax + 0xe9, 0xf0, 0xf6, 0xff, 0xff, //0x0000282a jmp LBB6_4 + //0x0000282f LBB6_118 + 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000282f leaq $10(%r9,%r12), %rax + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002834 jmp LBB6_120 + //0x00002839 LBB6_119 + 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00002839 leaq $11(%r9,%r12), %rax + //0x0000283e LBB6_120 + 0x48, 0x29, 0xf8, //0x0000283e subq %rdi, %rax + 0x48, 0x83, 0xc0, 0xfc, //0x00002841 addq $-4, %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00002845 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00002849 movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000284c movq $-4, %rax + 0xe9, 0xc7, 0xf6, 0xff, 0xff, //0x00002853 jmp LBB6_4 + //0x00002858 LBB6_121 + 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x00002858 leaq $4(%r10,%rdi), %rax + 0x49, 0x29, 0xc1, //0x0000285d subq %rax, %r9 + 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x00002860 jmp LBB6_117 + //0x00002865 LBB6_122 + 0x4d, 0x01, 0xe1, //0x00002865 addq %r12, %r9 + 0x49, 0x29, 0xf9, //0x00002868 subq %rdi, %r9 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x0000286b jmp LBB6_117 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002870 .p2align 5, 0x00 + //0x00002880 LCPI7_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002880 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002890 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x000028a0 LCPI7_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000028a0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000028b0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x000028c0 LCPI7_2 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000028c0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000028d0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x000028e0 LCPI7_3 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000028e0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000028f0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x00002900 .p2align 4, 0x00 + //0x00002900 LCPI7_4 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002900 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00002910 LCPI7_5 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002910 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x00002920 LCPI7_6 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x00002920 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x00002930 LCPI7_7 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x00002930 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x00002940 .p2align 4, 0x90 + //0x00002940 _html_escape + 0x55, //0x00002940 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002941 movq %rsp, %rbp + 0x41, 0x57, //0x00002944 pushq %r15 + 0x41, 0x56, //0x00002946 pushq %r14 + 0x41, 0x55, //0x00002948 pushq %r13 + 0x41, 0x54, //0x0000294a pushq %r12 + 0x53, //0x0000294c pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x0000294d subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x00002951 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd7, //0x00002955 movq %rdx, %r15 + 0x48, 0x89, 0x55, 0xc8, //0x00002958 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x0000295c movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x00002960 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x00002963 testq %rsi, %rsi + 0x0f, 0x8e, 0xa8, 0x07, 0x00, 0x00, //0x00002966 jle LBB7_94 + 0x49, 0x89, 0xf2, //0x0000296c movq %rsi, %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x0000296f movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x00002973 movq (%rax), %r9 + 0xc5, 0xfd, 0x6f, 0x1d, 0x02, 0xff, 0xff, 0xff, //0x00002976 vmovdqa $-254(%rip), %ymm3 /* LCPI7_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x1a, 0xff, 0xff, 0xff, //0x0000297e vmovdqa $-230(%rip), %ymm4 /* LCPI7_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x32, 0xff, 0xff, 0xff, //0x00002986 vmovdqa $-206(%rip), %ymm5 /* LCPI7_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x4a, 0xff, 0xff, 0xff, //0x0000298e vmovdqa $-182(%rip), %ymm6 /* LCPI7_3+0(%rip) */ + 0x4c, 0x8d, 0x35, 0xf3, 0xeb, 0x00, 0x00, //0x00002996 leaq $60403(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ + 0x48, 0xbf, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000299d movabsq $12884901889, %rdi + 0x4c, 0x8b, 0x65, 0xd0, //0x000029a7 movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x7d, 0xc8, //0x000029ab movq $-56(%rbp), %r15 + 0x90, //0x000029af .p2align 4, 0x90 + //0x000029b0 LBB7_2 + 0x4d, 0x85, 0xc9, //0x000029b0 testq %r9, %r9 + 0x0f, 0x8e, 0x7a, 0x07, 0x00, 0x00, //0x000029b3 jle LBB7_96 + 0x49, 0x83, 0xfa, 0x1f, //0x000029b9 cmpq $31, %r10 + 0x0f, 0x9f, 0xc3, //0x000029bd setg %bl + 0x4c, 0x89, 0xc8, //0x000029c0 movq %r9, %rax + 0x4d, 0x89, 0xf8, //0x000029c3 movq %r15, %r8 + 0x4c, 0x89, 0xd6, //0x000029c6 movq %r10, %rsi + 0x4d, 0x89, 0xe5, //0x000029c9 movq %r12, %r13 + 0x49, 0x83, 0xf9, 0x20, //0x000029cc cmpq $32, %r9 + 0x0f, 0x8c, 0x7a, 0x00, 0x00, 0x00, //0x000029d0 jl LBB7_9 + 0x49, 0x83, 0xfa, 0x20, //0x000029d6 cmpq $32, %r10 + 0x0f, 0x8c, 0x70, 0x00, 0x00, 0x00, //0x000029da jl LBB7_9 + 0x4d, 0x89, 0xe5, //0x000029e0 movq %r12, %r13 + 0x4c, 0x89, 0xd6, //0x000029e3 movq %r10, %rsi + 0x4d, 0x89, 0xf8, //0x000029e6 movq %r15, %r8 + 0x4c, 0x89, 0xca, //0x000029e9 movq %r9, %rdx + 0x90, 0x90, 0x90, 0x90, //0x000029ec .p2align 4, 0x90 + //0x000029f0 LBB7_6 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000029f0 vmovdqu (%r13), %ymm0 + 0xc5, 0xfd, 0x74, 0xcb, //0x000029f6 vpcmpeqb %ymm3, %ymm0, %ymm1 + 0xc5, 0xfd, 0x74, 0xd4, //0x000029fa vpcmpeqb %ymm4, %ymm0, %ymm2 + 0xc5, 0xed, 0xeb, 0xc9, //0x000029fe vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xd5, //0x00002a02 vpor %ymm5, %ymm0, %ymm2 + 0xc5, 0xed, 0x74, 0xd6, //0x00002a06 vpcmpeqb %ymm6, %ymm2, %ymm2 + 0xc5, 0xf5, 0xeb, 0xca, //0x00002a0a vpor %ymm2, %ymm1, %ymm1 + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00002a0e vmovdqu %ymm0, (%r8) + 0xc5, 0xfd, 0xd7, 0xc1, //0x00002a13 vpmovmskb %ymm1, %eax + 0x85, 0xc0, //0x00002a17 testl %eax, %eax + 0x0f, 0x85, 0x01, 0x02, 0x00, 0x00, //0x00002a19 jne LBB7_19 + 0x49, 0x83, 0xc5, 0x20, //0x00002a1f addq $32, %r13 + 0x49, 0x83, 0xc0, 0x20, //0x00002a23 addq $32, %r8 + 0x48, 0x8d, 0x42, 0xe0, //0x00002a27 leaq $-32(%rdx), %rax + 0x48, 0x83, 0xfe, 0x3f, //0x00002a2b cmpq $63, %rsi + 0x0f, 0x9f, 0xc3, //0x00002a2f setg %bl + 0x48, 0x83, 0xfe, 0x40, //0x00002a32 cmpq $64, %rsi + 0x48, 0x8d, 0x76, 0xe0, //0x00002a36 leaq $-32(%rsi), %rsi + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00002a3a jl LBB7_9 + 0x48, 0x83, 0xfa, 0x3f, //0x00002a40 cmpq $63, %rdx + 0x48, 0x89, 0xc2, //0x00002a44 movq %rax, %rdx + 0x0f, 0x8f, 0xa3, 0xff, 0xff, 0xff, //0x00002a47 jg LBB7_6 + 0x90, 0x90, 0x90, //0x00002a4d .p2align 4, 0x90 + //0x00002a50 LBB7_9 + 0x84, 0xdb, //0x00002a50 testb %bl, %bl + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00002a52 je LBB7_13 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00002a58 vmovdqu (%r13), %ymm0 + 0xc5, 0xfd, 0x74, 0xcb, //0x00002a5e vpcmpeqb %ymm3, %ymm0, %ymm1 + 0xc5, 0xfd, 0x74, 0xd4, //0x00002a62 vpcmpeqb %ymm4, %ymm0, %ymm2 + 0xc5, 0xed, 0xeb, 0xc9, //0x00002a66 vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc5, //0x00002a6a vpor %ymm5, %ymm0, %ymm0 + 0xc5, 0xfd, 0x74, 0xc6, //0x00002a6e vpcmpeqb %ymm6, %ymm0, %ymm0 + 0xc5, 0xf5, 0xeb, 0xc0, //0x00002a72 vpor %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x00002a76 vpmovmskb %ymm0, %ecx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002a7a movabsq $4294967296, %rdx + 0x48, 0x09, 0xd1, //0x00002a84 orq %rdx, %rcx + 0x4c, 0x0f, 0xbc, 0xd9, //0x00002a87 bsfq %rcx, %r11 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00002a8b vmovdqu (%r13), %xmm0 + 0xc4, 0xe3, 0xf9, 0x16, 0xc1, 0x01, //0x00002a91 vpextrq $1, %xmm0, %rcx + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x00002a97 vmovq %xmm0, %rdx + 0x49, 0x39, 0xc3, //0x00002a9c cmpq %rax, %r11 + 0x0f, 0x8e, 0x92, 0x01, 0x00, 0x00, //0x00002a9f jle LBB7_20 + 0x48, 0x83, 0xf8, 0x10, //0x00002aa5 cmpq $16, %rax + 0x0f, 0x82, 0xd1, 0x01, 0x00, 0x00, //0x00002aa9 jb LBB7_23 + 0x49, 0x89, 0x10, //0x00002aaf movq %rdx, (%r8) + 0x49, 0x89, 0x48, 0x08, //0x00002ab2 movq %rcx, $8(%r8) + 0x4d, 0x8d, 0x5d, 0x10, //0x00002ab6 leaq $16(%r13), %r11 + 0x49, 0x83, 0xc0, 0x10, //0x00002aba addq $16, %r8 + 0x48, 0x8d, 0x70, 0xf0, //0x00002abe leaq $-16(%rax), %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00002ac2 cmpq $8, %rsi + 0x0f, 0x83, 0xc4, 0x01, 0x00, 0x00, //0x00002ac6 jae LBB7_24 + 0xe9, 0xd1, 0x01, 0x00, 0x00, //0x00002acc jmp LBB7_25 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ad1 .p2align 4, 0x90 + //0x00002ae0 LBB7_13 + 0x4c, 0x89, 0xf2, //0x00002ae0 movq %r14, %rdx + 0xc5, 0xf8, 0x77, //0x00002ae3 vzeroupper + 0x48, 0x83, 0xfe, 0x0f, //0x00002ae6 cmpq $15, %rsi + 0x41, 0x0f, 0x9f, 0xc6, //0x00002aea setg %r14b + 0x48, 0x83, 0xf8, 0x10, //0x00002aee cmpq $16, %rax + 0x0f, 0x8c, 0x22, 0x02, 0x00, 0x00, //0x00002af2 jl LBB7_30 + 0x48, 0x83, 0xfe, 0x10, //0x00002af8 cmpq $16, %rsi + 0xc5, 0xf9, 0x6f, 0x3d, 0xfc, 0xfd, 0xff, 0xff, //0x00002afc vmovdqa $-516(%rip), %xmm7 /* LCPI7_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x05, 0x04, 0xfe, 0xff, 0xff, //0x00002b04 vmovdqa $-508(%rip), %xmm8 /* LCPI7_5+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x0c, 0xfe, 0xff, 0xff, //0x00002b0c vmovdqa $-500(%rip), %xmm9 /* LCPI7_6+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x14, 0xfe, 0xff, 0xff, //0x00002b14 vmovdqa $-492(%rip), %xmm10 /* LCPI7_7+0(%rip) */ + 0x0f, 0x8c, 0x49, 0x02, 0x00, 0x00, //0x00002b1c jl LBB7_35 + 0xc5, 0xfd, 0x6f, 0x1d, 0x56, 0xfd, 0xff, 0xff, //0x00002b22 vmovdqa $-682(%rip), %ymm3 /* LCPI7_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x6e, 0xfd, 0xff, 0xff, //0x00002b2a vmovdqa $-658(%rip), %ymm4 /* LCPI7_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x86, 0xfd, 0xff, 0xff, //0x00002b32 vmovdqa $-634(%rip), %ymm5 /* LCPI7_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x9e, 0xfd, 0xff, 0xff, //0x00002b3a vmovdqa $-610(%rip), %ymm6 /* LCPI7_3+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002b42 .p2align 4, 0x90 + //0x00002b50 LBB7_16 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00002b50 vmovdqu (%r13), %xmm0 + 0xc5, 0xf9, 0x74, 0xcf, //0x00002b56 vpcmpeqb %xmm7, %xmm0, %xmm1 + 0xc5, 0xb9, 0x74, 0xd0, //0x00002b5a vpcmpeqb %xmm0, %xmm8, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00002b5e vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xb1, 0xeb, 0xd0, //0x00002b62 vpor %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd2, //0x00002b66 vpcmpeqb %xmm2, %xmm10, %xmm2 + 0xc5, 0xf1, 0xeb, 0xca, //0x00002b6a vpor %xmm2, %xmm1, %xmm1 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00002b6e vmovdqu %xmm0, (%r8) + 0xc5, 0xf9, 0xd7, 0xc9, //0x00002b73 vpmovmskb %xmm1, %ecx + 0x66, 0x85, 0xc9, //0x00002b77 testw %cx, %cx + 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x00002b7a jne LBB7_22 + 0x49, 0x83, 0xc5, 0x10, //0x00002b80 addq $16, %r13 + 0x49, 0x83, 0xc0, 0x10, //0x00002b84 addq $16, %r8 + 0x4c, 0x8d, 0x58, 0xf0, //0x00002b88 leaq $-16(%rax), %r11 + 0x48, 0x83, 0xfe, 0x1f, //0x00002b8c cmpq $31, %rsi + 0x41, 0x0f, 0x9f, 0xc6, //0x00002b90 setg %r14b + 0x48, 0x83, 0xfe, 0x20, //0x00002b94 cmpq $32, %rsi + 0x48, 0x8d, 0x76, 0xf0, //0x00002b98 leaq $-16(%rsi), %rsi + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00002b9c jl LBB7_31 + 0x48, 0x83, 0xf8, 0x1f, //0x00002ba2 cmpq $31, %rax + 0x4c, 0x89, 0xd8, //0x00002ba6 movq %r11, %rax + 0x0f, 0x8f, 0xa1, 0xff, 0xff, 0xff, //0x00002ba9 jg LBB7_16 + 0x90, //0x00002baf .p2align 4, 0x90 + //0x00002bb0 LBB7_31 + 0x45, 0x84, 0xf6, //0x00002bb0 testb %r14b, %r14b + 0x0f, 0x84, 0xde, 0x01, 0x00, 0x00, //0x00002bb3 je LBB7_36 + //0x00002bb9 LBB7_32 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00002bb9 vmovdqu (%r13), %xmm0 + 0xc5, 0xf9, 0x74, 0xcf, //0x00002bbf vpcmpeqb %xmm7, %xmm0, %xmm1 + 0xc5, 0xb9, 0x74, 0xd0, //0x00002bc3 vpcmpeqb %xmm0, %xmm8, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00002bc7 vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xb1, 0xeb, 0xd0, //0x00002bcb vpor %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd2, //0x00002bcf vpcmpeqb %xmm2, %xmm10, %xmm2 + 0xc5, 0xf1, 0xeb, 0xca, //0x00002bd3 vpor %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0xd7, 0xc1, //0x00002bd7 vpmovmskb %xmm1, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x00002bdb orl $65536, %eax + 0x44, 0x0f, 0xbc, 0xf0, //0x00002be0 bsfl %eax, %r14d + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00002be4 vmovq %xmm0, %rax + 0x4d, 0x39, 0xf3, //0x00002be9 cmpq %r14, %r11 + 0x0f, 0x8d, 0xaa, 0x02, 0x00, 0x00, //0x00002bec jge LBB7_55 + 0x49, 0x83, 0xfb, 0x08, //0x00002bf2 cmpq $8, %r11 + 0x0f, 0x82, 0xdc, 0x02, 0x00, 0x00, //0x00002bf6 jb LBB7_58 + 0x49, 0x89, 0x00, //0x00002bfc movq %rax, (%r8) + 0x49, 0x8d, 0x45, 0x08, //0x00002bff leaq $8(%r13), %rax + 0x49, 0x83, 0xc0, 0x08, //0x00002c03 addq $8, %r8 + 0x49, 0x8d, 0x73, 0xf8, //0x00002c07 leaq $-8(%r11), %rsi + 0x49, 0x89, 0xd6, //0x00002c0b movq %rdx, %r14 + 0x48, 0x83, 0xfe, 0x04, //0x00002c0e cmpq $4, %rsi + 0x0f, 0x8d, 0xd3, 0x02, 0x00, 0x00, //0x00002c12 jge LBB7_59 + 0xe9, 0xdf, 0x02, 0x00, 0x00, //0x00002c18 jmp LBB7_60 + 0x90, 0x90, 0x90, //0x00002c1d .p2align 4, 0x90 + //0x00002c20 LBB7_19 + 0x4d, 0x29, 0xe5, //0x00002c20 subq %r12, %r13 + 0x0f, 0xbc, 0xc0, //0x00002c23 bsfl %eax, %eax + 0x4c, 0x01, 0xe8, //0x00002c26 addq %r13, %rax + 0x48, 0x85, 0xc0, //0x00002c29 testq %rax, %rax + 0x0f, 0x89, 0xae, 0x03, 0x00, 0x00, //0x00002c2c jns LBB7_72 + 0xe9, 0xba, 0x04, 0x00, 0x00, //0x00002c32 jmp LBB7_92 + //0x00002c37 LBB7_20 + 0x41, 0x83, 0xfb, 0x10, //0x00002c37 cmpl $16, %r11d + 0x0f, 0x82, 0xc4, 0x01, 0x00, 0x00, //0x00002c3b jb LBB7_43 + 0x49, 0x89, 0x10, //0x00002c41 movq %rdx, (%r8) + 0x49, 0x89, 0x48, 0x08, //0x00002c44 movq %rcx, $8(%r8) + 0x49, 0x8d, 0x45, 0x10, //0x00002c48 leaq $16(%r13), %rax + 0x49, 0x83, 0xc0, 0x10, //0x00002c4c addq $16, %r8 + 0x49, 0x8d, 0x73, 0xf0, //0x00002c50 leaq $-16(%r11), %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00002c54 cmpq $8, %rsi + 0x0f, 0x83, 0xb7, 0x01, 0x00, 0x00, //0x00002c58 jae LBB7_44 + 0xe9, 0xc4, 0x01, 0x00, 0x00, //0x00002c5e jmp LBB7_45 + //0x00002c63 LBB7_22 + 0x0f, 0xb7, 0xc1, //0x00002c63 movzwl %cx, %eax + 0x4d, 0x29, 0xe5, //0x00002c66 subq %r12, %r13 + 0x0f, 0xbc, 0xc0, //0x00002c69 bsfl %eax, %eax + 0x4c, 0x01, 0xe8, //0x00002c6c addq %r13, %rax + 0x49, 0x89, 0xd6, //0x00002c6f movq %rdx, %r14 + 0x48, 0x85, 0xc0, //0x00002c72 testq %rax, %rax + 0x0f, 0x89, 0x65, 0x03, 0x00, 0x00, //0x00002c75 jns LBB7_72 + 0xe9, 0x71, 0x04, 0x00, 0x00, //0x00002c7b jmp LBB7_92 + //0x00002c80 LBB7_23 + 0x4d, 0x89, 0xeb, //0x00002c80 movq %r13, %r11 + 0x48, 0x89, 0xc6, //0x00002c83 movq %rax, %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00002c86 cmpq $8, %rsi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002c8a jb LBB7_25 + //0x00002c90 LBB7_24 + 0x49, 0x8b, 0x0b, //0x00002c90 movq (%r11), %rcx + 0x49, 0x89, 0x08, //0x00002c93 movq %rcx, (%r8) + 0x49, 0x83, 0xc3, 0x08, //0x00002c96 addq $8, %r11 + 0x49, 0x83, 0xc0, 0x08, //0x00002c9a addq $8, %r8 + 0x48, 0x83, 0xc6, 0xf8, //0x00002c9e addq $-8, %rsi + //0x00002ca2 LBB7_25 + 0x48, 0x83, 0xfe, 0x04, //0x00002ca2 cmpq $4, %rsi + 0x0f, 0x8c, 0x42, 0x00, 0x00, 0x00, //0x00002ca6 jl LBB7_26 + 0x41, 0x8b, 0x0b, //0x00002cac movl (%r11), %ecx + 0x41, 0x89, 0x08, //0x00002caf movl %ecx, (%r8) + 0x49, 0x83, 0xc3, 0x04, //0x00002cb2 addq $4, %r11 + 0x49, 0x83, 0xc0, 0x04, //0x00002cb6 addq $4, %r8 + 0x48, 0x83, 0xc6, 0xfc, //0x00002cba addq $-4, %rsi + 0x48, 0x83, 0xfe, 0x02, //0x00002cbe cmpq $2, %rsi + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00002cc2 jae LBB7_52 + //0x00002cc8 LBB7_27 + 0x48, 0x85, 0xf6, //0x00002cc8 testq %rsi, %rsi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002ccb je LBB7_29 + //0x00002cd1 LBB7_28 + 0x41, 0x8a, 0x0b, //0x00002cd1 movb (%r11), %cl + 0x41, 0x88, 0x08, //0x00002cd4 movb %cl, (%r8) + //0x00002cd7 LBB7_29 + 0x4c, 0x29, 0xe0, //0x00002cd7 subq %r12, %rax + 0x4c, 0x01, 0xe8, //0x00002cda addq %r13, %rax + 0x48, 0xf7, 0xd0, //0x00002cdd notq %rax + 0x48, 0x85, 0xc0, //0x00002ce0 testq %rax, %rax + 0x0f, 0x89, 0xf7, 0x02, 0x00, 0x00, //0x00002ce3 jns LBB7_72 + 0xe9, 0x03, 0x04, 0x00, 0x00, //0x00002ce9 jmp LBB7_92 + //0x00002cee LBB7_26 + 0x48, 0x83, 0xfe, 0x02, //0x00002cee cmpq $2, %rsi + 0x0f, 0x82, 0xd0, 0xff, 0xff, 0xff, //0x00002cf2 jb LBB7_27 + //0x00002cf8 LBB7_52 + 0x41, 0x0f, 0xb7, 0x0b, //0x00002cf8 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002cfc movw %cx, (%r8) + 0x49, 0x83, 0xc3, 0x02, //0x00002d00 addq $2, %r11 + 0x49, 0x83, 0xc0, 0x02, //0x00002d04 addq $2, %r8 + 0x48, 0x83, 0xc6, 0xfe, //0x00002d08 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x00002d0c testq %rsi, %rsi + 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x00002d0f jne LBB7_28 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x00002d15 jmp LBB7_29 + //0x00002d1a LBB7_30 + 0x49, 0x89, 0xc3, //0x00002d1a movq %rax, %r11 + 0xc5, 0xfd, 0x6f, 0x1d, 0x5b, 0xfb, 0xff, 0xff, //0x00002d1d vmovdqa $-1189(%rip), %ymm3 /* LCPI7_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x73, 0xfb, 0xff, 0xff, //0x00002d25 vmovdqa $-1165(%rip), %ymm4 /* LCPI7_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x8b, 0xfb, 0xff, 0xff, //0x00002d2d vmovdqa $-1141(%rip), %ymm5 /* LCPI7_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xa3, 0xfb, 0xff, 0xff, //0x00002d35 vmovdqa $-1117(%rip), %ymm6 /* LCPI7_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x3d, 0xbb, 0xfb, 0xff, 0xff, //0x00002d3d vmovdqa $-1093(%rip), %xmm7 /* LCPI7_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x05, 0xc3, 0xfb, 0xff, 0xff, //0x00002d45 vmovdqa $-1085(%rip), %xmm8 /* LCPI7_5+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0xcb, 0xfb, 0xff, 0xff, //0x00002d4d vmovdqa $-1077(%rip), %xmm9 /* LCPI7_6+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0xd3, 0xfb, 0xff, 0xff, //0x00002d55 vmovdqa $-1069(%rip), %xmm10 /* LCPI7_7+0(%rip) */ + 0x45, 0x84, 0xf6, //0x00002d5d testb %r14b, %r14b + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00002d60 je LBB7_36 + 0xe9, 0x4e, 0xfe, 0xff, 0xff, //0x00002d66 jmp LBB7_32 + //0x00002d6b LBB7_35 + 0x49, 0x89, 0xc3, //0x00002d6b movq %rax, %r11 + 0xc5, 0xfd, 0x6f, 0x1d, 0x0a, 0xfb, 0xff, 0xff, //0x00002d6e vmovdqa $-1270(%rip), %ymm3 /* LCPI7_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x22, 0xfb, 0xff, 0xff, //0x00002d76 vmovdqa $-1246(%rip), %ymm4 /* LCPI7_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x3a, 0xfb, 0xff, 0xff, //0x00002d7e vmovdqa $-1222(%rip), %ymm5 /* LCPI7_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x52, 0xfb, 0xff, 0xff, //0x00002d86 vmovdqa $-1198(%rip), %ymm6 /* LCPI7_3+0(%rip) */ + 0x45, 0x84, 0xf6, //0x00002d8e testb %r14b, %r14b + 0x0f, 0x85, 0x22, 0xfe, 0xff, 0xff, //0x00002d91 jne LBB7_32 + //0x00002d97 LBB7_36 + 0x4d, 0x85, 0xdb, //0x00002d97 testq %r11, %r11 + 0x0f, 0x8e, 0xaf, 0x01, 0x00, 0x00, //0x00002d9a jle LBB7_64 + 0x48, 0x85, 0xf6, //0x00002da0 testq %rsi, %rsi + 0x49, 0x89, 0xd6, //0x00002da3 movq %rdx, %r14 + 0x0f, 0x8e, 0xa6, 0x01, 0x00, 0x00, //0x00002da6 jle LBB7_65 + 0x90, 0x90, 0x90, 0x90, //0x00002dac .p2align 4, 0x90 + //0x00002db0 LBB7_38 + 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x00002db0 movzbl (%r13), %eax + 0x48, 0x83, 0xf8, 0x3e, //0x00002db5 cmpq $62, %rax + 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x00002db9 ja LBB7_40 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00002dbf movabsq $5764607797912141824, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00002dc9 btq %rax, %rcx + 0x0f, 0x82, 0xf1, 0x00, 0x00, 0x00, //0x00002dcd jb LBB7_57 + //0x00002dd3 LBB7_40 + 0x3c, 0xe2, //0x00002dd3 cmpb $-30, %al + 0x0f, 0x84, 0xe9, 0x00, 0x00, 0x00, //0x00002dd5 je LBB7_57 + 0x49, 0xff, 0xc5, //0x00002ddb incq %r13 + 0x41, 0x88, 0x00, //0x00002dde movb %al, (%r8) + 0x48, 0x83, 0xfe, 0x02, //0x00002de1 cmpq $2, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x00002de5 leaq $-1(%rsi), %rsi + 0x0f, 0x8c, 0x63, 0x01, 0x00, 0x00, //0x00002de9 jl LBB7_65 + 0x49, 0xff, 0xc0, //0x00002def incq %r8 + 0x49, 0x83, 0xfb, 0x01, //0x00002df2 cmpq $1, %r11 + 0x4d, 0x8d, 0x5b, 0xff, //0x00002df6 leaq $-1(%r11), %r11 + 0x0f, 0x8f, 0xb0, 0xff, 0xff, 0xff, //0x00002dfa jg LBB7_38 + 0xe9, 0x4d, 0x01, 0x00, 0x00, //0x00002e00 jmp LBB7_65 + //0x00002e05 LBB7_43 + 0x4c, 0x89, 0xe8, //0x00002e05 movq %r13, %rax + 0x4c, 0x89, 0xde, //0x00002e08 movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00002e0b cmpq $8, %rsi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002e0f jb LBB7_45 + //0x00002e15 LBB7_44 + 0x48, 0x8b, 0x08, //0x00002e15 movq (%rax), %rcx + 0x49, 0x89, 0x08, //0x00002e18 movq %rcx, (%r8) + 0x48, 0x83, 0xc0, 0x08, //0x00002e1b addq $8, %rax + 0x49, 0x83, 0xc0, 0x08, //0x00002e1f addq $8, %r8 + 0x48, 0x83, 0xc6, 0xf8, //0x00002e23 addq $-8, %rsi + //0x00002e27 LBB7_45 + 0x48, 0x83, 0xfe, 0x04, //0x00002e27 cmpq $4, %rsi + 0x0f, 0x8c, 0x40, 0x00, 0x00, 0x00, //0x00002e2b jl LBB7_46 + 0x8b, 0x08, //0x00002e31 movl (%rax), %ecx + 0x41, 0x89, 0x08, //0x00002e33 movl %ecx, (%r8) + 0x48, 0x83, 0xc0, 0x04, //0x00002e36 addq $4, %rax + 0x49, 0x83, 0xc0, 0x04, //0x00002e3a addq $4, %r8 + 0x48, 0x83, 0xc6, 0xfc, //0x00002e3e addq $-4, %rsi + 0x48, 0x83, 0xfe, 0x02, //0x00002e42 cmpq $2, %rsi + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00002e46 jae LBB7_54 + //0x00002e4c LBB7_47 + 0x48, 0x85, 0xf6, //0x00002e4c testq %rsi, %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002e4f je LBB7_49 + //0x00002e55 LBB7_48 + 0x8a, 0x00, //0x00002e55 movb (%rax), %al + 0x41, 0x88, 0x00, //0x00002e57 movb %al, (%r8) + //0x00002e5a LBB7_49 + 0x4d, 0x29, 0xe5, //0x00002e5a subq %r12, %r13 + 0x4d, 0x01, 0xdd, //0x00002e5d addq %r11, %r13 + 0x4c, 0x89, 0xe8, //0x00002e60 movq %r13, %rax + 0x48, 0x85, 0xc0, //0x00002e63 testq %rax, %rax + 0x0f, 0x89, 0x74, 0x01, 0x00, 0x00, //0x00002e66 jns LBB7_72 + 0xe9, 0x80, 0x02, 0x00, 0x00, //0x00002e6c jmp LBB7_92 + //0x00002e71 LBB7_46 + 0x48, 0x83, 0xfe, 0x02, //0x00002e71 cmpq $2, %rsi + 0x0f, 0x82, 0xd1, 0xff, 0xff, 0xff, //0x00002e75 jb LBB7_47 + //0x00002e7b LBB7_54 + 0x0f, 0xb7, 0x08, //0x00002e7b movzwl (%rax), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002e7e movw %cx, (%r8) + 0x48, 0x83, 0xc0, 0x02, //0x00002e82 addq $2, %rax + 0x49, 0x83, 0xc0, 0x02, //0x00002e86 addq $2, %r8 + 0x48, 0x83, 0xc6, 0xfe, //0x00002e8a addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x00002e8e testq %rsi, %rsi + 0x0f, 0x85, 0xbe, 0xff, 0xff, 0xff, //0x00002e91 jne LBB7_48 + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00002e97 jmp LBB7_49 + //0x00002e9c LBB7_55 + 0x41, 0x83, 0xfe, 0x08, //0x00002e9c cmpl $8, %r14d + 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00002ea0 jb LBB7_66 + 0x49, 0x89, 0x00, //0x00002ea6 movq %rax, (%r8) + 0x49, 0x8d, 0x75, 0x08, //0x00002ea9 leaq $8(%r13), %rsi + 0x49, 0x83, 0xc0, 0x08, //0x00002ead addq $8, %r8 + 0x49, 0x8d, 0x46, 0xf8, //0x00002eb1 leaq $-8(%r14), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002eb5 cmpq $4, %rax + 0x0f, 0x8d, 0xbd, 0x00, 0x00, 0x00, //0x00002eb9 jge LBB7_67 + 0xe9, 0xc9, 0x00, 0x00, 0x00, //0x00002ebf jmp LBB7_68 + //0x00002ec4 LBB7_57 + 0x4d, 0x29, 0xe5, //0x00002ec4 subq %r12, %r13 + 0x4c, 0x89, 0xe8, //0x00002ec7 movq %r13, %rax + 0x48, 0x85, 0xc0, //0x00002eca testq %rax, %rax + 0x0f, 0x89, 0x0d, 0x01, 0x00, 0x00, //0x00002ecd jns LBB7_72 + 0xe9, 0x19, 0x02, 0x00, 0x00, //0x00002ed3 jmp LBB7_92 + //0x00002ed8 LBB7_58 + 0x4c, 0x89, 0xe8, //0x00002ed8 movq %r13, %rax + 0x4c, 0x89, 0xde, //0x00002edb movq %r11, %rsi + 0x49, 0x89, 0xd6, //0x00002ede movq %rdx, %r14 + 0x48, 0x83, 0xfe, 0x04, //0x00002ee1 cmpq $4, %rsi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00002ee5 jl LBB7_60 + //0x00002eeb LBB7_59 + 0x8b, 0x08, //0x00002eeb movl (%rax), %ecx + 0x41, 0x89, 0x08, //0x00002eed movl %ecx, (%r8) + 0x48, 0x83, 0xc0, 0x04, //0x00002ef0 addq $4, %rax + 0x49, 0x83, 0xc0, 0x04, //0x00002ef4 addq $4, %r8 + 0x48, 0x83, 0xc6, 0xfc, //0x00002ef8 addq $-4, %rsi + //0x00002efc LBB7_60 + 0x48, 0x83, 0xfe, 0x02, //0x00002efc cmpq $2, %rsi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00002f00 jb LBB7_61 + 0x0f, 0xb7, 0x08, //0x00002f06 movzwl (%rax), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002f09 movw %cx, (%r8) + 0x48, 0x83, 0xc0, 0x02, //0x00002f0d addq $2, %rax + 0x49, 0x83, 0xc0, 0x02, //0x00002f11 addq $2, %r8 + 0x48, 0x83, 0xc6, 0xfe, //0x00002f15 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x00002f19 testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002f1c jne LBB7_62 + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00002f22 jmp LBB7_63 + //0x00002f27 LBB7_61 + 0x48, 0x85, 0xf6, //0x00002f27 testq %rsi, %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002f2a je LBB7_63 + //0x00002f30 LBB7_62 + 0x8a, 0x00, //0x00002f30 movb (%rax), %al + 0x41, 0x88, 0x00, //0x00002f32 movb %al, (%r8) + //0x00002f35 LBB7_63 + 0x4d, 0x29, 0xe3, //0x00002f35 subq %r12, %r11 + 0x4d, 0x01, 0xeb, //0x00002f38 addq %r13, %r11 + 0x49, 0xf7, 0xd3, //0x00002f3b notq %r11 + 0x4c, 0x89, 0xd8, //0x00002f3e movq %r11, %rax + 0x48, 0x85, 0xc0, //0x00002f41 testq %rax, %rax + 0x0f, 0x89, 0x96, 0x00, 0x00, 0x00, //0x00002f44 jns LBB7_72 + 0xe9, 0xa2, 0x01, 0x00, 0x00, //0x00002f4a jmp LBB7_92 + //0x00002f4f LBB7_64 + 0x49, 0x89, 0xd6, //0x00002f4f movq %rdx, %r14 + //0x00002f52 LBB7_65 + 0x4d, 0x29, 0xe5, //0x00002f52 subq %r12, %r13 + 0x48, 0xf7, 0xde, //0x00002f55 negq %rsi + 0x48, 0x19, 0xc0, //0x00002f58 sbbq %rax, %rax + 0x4c, 0x31, 0xe8, //0x00002f5b xorq %r13, %rax + 0x48, 0x85, 0xc0, //0x00002f5e testq %rax, %rax + 0x0f, 0x89, 0x79, 0x00, 0x00, 0x00, //0x00002f61 jns LBB7_72 + 0xe9, 0x85, 0x01, 0x00, 0x00, //0x00002f67 jmp LBB7_92 + //0x00002f6c LBB7_66 + 0x4c, 0x89, 0xee, //0x00002f6c movq %r13, %rsi + 0x4c, 0x89, 0xf0, //0x00002f6f movq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002f72 cmpq $4, %rax + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00002f76 jl LBB7_68 + //0x00002f7c LBB7_67 + 0x8b, 0x0e, //0x00002f7c movl (%rsi), %ecx + 0x41, 0x89, 0x08, //0x00002f7e movl %ecx, (%r8) + 0x48, 0x83, 0xc6, 0x04, //0x00002f81 addq $4, %rsi + 0x49, 0x83, 0xc0, 0x04, //0x00002f85 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x00002f89 addq $-4, %rax + //0x00002f8d LBB7_68 + 0x48, 0x83, 0xf8, 0x02, //0x00002f8d cmpq $2, %rax + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00002f91 jb LBB7_69 + 0x0f, 0xb7, 0x0e, //0x00002f97 movzwl (%rsi), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002f9a movw %cx, (%r8) + 0x48, 0x83, 0xc6, 0x02, //0x00002f9e addq $2, %rsi + 0x49, 0x83, 0xc0, 0x02, //0x00002fa2 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x00002fa6 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00002faa testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002fad jne LBB7_70 + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00002fb3 jmp LBB7_71 + //0x00002fb8 LBB7_69 + 0x48, 0x85, 0xc0, //0x00002fb8 testq %rax, %rax + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002fbb je LBB7_71 + //0x00002fc1 LBB7_70 + 0x8a, 0x06, //0x00002fc1 movb (%rsi), %al + 0x41, 0x88, 0x00, //0x00002fc3 movb %al, (%r8) + //0x00002fc6 LBB7_71 + 0x4d, 0x29, 0xe5, //0x00002fc6 subq %r12, %r13 + 0x4d, 0x01, 0xf5, //0x00002fc9 addq %r14, %r13 + 0x4c, 0x89, 0xe8, //0x00002fcc movq %r13, %rax + 0x49, 0x89, 0xd6, //0x00002fcf movq %rdx, %r14 + 0x48, 0x85, 0xc0, //0x00002fd2 testq %rax, %rax + 0x0f, 0x88, 0x16, 0x01, 0x00, 0x00, //0x00002fd5 js LBB7_92 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002fdb .p2align 4, 0x90 + //0x00002fe0 LBB7_72 + 0x49, 0x01, 0xc4, //0x00002fe0 addq %rax, %r12 + 0x49, 0x01, 0xc7, //0x00002fe3 addq %rax, %r15 + 0x49, 0x29, 0xc2, //0x00002fe6 subq %rax, %r10 + 0x0f, 0x8e, 0x22, 0x01, 0x00, 0x00, //0x00002fe9 jle LBB7_93 + 0x49, 0x29, 0xc1, //0x00002fef subq %rax, %r9 + 0x41, 0x8a, 0x0c, 0x24, //0x00002ff2 movb (%r12), %cl + 0x80, 0xf9, 0xe2, //0x00002ff6 cmpb $-30, %cl + 0x0f, 0x84, 0xa2, 0x00, 0x00, 0x00, //0x00002ff9 je LBB7_86 + 0x4c, 0x89, 0xe0, //0x00002fff movq %r12, %rax + //0x00003002 LBB7_75 + 0x0f, 0xb6, 0xc9, //0x00003002 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00003005 shlq $4, %rcx + 0x4a, 0x8b, 0x14, 0x31, //0x00003009 movq (%rcx,%r14), %rdx + 0x48, 0x63, 0xf2, //0x0000300d movslq %edx, %rsi + 0x49, 0x29, 0xf1, //0x00003010 subq %rsi, %r9 + 0x0f, 0x8c, 0x0f, 0x01, 0x00, 0x00, //0x00003013 jl LBB7_95 + 0x48, 0xc1, 0xe2, 0x20, //0x00003019 shlq $32, %rdx + 0x4a, 0x8d, 0x5c, 0x31, 0x08, //0x0000301d leaq $8(%rcx,%r14), %rbx + 0x48, 0x39, 0xfa, //0x00003022 cmpq %rdi, %rdx + 0x0f, 0x8c, 0x25, 0x00, 0x00, 0x00, //0x00003025 jl LBB7_78 + 0x8b, 0x13, //0x0000302b movl (%rbx), %edx + 0x41, 0x89, 0x17, //0x0000302d movl %edx, (%r15) + 0x4a, 0x8d, 0x5c, 0x31, 0x0c, //0x00003030 leaq $12(%rcx,%r14), %rbx + 0x49, 0x8d, 0x57, 0x04, //0x00003035 leaq $4(%r15), %rdx + 0x48, 0x8d, 0x4e, 0xfc, //0x00003039 leaq $-4(%rsi), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000303d cmpq $2, %rcx + 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x00003041 jae LBB7_79 + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00003047 jmp LBB7_80 + 0x90, 0x90, 0x90, 0x90, //0x0000304c .p2align 4, 0x90 + //0x00003050 LBB7_78 + 0x4c, 0x89, 0xfa, //0x00003050 movq %r15, %rdx + 0x48, 0x89, 0xf1, //0x00003053 movq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00003056 cmpq $2, %rcx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x0000305a jb LBB7_80 + //0x00003060 LBB7_79 + 0x49, 0x89, 0xf8, //0x00003060 movq %rdi, %r8 + 0x0f, 0xb7, 0x3b, //0x00003063 movzwl (%rbx), %edi + 0x66, 0x89, 0x3a, //0x00003066 movw %di, (%rdx) + 0x4c, 0x89, 0xc7, //0x00003069 movq %r8, %rdi + 0x48, 0x83, 0xc3, 0x02, //0x0000306c addq $2, %rbx + 0x48, 0x83, 0xc2, 0x02, //0x00003070 addq $2, %rdx + 0x48, 0x83, 0xc1, 0xfe, //0x00003074 addq $-2, %rcx + //0x00003078 LBB7_80 + 0x48, 0x85, 0xc9, //0x00003078 testq %rcx, %rcx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x0000307b je LBB7_82 + 0x8a, 0x0b, //0x00003081 movb (%rbx), %cl + 0x88, 0x0a, //0x00003083 movb %cl, (%rdx) + //0x00003085 LBB7_82 + 0x49, 0x01, 0xf7, //0x00003085 addq %rsi, %r15 + //0x00003088 LBB7_83 + 0x48, 0xff, 0xc0, //0x00003088 incq %rax + 0x49, 0x89, 0xc4, //0x0000308b movq %rax, %r12 + 0x49, 0x83, 0xfa, 0x01, //0x0000308e cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x00003092 leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0x14, 0xf9, 0xff, 0xff, //0x00003096 jg LBB7_2 + 0xe9, 0x73, 0x00, 0x00, 0x00, //0x0000309c jmp LBB7_94 + //0x000030a1 LBB7_86 + 0x49, 0x83, 0xfa, 0x03, //0x000030a1 cmpq $3, %r10 + 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x000030a5 jl LBB7_90 + 0x41, 0x80, 0x7c, 0x24, 0x01, 0x80, //0x000030ab cmpb $-128, $1(%r12) + 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x000030b1 jne LBB7_90 + 0x41, 0x8a, 0x4c, 0x24, 0x02, //0x000030b7 movb $2(%r12), %cl + 0x89, 0xc8, //0x000030bc movl %ecx, %eax + 0x24, 0xfe, //0x000030be andb $-2, %al + 0x3c, 0xa8, //0x000030c0 cmpb $-88, %al + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000030c2 jne LBB7_90 + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x000030c8 leaq $2(%r12), %rax + 0x49, 0x83, 0xc2, 0xfe, //0x000030cd addq $-2, %r10 + 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x000030d1 jmp LBB7_75 + //0x000030d6 LBB7_90 + 0x4d, 0x85, 0xc9, //0x000030d6 testq %r9, %r9 + 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x000030d9 jle LBB7_96 + 0x41, 0xc6, 0x07, 0xe2, //0x000030df movb $-30, (%r15) + 0x49, 0xff, 0xc7, //0x000030e3 incq %r15 + 0x49, 0xff, 0xc9, //0x000030e6 decq %r9 + 0x4c, 0x89, 0xe0, //0x000030e9 movq %r12, %rax + 0xe9, 0x97, 0xff, 0xff, 0xff, //0x000030ec jmp LBB7_83 + //0x000030f1 LBB7_92 + 0x4c, 0x2b, 0x7d, 0xc8, //0x000030f1 subq $-56(%rbp), %r15 + 0x48, 0xf7, 0xd0, //0x000030f5 notq %rax + 0x49, 0x01, 0xc7, //0x000030f8 addq %rax, %r15 + 0x48, 0x8b, 0x4d, 0xc0, //0x000030fb movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x39, //0x000030ff movq %r15, (%rcx) + 0x4c, 0x2b, 0x65, 0xd0, //0x00003102 subq $-48(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00003106 addq %rax, %r12 + 0x49, 0xf7, 0xd4, //0x00003109 notq %r12 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x0000310c jmp LBB7_97 + //0x00003111 LBB7_93 + 0x4c, 0x89, 0xe0, //0x00003111 movq %r12, %rax + //0x00003114 LBB7_94 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00003114 subq $-56(%rbp), %r15 + 0x48, 0x8b, 0x4d, 0xc0, //0x00003118 movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x39, //0x0000311c movq %r15, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x0000311f subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00003123 jmp LBB7_98 + //0x00003128 LBB7_95 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00003128 subq $-56(%rbp), %r15 + 0x48, 0x8b, 0x45, 0xc0, //0x0000312c movq $-64(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00003130 movq %r15, (%rax) + //0x00003133 LBB7_96 + 0x49, 0xf7, 0xd4, //0x00003133 notq %r12 + 0x4c, 0x03, 0x65, 0xd0, //0x00003136 addq $-48(%rbp), %r12 + //0x0000313a LBB7_97 + 0x4c, 0x89, 0xe0, //0x0000313a movq %r12, %rax + //0x0000313d LBB7_98 + 0x48, 0x83, 0xc4, 0x18, //0x0000313d addq $24, %rsp + 0x5b, //0x00003141 popq %rbx + 0x41, 0x5c, //0x00003142 popq %r12 + 0x41, 0x5d, //0x00003144 popq %r13 + 0x41, 0x5e, //0x00003146 popq %r14 + 0x41, 0x5f, //0x00003148 popq %r15 + 0x5d, //0x0000314a popq %rbp + 0xc5, 0xf8, 0x77, //0x0000314b vzeroupper + 0xc3, //0x0000314e retq + 0x90, //0x0000314f .p2align 4, 0x90 + //0x00003150 _atof_eisel_lemire64 + 0x55, //0x00003150 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003151 movq %rsp, %rbp + 0x41, 0x57, //0x00003154 pushq %r15 + 0x41, 0x56, //0x00003156 pushq %r14 + 0x53, //0x00003158 pushq %rbx + 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00003159 leal $348(%rsi), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x0000315f cmpl $695, %eax + 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x00003164 ja LBB8_1 + 0x49, 0x89, 0xc8, //0x0000316a movq %rcx, %r8 + 0x41, 0x89, 0xd1, //0x0000316d movl %edx, %r9d + 0x48, 0x85, 0xff, //0x00003170 testq %rdi, %rdi + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00003173 je LBB8_4 + 0x4c, 0x0f, 0xbd, 0xd7, //0x00003179 bsrq %rdi, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x0000317d xorq $63, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00003181 jmp LBB8_5 + //0x00003186 LBB8_4 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00003186 movl $64, %r10d + //0x0000318c LBB8_5 + 0x44, 0x89, 0xd1, //0x0000318c movl %r10d, %ecx + 0x48, 0xd3, 0xe7, //0x0000318f shlq %cl, %rdi + 0x89, 0xc1, //0x00003192 movl %eax, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00003194 shlq $4, %rcx + 0x4c, 0x8d, 0x3d, 0x41, 0x6e, 0x00, 0x00, //0x00003198 leaq $28225(%rip), %r15 /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0xf8, //0x0000319f movq %rdi, %rax + 0x4a, 0xf7, 0x64, 0x39, 0x08, //0x000031a2 mulq $8(%rcx,%r15) + 0x49, 0x89, 0xc3, //0x000031a7 movq %rax, %r11 + 0x49, 0x89, 0xd6, //0x000031aa movq %rdx, %r14 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000031ad andl $511, %edx + 0x48, 0x89, 0xfb, //0x000031b3 movq %rdi, %rbx + 0x48, 0xf7, 0xd3, //0x000031b6 notq %rbx + 0x48, 0x39, 0xd8, //0x000031b9 cmpq %rbx, %rax + 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x000031bc jbe LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000031c2 cmpl $511, %edx + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x000031c8 jne LBB8_11 + 0x48, 0x89, 0xf8, //0x000031ce movq %rdi, %rax + 0x4a, 0xf7, 0x24, 0x39, //0x000031d1 mulq (%rcx,%r15) + 0x49, 0x01, 0xd3, //0x000031d5 addq %rdx, %r11 + 0x49, 0x83, 0xd6, 0x00, //0x000031d8 adcq $0, %r14 + 0x44, 0x89, 0xf2, //0x000031dc movl %r14d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000031df andl $511, %edx + 0x48, 0x39, 0xd8, //0x000031e5 cmpq %rbx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x000031e8 jbe LBB8_11 + 0x49, 0x83, 0xfb, 0xff, //0x000031ee cmpq $-1, %r11 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000031f2 jne LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000031f8 cmpl $511, %edx + 0x0f, 0x84, 0x6e, 0x00, 0x00, 0x00, //0x000031fe je LBB8_1 + //0x00003204 LBB8_11 + 0x4c, 0x89, 0xf7, //0x00003204 movq %r14, %rdi + 0x48, 0xc1, 0xef, 0x3f, //0x00003207 shrq $63, %rdi + 0x8d, 0x4f, 0x09, //0x0000320b leal $9(%rdi), %ecx + 0x49, 0xd3, 0xee, //0x0000320e shrq %cl, %r14 + 0x4c, 0x09, 0xda, //0x00003211 orq %r11, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00003214 jne LBB8_14 + 0x44, 0x89, 0xf0, //0x0000321a movl %r14d, %eax + 0x83, 0xe0, 0x03, //0x0000321d andl $3, %eax + 0x83, 0xf8, 0x01, //0x00003220 cmpl $1, %eax + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00003223 je LBB8_1 + //0x00003229 LBB8_14 + 0x69, 0xc6, 0x6a, 0x52, 0x03, 0x00, //0x00003229 imull $217706, %esi, %eax + 0xc1, 0xf8, 0x10, //0x0000322f sarl $16, %eax + 0x05, 0x3f, 0x04, 0x00, 0x00, //0x00003232 addl $1087, %eax + 0x48, 0x98, //0x00003237 cltq + 0x4c, 0x29, 0xd0, //0x00003239 subq %r10, %rax + 0x48, 0x83, 0xf7, 0x01, //0x0000323c xorq $1, %rdi + 0x48, 0x29, 0xf8, //0x00003240 subq %rdi, %rax + 0x44, 0x89, 0xf2, //0x00003243 movl %r14d, %edx + 0x83, 0xe2, 0x01, //0x00003246 andl $1, %edx + 0x4c, 0x01, 0xf2, //0x00003249 addq %r14, %rdx + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x0000324c movabsq $126100789566373888, %rcx + 0x48, 0x21, 0xd1, //0x00003256 andq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00003259 cmpq $1, %rcx + 0x48, 0x83, 0xd8, 0xff, //0x0000325d sbbq $-1, %rax + 0x48, 0x8d, 0x70, 0xff, //0x00003261 leaq $-1(%rax), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x00003265 cmpq $2045, %rsi + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x0000326c jbe LBB8_16 + //0x00003272 LBB8_1 + 0x31, 0xc0, //0x00003272 xorl %eax, %eax + //0x00003274 LBB8_17 + 0x5b, //0x00003274 popq %rbx + 0x41, 0x5e, //0x00003275 popq %r14 + 0x41, 0x5f, //0x00003277 popq %r15 + 0x5d, //0x00003279 popq %rbp + 0xc3, //0x0000327a retq + //0x0000327b LBB8_16 + 0x48, 0x83, 0xf9, 0x01, //0x0000327b cmpq $1, %rcx + 0xb1, 0x02, //0x0000327f movb $2, %cl + 0x80, 0xd9, 0x00, //0x00003281 sbbb $0, %cl + 0x48, 0xd3, 0xea, //0x00003284 shrq %cl, %rdx + 0x48, 0xc1, 0xe0, 0x34, //0x00003287 shlq $52, %rax + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000328b movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xd1, //0x00003295 andq %rdx, %rcx + 0x48, 0x09, 0xc1, //0x00003298 orq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000329b movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc8, //0x000032a5 orq %rcx, %rax + 0x41, 0x83, 0xf9, 0xff, //0x000032a8 cmpl $-1, %r9d + 0x48, 0x0f, 0x45, 0xc1, //0x000032ac cmovneq %rcx, %rax + 0x49, 0x89, 0x00, //0x000032b0 movq %rax, (%r8) + 0xb0, 0x01, //0x000032b3 movb $1, %al + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000032b5 jmp LBB8_17 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032ba .p2align 5, 0x00 + //0x000032c0 LCPI9_0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032c0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032c8 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032d0 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032d8 .quad 1 + //0x000032e0 .p2align 3, 0x00 + //0x000032e0 LCPI9_1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032e0 .quad 1 + //0x000032e8 LCPI9_2 + 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032e8 .quad 10000 + //0x000032f0 LCPI9_3 + 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032f0 .quad 10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000032f8 .p2align 4, 0x90 + //0x00003300 _decimal_to_f64 + 0x55, //0x00003300 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003301 movq %rsp, %rbp + 0x41, 0x57, //0x00003304 pushq %r15 + 0x41, 0x56, //0x00003306 pushq %r14 + 0x41, 0x55, //0x00003308 pushq %r13 + 0x41, 0x54, //0x0000330a pushq %r12 + 0x53, //0x0000330c pushq %rbx + 0x50, //0x0000330d pushq %rax + 0x49, 0x89, 0xf5, //0x0000330e movq %rsi, %r13 + 0x49, 0x89, 0xfc, //0x00003311 movq %rdi, %r12 + 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00003314 movabsq $4503599627370496, %rbx + 0x83, 0x7f, 0x10, 0x00, //0x0000331e cmpl $0, $16(%rdi) + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00003322 je LBB9_4 + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00003328 movabsq $9218868437227405312, %r14 + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00003332 movl $20(%r12), %eax + 0x45, 0x31, 0xff, //0x00003337 xorl %r15d, %r15d + 0x3d, 0x36, 0x01, 0x00, 0x00, //0x0000333a cmpl $310, %eax + 0x0f, 0x8f, 0x1e, 0x06, 0x00, 0x00, //0x0000333f jg LBB9_84 + 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00003345 cmpl $-330, %eax + 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x0000334a jge LBB9_5 + 0x45, 0x31, 0xf6, //0x00003350 xorl %r14d, %r14d + 0xe9, 0x0b, 0x06, 0x00, 0x00, //0x00003353 jmp LBB9_84 + //0x00003358 LBB9_4 + 0x45, 0x31, 0xf6, //0x00003358 xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x0000335b xorl %r15d, %r15d + 0xe9, 0x00, 0x06, 0x00, 0x00, //0x0000335e jmp LBB9_84 + //0x00003363 LBB9_5 + 0x85, 0xc0, //0x00003363 testl %eax, %eax + 0x4c, 0x89, 0x6d, 0xd0, //0x00003365 movq %r13, $-48(%rbp) + 0x0f, 0x8e, 0xd0, 0x00, 0x00, 0x00, //0x00003369 jle LBB9_20 + 0x45, 0x31, 0xff, //0x0000336f xorl %r15d, %r15d + 0x4c, 0x8d, 0x2d, 0xf7, 0x97, 0x00, 0x00, //0x00003372 leaq $38903(%rip), %r13 /* _POW_TAB+0(%rip) */ + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00003379 jmp LBB9_9 + 0x90, 0x90, //0x0000337e .p2align 4, 0x90 + //0x00003380 LBB9_7 + 0xf7, 0xdb, //0x00003380 negl %ebx + 0x4c, 0x89, 0xe7, //0x00003382 movq %r12, %rdi + 0x89, 0xde, //0x00003385 movl %ebx, %esi + 0xe8, 0x84, 0x67, 0x00, 0x00, //0x00003387 callq _right_shift + //0x0000338c LBB9_8 + 0x45, 0x01, 0xf7, //0x0000338c addl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x0000338f movl $20(%r12), %eax + 0x85, 0xc0, //0x00003394 testl %eax, %eax + 0x0f, 0x8e, 0xa3, 0x00, 0x00, 0x00, //0x00003396 jle LBB9_20 + //0x0000339c LBB9_9 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x0000339c movl $27, %r14d + 0x83, 0xf8, 0x08, //0x000033a2 cmpl $8, %eax + 0x0f, 0x8f, 0x07, 0x00, 0x00, 0x00, //0x000033a5 jg LBB9_11 + 0x89, 0xc0, //0x000033ab movl %eax, %eax + 0x45, 0x8b, 0x74, 0x85, 0x00, //0x000033ad movl (%r13,%rax,4), %r14d + //0x000033b2 LBB9_11 + 0x45, 0x85, 0xf6, //0x000033b2 testl %r14d, %r14d + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x000033b5 je LBB9_8 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000033bb cmpl $0, $16(%r12) + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x000033c1 je LBB9_8 + 0x44, 0x89, 0xf3, //0x000033c7 movl %r14d, %ebx + 0xf7, 0xdb, //0x000033ca negl %ebx + 0x45, 0x85, 0xf6, //0x000033cc testl %r14d, %r14d + 0x0f, 0x88, 0x2b, 0x00, 0x00, 0x00, //0x000033cf js LBB9_16 + 0x41, 0x83, 0xfe, 0x3d, //0x000033d5 cmpl $61, %r14d + 0x0f, 0x8c, 0xa1, 0xff, 0xff, 0xff, //0x000033d9 jl LBB9_7 + 0x90, //0x000033df .p2align 4, 0x90 + //0x000033e0 LBB9_15 + 0x4c, 0x89, 0xe7, //0x000033e0 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x000033e3 movl $60, %esi + 0xe8, 0x23, 0x67, 0x00, 0x00, //0x000033e8 callq _right_shift + 0x8d, 0x43, 0x3c, //0x000033ed leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x000033f0 cmpl $-120, %ebx + 0x89, 0xc3, //0x000033f3 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x000033f5 jl LBB9_15 + 0xe9, 0x80, 0xff, 0xff, 0xff, //0x000033fb jmp LBB9_7 + //0x00003400 LBB9_16 + 0x41, 0x83, 0xfe, 0xc3, //0x00003400 cmpl $-61, %r14d + 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00003404 jg LBB9_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000340a .p2align 4, 0x90 + //0x00003410 LBB9_17 + 0x4c, 0x89, 0xe7, //0x00003410 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003413 movl $60, %esi + 0xe8, 0x03, 0x65, 0x00, 0x00, //0x00003418 callq _left_shift + 0x8d, 0x73, 0xc4, //0x0000341d leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00003420 cmpl $120, %ebx + 0x89, 0xf3, //0x00003423 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00003425 jg LBB9_17 + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x0000342b jmp LBB9_19 + //0x00003430 LBB9_18 + 0x89, 0xde, //0x00003430 movl %ebx, %esi + //0x00003432 LBB9_19 + 0x4c, 0x89, 0xe7, //0x00003432 movq %r12, %rdi + 0xe8, 0xe6, 0x64, 0x00, 0x00, //0x00003435 callq _left_shift + 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x0000343a jmp LBB9_8 + //0x0000343f LBB9_20 + 0x4c, 0x8d, 0x35, 0x2a, 0x97, 0x00, 0x00, //0x0000343f leaq $38698(%rip), %r14 /* _POW_TAB+0(%rip) */ + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00003446 jmp LBB9_23 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000344b .p2align 4, 0x90 + //0x00003450 LBB9_21 + 0x4c, 0x89, 0xe7, //0x00003450 movq %r12, %rdi + 0xe8, 0xc8, 0x64, 0x00, 0x00, //0x00003453 callq _left_shift + //0x00003458 LBB9_22 + 0x45, 0x29, 0xef, //0x00003458 subl %r13d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x0000345b movl $20(%r12), %eax + //0x00003460 LBB9_23 + 0x85, 0xc0, //0x00003460 testl %eax, %eax + 0x0f, 0x88, 0x18, 0x00, 0x00, 0x00, //0x00003462 js LBB9_26 + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003468 jne LBB9_37 + 0x49, 0x8b, 0x0c, 0x24, //0x0000346e movq (%r12), %rcx + 0x80, 0x39, 0x35, //0x00003472 cmpb $53, (%rcx) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00003475 jl LBB9_27 + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x0000347b jmp LBB9_37 + //0x00003480 .p2align 4, 0x90 + //0x00003480 LBB9_26 + 0x41, 0xbd, 0x1b, 0x00, 0x00, 0x00, //0x00003480 movl $27, %r13d + 0x83, 0xf8, 0xf8, //0x00003486 cmpl $-8, %eax + 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x00003489 jl LBB9_28 + //0x0000348f LBB9_27 + 0xf7, 0xd8, //0x0000348f negl %eax + 0x48, 0x98, //0x00003491 cltq + 0x45, 0x8b, 0x2c, 0x86, //0x00003493 movl (%r14,%rax,4), %r13d + //0x00003497 LBB9_28 + 0x45, 0x85, 0xed, //0x00003497 testl %r13d, %r13d + 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x0000349a je LBB9_22 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000034a0 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xac, 0xff, 0xff, 0xff, //0x000034a6 je LBB9_22 + 0x45, 0x85, 0xed, //0x000034ac testl %r13d, %r13d + 0x0f, 0x8e, 0x3b, 0x00, 0x00, 0x00, //0x000034af jle LBB9_34 + 0x44, 0x89, 0xee, //0x000034b5 movl %r13d, %esi + 0x41, 0x83, 0xfd, 0x3d, //0x000034b8 cmpl $61, %r13d + 0x0f, 0x8c, 0x8e, 0xff, 0xff, 0xff, //0x000034bc jl LBB9_21 + 0x44, 0x89, 0xeb, //0x000034c2 movl %r13d, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000034c5 .p2align 4, 0x90 + //0x000034d0 LBB9_33 + 0x4c, 0x89, 0xe7, //0x000034d0 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x000034d3 movl $60, %esi + 0xe8, 0x43, 0x64, 0x00, 0x00, //0x000034d8 callq _left_shift + 0x8d, 0x73, 0xc4, //0x000034dd leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x000034e0 cmpl $120, %ebx + 0x89, 0xf3, //0x000034e3 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x000034e5 jg LBB9_33 + 0xe9, 0x60, 0xff, 0xff, 0xff, //0x000034eb jmp LBB9_21 + //0x000034f0 LBB9_34 + 0x44, 0x89, 0xeb, //0x000034f0 movl %r13d, %ebx + 0x41, 0x83, 0xfd, 0xc3, //0x000034f3 cmpl $-61, %r13d + 0x0f, 0x8f, 0x1e, 0x00, 0x00, 0x00, //0x000034f7 jg LBB9_36 + 0x90, 0x90, 0x90, //0x000034fd .p2align 4, 0x90 + //0x00003500 LBB9_35 + 0x4c, 0x89, 0xe7, //0x00003500 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003503 movl $60, %esi + 0xe8, 0x03, 0x66, 0x00, 0x00, //0x00003508 callq _right_shift + 0x8d, 0x43, 0x3c, //0x0000350d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00003510 cmpl $-120, %ebx + 0x89, 0xc3, //0x00003513 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00003515 jl LBB9_35 + //0x0000351b LBB9_36 + 0xf7, 0xdb, //0x0000351b negl %ebx + 0x4c, 0x89, 0xe7, //0x0000351d movq %r12, %rdi + 0x89, 0xde, //0x00003520 movl %ebx, %esi + 0xe8, 0xe9, 0x65, 0x00, 0x00, //0x00003522 callq _right_shift + 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00003527 jmp LBB9_22 + //0x0000352c LBB9_37 + 0x41, 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x0000352c cmpl $-1022, %r15d + 0x0f, 0x8f, 0x5b, 0x00, 0x00, 0x00, //0x00003533 jg LBB9_43 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00003539 cmpl $0, $16(%r12) + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000353f movq $-48(%rbp), %r13 + 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00003543 movabsq $4503599627370496, %rbx + 0x0f, 0x84, 0x67, 0x00, 0x00, 0x00, //0x0000354d je LBB9_45 + 0x41, 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x00003553 cmpl $-1082, %r15d + 0x0f, 0x8f, 0x65, 0x00, 0x00, 0x00, //0x0000355a jg LBB9_46 + 0x41, 0x81, 0xc7, 0xc1, 0x03, 0x00, 0x00, //0x00003560 addl $961, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003567 .p2align 4, 0x90 + //0x00003570 LBB9_41 + 0x4c, 0x89, 0xe7, //0x00003570 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003573 movl $60, %esi + 0xe8, 0x93, 0x65, 0x00, 0x00, //0x00003578 callq _right_shift + 0x41, 0x83, 0xc7, 0x3c, //0x0000357d addl $60, %r15d + 0x41, 0x83, 0xff, 0x88, //0x00003581 cmpl $-120, %r15d + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00003585 jl LBB9_41 + 0x41, 0x83, 0xc7, 0x3c, //0x0000358b addl $60, %r15d + 0xe9, 0x38, 0x00, 0x00, 0x00, //0x0000358f jmp LBB9_47 + //0x00003594 LBB9_43 + 0x41, 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00003594 cmpl $1024, %r15d + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000359b movq $-48(%rbp), %r13 + 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x0000359f movabsq $4503599627370496, %rbx + 0x0f, 0x8f, 0x7d, 0x03, 0x00, 0x00, //0x000035a9 jg LBB9_81 + 0x41, 0xff, 0xcf, //0x000035af decl %r15d + 0x45, 0x89, 0xfe, //0x000035b2 movl %r15d, %r14d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x000035b5 jmp LBB9_48 + //0x000035ba LBB9_45 + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x000035ba movl $-1022, %r14d + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x000035c0 jmp LBB9_50 + //0x000035c5 LBB9_46 + 0x41, 0x81, 0xc7, 0xfd, 0x03, 0x00, 0x00, //0x000035c5 addl $1021, %r15d + //0x000035cc LBB9_47 + 0x41, 0xf7, 0xdf, //0x000035cc negl %r15d + 0x4c, 0x89, 0xe7, //0x000035cf movq %r12, %rdi + 0x44, 0x89, 0xfe, //0x000035d2 movl %r15d, %esi + 0xe8, 0x36, 0x65, 0x00, 0x00, //0x000035d5 callq _right_shift + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x000035da movl $-1022, %r14d + //0x000035e0 LBB9_48 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000035e0 cmpl $0, $16(%r12) + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000035e6 je LBB9_50 + 0x4c, 0x89, 0xe7, //0x000035ec movq %r12, %rdi + 0xbe, 0x35, 0x00, 0x00, 0x00, //0x000035ef movl $53, %esi + 0xe8, 0x27, 0x63, 0x00, 0x00, //0x000035f4 callq _left_shift + //0x000035f9 LBB9_50 + 0x4d, 0x63, 0x54, 0x24, 0x14, //0x000035f9 movslq $20(%r12), %r10 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000035fe movq $-1, %r15 + 0x49, 0x83, 0xfa, 0x14, //0x00003605 cmpq $20, %r10 + 0x0f, 0x8f, 0x35, 0x03, 0x00, 0x00, //0x00003609 jg LBB9_83 + 0x44, 0x89, 0xd1, //0x0000360f movl %r10d, %ecx + 0x45, 0x85, 0xd2, //0x00003612 testl %r10d, %r10d + 0x0f, 0x8e, 0x41, 0x00, 0x00, 0x00, //0x00003615 jle LBB9_55 + 0x49, 0x63, 0x74, 0x24, 0x10, //0x0000361b movslq $16(%r12), %rsi + 0x31, 0xd2, //0x00003620 xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00003622 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003625 .p2align 4, 0x90 + //0x00003630 LBB9_53 + 0x48, 0x39, 0xf2, //0x00003630 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00003633 jge LBB9_56 + 0x4b, 0x8d, 0x04, 0xbf, //0x00003639 leaq (%r15,%r15,4), %rax + 0x49, 0x8b, 0x3c, 0x24, //0x0000363d movq (%r12), %rdi + 0x48, 0x0f, 0xbe, 0x3c, 0x17, //0x00003641 movsbq (%rdi,%rdx), %rdi + 0x4c, 0x8d, 0x7c, 0x47, 0xd0, //0x00003646 leaq $-48(%rdi,%rax,2), %r15 + 0x48, 0xff, 0xc2, //0x0000364b incq %rdx + 0x48, 0x39, 0xd1, //0x0000364e cmpq %rdx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00003651 jne LBB9_53 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00003657 jmp LBB9_56 + //0x0000365c LBB9_55 + 0x31, 0xd2, //0x0000365c xorl %edx, %edx + 0x45, 0x31, 0xff, //0x0000365e xorl %r15d, %r15d + //0x00003661 LBB9_56 + 0x39, 0xd1, //0x00003661 cmpl %edx, %ecx + 0x0f, 0x8e, 0x46, 0x02, 0x00, 0x00, //0x00003663 jle LBB9_69 + 0x45, 0x89, 0xd1, //0x00003669 movl %r10d, %r9d + 0x41, 0x29, 0xd1, //0x0000366c subl %edx, %r9d + 0x41, 0x83, 0xf9, 0x10, //0x0000366f cmpl $16, %r9d + 0x0f, 0x82, 0x22, 0x02, 0x00, 0x00, //0x00003673 jb LBB9_67 + 0x45, 0x89, 0xc8, //0x00003679 movl %r9d, %r8d + 0xc5, 0xf9, 0x6f, 0x05, 0x3c, 0xfc, 0xff, 0xff, //0x0000367c vmovdqa $-964(%rip), %xmm0 /* LCPI9_0+0(%rip) */ + 0xc4, 0xc3, 0xf9, 0x22, 0xc7, 0x00, //0x00003684 vpinsrq $0, %r15, %xmm0, %xmm0 + 0x41, 0x83, 0xe0, 0xf0, //0x0000368a andl $-16, %r8d + 0xc4, 0xe3, 0x7d, 0x02, 0x05, 0x28, 0xfc, 0xff, 0xff, 0xf0, //0x0000368e vpblendd $240, $-984(%rip), %ymm0, %ymm0 /* LCPI9_0+0(%rip) */ + 0x41, 0x8d, 0x78, 0xf0, //0x00003698 leal $-16(%r8), %edi + 0x89, 0xf8, //0x0000369c movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x0000369e shrl $4, %eax + 0xff, 0xc0, //0x000036a1 incl %eax + 0x89, 0xc6, //0x000036a3 movl %eax, %esi + 0x83, 0xe6, 0x03, //0x000036a5 andl $3, %esi + 0x83, 0xff, 0x30, //0x000036a8 cmpl $48, %edi + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x000036ab jae LBB9_60 + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x26, 0xfc, 0xff, 0xff, //0x000036b1 vpbroadcastq $-986(%rip), %ymm2 /* LCPI9_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x000036ba vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x000036be vmovdqa %ymm2, %ymm1 + 0xe9, 0x8a, 0x00, 0x00, 0x00, //0x000036c2 jmp LBB9_62 + //0x000036c7 LBB9_60 + 0x89, 0xf7, //0x000036c7 movl %esi, %edi + 0x29, 0xc7, //0x000036c9 subl %eax, %edi + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x0c, 0xfc, 0xff, 0xff, //0x000036cb vpbroadcastq $-1012(%rip), %ymm2 /* LCPI9_1+0(%rip) */ + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x0b, 0xfc, 0xff, 0xff, //0x000036d4 vpbroadcastq $-1013(%rip), %ymm4 /* LCPI9_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x000036dd vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x000036e1 vmovdqa %ymm2, %ymm1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000036e5 .p2align 4, 0x90 + //0x000036f0 LBB9_61 + 0xc5, 0xfd, 0xf4, 0xec, //0x000036f0 vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x000036f4 vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x000036f9 vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x000036fd vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x00003702 vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x00003706 vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x0000370a vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x0000370f vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003713 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x00003718 vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x0000371c vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x00003720 vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x00003725 vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x00003729 vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x0000372e vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x00003732 vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x00003736 vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x0000373b vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x0000373f vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x00003744 vpaddq %ymm1, %ymm5, %ymm1 + 0x83, 0xc7, 0x04, //0x00003748 addl $4, %edi + 0x0f, 0x85, 0x9f, 0xff, 0xff, 0xff, //0x0000374b jne LBB9_61 + //0x00003751 LBB9_62 + 0x85, 0xf6, //0x00003751 testl %esi, %esi + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00003753 je LBB9_65 + 0xf7, 0xde, //0x00003759 negl %esi + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x8c, 0xfb, 0xff, 0xff, //0x0000375b vpbroadcastq $-1140(%rip), %ymm4 /* LCPI9_3+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003764 .p2align 4, 0x90 + //0x00003770 LBB9_64 + 0xc5, 0xfd, 0xf4, 0xec, //0x00003770 vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x00003774 vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x00003779 vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x0000377d vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x00003782 vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x00003786 vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x0000378a vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x0000378f vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003793 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x00003798 vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x0000379c vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x000037a0 vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x000037a5 vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x000037a9 vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x000037ae vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x000037b2 vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x000037b6 vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x000037bb vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x000037bf vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x000037c4 vpaddq %ymm1, %ymm5, %ymm1 + 0xff, 0xc6, //0x000037c8 incl %esi + 0x0f, 0x85, 0xa0, 0xff, 0xff, 0xff, //0x000037ca jne LBB9_64 + //0x000037d0 LBB9_65 + 0xc5, 0xdd, 0x73, 0xd2, 0x20, //0x000037d0 vpsrlq $32, %ymm2, %ymm4 + 0xc5, 0xdd, 0xf4, 0xe0, //0x000037d5 vpmuludq %ymm0, %ymm4, %ymm4 + 0xc5, 0xd5, 0x73, 0xd0, 0x20, //0x000037d9 vpsrlq $32, %ymm0, %ymm5 + 0xc5, 0xed, 0xf4, 0xed, //0x000037de vpmuludq %ymm5, %ymm2, %ymm5 + 0xc5, 0xd5, 0xd4, 0xe4, //0x000037e2 vpaddq %ymm4, %ymm5, %ymm4 + 0xc5, 0xdd, 0x73, 0xf4, 0x20, //0x000037e6 vpsllq $32, %ymm4, %ymm4 + 0xc5, 0xed, 0xf4, 0xc0, //0x000037eb vpmuludq %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc4, //0x000037ef vpaddq %ymm4, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd3, 0x20, //0x000037f3 vpsrlq $32, %ymm3, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x000037f8 vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xdd, 0x73, 0xd0, 0x20, //0x000037fc vpsrlq $32, %ymm0, %ymm4 + 0xc5, 0xe5, 0xf4, 0xe4, //0x00003801 vpmuludq %ymm4, %ymm3, %ymm4 + 0xc5, 0xdd, 0xd4, 0xd2, //0x00003805 vpaddq %ymm2, %ymm4, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003809 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xe5, 0xf4, 0xc0, //0x0000380e vpmuludq %ymm0, %ymm3, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x00003812 vpaddq %ymm2, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd1, 0x20, //0x00003816 vpsrlq $32, %ymm1, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x0000381b vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xe5, 0x73, 0xd0, 0x20, //0x0000381f vpsrlq $32, %ymm0, %ymm3 + 0xc5, 0xf5, 0xf4, 0xdb, //0x00003824 vpmuludq %ymm3, %ymm1, %ymm3 + 0xc5, 0xe5, 0xd4, 0xd2, //0x00003828 vpaddq %ymm2, %ymm3, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x0000382c vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xf5, 0xf4, 0xc0, //0x00003831 vpmuludq %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x00003835 vpaddq %ymm2, %ymm0, %ymm0 + 0xc4, 0xe3, 0x7d, 0x39, 0xc1, 0x01, //0x00003839 vextracti128 $1, %ymm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x0000383f vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x00003844 vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xe1, 0x73, 0xd1, 0x20, //0x00003848 vpsrlq $32, %xmm1, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x0000384d vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x00003851 vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x00003855 vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x0000385a vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x0000385e vpaddq %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc8, 0x4e, //0x00003862 vpshufd $78, %xmm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x00003867 vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x0000386c vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xe1, 0x73, 0xd8, 0x0c, //0x00003870 vpsrldq $12, %xmm0, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x00003875 vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x00003879 vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x0000387d vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x00003882 vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x00003886 vpaddq %xmm2, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc7, //0x0000388a vmovq %xmm0, %r15 + 0x45, 0x39, 0xc1, //0x0000388f cmpl %r8d, %r9d + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003892 je LBB9_69 + 0x44, 0x01, 0xc2, //0x00003898 addl %r8d, %edx + //0x0000389b LBB9_67 + 0x89, 0xce, //0x0000389b movl %ecx, %esi + 0x29, 0xd6, //0x0000389d subl %edx, %esi + 0x90, //0x0000389f .p2align 4, 0x90 + //0x000038a0 LBB9_68 + 0x4d, 0x01, 0xff, //0x000038a0 addq %r15, %r15 + 0x4f, 0x8d, 0x3c, 0xbf, //0x000038a3 leaq (%r15,%r15,4), %r15 + 0xff, 0xce, //0x000038a7 decl %esi + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x000038a9 jne LBB9_68 + //0x000038af LBB9_69 + 0x85, 0xc9, //0x000038af testl %ecx, %ecx + 0x0f, 0x88, 0x4d, 0x00, 0x00, 0x00, //0x000038b1 js LBB9_77 + 0x41, 0x8b, 0x44, 0x24, 0x10, //0x000038b7 movl $16(%r12), %eax + 0x39, 0xc8, //0x000038bc cmpl %ecx, %eax + 0x0f, 0x8e, 0x40, 0x00, 0x00, 0x00, //0x000038be jle LBB9_77 + 0x49, 0x8b, 0x34, 0x24, //0x000038c4 movq (%r12), %rsi + 0x8a, 0x14, 0x0e, //0x000038c8 movb (%rsi,%rcx), %dl + 0x41, 0x8d, 0x7a, 0x01, //0x000038cb leal $1(%r10), %edi + 0x39, 0xc7, //0x000038cf cmpl %eax, %edi + 0x0f, 0x85, 0xc4, 0x00, 0x00, 0x00, //0x000038d1 jne LBB9_78 + 0x80, 0xfa, 0x35, //0x000038d7 cmpb $53, %dl + 0x0f, 0x85, 0xbb, 0x00, 0x00, 0x00, //0x000038da jne LBB9_78 + 0x41, 0x83, 0x7c, 0x24, 0x1c, 0x00, //0x000038e0 cmpl $0, $28(%r12) + 0x0f, 0x95, 0xc2, //0x000038e6 setne %dl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000038e9 jne LBB9_79 + 0x85, 0xc9, //0x000038ef testl %ecx, %ecx + 0x0f, 0x8e, 0x0f, 0x00, 0x00, 0x00, //0x000038f1 jle LBB9_79 + 0x41, 0x8a, 0x54, 0x32, 0xff, //0x000038f7 movb $-1(%r10,%rsi), %dl + 0x80, 0xe2, 0x01, //0x000038fc andb $1, %dl + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x000038ff jmp LBB9_79 + //0x00003904 LBB9_77 + 0x31, 0xd2, //0x00003904 xorl %edx, %edx + //0x00003906 LBB9_79 + 0x0f, 0xb6, 0xc2, //0x00003906 movzbl %dl, %eax + 0x49, 0x01, 0xc7, //0x00003909 addq %rax, %r15 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x0000390c movabsq $9007199254740992, %rax + 0x49, 0x39, 0xc7, //0x00003916 cmpq %rax, %r15 + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00003919 jne LBB9_83 + 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x0000391f cmpl $1022, %r14d + 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00003926 jle LBB9_82 + //0x0000392c LBB9_81 + 0x45, 0x31, 0xff, //0x0000392c xorl %r15d, %r15d + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x0000392f movabsq $9218868437227405312, %r14 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00003939 jmp LBB9_84 + //0x0000393e LBB9_82 + 0x41, 0xff, 0xc6, //0x0000393e incl %r14d + 0x49, 0x89, 0xdf, //0x00003941 movq %rbx, %r15 + //0x00003944 LBB9_83 + 0x4c, 0x89, 0xf8, //0x00003944 movq %r15, %rax + 0x48, 0x21, 0xd8, //0x00003947 andq %rbx, %rax + 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x0000394a addl $1023, %r14d + 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00003951 andl $2047, %r14d + 0x49, 0xc1, 0xe6, 0x34, //0x00003958 shlq $52, %r14 + 0x48, 0x85, 0xc0, //0x0000395c testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf0, //0x0000395f cmoveq %rax, %r14 + //0x00003963 LBB9_84 + 0x48, 0xff, 0xcb, //0x00003963 decq %rbx + 0x4c, 0x21, 0xfb, //0x00003966 andq %r15, %rbx + 0x4c, 0x09, 0xf3, //0x00003969 orq %r14, %rbx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000396c movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xd8, //0x00003976 orq %rbx, %rax + 0x41, 0x83, 0x7c, 0x24, 0x18, 0x00, //0x00003979 cmpl $0, $24(%r12) + 0x48, 0x0f, 0x44, 0xc3, //0x0000397f cmoveq %rbx, %rax + 0x49, 0x89, 0x45, 0x00, //0x00003983 movq %rax, (%r13) + 0x31, 0xc0, //0x00003987 xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00003989 addq $8, %rsp + 0x5b, //0x0000398d popq %rbx + 0x41, 0x5c, //0x0000398e popq %r12 + 0x41, 0x5d, //0x00003990 popq %r13 + 0x41, 0x5e, //0x00003992 popq %r14 + 0x41, 0x5f, //0x00003994 popq %r15 + 0x5d, //0x00003996 popq %rbp + 0xc5, 0xf8, 0x77, //0x00003997 vzeroupper + 0xc3, //0x0000399a retq + //0x0000399b LBB9_78 + 0x80, 0xfa, 0x34, //0x0000399b cmpb $52, %dl + 0x0f, 0x9f, 0xc2, //0x0000399e setg %dl + 0xe9, 0x60, 0xff, 0xff, 0xff, //0x000039a1 jmp LBB9_79 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039a6 .p2align 4, 0x90 + //0x000039b0 _atof_native + 0x55, //0x000039b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000039b1 movq %rsp, %rbp + 0x48, 0x83, 0xec, 0x30, //0x000039b4 subq $48, %rsp + 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x000039b8 movq $0, $-40(%rbp) + 0x48, 0x89, 0x55, 0xe0, //0x000039c0 movq %rdx, $-32(%rbp) + 0x48, 0x89, 0x4d, 0xe8, //0x000039c4 movq %rcx, $-24(%rbp) + 0x48, 0x85, 0xc9, //0x000039c8 testq %rcx, %rcx + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x000039cb je LBB10_5 + 0xc6, 0x02, 0x00, //0x000039d1 movb $0, (%rdx) + 0x48, 0x83, 0xf9, 0x01, //0x000039d4 cmpq $1, %rcx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x000039d8 je LBB10_5 + 0xc6, 0x42, 0x01, 0x00, //0x000039de movb $0, $1(%rdx) + 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x000039e2 cmpq $3, $-24(%rbp) + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x000039e7 jb LBB10_5 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000039ed movl $2, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039f2 .p2align 4, 0x90 + //0x00003a00 LBB10_4 + 0x48, 0x8b, 0x4d, 0xe0, //0x00003a00 movq $-32(%rbp), %rcx + 0xc6, 0x04, 0x01, 0x00, //0x00003a04 movb $0, (%rcx,%rax) + 0x48, 0xff, 0xc0, //0x00003a08 incq %rax + 0x48, 0x39, 0x45, 0xe8, //0x00003a0b cmpq %rax, $-24(%rbp) + 0x0f, 0x87, 0xeb, 0xff, 0xff, 0xff, //0x00003a0f ja LBB10_4 + //0x00003a15 LBB10_5 + 0xc5, 0xf8, 0x57, 0xc0, //0x00003a15 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x00003a19 vmovups %xmm0, $-16(%rbp) + 0x80, 0x3f, 0x2d, //0x00003a1e cmpb $45, (%rdi) + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00003a21 jne LBB10_6 + 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00003a27 movl $1, $-8(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003a2e movl $1, %eax + 0x48, 0x39, 0xf0, //0x00003a33 cmpq %rsi, %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003a36 jl LBB10_9 + //0x00003a3c LBB10_41 + 0xc7, 0x45, 0xf4, 0x00, 0x00, 0x00, 0x00, //0x00003a3c movl $0, $-12(%rbp) + 0xe9, 0xa1, 0x01, 0x00, 0x00, //0x00003a43 jmp LBB10_40 + //0x00003a48 LBB10_6 + 0x31, 0xc0, //0x00003a48 xorl %eax, %eax + 0x48, 0x39, 0xf0, //0x00003a4a cmpq %rsi, %rax + 0x0f, 0x8d, 0xe9, 0xff, 0xff, 0xff, //0x00003a4d jge LBB10_41 + //0x00003a53 LBB10_9 + 0x41, 0xb3, 0x01, //0x00003a53 movb $1, %r11b + 0x45, 0x31, 0xc9, //0x00003a56 xorl %r9d, %r9d + 0x45, 0x31, 0xd2, //0x00003a59 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00003a5c xorl %r8d, %r8d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00003a5f jmp LBB10_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003a64 .p2align 4, 0x90 + //0x00003a70 LBB10_13 + 0xff, 0x4d, 0xf4, //0x00003a70 decl $-12(%rbp) + 0x45, 0x31, 0xd2, //0x00003a73 xorl %r10d, %r10d + //0x00003a76 LBB10_22 + 0x48, 0xff, 0xc0, //0x00003a76 incq %rax + 0x48, 0x39, 0xf0, //0x00003a79 cmpq %rsi, %rax + 0x41, 0x0f, 0x9c, 0xc3, //0x00003a7c setl %r11b + 0x48, 0x39, 0xc6, //0x00003a80 cmpq %rax, %rsi + 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x00003a83 je LBB10_23 + //0x00003a89 LBB10_10 + 0x0f, 0xb6, 0x0c, 0x07, //0x00003a89 movzbl (%rdi,%rax), %ecx + 0x8d, 0x51, 0xd0, //0x00003a8d leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00003a90 cmpb $9, %dl + 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00003a93 ja LBB10_19 + 0x45, 0x85, 0xd2, //0x00003a99 testl %r10d, %r10d + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003a9c jne LBB10_14 + 0x80, 0xf9, 0x30, //0x00003aa2 cmpb $48, %cl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00003aa5 je LBB10_13 + //0x00003aab LBB10_14 + 0x4d, 0x63, 0xd1, //0x00003aab movslq %r9d, %r10 + 0x4c, 0x39, 0x55, 0xe8, //0x00003aae cmpq %r10, $-24(%rbp) + 0x0f, 0x86, 0x40, 0x00, 0x00, 0x00, //0x00003ab2 jbe LBB10_16 + 0x48, 0x8b, 0x55, 0xe0, //0x00003ab8 movq $-32(%rbp), %rdx + 0x42, 0x88, 0x0c, 0x12, //0x00003abc movb %cl, (%rdx,%r10) + 0x44, 0x8b, 0x4d, 0xf0, //0x00003ac0 movl $-16(%rbp), %r9d + 0x41, 0xff, 0xc1, //0x00003ac4 incl %r9d + 0x44, 0x89, 0x4d, 0xf0, //0x00003ac7 movl %r9d, $-16(%rbp) + 0x45, 0x89, 0xca, //0x00003acb movl %r9d, %r10d + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00003ace jmp LBB10_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003ad3 .p2align 4, 0x90 + //0x00003ae0 LBB10_19 + 0x80, 0xf9, 0x2e, //0x00003ae0 cmpb $46, %cl + 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, //0x00003ae3 jne LBB10_20 + 0x44, 0x89, 0x55, 0xf4, //0x00003ae9 movl %r10d, $-12(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003aed movl $1, %r8d + 0xe9, 0x7e, 0xff, 0xff, 0xff, //0x00003af3 jmp LBB10_22 + //0x00003af8 LBB10_16 + 0x80, 0xf9, 0x30, //0x00003af8 cmpb $48, %cl + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00003afb jne LBB10_18 + 0x45, 0x89, 0xca, //0x00003b01 movl %r9d, %r10d + 0xe9, 0x6d, 0xff, 0xff, 0xff, //0x00003b04 jmp LBB10_22 + //0x00003b09 LBB10_18 + 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00003b09 movl $1, $-4(%rbp) + 0x45, 0x89, 0xca, //0x00003b10 movl %r9d, %r10d + 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00003b13 jmp LBB10_22 + //0x00003b18 LBB10_23 + 0x89, 0xf1, //0x00003b18 movl %esi, %ecx + 0x48, 0x89, 0xf0, //0x00003b1a movq %rsi, %rax + 0x45, 0x85, 0xc0, //0x00003b1d testl %r8d, %r8d + 0x0f, 0x85, 0x04, 0x00, 0x00, 0x00, //0x00003b20 jne LBB10_26 + //0x00003b26 LBB10_25 + 0x44, 0x89, 0x4d, 0xf4, //0x00003b26 movl %r9d, $-12(%rbp) + //0x00003b2a LBB10_26 + 0x41, 0xf6, 0xc3, 0x01, //0x00003b2a testb $1, %r11b + 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00003b2e je LBB10_40 + 0x8a, 0x0c, 0x0f, //0x00003b34 movb (%rdi,%rcx), %cl + 0x80, 0xc9, 0x20, //0x00003b37 orb $32, %cl + 0x80, 0xf9, 0x65, //0x00003b3a cmpb $101, %cl + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00003b3d jne LBB10_40 + 0x89, 0xc2, //0x00003b43 movl %eax, %edx + 0x8a, 0x4c, 0x17, 0x01, //0x00003b45 movb $1(%rdi,%rdx), %cl + 0x80, 0xf9, 0x2d, //0x00003b49 cmpb $45, %cl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00003b4c je LBB10_32 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003b52 movl $1, %r8d + 0x80, 0xf9, 0x2b, //0x00003b58 cmpb $43, %cl + 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00003b5b jne LBB10_30 + 0x83, 0xc0, 0x02, //0x00003b61 addl $2, %eax + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00003b64 jmp LBB10_33 + //0x00003b69 LBB10_20 + 0x48, 0x89, 0xc1, //0x00003b69 movq %rax, %rcx + 0x45, 0x85, 0xc0, //0x00003b6c testl %r8d, %r8d + 0x0f, 0x85, 0xb5, 0xff, 0xff, 0xff, //0x00003b6f jne LBB10_26 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00003b75 jmp LBB10_25 + //0x00003b7a LBB10_32 + 0x83, 0xc0, 0x02, //0x00003b7a addl $2, %eax + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003b7d movl $-1, %r8d + //0x00003b83 LBB10_33 + 0x89, 0xc2, //0x00003b83 movl %eax, %edx + 0x48, 0x63, 0xd2, //0x00003b85 movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00003b88 xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00003b8b cmpq %rsi, %rdx + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003b8e jl LBB10_35 + 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00003b94 jmp LBB10_39 + //0x00003b99 LBB10_30 + 0x48, 0xff, 0xc2, //0x00003b99 incq %rdx + 0x48, 0x63, 0xd2, //0x00003b9c movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00003b9f xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00003ba2 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x36, 0x00, 0x00, 0x00, //0x00003ba5 jge LBB10_39 + //0x00003bab LBB10_35 + 0x45, 0x31, 0xc9, //0x00003bab xorl %r9d, %r9d + 0x90, 0x90, //0x00003bae .p2align 4, 0x90 + //0x00003bb0 LBB10_36 + 0x41, 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00003bb0 cmpl $9999, %r9d + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00003bb7 jg LBB10_39 + 0x0f, 0xb6, 0x0c, 0x17, //0x00003bbd movzbl (%rdi,%rdx), %ecx + 0x8d, 0x41, 0xd0, //0x00003bc1 leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00003bc4 cmpb $9, %al + 0x0f, 0x87, 0x15, 0x00, 0x00, 0x00, //0x00003bc6 ja LBB10_39 + 0x43, 0x8d, 0x04, 0x89, //0x00003bcc leal (%r9,%r9,4), %eax + 0x44, 0x8d, 0x4c, 0x41, 0xd0, //0x00003bd0 leal $-48(%rcx,%rax,2), %r9d + 0x48, 0xff, 0xc2, //0x00003bd5 incq %rdx + 0x48, 0x39, 0xd6, //0x00003bd8 cmpq %rdx, %rsi + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00003bdb jne LBB10_36 + //0x00003be1 LBB10_39 + 0x45, 0x0f, 0xaf, 0xc8, //0x00003be1 imull %r8d, %r9d + 0x44, 0x01, 0x4d, 0xf4, //0x00003be5 addl %r9d, $-12(%rbp) + //0x00003be9 LBB10_40 + 0x48, 0x8d, 0x7d, 0xe0, //0x00003be9 leaq $-32(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd8, //0x00003bed leaq $-40(%rbp), %rsi + 0xe8, 0x0a, 0xf7, 0xff, 0xff, //0x00003bf1 callq _decimal_to_f64 + 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x00003bf6 vmovsd $-40(%rbp), %xmm0 + 0x48, 0x83, 0xc4, 0x30, //0x00003bfb addq $48, %rsp + 0x5d, //0x00003bff popq %rbp + 0xc3, //0x00003c00 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003c01 .p2align 4, 0x90 + //0x00003c10 _value + 0x55, //0x00003c10 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003c11 movq %rsp, %rbp + 0x41, 0x57, //0x00003c14 pushq %r15 + 0x41, 0x56, //0x00003c16 pushq %r14 + 0x41, 0x55, //0x00003c18 pushq %r13 + 0x41, 0x54, //0x00003c1a pushq %r12 + 0x53, //0x00003c1c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x00003c1d subq $40, %rsp + 0x4d, 0x89, 0xc4, //0x00003c21 movq %r8, %r12 + 0x49, 0x89, 0xce, //0x00003c24 movq %rcx, %r14 + 0x48, 0x89, 0xf3, //0x00003c27 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00003c2a movq %rdi, %r15 + 0x48, 0x89, 0x55, 0xd0, //0x00003c2d movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x7d, 0xb0, //0x00003c31 movq %rdi, $-80(%rbp) + 0x48, 0x89, 0x75, 0xb8, //0x00003c35 movq %rsi, $-72(%rbp) + 0x48, 0x8d, 0x55, 0xd0, //0x00003c39 leaq $-48(%rbp), %rdx + 0xe8, 0xde, 0x05, 0x00, 0x00, //0x00003c3d callq _advance_ns + 0x0f, 0xbe, 0xc0, //0x00003c42 movsbl %al, %eax + 0x83, 0xf8, 0x7d, //0x00003c45 cmpl $125, %eax + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00003c48 ja LBB11_11 + 0x48, 0x8d, 0x0d, 0xa7, 0x03, 0x00, 0x00, //0x00003c4e leaq $935(%rip), %rcx /* LJTI11_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x81, //0x00003c55 movslq (%rcx,%rax,4), %rax + 0x48, 0x01, 0xc8, //0x00003c59 addq %rcx, %rax + 0xff, 0xe0, //0x00003c5c jmpq *%rax + //0x00003c5e LBB11_2 + 0x4c, 0x89, 0x75, 0xc8, //0x00003c5e movq %r14, $-56(%rbp) + 0x4c, 0x8b, 0x75, 0xd0, //0x00003c62 movq $-48(%rbp), %r14 + 0x4d, 0x8d, 0x6e, 0xff, //0x00003c66 leaq $-1(%r14), %r13 + 0x4c, 0x89, 0x6d, 0xd0, //0x00003c6a movq %r13, $-48(%rbp) + 0x41, 0xf6, 0xc4, 0x02, //0x00003c6e testb $2, %r12b + 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00003c72 jne LBB11_4 + 0x48, 0x8d, 0x7d, 0xb0, //0x00003c78 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd0, //0x00003c7c leaq $-48(%rbp), %rsi + 0x48, 0x8b, 0x55, 0xc8, //0x00003c80 movq $-56(%rbp), %rdx + 0xe8, 0xe7, 0x0c, 0x00, 0x00, //0x00003c84 callq _vnumber + 0x48, 0x8b, 0x5d, 0xd0, //0x00003c89 movq $-48(%rbp), %rbx + 0xe9, 0x57, 0x03, 0x00, 0x00, //0x00003c8d jmp LBB11_59 + //0x00003c92 LBB11_4 + 0x31, 0xc0, //0x00003c92 xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x2f, 0x2d, //0x00003c94 cmpb $45, (%r15,%r13) + 0x4f, 0x8d, 0x24, 0x2f, //0x00003c99 leaq (%r15,%r13), %r12 + 0x0f, 0x94, 0xc0, //0x00003c9d sete %al + 0x49, 0x01, 0xc4, //0x00003ca0 addq %rax, %r12 + 0x48, 0x29, 0xc3, //0x00003ca3 subq %rax, %rbx + 0x0f, 0x84, 0x0c, 0x03, 0x00, 0x00, //0x00003ca6 je LBB11_54 + 0x49, 0x39, 0xdd, //0x00003cac cmpq %rbx, %r13 + 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00003caf jae LBB11_7 + 0x41, 0x8a, 0x04, 0x24, //0x00003cb5 movb (%r12), %al + 0x04, 0xd0, //0x00003cb9 addb $-48, %al + 0x3c, 0x0a, //0x00003cbb cmpb $10, %al + 0x0f, 0x83, 0x0e, 0x03, 0x00, 0x00, //0x00003cbd jae LBB11_56 + //0x00003cc3 LBB11_7 + 0x4c, 0x89, 0xe7, //0x00003cc3 movq %r12, %rdi + 0x48, 0x89, 0xde, //0x00003cc6 movq %rbx, %rsi + 0xe8, 0xc2, 0x1f, 0x00, 0x00, //0x00003cc9 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00003cce testq %rax, %rax + 0x0f, 0x88, 0xf4, 0x02, 0x00, 0x00, //0x00003cd1 js LBB11_55 + 0x49, 0x01, 0xc4, //0x00003cd7 addq %rax, %r12 + 0x4c, 0x89, 0xe3, //0x00003cda movq %r12, %rbx + 0x4c, 0x29, 0xfb, //0x00003cdd subq %r15, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003ce0 movq %rbx, $-48(%rbp) + 0x4d, 0x85, 0xf6, //0x00003ce4 testq %r14, %r14 + 0x0f, 0x8e, 0xf5, 0x02, 0x00, 0x00, //0x00003ce7 jle LBB11_58 + 0x48, 0x8b, 0x45, 0xc8, //0x00003ced movq $-56(%rbp), %rax + 0x48, 0xc7, 0x00, 0x08, 0x00, 0x00, 0x00, //0x00003cf1 movq $8, (%rax) + 0x4c, 0x89, 0x68, 0x18, //0x00003cf8 movq %r13, $24(%rax) + 0xe9, 0xe8, 0x02, 0x00, 0x00, //0x00003cfc jmp LBB11_59 + //0x00003d01 LBB11_10 + 0x49, 0xc7, 0x06, 0x01, 0x00, 0x00, 0x00, //0x00003d01 movq $1, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003d08 movq $-48(%rbp), %rbx + 0xe9, 0xd8, 0x02, 0x00, 0x00, //0x00003d0c jmp LBB11_59 + //0x00003d11 LBB11_11 + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00003d11 movq $-2, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003d18 movq $-48(%rbp), %rbx + 0x48, 0xff, 0xcb, //0x00003d1c decq %rbx + 0xe9, 0xc5, 0x02, 0x00, 0x00, //0x00003d1f jmp LBB11_59 + //0x00003d24 LBB11_12 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003d24 movq $-1, $-64(%rbp) + 0x4c, 0x8b, 0x7d, 0xd0, //0x00003d2c movq $-48(%rbp), %r15 + 0x48, 0x8d, 0x7d, 0xb0, //0x00003d30 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc0, //0x00003d34 leaq $-64(%rbp), %rdx + 0x4c, 0x89, 0xfe, //0x00003d38 movq %r15, %rsi + 0x4c, 0x89, 0xe1, //0x00003d3b movq %r12, %rcx + 0xe8, 0xbd, 0x07, 0x00, 0x00, //0x00003d3e callq _advance_string + 0x48, 0x85, 0xc0, //0x00003d43 testq %rax, %rax + 0x0f, 0x88, 0x60, 0x02, 0x00, 0x00, //0x00003d46 js LBB11_48 + 0x48, 0x89, 0x45, 0xd0, //0x00003d4c movq %rax, $-48(%rbp) + 0x4d, 0x89, 0x7e, 0x10, //0x00003d50 movq %r15, $16(%r14) + 0x48, 0x8b, 0x4d, 0xc0, //0x00003d54 movq $-64(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x00003d58 cmpq %rax, %rcx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00003d5b movq $-1, %rdx + 0x48, 0x0f, 0x4c, 0xd1, //0x00003d62 cmovlq %rcx, %rdx + 0x49, 0x89, 0x56, 0x18, //0x00003d66 movq %rdx, $24(%r14) + 0xb9, 0x07, 0x00, 0x00, 0x00, //0x00003d6a movl $7, %ecx + 0x49, 0x89, 0x0e, //0x00003d6f movq %rcx, (%r14) + 0x48, 0x89, 0xc3, //0x00003d72 movq %rax, %rbx + 0xe9, 0x6f, 0x02, 0x00, 0x00, //0x00003d75 jmp LBB11_59 + //0x00003d7a LBB11_14 + 0x31, 0xc0, //0x00003d7a xorl %eax, %eax + 0x45, 0x85, 0xe4, //0x00003d7c testl %r12d, %r12d + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x00003d7f movl $11, %ecx + 0xe9, 0xc4, 0x00, 0x00, 0x00, //0x00003d84 jmp LBB11_27 + //0x00003d89 LBB11_15 + 0x31, 0xc0, //0x00003d89 xorl %eax, %eax + 0x45, 0x85, 0xe4, //0x00003d8b testl %r12d, %r12d + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x00003d8e movl $10, %ecx + 0xe9, 0xb5, 0x00, 0x00, 0x00, //0x00003d93 jmp LBB11_27 + //0x00003d98 LBB11_16 + 0x49, 0xc7, 0x06, 0x05, 0x00, 0x00, 0x00, //0x00003d98 movq $5, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003d9f movq $-48(%rbp), %rbx + 0xe9, 0x41, 0x02, 0x00, 0x00, //0x00003da3 jmp LBB11_59 + //0x00003da8 LBB11_17 + 0x31, 0xc0, //0x00003da8 xorl %eax, %eax + 0x45, 0x85, 0xe4, //0x00003daa testl %r12d, %r12d + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00003dad movl $12, %ecx + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x00003db2 jmp LBB11_27 + //0x00003db7 LBB11_18 + 0x48, 0x8b, 0x4d, 0xd0, //0x00003db7 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0x43, 0xfc, //0x00003dbb leaq $-4(%rbx), %rax + 0x48, 0x39, 0xc1, //0x00003dbf cmpq %rax, %rcx + 0x0f, 0x86, 0xa2, 0x00, 0x00, 0x00, //0x00003dc2 jbe LBB11_28 + 0x48, 0x89, 0x5d, 0xd0, //0x00003dc8 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003dcc movq $-1, %rax + 0x49, 0x89, 0x06, //0x00003dd3 movq %rax, (%r14) + 0xe9, 0x0e, 0x02, 0x00, 0x00, //0x00003dd6 jmp LBB11_59 + //0x00003ddb LBB11_20 + 0x48, 0x8b, 0x45, 0xd0, //0x00003ddb movq $-48(%rbp), %rax + 0x48, 0x8d, 0x4b, 0xfd, //0x00003ddf leaq $-3(%rbx), %rcx + 0x48, 0x39, 0xc8, //0x00003de3 cmpq %rcx, %rax + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00003de6 ja LBB11_21 + 0x41, 0x8b, 0x54, 0x07, 0xff, //0x00003dec movl $-1(%r15,%rax), %edx + 0x81, 0xfa, 0x6e, 0x75, 0x6c, 0x6c, //0x00003df1 cmpl $1819047278, %edx + 0x0f, 0x85, 0xb8, 0x00, 0x00, 0x00, //0x00003df7 jne LBB11_36 + 0x48, 0x83, 0xc0, 0x03, //0x00003dfd addq $3, %rax + 0x48, 0x89, 0x45, 0xd0, //0x00003e01 movq %rax, $-48(%rbp) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00003e05 movl $2, %ecx + 0xe9, 0x8b, 0x01, 0x00, 0x00, //0x00003e0a jmp LBB11_51 + //0x00003e0f LBB11_22 + 0x48, 0x8b, 0x45, 0xd0, //0x00003e0f movq $-48(%rbp), %rax + 0x48, 0x8d, 0x4b, 0xfd, //0x00003e13 leaq $-3(%rbx), %rcx + 0x48, 0x39, 0xc8, //0x00003e17 cmpq %rcx, %rax + 0x0f, 0x86, 0x72, 0x00, 0x00, 0x00, //0x00003e1a jbe LBB11_23 + //0x00003e20 LBB11_21 + 0x48, 0x89, 0x5d, 0xd0, //0x00003e20 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003e24 movq $-1, %rcx + 0x49, 0x89, 0x0e, //0x00003e2b movq %rcx, (%r14) + 0xe9, 0xb6, 0x01, 0x00, 0x00, //0x00003e2e jmp LBB11_59 + //0x00003e33 LBB11_25 + 0x49, 0xc7, 0x06, 0x06, 0x00, 0x00, 0x00, //0x00003e33 movq $6, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003e3a movq $-48(%rbp), %rbx + 0xe9, 0xa6, 0x01, 0x00, 0x00, //0x00003e3e jmp LBB11_59 + //0x00003e43 LBB11_26 + 0x31, 0xc0, //0x00003e43 xorl %eax, %eax + 0x45, 0x85, 0xe4, //0x00003e45 testl %r12d, %r12d + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x00003e48 movl $13, %ecx + //0x00003e4d LBB11_27 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00003e4d movq $-2, %rdx + 0x48, 0x0f, 0x48, 0xd1, //0x00003e54 cmovsq %rcx, %rdx + 0x0f, 0x99, 0xc0, //0x00003e58 setns %al + 0x49, 0x89, 0x16, //0x00003e5b movq %rdx, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003e5e movq $-48(%rbp), %rbx + 0x48, 0x29, 0xc3, //0x00003e62 subq %rax, %rbx + 0xe9, 0x7f, 0x01, 0x00, 0x00, //0x00003e65 jmp LBB11_59 + //0x00003e6a LBB11_28 + 0x41, 0x8b, 0x14, 0x0f, //0x00003e6a movl (%r15,%rcx), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x00003e6e cmpl $1702063201, %edx + 0x0f, 0x85, 0x81, 0x00, 0x00, 0x00, //0x00003e74 jne LBB11_32 + 0x48, 0x83, 0xc1, 0x04, //0x00003e7a addq $4, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x00003e7e movq %rcx, $-48(%rbp) + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00003e82 movl $4, %eax + 0x48, 0x89, 0xcb, //0x00003e87 movq %rcx, %rbx + 0x49, 0x89, 0x06, //0x00003e8a movq %rax, (%r14) + 0xe9, 0x57, 0x01, 0x00, 0x00, //0x00003e8d jmp LBB11_59 + //0x00003e92 LBB11_23 + 0x41, 0x8b, 0x54, 0x07, 0xff, //0x00003e92 movl $-1(%r15,%rax), %edx + 0x81, 0xfa, 0x74, 0x72, 0x75, 0x65, //0x00003e97 cmpl $1702195828, %edx + 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x00003e9d jne LBB11_40 + 0x48, 0x83, 0xc0, 0x03, //0x00003ea3 addq $3, %rax + 0x48, 0x89, 0x45, 0xd0, //0x00003ea7 movq %rax, $-48(%rbp) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00003eab movl $3, %ecx + 0xe9, 0xe5, 0x00, 0x00, 0x00, //0x00003eb0 jmp LBB11_51 + //0x00003eb5 LBB11_36 + 0x48, 0x8d, 0x58, 0xff, //0x00003eb5 leaq $-1(%rax), %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003eb9 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003ebd movq $-2, %rcx + 0x80, 0xfa, 0x6e, //0x00003ec4 cmpb $110, %dl + 0x0f, 0x85, 0xd0, 0x00, 0x00, 0x00, //0x00003ec7 jne LBB11_52 + 0x41, 0x80, 0x3c, 0x07, 0x75, //0x00003ecd cmpb $117, (%r15,%rax) + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003ed2 jne LBB11_50 + 0x41, 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00003ed8 cmpb $108, $1(%r15,%rax) + 0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, //0x00003ede jne LBB11_49 + 0x41, 0x80, 0x7c, 0x07, 0x02, 0x6c, //0x00003ee4 cmpb $108, $2(%r15,%rax) + 0x48, 0x8d, 0x50, 0x03, //0x00003eea leaq $3(%rax), %rdx + 0x48, 0x8d, 0x40, 0x02, //0x00003eee leaq $2(%rax), %rax + 0x48, 0x0f, 0x44, 0xc2, //0x00003ef2 cmoveq %rdx, %rax + 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x00003ef6 jmp LBB11_50 + //0x00003efb LBB11_32 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003efb movq $-2, %rax + 0x80, 0xfa, 0x61, //0x00003f02 cmpb $97, %dl + 0x0f, 0x85, 0x75, 0x00, 0x00, 0x00, //0x00003f05 jne LBB11_44 + 0x41, 0x80, 0x7c, 0x0f, 0x01, 0x6c, //0x00003f0b cmpb $108, $1(%r15,%rcx) + 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00003f11 jne LBB11_45 + 0x41, 0x80, 0x7c, 0x0f, 0x02, 0x73, //0x00003f17 cmpb $115, $2(%r15,%rcx) + 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00003f1d jne LBB11_46 + 0x41, 0x80, 0x7c, 0x0f, 0x03, 0x65, //0x00003f23 cmpb $101, $3(%r15,%rcx) + 0x48, 0x8d, 0x51, 0x04, //0x00003f29 leaq $4(%rcx), %rdx + 0x48, 0x8d, 0x59, 0x03, //0x00003f2d leaq $3(%rcx), %rbx + 0x48, 0x0f, 0x44, 0xda, //0x00003f31 cmoveq %rdx, %rbx + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00003f35 jmp LBB11_48 + //0x00003f3a LBB11_40 + 0x48, 0x8d, 0x58, 0xff, //0x00003f3a leaq $-1(%rax), %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003f3e movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003f42 movq $-2, %rcx + 0x80, 0xfa, 0x74, //0x00003f49 cmpb $116, %dl + 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00003f4c jne LBB11_52 + 0x41, 0x80, 0x3c, 0x07, 0x72, //0x00003f52 cmpb $114, (%r15,%rax) + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00003f57 jne LBB11_50 + 0x41, 0x80, 0x7c, 0x07, 0x01, 0x75, //0x00003f5d cmpb $117, $1(%r15,%rax) + 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00003f63 jne LBB11_49 + 0x41, 0x80, 0x7c, 0x07, 0x02, 0x65, //0x00003f69 cmpb $101, $2(%r15,%rax) + 0x48, 0x8d, 0x50, 0x03, //0x00003f6f leaq $3(%rax), %rdx + 0x48, 0x8d, 0x40, 0x02, //0x00003f73 leaq $2(%rax), %rax + 0x48, 0x0f, 0x44, 0xc2, //0x00003f77 cmoveq %rdx, %rax + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00003f7b jmp LBB11_50 + //0x00003f80 LBB11_44 + 0x48, 0x89, 0xcb, //0x00003f80 movq %rcx, %rbx + 0x49, 0x89, 0x06, //0x00003f83 movq %rax, (%r14) + 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x00003f86 jmp LBB11_59 + //0x00003f8b LBB11_45 + 0x48, 0xff, 0xc1, //0x00003f8b incq %rcx + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00003f8e jmp LBB11_47 + //0x00003f93 LBB11_49 + 0x48, 0xff, 0xc0, //0x00003f93 incq %rax + //0x00003f96 LBB11_50 + 0x48, 0x89, 0x45, 0xd0, //0x00003f96 movq %rax, $-48(%rbp) + //0x00003f9a LBB11_51 + 0x48, 0x89, 0xc3, //0x00003f9a movq %rax, %rbx + //0x00003f9d LBB11_52 + 0x49, 0x89, 0x0e, //0x00003f9d movq %rcx, (%r14) + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x00003fa0 jmp LBB11_59 + //0x00003fa5 LBB11_46 + 0x48, 0x83, 0xc1, 0x02, //0x00003fa5 addq $2, %rcx + //0x00003fa9 LBB11_47 + 0x48, 0x89, 0xcb, //0x00003fa9 movq %rcx, %rbx + //0x00003fac LBB11_48 + 0x48, 0x89, 0x5d, 0xd0, //0x00003fac movq %rbx, $-48(%rbp) + 0x49, 0x89, 0x06, //0x00003fb0 movq %rax, (%r14) + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00003fb3 jmp LBB11_59 + //0x00003fb8 LBB11_54 + 0x4d, 0x29, 0xfc, //0x00003fb8 subq %r15, %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x00003fbb movq %r12, $-48(%rbp) + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00003fbf movq $-1, %r13 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00003fc6 jmp LBB11_57 + //0x00003fcb LBB11_55 + 0x48, 0xf7, 0xd0, //0x00003fcb notq %rax + 0x49, 0x01, 0xc4, //0x00003fce addq %rax, %r12 + //0x00003fd1 LBB11_56 + 0x4d, 0x29, 0xfc, //0x00003fd1 subq %r15, %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x00003fd4 movq %r12, $-48(%rbp) + 0x49, 0xc7, 0xc5, 0xfe, 0xff, 0xff, 0xff, //0x00003fd8 movq $-2, %r13 + //0x00003fdf LBB11_57 + 0x4c, 0x89, 0xe3, //0x00003fdf movq %r12, %rbx + //0x00003fe2 LBB11_58 + 0x48, 0x8b, 0x45, 0xc8, //0x00003fe2 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x28, //0x00003fe6 movq %r13, (%rax) + //0x00003fe9 LBB11_59 + 0x48, 0x89, 0xd8, //0x00003fe9 movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x28, //0x00003fec addq $40, %rsp + 0x5b, //0x00003ff0 popq %rbx + 0x41, 0x5c, //0x00003ff1 popq %r12 + 0x41, 0x5d, //0x00003ff3 popq %r13 + 0x41, 0x5e, //0x00003ff5 popq %r14 + 0x41, 0x5f, //0x00003ff7 popq %r15 + 0x5d, //0x00003ff9 popq %rbp + 0xc3, //0x00003ffa retq + 0x90, //0x00003ffb .p2align 2, 0x90 + // // .set L11_0_set_10, LBB11_10-LJTI11_0 + // // .set L11_0_set_11, LBB11_11-LJTI11_0 + // // .set L11_0_set_12, LBB11_12-LJTI11_0 + // // .set L11_0_set_14, LBB11_14-LJTI11_0 + // // .set L11_0_set_2, LBB11_2-LJTI11_0 + // // .set L11_0_set_15, LBB11_15-LJTI11_0 + // // .set L11_0_set_16, LBB11_16-LJTI11_0 + // // .set L11_0_set_17, LBB11_17-LJTI11_0 + // // .set L11_0_set_18, LBB11_18-LJTI11_0 + // // .set L11_0_set_20, LBB11_20-LJTI11_0 + // // .set L11_0_set_22, LBB11_22-LJTI11_0 + // // .set L11_0_set_25, LBB11_25-LJTI11_0 + // // .set L11_0_set_26, LBB11_26-LJTI11_0 + //0x00003ffc LJTI11_0 + 0x05, 0xfd, 0xff, 0xff, //0x00003ffc .long L11_0_set_10 + 0x15, 0xfd, 0xff, 0xff, //0x00004000 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004004 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004008 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000400c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004010 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004014 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004018 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000401c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004020 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004024 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004028 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000402c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004030 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004034 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004038 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000403c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004040 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004044 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004048 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000404c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004050 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004054 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004058 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000405c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004060 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004064 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004068 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000406c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004070 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004074 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004078 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000407c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004080 .long L11_0_set_11 + 0x28, 0xfd, 0xff, 0xff, //0x00004084 .long L11_0_set_12 + 0x15, 0xfd, 0xff, 0xff, //0x00004088 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000408c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004090 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004094 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004098 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000409c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000040a0 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000040a4 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000040a8 .long L11_0_set_11 + 0x7e, 0xfd, 0xff, 0xff, //0x000040ac .long L11_0_set_14 + 0x62, 0xfc, 0xff, 0xff, //0x000040b0 .long L11_0_set_2 + 0x15, 0xfd, 0xff, 0xff, //0x000040b4 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000040b8 .long L11_0_set_11 + 0x62, 0xfc, 0xff, 0xff, //0x000040bc .long L11_0_set_2 + 0x62, 0xfc, 0xff, 0xff, //0x000040c0 .long L11_0_set_2 + 0x62, 0xfc, 0xff, 0xff, //0x000040c4 .long L11_0_set_2 + 0x62, 0xfc, 0xff, 0xff, //0x000040c8 .long L11_0_set_2 + 0x62, 0xfc, 0xff, 0xff, //0x000040cc .long L11_0_set_2 + 0x62, 0xfc, 0xff, 0xff, //0x000040d0 .long L11_0_set_2 + 0x62, 0xfc, 0xff, 0xff, //0x000040d4 .long L11_0_set_2 + 0x62, 0xfc, 0xff, 0xff, //0x000040d8 .long L11_0_set_2 + 0x62, 0xfc, 0xff, 0xff, //0x000040dc .long L11_0_set_2 + 0x62, 0xfc, 0xff, 0xff, //0x000040e0 .long L11_0_set_2 + 0x8d, 0xfd, 0xff, 0xff, //0x000040e4 .long L11_0_set_15 + 0x15, 0xfd, 0xff, 0xff, //0x000040e8 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000040ec .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000040f0 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000040f4 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000040f8 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000040fc .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004100 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004104 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004108 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000410c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004110 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004114 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004118 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000411c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004120 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004124 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004128 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000412c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004130 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004134 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004138 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000413c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004140 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004144 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004148 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000414c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004150 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004154 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004158 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000415c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004160 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004164 .long L11_0_set_11 + 0x9c, 0xfd, 0xff, 0xff, //0x00004168 .long L11_0_set_16 + 0x15, 0xfd, 0xff, 0xff, //0x0000416c .long L11_0_set_11 + 0xac, 0xfd, 0xff, 0xff, //0x00004170 .long L11_0_set_17 + 0x15, 0xfd, 0xff, 0xff, //0x00004174 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004178 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000417c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004180 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004184 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004188 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000418c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x00004190 .long L11_0_set_11 + 0xbb, 0xfd, 0xff, 0xff, //0x00004194 .long L11_0_set_18 + 0x15, 0xfd, 0xff, 0xff, //0x00004198 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x0000419c .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041a0 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041a4 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041a8 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041ac .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041b0 .long L11_0_set_11 + 0xdf, 0xfd, 0xff, 0xff, //0x000041b4 .long L11_0_set_20 + 0x15, 0xfd, 0xff, 0xff, //0x000041b8 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041bc .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041c0 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041c4 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041c8 .long L11_0_set_11 + 0x13, 0xfe, 0xff, 0xff, //0x000041cc .long L11_0_set_22 + 0x15, 0xfd, 0xff, 0xff, //0x000041d0 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041d4 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041d8 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041dc .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041e0 .long L11_0_set_11 + 0x15, 0xfd, 0xff, 0xff, //0x000041e4 .long L11_0_set_11 + 0x37, 0xfe, 0xff, 0xff, //0x000041e8 .long L11_0_set_25 + 0x15, 0xfd, 0xff, 0xff, //0x000041ec .long L11_0_set_11 + 0x47, 0xfe, 0xff, 0xff, //0x000041f0 .long L11_0_set_26 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000041f4 .p2align 5, 0x00 + //0x00004200 LCPI12_0 + 0x20, //0x00004200 .byte 32 + 0x00, //0x00004201 .byte 0 + 0x00, //0x00004202 .byte 0 + 0x00, //0x00004203 .byte 0 + 0x00, //0x00004204 .byte 0 + 0x00, //0x00004205 .byte 0 + 0x00, //0x00004206 .byte 0 + 0x00, //0x00004207 .byte 0 + 0x00, //0x00004208 .byte 0 + 0x09, //0x00004209 .byte 9 + 0x0a, //0x0000420a .byte 10 + 0x00, //0x0000420b .byte 0 + 0x00, //0x0000420c .byte 0 + 0x0d, //0x0000420d .byte 13 + 0x00, //0x0000420e .byte 0 + 0x00, //0x0000420f .byte 0 + 0x20, //0x00004210 .byte 32 + 0x00, //0x00004211 .byte 0 + 0x00, //0x00004212 .byte 0 + 0x00, //0x00004213 .byte 0 + 0x00, //0x00004214 .byte 0 + 0x00, //0x00004215 .byte 0 + 0x00, //0x00004216 .byte 0 + 0x00, //0x00004217 .byte 0 + 0x00, //0x00004218 .byte 0 + 0x09, //0x00004219 .byte 9 + 0x0a, //0x0000421a .byte 10 + 0x00, //0x0000421b .byte 0 + 0x00, //0x0000421c .byte 0 + 0x0d, //0x0000421d .byte 13 + 0x00, //0x0000421e .byte 0 + 0x00, //0x0000421f .byte 0 + //0x00004220 .p2align 4, 0x90 + //0x00004220 _advance_ns + 0x55, //0x00004220 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004221 movq %rsp, %rbp + 0x4c, 0x8b, 0x02, //0x00004224 movq (%rdx), %r8 + 0x49, 0x39, 0xf0, //0x00004227 cmpq %rsi, %r8 + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x0000422a jae LBB12_6 + 0x42, 0x8a, 0x04, 0x07, //0x00004230 movb (%rdi,%r8), %al + 0x3c, 0x0d, //0x00004234 cmpb $13, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00004236 je LBB12_6 + 0x3c, 0x20, //0x0000423c cmpb $32, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000423e je LBB12_6 + 0x04, 0xf7, //0x00004244 addb $-9, %al + 0x3c, 0x01, //0x00004246 cmpb $1, %al + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00004248 jbe LBB12_6 + 0x4d, 0x89, 0xc2, //0x0000424e movq %r8, %r10 + 0xe9, 0x81, 0x01, 0x00, 0x00, //0x00004251 jmp LBB12_5 + //0x00004256 LBB12_6 + 0x4d, 0x8d, 0x50, 0x01, //0x00004256 leaq $1(%r8), %r10 + 0x49, 0x39, 0xf2, //0x0000425a cmpq %rsi, %r10 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000425d jae LBB12_10 + 0x42, 0x8a, 0x0c, 0x17, //0x00004263 movb (%rdi,%r10), %cl + 0x80, 0xf9, 0x0d, //0x00004267 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x0000426a je LBB12_10 + 0x80, 0xf9, 0x20, //0x00004270 cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00004273 je LBB12_10 + 0x80, 0xc1, 0xf7, //0x00004279 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x0000427c cmpb $1, %cl + 0x0f, 0x87, 0x52, 0x01, 0x00, 0x00, //0x0000427f ja LBB12_5 + //0x00004285 LBB12_10 + 0x4d, 0x8d, 0x50, 0x02, //0x00004285 leaq $2(%r8), %r10 + 0x49, 0x39, 0xf2, //0x00004289 cmpq %rsi, %r10 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000428c jae LBB12_14 + 0x42, 0x8a, 0x0c, 0x17, //0x00004292 movb (%rdi,%r10), %cl + 0x80, 0xf9, 0x0d, //0x00004296 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00004299 je LBB12_14 + 0x80, 0xf9, 0x20, //0x0000429f cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000042a2 je LBB12_14 + 0x80, 0xc1, 0xf7, //0x000042a8 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000042ab cmpb $1, %cl + 0x0f, 0x87, 0x23, 0x01, 0x00, 0x00, //0x000042ae ja LBB12_5 + //0x000042b4 LBB12_14 + 0x4d, 0x8d, 0x50, 0x03, //0x000042b4 leaq $3(%r8), %r10 + 0x49, 0x39, 0xf2, //0x000042b8 cmpq %rsi, %r10 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000042bb jae LBB12_18 + 0x42, 0x8a, 0x0c, 0x17, //0x000042c1 movb (%rdi,%r10), %cl + 0x80, 0xf9, 0x0d, //0x000042c5 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000042c8 je LBB12_18 + 0x80, 0xf9, 0x20, //0x000042ce cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000042d1 je LBB12_18 + 0x80, 0xc1, 0xf7, //0x000042d7 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000042da cmpb $1, %cl + 0x0f, 0x87, 0xf4, 0x00, 0x00, 0x00, //0x000042dd ja LBB12_5 + //0x000042e3 LBB12_18 + 0x49, 0x8d, 0x40, 0x04, //0x000042e3 leaq $4(%r8), %rax + 0x48, 0x39, 0xf0, //0x000042e7 cmpq %rsi, %rax + 0x0f, 0x83, 0xc8, 0x00, 0x00, 0x00, //0x000042ea jae LBB12_19 + 0x4c, 0x8d, 0x14, 0x07, //0x000042f0 leaq (%rdi,%rax), %r10 + 0x48, 0x89, 0xf1, //0x000042f4 movq %rsi, %rcx + 0x48, 0x29, 0xc1, //0x000042f7 subq %rax, %rcx + 0x48, 0x83, 0xf9, 0x20, //0x000042fa cmpq $32, %rcx + 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x000042fe jb LBB12_24 + 0x49, 0x89, 0xf1, //0x00004304 movq %rsi, %r9 + 0x4d, 0x29, 0xc1, //0x00004307 subq %r8, %r9 + 0x49, 0x83, 0xc1, 0xdc, //0x0000430a addq $-36, %r9 + 0x4c, 0x89, 0xc8, //0x0000430e movq %r9, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x00004311 andq $-32, %rax + 0x4c, 0x01, 0xc0, //0x00004315 addq %r8, %rax + 0x4c, 0x8d, 0x44, 0x07, 0x24, //0x00004318 leaq $36(%rdi,%rax), %r8 + 0x41, 0x83, 0xe1, 0x1f, //0x0000431d andl $31, %r9d + 0xc5, 0xfd, 0x6f, 0x05, 0xd7, 0xfe, 0xff, 0xff, //0x00004321 vmovdqa $-297(%rip), %ymm0 /* LCPI12_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004329 .p2align 4, 0x90 + //0x00004330 LBB12_22 + 0xc4, 0xc1, 0x7e, 0x6f, 0x0a, //0x00004330 vmovdqu (%r10), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00004335 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x0000433a vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc1, //0x0000433e vpmovmskb %ymm1, %eax + 0x83, 0xf8, 0xff, //0x00004342 cmpl $-1, %eax + 0x0f, 0x85, 0x75, 0x00, 0x00, 0x00, //0x00004345 jne LBB12_23 + 0x49, 0x83, 0xc2, 0x20, //0x0000434b addq $32, %r10 + 0x48, 0x83, 0xc1, 0xe0, //0x0000434f addq $-32, %rcx + 0x48, 0x83, 0xf9, 0x1f, //0x00004353 cmpq $31, %rcx + 0x0f, 0x87, 0xd3, 0xff, 0xff, 0xff, //0x00004357 ja LBB12_22 + 0x4c, 0x89, 0xc9, //0x0000435d movq %r9, %rcx + 0x4d, 0x89, 0xc2, //0x00004360 movq %r8, %r10 + //0x00004363 LBB12_24 + 0x48, 0x85, 0xc9, //0x00004363 testq %rcx, %rcx + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x00004366 je LBB12_33 + 0x4d, 0x8d, 0x04, 0x0a, //0x0000436c leaq (%r10,%rcx), %r8 + 0x49, 0xff, 0xc2, //0x00004370 incq %r10 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00004373 movabsq $4294977024, %r9 + //0x0000437d LBB12_26 + 0x41, 0x0f, 0xbe, 0x42, 0xff, //0x0000437d movsbl $-1(%r10), %eax + 0x83, 0xf8, 0x20, //0x00004382 cmpl $32, %eax + 0x0f, 0x87, 0x5f, 0x00, 0x00, 0x00, //0x00004385 ja LBB12_28 + 0x49, 0x0f, 0xa3, 0xc1, //0x0000438b btq %rax, %r9 + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x0000438f jae LBB12_28 + 0x48, 0xff, 0xc9, //0x00004395 decq %rcx + 0x49, 0xff, 0xc2, //0x00004398 incq %r10 + 0x48, 0x85, 0xc9, //0x0000439b testq %rcx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x0000439e jne LBB12_26 + 0x4d, 0x89, 0xc2, //0x000043a4 movq %r8, %r10 + //0x000043a7 LBB12_33 + 0x49, 0x29, 0xfa, //0x000043a7 subq %rdi, %r10 + 0x49, 0x39, 0xf2, //0x000043aa cmpq %rsi, %r10 + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000043ad jb LBB12_5 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000043b3 jmp LBB12_35 + //0x000043b8 LBB12_19 + 0x48, 0x89, 0x02, //0x000043b8 movq %rax, (%rdx) + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000043bb jmp LBB12_35 + //0x000043c0 LBB12_23 + 0x49, 0x29, 0xfa, //0x000043c0 subq %rdi, %r10 + 0xf7, 0xd0, //0x000043c3 notl %eax + 0x48, 0x98, //0x000043c5 cltq + 0x48, 0x0f, 0xbc, 0xc0, //0x000043c7 bsfq %rax, %rax + 0x49, 0x01, 0xc2, //0x000043cb addq %rax, %r10 + 0x49, 0x39, 0xf2, //0x000043ce cmpq %rsi, %r10 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000043d1 jae LBB12_35 + //0x000043d7 LBB12_5 + 0x49, 0x8d, 0x42, 0x01, //0x000043d7 leaq $1(%r10), %rax + 0x48, 0x89, 0x02, //0x000043db movq %rax, (%rdx) + 0x42, 0x8a, 0x04, 0x17, //0x000043de movb (%rdi,%r10), %al + 0x0f, 0xbe, 0xc0, //0x000043e2 movsbl %al, %eax + 0x5d, //0x000043e5 popq %rbp + 0xc5, 0xf8, 0x77, //0x000043e6 vzeroupper + 0xc3, //0x000043e9 retq + //0x000043ea LBB12_28 + 0x48, 0x89, 0xf8, //0x000043ea movq %rdi, %rax + 0x48, 0xf7, 0xd0, //0x000043ed notq %rax + 0x49, 0x01, 0xc2, //0x000043f0 addq %rax, %r10 + 0x49, 0x39, 0xf2, //0x000043f3 cmpq %rsi, %r10 + 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x000043f6 jb LBB12_5 + //0x000043fc LBB12_35 + 0x31, 0xc0, //0x000043fc xorl %eax, %eax + 0x0f, 0xbe, 0xc0, //0x000043fe movsbl %al, %eax + 0x5d, //0x00004401 popq %rbp + 0xc5, 0xf8, 0x77, //0x00004402 vzeroupper + 0xc3, //0x00004405 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004406 .p2align 4, 0x90 + //0x00004410 _vstring + 0x55, //0x00004410 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004411 movq %rsp, %rbp + 0x41, 0x57, //0x00004414 pushq %r15 + 0x41, 0x56, //0x00004416 pushq %r14 + 0x41, 0x54, //0x00004418 pushq %r12 + 0x53, //0x0000441a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000441b subq $16, %rsp + 0x49, 0x89, 0xd6, //0x0000441f movq %rdx, %r14 + 0x48, 0x89, 0xf3, //0x00004422 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00004425 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00004428 movq $-1, $-40(%rbp) + 0x4c, 0x8b, 0x26, //0x00004430 movq (%rsi), %r12 + 0x48, 0x8d, 0x55, 0xd8, //0x00004433 leaq $-40(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00004437 movq %r12, %rsi + 0xe8, 0xc1, 0x00, 0x00, 0x00, //0x0000443a callq _advance_string + 0x48, 0x85, 0xc0, //0x0000443f testq %rax, %rax + 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00004442 js LBB13_1 + 0x48, 0x89, 0x03, //0x00004448 movq %rax, (%rbx) + 0x4d, 0x89, 0x66, 0x10, //0x0000444b movq %r12, $16(%r14) + 0x48, 0x8b, 0x4d, 0xd8, //0x0000444f movq $-40(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x00004453 cmpq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004456 movq $-1, %rax + 0x48, 0x0f, 0x4c, 0xc1, //0x0000445d cmovlq %rcx, %rax + 0x49, 0x89, 0x46, 0x18, //0x00004461 movq %rax, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00004465 movl $7, %eax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000446a jmp LBB13_3 + //0x0000446f LBB13_1 + 0x49, 0x8b, 0x4f, 0x08, //0x0000446f movq $8(%r15), %rcx + 0x48, 0x89, 0x0b, //0x00004473 movq %rcx, (%rbx) + //0x00004476 LBB13_3 + 0x49, 0x89, 0x06, //0x00004476 movq %rax, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00004479 addq $16, %rsp + 0x5b, //0x0000447d popq %rbx + 0x41, 0x5c, //0x0000447e popq %r12 + 0x41, 0x5e, //0x00004480 popq %r14 + 0x41, 0x5f, //0x00004482 popq %r15 + 0x5d, //0x00004484 popq %rbp + 0xc3, //0x00004485 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004486 .p2align 5, 0x00 + //0x000044a0 LCPI14_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000044a0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000044b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000044c0 LCPI14_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000044c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000044d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000044e0 LCPI14_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000044e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000044f0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00004500 .p2align 4, 0x90 + //0x00004500 _advance_string + 0xf6, 0xc1, 0x20, //0x00004500 testb $32, %cl + 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00004503 jne LBB14_2 + 0xe9, 0xd2, 0x57, 0x00, 0x00, //0x00004509 jmp _advance_string_default + //0x0000450e LBB14_2 + 0x55, //0x0000450e pushq %rbp + 0x48, 0x89, 0xe5, //0x0000450f movq %rsp, %rbp + 0x41, 0x57, //0x00004512 pushq %r15 + 0x41, 0x56, //0x00004514 pushq %r14 + 0x41, 0x55, //0x00004516 pushq %r13 + 0x41, 0x54, //0x00004518 pushq %r12 + 0x53, //0x0000451a pushq %rbx + 0x50, //0x0000451b pushq %rax + 0x4c, 0x8b, 0x67, 0x08, //0x0000451c movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x00004520 subq %rsi, %r12 + 0x0f, 0x84, 0xef, 0x03, 0x00, 0x00, //0x00004523 je LBB14_42 + 0x4c, 0x8b, 0x07, //0x00004529 movq (%rdi), %r8 + 0x4c, 0x01, 0xc6, //0x0000452c addq %r8, %rsi + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000452f movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x00004536 cmpq $64, %r12 + 0x0f, 0x82, 0x02, 0x03, 0x00, 0x00, //0x0000453a jb LBB14_43 + 0x45, 0x89, 0xe1, //0x00004540 movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00004543 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004547 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x0000454e xorl %r15d, %r15d + 0xc5, 0xfd, 0x6f, 0x05, 0x47, 0xff, 0xff, 0xff, //0x00004551 vmovdqa $-185(%rip), %ymm0 /* LCPI14_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x5f, 0xff, 0xff, 0xff, //0x00004559 vmovdqa $-161(%rip), %ymm1 /* LCPI14_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x77, 0xff, 0xff, 0xff, //0x00004561 vmovdqa $-137(%rip), %ymm2 /* LCPI14_2+0(%rip) */ + 0xc5, 0xe5, 0x76, 0xdb, //0x00004569 vpcmpeqd %ymm3, %ymm3, %ymm3 + 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000456d movabsq $6148914691236517205, %r11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004577 .p2align 4, 0x90 + //0x00004580 LBB14_5 + 0xc5, 0xfe, 0x6f, 0x26, //0x00004580 vmovdqu (%rsi), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6e, 0x20, //0x00004584 vmovdqu $32(%rsi), %ymm5 + 0xc5, 0xdd, 0x74, 0xf0, //0x00004589 vpcmpeqb %ymm0, %ymm4, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x0000458d vpmovmskb %ymm6, %eax + 0xc5, 0xd5, 0x74, 0xf0, //0x00004591 vpcmpeqb %ymm0, %ymm5, %ymm6 + 0xc5, 0xfd, 0xd7, 0xfe, //0x00004595 vpmovmskb %ymm6, %edi + 0xc5, 0xdd, 0x74, 0xf1, //0x00004599 vpcmpeqb %ymm1, %ymm4, %ymm6 + 0xc5, 0xfd, 0xd7, 0xce, //0x0000459d vpmovmskb %ymm6, %ecx + 0xc5, 0xd5, 0x74, 0xf1, //0x000045a1 vpcmpeqb %ymm1, %ymm5, %ymm6 + 0xc5, 0x7d, 0xd7, 0xd6, //0x000045a5 vpmovmskb %ymm6, %r10d + 0xc5, 0xed, 0x64, 0xf4, //0x000045a9 vpcmpgtb %ymm4, %ymm2, %ymm6 + 0xc5, 0xdd, 0x64, 0xe3, //0x000045ad vpcmpgtb %ymm3, %ymm4, %ymm4 + 0xc5, 0xdd, 0xdb, 0xe6, //0x000045b1 vpand %ymm6, %ymm4, %ymm4 + 0xc5, 0x7d, 0xd7, 0xec, //0x000045b5 vpmovmskb %ymm4, %r13d + 0xc5, 0xed, 0x64, 0xe5, //0x000045b9 vpcmpgtb %ymm5, %ymm2, %ymm4 + 0xc5, 0xd5, 0x64, 0xeb, //0x000045bd vpcmpgtb %ymm3, %ymm5, %ymm5 + 0xc5, 0xd5, 0xdb, 0xe4, //0x000045c1 vpand %ymm4, %ymm5, %ymm4 + 0xc5, 0xfd, 0xd7, 0xdc, //0x000045c5 vpmovmskb %ymm4, %ebx + 0x48, 0xc1, 0xe7, 0x20, //0x000045c9 shlq $32, %rdi + 0x49, 0xc1, 0xe2, 0x20, //0x000045cd shlq $32, %r10 + 0x4c, 0x09, 0xd1, //0x000045d1 orq %r10, %rcx + 0x49, 0x83, 0xfe, 0xff, //0x000045d4 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000045d8 jne LBB14_7 + 0x48, 0x85, 0xc9, //0x000045de testq %rcx, %rcx + 0x0f, 0x85, 0x93, 0x00, 0x00, 0x00, //0x000045e1 jne LBB14_12 + //0x000045e7 LBB14_7 + 0x48, 0xc1, 0xe3, 0x20, //0x000045e7 shlq $32, %rbx + 0x48, 0x09, 0xc7, //0x000045eb orq %rax, %rdi + 0x48, 0x89, 0xc8, //0x000045ee movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x000045f1 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000045f4 jne LBB14_11 + 0x4c, 0x09, 0xeb, //0x000045fa orq %r13, %rbx + 0x48, 0x85, 0xff, //0x000045fd testq %rdi, %rdi + 0x0f, 0x85, 0x89, 0x00, 0x00, 0x00, //0x00004600 jne LBB14_13 + //0x00004606 LBB14_9 + 0x48, 0x85, 0xdb, //0x00004606 testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00004609 jne LBB14_19 + 0x48, 0x83, 0xc6, 0x40, //0x0000460f addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x00004613 addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x00004617 cmpq $63, %r12 + 0x0f, 0x87, 0x5f, 0xff, 0xff, 0xff, //0x0000461b ja LBB14_5 + 0xe9, 0xe3, 0x00, 0x00, 0x00, //0x00004621 jmp LBB14_21 + //0x00004626 LBB14_11 + 0x4c, 0x89, 0xf8, //0x00004626 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00004629 notq %rax + 0x48, 0x21, 0xc8, //0x0000462c andq %rcx, %rax + 0x48, 0x89, 0x45, 0xd0, //0x0000462f movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc0, //0x00004633 addq %rax, %rax + 0x4c, 0x09, 0xf8, //0x00004636 orq %r15, %rax + 0x49, 0x89, 0xc2, //0x00004639 movq %rax, %r10 + 0x49, 0xf7, 0xd2, //0x0000463c notq %r10 + 0x49, 0x21, 0xca, //0x0000463f andq %rcx, %r10 + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004642 movabsq $-6148914691236517206, %rcx + 0x49, 0x21, 0xca, //0x0000464c andq %rcx, %r10 + 0x45, 0x31, 0xff, //0x0000464f xorl %r15d, %r15d + 0x4c, 0x03, 0x55, 0xd0, //0x00004652 addq $-48(%rbp), %r10 + 0x41, 0x0f, 0x92, 0xc7, //0x00004656 setb %r15b + 0x4d, 0x01, 0xd2, //0x0000465a addq %r10, %r10 + 0x4d, 0x31, 0xda, //0x0000465d xorq %r11, %r10 + 0x49, 0x21, 0xc2, //0x00004660 andq %rax, %r10 + 0x49, 0xf7, 0xd2, //0x00004663 notq %r10 + 0x4c, 0x21, 0xd7, //0x00004666 andq %r10, %rdi + 0x4c, 0x09, 0xeb, //0x00004669 orq %r13, %rbx + 0x48, 0x85, 0xff, //0x0000466c testq %rdi, %rdi + 0x0f, 0x84, 0x91, 0xff, 0xff, 0xff, //0x0000466f je LBB14_9 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00004675 jmp LBB14_13 + //0x0000467a LBB14_12 + 0x49, 0x89, 0xf2, //0x0000467a movq %rsi, %r10 + 0x4d, 0x29, 0xc2, //0x0000467d subq %r8, %r10 + 0x4c, 0x0f, 0xbc, 0xf1, //0x00004680 bsfq %rcx, %r14 + 0x4d, 0x01, 0xd6, //0x00004684 addq %r10, %r14 + 0x4c, 0x89, 0x32, //0x00004687 movq %r14, (%rdx) + 0xe9, 0x58, 0xff, 0xff, 0xff, //0x0000468a jmp LBB14_7 + //0x0000468f LBB14_13 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000468f bsfq %rdi, %rax + 0x48, 0x85, 0xdb, //0x00004693 testq %rbx, %rbx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00004696 je LBB14_17 + 0x48, 0x0f, 0xbc, 0xcb, //0x0000469c bsfq %rbx, %rcx + 0x4c, 0x29, 0xc6, //0x000046a0 subq %r8, %rsi + 0x48, 0x39, 0xc1, //0x000046a3 cmpq %rax, %rcx + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x000046a6 jb LBB14_18 + //0x000046ac LBB14_15 + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x000046ac leaq $1(%rsi,%rax), %rax + //0x000046b1 LBB14_16 + 0x48, 0x83, 0xc4, 0x08, //0x000046b1 addq $8, %rsp + 0x5b, //0x000046b5 popq %rbx + 0x41, 0x5c, //0x000046b6 popq %r12 + 0x41, 0x5d, //0x000046b8 popq %r13 + 0x41, 0x5e, //0x000046ba popq %r14 + 0x41, 0x5f, //0x000046bc popq %r15 + 0x5d, //0x000046be popq %rbp + 0xc5, 0xf8, 0x77, //0x000046bf vzeroupper + 0xc3, //0x000046c2 retq + //0x000046c3 LBB14_17 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000046c3 movl $64, %ecx + 0x4c, 0x29, 0xc6, //0x000046c8 subq %r8, %rsi + 0x48, 0x39, 0xc1, //0x000046cb cmpq %rax, %rcx + 0x0f, 0x83, 0xd8, 0xff, 0xff, 0xff, //0x000046ce jae LBB14_15 + //0x000046d4 LBB14_18 + 0x48, 0x01, 0xf1, //0x000046d4 addq %rsi, %rcx + 0x48, 0x89, 0x0a, //0x000046d7 movq %rcx, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000046da movq $-2, %rax + 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x000046e1 jmp LBB14_16 + //0x000046e6 LBB14_19 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000046e6 movq $-2, %rax + 0x49, 0x83, 0xfe, 0xff, //0x000046ed cmpq $-1, %r14 + 0x0f, 0x85, 0xba, 0xff, 0xff, 0xff, //0x000046f1 jne LBB14_16 + 0x48, 0x0f, 0xbc, 0xcb, //0x000046f7 bsfq %rbx, %rcx + 0x4c, 0x29, 0xc6, //0x000046fb subq %r8, %rsi + 0x48, 0x01, 0xce, //0x000046fe addq %rcx, %rsi + 0x48, 0x89, 0x32, //0x00004701 movq %rsi, (%rdx) + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00004704 jmp LBB14_16 + //0x00004709 LBB14_21 + 0x4d, 0x89, 0xcc, //0x00004709 movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x0000470c cmpq $32, %r12 + 0x0f, 0x82, 0x9c, 0x00, 0x00, 0x00, //0x00004710 jb LBB14_31 + //0x00004716 LBB14_22 + 0xc5, 0xfe, 0x6f, 0x06, //0x00004716 vmovdqu (%rsi), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0x7e, 0xfd, 0xff, 0xff, //0x0000471a vpcmpeqb $-642(%rip), %ymm0, %ymm1 /* LCPI14_0+0(%rip) */ + 0xc5, 0x7d, 0xd7, 0xc9, //0x00004722 vpmovmskb %ymm1, %r9d + 0xc5, 0xfd, 0x74, 0x0d, 0x92, 0xfd, 0xff, 0xff, //0x00004726 vpcmpeqb $-622(%rip), %ymm0, %ymm1 /* LCPI14_1+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xc1, //0x0000472e vpmovmskb %ymm1, %eax + 0xc5, 0xfd, 0x6f, 0x0d, 0xa6, 0xfd, 0xff, 0xff, //0x00004732 vmovdqa $-602(%rip), %ymm1 /* LCPI14_2+0(%rip) */ + 0xc5, 0xf5, 0x64, 0xc8, //0x0000473a vpcmpgtb %ymm0, %ymm1, %ymm1 + 0xc5, 0xed, 0x76, 0xd2, //0x0000473e vpcmpeqd %ymm2, %ymm2, %ymm2 + 0xc5, 0xfd, 0x64, 0xc2, //0x00004742 vpcmpgtb %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00004746 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000474a vpmovmskb %ymm0, %edi + 0x85, 0xc0, //0x0000474e testl %eax, %eax + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00004750 jne LBB14_44 + 0x4d, 0x85, 0xff, //0x00004756 testq %r15, %r15 + 0x0f, 0x85, 0x16, 0x01, 0x00, 0x00, //0x00004759 jne LBB14_46 + 0x45, 0x31, 0xff, //0x0000475f xorl %r15d, %r15d + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00004762 movl $64, %eax + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00004767 movl $64, %ecx + 0x4d, 0x85, 0xc9, //0x0000476c testq %r9, %r9 + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x0000476f je LBB14_26 + //0x00004775 LBB14_25 + 0x49, 0x0f, 0xbc, 0xc9, //0x00004775 bsfq %r9, %rcx + //0x00004779 LBB14_26 + 0x48, 0x0f, 0xbc, 0xdf, //0x00004779 bsfq %rdi, %rbx + 0x85, 0xff, //0x0000477d testl %edi, %edi + 0x48, 0x0f, 0x45, 0xc3, //0x0000477f cmovneq %rbx, %rax + 0x4d, 0x85, 0xc9, //0x00004783 testq %r9, %r9 + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004786 je LBB14_29 + 0x4c, 0x29, 0xc6, //0x0000478c subq %r8, %rsi + 0x48, 0x39, 0xc8, //0x0000478f cmpq %rcx, %rax + 0x0f, 0x82, 0x29, 0x01, 0x00, 0x00, //0x00004792 jb LBB14_47 + 0x48, 0x8d, 0x44, 0x0e, 0x01, //0x00004798 leaq $1(%rsi,%rcx), %rax + 0xe9, 0x0f, 0xff, 0xff, 0xff, //0x0000479d jmp LBB14_16 + //0x000047a2 LBB14_29 + 0x85, 0xff, //0x000047a2 testl %edi, %edi + 0x0f, 0x85, 0x29, 0x01, 0x00, 0x00, //0x000047a4 jne LBB14_48 + 0x48, 0x83, 0xc6, 0x20, //0x000047aa addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x000047ae addq $-32, %r12 + //0x000047b2 LBB14_31 + 0x4d, 0x85, 0xff, //0x000047b2 testq %r15, %r15 + 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x000047b5 jne LBB14_49 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000047bb movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x000047c2 testq %r12, %r12 + 0x0f, 0x84, 0xe6, 0xfe, 0xff, 0xff, //0x000047c5 je LBB14_16 + //0x000047cb LBB14_33 + 0x0f, 0xb6, 0x0e, //0x000047cb movzbl (%rsi), %ecx + 0x80, 0xf9, 0x22, //0x000047ce cmpb $34, %cl + 0x0f, 0x84, 0x5d, 0x00, 0x00, 0x00, //0x000047d1 je LBB14_41 + 0x80, 0xf9, 0x5c, //0x000047d7 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000047da je LBB14_38 + 0x80, 0xf9, 0x1f, //0x000047e0 cmpb $31, %cl + 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x000047e3 jbe LBB14_53 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000047e9 movq $-1, %rcx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000047f0 movl $1, %edi + //0x000047f5 LBB14_37 + 0x48, 0x01, 0xfe, //0x000047f5 addq %rdi, %rsi + 0x49, 0x01, 0xcc, //0x000047f8 addq %rcx, %r12 + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x000047fb jne LBB14_33 + 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00004801 jmp LBB14_16 + //0x00004806 LBB14_38 + 0x49, 0x83, 0xfc, 0x01, //0x00004806 cmpq $1, %r12 + 0x0f, 0x84, 0xa1, 0xfe, 0xff, 0xff, //0x0000480a je LBB14_16 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00004810 movq $-2, %rcx + 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00004817 movl $2, %edi + 0x49, 0x83, 0xfe, 0xff, //0x0000481c cmpq $-1, %r14 + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00004820 jne LBB14_37 + 0x49, 0x89, 0xf6, //0x00004826 movq %rsi, %r14 + 0x4d, 0x29, 0xc6, //0x00004829 subq %r8, %r14 + 0x4c, 0x89, 0x32, //0x0000482c movq %r14, (%rdx) + 0xe9, 0xc1, 0xff, 0xff, 0xff, //0x0000482f jmp LBB14_37 + //0x00004834 LBB14_41 + 0x4c, 0x29, 0xc6, //0x00004834 subq %r8, %rsi + 0x48, 0xff, 0xc6, //0x00004837 incq %rsi + 0x48, 0x89, 0xf0, //0x0000483a movq %rsi, %rax + 0xe9, 0x6f, 0xfe, 0xff, 0xff, //0x0000483d jmp LBB14_16 + //0x00004842 LBB14_43 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004842 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00004849 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x0000484c cmpq $32, %r12 + 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x00004850 jae LBB14_22 + 0xe9, 0x57, 0xff, 0xff, 0xff, //0x00004856 jmp LBB14_31 + //0x0000485b LBB14_44 + 0x49, 0x83, 0xfe, 0xff, //0x0000485b cmpq $-1, %r14 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000485f jne LBB14_46 + 0x48, 0x89, 0xf1, //0x00004865 movq %rsi, %rcx + 0x4c, 0x29, 0xc1, //0x00004868 subq %r8, %rcx + 0x4c, 0x0f, 0xbc, 0xf0, //0x0000486b bsfq %rax, %r14 + 0x49, 0x01, 0xce, //0x0000486f addq %rcx, %r14 + 0x4c, 0x89, 0x32, //0x00004872 movq %r14, (%rdx) + //0x00004875 LBB14_46 + 0x44, 0x89, 0xf9, //0x00004875 movl %r15d, %ecx + 0xf7, 0xd1, //0x00004878 notl %ecx + 0x21, 0xc1, //0x0000487a andl %eax, %ecx + 0x44, 0x8d, 0x14, 0x09, //0x0000487c leal (%rcx,%rcx), %r10d + 0x45, 0x09, 0xfa, //0x00004880 orl %r15d, %r10d + 0x44, 0x89, 0xd3, //0x00004883 movl %r10d, %ebx + 0xf7, 0xd3, //0x00004886 notl %ebx + 0x21, 0xc3, //0x00004888 andl %eax, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000488a andl $-1431655766, %ebx + 0x45, 0x31, 0xff, //0x00004890 xorl %r15d, %r15d + 0x01, 0xcb, //0x00004893 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc7, //0x00004895 setb %r15b + 0x01, 0xdb, //0x00004899 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000489b xorl $1431655765, %ebx + 0x44, 0x21, 0xd3, //0x000048a1 andl %r10d, %ebx + 0xf7, 0xd3, //0x000048a4 notl %ebx + 0x41, 0x21, 0xd9, //0x000048a6 andl %ebx, %r9d + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x000048a9 movl $64, %eax + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000048ae movl $64, %ecx + 0x4d, 0x85, 0xc9, //0x000048b3 testq %r9, %r9 + 0x0f, 0x85, 0xb9, 0xfe, 0xff, 0xff, //0x000048b6 jne LBB14_25 + 0xe9, 0xb8, 0xfe, 0xff, 0xff, //0x000048bc jmp LBB14_26 + //0x000048c1 LBB14_47 + 0x48, 0x01, 0xf0, //0x000048c1 addq %rsi, %rax + 0x48, 0x89, 0x02, //0x000048c4 movq %rax, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000048c7 movq $-2, %rax + 0xe9, 0xde, 0xfd, 0xff, 0xff, //0x000048ce jmp LBB14_16 + //0x000048d3 LBB14_48 + 0x4c, 0x29, 0xc6, //0x000048d3 subq %r8, %rsi + 0x48, 0x01, 0xde, //0x000048d6 addq %rbx, %rsi + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x000048d9 jmp LBB14_54 + //0x000048de LBB14_49 + 0x4d, 0x85, 0xe4, //0x000048de testq %r12, %r12 + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000048e1 je LBB14_42 + 0x49, 0x83, 0xfe, 0xff, //0x000048e7 cmpq $-1, %r14 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000048eb jne LBB14_52 + 0x4d, 0x89, 0xc6, //0x000048f1 movq %r8, %r14 + 0x49, 0xf7, 0xd6, //0x000048f4 notq %r14 + 0x49, 0x01, 0xf6, //0x000048f7 addq %rsi, %r14 + 0x4c, 0x89, 0x32, //0x000048fa movq %r14, (%rdx) + //0x000048fd LBB14_52 + 0x48, 0xff, 0xc6, //0x000048fd incq %rsi + 0x49, 0xff, 0xcc, //0x00004900 decq %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004903 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x0000490a testq %r12, %r12 + 0x0f, 0x85, 0xb8, 0xfe, 0xff, 0xff, //0x0000490d jne LBB14_33 + 0xe9, 0x99, 0xfd, 0xff, 0xff, //0x00004913 jmp LBB14_16 + //0x00004918 LBB14_42 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004918 movq $-1, %rax + 0xe9, 0x8d, 0xfd, 0xff, 0xff, //0x0000491f jmp LBB14_16 + //0x00004924 LBB14_53 + 0x4c, 0x29, 0xc6, //0x00004924 subq %r8, %rsi + //0x00004927 LBB14_54 + 0x48, 0x89, 0x32, //0x00004927 movq %rsi, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000492a movq $-2, %rax + 0xe9, 0x7b, 0xfd, 0xff, 0xff, //0x00004931 jmp LBB14_16 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004936 .p2align 4, 0x00 + //0x00004940 LCPI15_0 + 0x00, 0x00, 0x30, 0x43, //0x00004940 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00004944 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00004948 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000494c .long 0 + //0x00004950 LCPI15_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00004950 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00004958 .quad 4985484787499139072 + //0x00004960 .p2align 3, 0x00 + //0x00004960 LCPI15_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00004960 .quad 4831355200913801216 + //0x00004968 LCPI15_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00004968 .quad -4392016835940974592 + //0x00004970 .p2align 4, 0x90 + //0x00004970 _vnumber + 0x55, //0x00004970 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004971 movq %rsp, %rbp + 0x41, 0x57, //0x00004974 pushq %r15 + 0x41, 0x56, //0x00004976 pushq %r14 + 0x41, 0x55, //0x00004978 pushq %r13 + 0x41, 0x54, //0x0000497a pushq %r12 + 0x53, //0x0000497c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000497d subq $56, %rsp + 0x48, 0x89, 0xd3, //0x00004981 movq %rdx, %rbx + 0x49, 0x89, 0xf6, //0x00004984 movq %rsi, %r14 + 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00004987 movq $0, $-48(%rbp) + 0x48, 0x8b, 0x06, //0x0000498f movq (%rsi), %rax + 0x4c, 0x8b, 0x3f, //0x00004992 movq (%rdi), %r15 + 0x4c, 0x8b, 0x6f, 0x08, //0x00004995 movq $8(%rdi), %r13 + 0x4c, 0x8b, 0x52, 0x20, //0x00004999 movq $32(%rdx), %r10 + 0x4c, 0x8b, 0x5a, 0x28, //0x0000499d movq $40(%rdx), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000049a1 movq $9, (%rdx) + 0xc5, 0xf9, 0x57, 0xc0, //0x000049a8 vxorpd %xmm0, %xmm0, %xmm0 + 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x000049ac vmovupd %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x000049b1 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x000049b4 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xe8, //0x000049b8 cmpq %r13, %rax + 0x0f, 0x83, 0xc8, 0x02, 0x00, 0x00, //0x000049bb jae LBB15_52 + 0x41, 0x8a, 0x3c, 0x07, //0x000049c1 movb (%r15,%rax), %dil + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000049c5 movl $1, %r9d + 0x40, 0x80, 0xff, 0x2d, //0x000049cb cmpb $45, %dil + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000049cf jne LBB15_4 + 0x48, 0xff, 0xc0, //0x000049d5 incq %rax + 0x4c, 0x39, 0xe8, //0x000049d8 cmpq %r13, %rax + 0x0f, 0x83, 0xa8, 0x02, 0x00, 0x00, //0x000049db jae LBB15_52 + 0x41, 0x8a, 0x3c, 0x07, //0x000049e1 movb (%r15,%rax), %dil + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000049e5 movl $-1, %r9d + //0x000049eb LBB15_4 + 0x8d, 0x4f, 0xd0, //0x000049eb leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x000049ee cmpb $10, %cl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000049f1 jb LBB15_6 + //0x000049f7 LBB15_5 + 0x49, 0x89, 0x06, //0x000049f7 movq %rax, (%r14) + 0x48, 0xc7, 0x03, 0xfe, 0xff, 0xff, 0xff, //0x000049fa movq $-2, (%rbx) + 0xe9, 0x8d, 0x02, 0x00, 0x00, //0x00004a01 jmp LBB15_53 + //0x00004a06 LBB15_6 + 0x40, 0x80, 0xff, 0x30, //0x00004a06 cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00004a0a jne LBB15_10 + 0x48, 0x8d, 0x70, 0x01, //0x00004a10 leaq $1(%rax), %rsi + 0x4c, 0x39, 0xe8, //0x00004a14 cmpq %r13, %rax + 0x0f, 0x83, 0xa4, 0x00, 0x00, 0x00, //0x00004a17 jae LBB15_19 + 0x41, 0x8a, 0x14, 0x37, //0x00004a1d movb (%r15,%rsi), %dl + 0x80, 0xc2, 0xd2, //0x00004a21 addb $-46, %dl + 0x80, 0xfa, 0x37, //0x00004a24 cmpb $55, %dl + 0x0f, 0x87, 0x94, 0x00, 0x00, 0x00, //0x00004a27 ja LBB15_19 + 0x44, 0x0f, 0xb6, 0xc2, //0x00004a2d movzbl %dl, %r8d + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004a31 movabsq $36028797027352577, %rdx + 0x4c, 0x0f, 0xa3, 0xc2, //0x00004a3b btq %r8, %rdx + 0x0f, 0x83, 0x7c, 0x00, 0x00, 0x00, //0x00004a3f jae LBB15_19 + //0x00004a45 LBB15_10 + 0x4c, 0x39, 0xe8, //0x00004a45 cmpq %r13, %rax + 0x0f, 0x83, 0x67, 0x00, 0x00, 0x00, //0x00004a48 jae LBB15_18 + 0x80, 0xf9, 0x09, //0x00004a4e cmpb $9, %cl + 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x00004a51 ja LBB15_20 + 0x4d, 0x8d, 0x45, 0xff, //0x00004a57 leaq $-1(%r13), %r8 + 0x31, 0xc9, //0x00004a5b xorl %ecx, %ecx + 0x31, 0xf6, //0x00004a5d xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00004a5f xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004a62 .p2align 4, 0x90 + //0x00004a70 LBB15_13 + 0x83, 0xfe, 0x12, //0x00004a70 cmpl $18, %esi + 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00004a73 jg LBB15_15 + 0x48, 0x0f, 0xbe, 0xff, //0x00004a79 movsbq %dil, %rdi + 0x4b, 0x8d, 0x14, 0xa4, //0x00004a7d leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00004a81 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc6, //0x00004a86 incl %esi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00004a88 jmp LBB15_16 + 0x90, 0x90, 0x90, //0x00004a8d .p2align 4, 0x90 + //0x00004a90 LBB15_15 + 0xff, 0xc1, //0x00004a90 incl %ecx + //0x00004a92 LBB15_16 + 0x49, 0x39, 0xc0, //0x00004a92 cmpq %rax, %r8 + 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00004a95 je LBB15_24 + 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00004a9b movzbl $1(%r15,%rax), %edi + 0x48, 0xff, 0xc0, //0x00004aa1 incq %rax + 0x8d, 0x57, 0xd0, //0x00004aa4 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x0a, //0x00004aa7 cmpb $10, %dl + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00004aaa jb LBB15_13 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00004ab0 jmp LBB15_21 + //0x00004ab5 LBB15_18 + 0x31, 0xc9, //0x00004ab5 xorl %ecx, %ecx + 0x31, 0xf6, //0x00004ab7 xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00004ab9 xorl %r12d, %r12d + 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00004abc jmp LBB15_25 + //0x00004ac1 LBB15_19 + 0x49, 0x89, 0x36, //0x00004ac1 movq %rsi, (%r14) + 0xe9, 0xca, 0x01, 0x00, 0x00, //0x00004ac4 jmp LBB15_53 + //0x00004ac9 LBB15_20 + 0x45, 0x31, 0xe4, //0x00004ac9 xorl %r12d, %r12d + 0x31, 0xf6, //0x00004acc xorl %esi, %esi + 0x31, 0xc9, //0x00004ace xorl %ecx, %ecx + //0x00004ad0 LBB15_21 + 0x31, 0xd2, //0x00004ad0 xorl %edx, %edx + 0x85, 0xc9, //0x00004ad2 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00004ad4 setg %dl + 0x89, 0x55, 0xcc, //0x00004ad7 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00004ada movl $9, %r8d + 0x40, 0x80, 0xff, 0x2e, //0x00004ae0 cmpb $46, %dil + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00004ae4 jne LBB15_26 + 0x48, 0xff, 0xc0, //0x00004aea incq %rax + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004aed movq $8, (%rbx) + 0x4c, 0x39, 0xe8, //0x00004af4 cmpq %r13, %rax + 0x0f, 0x83, 0x8c, 0x01, 0x00, 0x00, //0x00004af7 jae LBB15_52 + 0x41, 0x8a, 0x14, 0x07, //0x00004afd movb (%r15,%rax), %dl + 0x80, 0xc2, 0xd0, //0x00004b01 addb $-48, %dl + 0x41, 0xb8, 0x08, 0x00, 0x00, 0x00, //0x00004b04 movl $8, %r8d + 0x80, 0xfa, 0x0a, //0x00004b0a cmpb $10, %dl + 0x0f, 0x83, 0xe4, 0xfe, 0xff, 0xff, //0x00004b0d jae LBB15_5 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00004b13 jmp LBB15_26 + //0x00004b18 LBB15_24 + 0x4c, 0x89, 0xe8, //0x00004b18 movq %r13, %rax + //0x00004b1b LBB15_25 + 0x31, 0xd2, //0x00004b1b xorl %edx, %edx + 0x85, 0xc9, //0x00004b1d testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00004b1f setg %dl + 0x89, 0x55, 0xcc, //0x00004b22 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00004b25 movl $9, %r8d + //0x00004b2b LBB15_26 + 0x85, 0xc9, //0x00004b2b testl %ecx, %ecx + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00004b2d jne LBB15_35 + 0x4d, 0x85, 0xe4, //0x00004b33 testq %r12, %r12 + 0x0f, 0x85, 0x46, 0x00, 0x00, 0x00, //0x00004b36 jne LBB15_35 + 0x4c, 0x39, 0xe8, //0x00004b3c cmpq %r13, %rax + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00004b3f jae LBB15_33 + 0x89, 0xc7, //0x00004b45 movl %eax, %edi + 0x44, 0x29, 0xef, //0x00004b47 subl %r13d, %edi + 0x31, 0xf6, //0x00004b4a xorl %esi, %esi + 0x31, 0xc9, //0x00004b4c xorl %ecx, %ecx + 0x90, 0x90, //0x00004b4e .p2align 4, 0x90 + //0x00004b50 LBB15_30 + 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00004b50 cmpb $48, (%r15,%rax) + 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x00004b55 jne LBB15_34 + 0x48, 0xff, 0xc0, //0x00004b5b incq %rax + 0xff, 0xc9, //0x00004b5e decl %ecx + 0x49, 0x39, 0xc5, //0x00004b60 cmpq %rax, %r13 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00004b63 jne LBB15_30 + 0x45, 0x31, 0xe4, //0x00004b69 xorl %r12d, %r12d + 0x41, 0x83, 0xf8, 0x09, //0x00004b6c cmpl $9, %r8d + 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00004b70 je LBB15_55 + 0xe9, 0x6a, 0x01, 0x00, 0x00, //0x00004b76 jmp LBB15_59 + //0x00004b7b LBB15_33 + 0x31, 0xc9, //0x00004b7b xorl %ecx, %ecx + 0x31, 0xf6, //0x00004b7d xorl %esi, %esi + //0x00004b7f LBB15_34 + 0x45, 0x31, 0xe4, //0x00004b7f xorl %r12d, %r12d + //0x00004b82 LBB15_35 + 0x4c, 0x39, 0xe8, //0x00004b82 cmpq %r13, %rax + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00004b85 jae LBB15_40 + 0x83, 0xfe, 0x12, //0x00004b8b cmpl $18, %esi + 0x0f, 0x8f, 0x42, 0x00, 0x00, 0x00, //0x00004b8e jg LBB15_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004b94 .p2align 4, 0x90 + //0x00004ba0 LBB15_37 + 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00004ba0 movzbl (%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00004ba5 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00004ba8 cmpb $9, %dl + 0x0f, 0x87, 0x25, 0x00, 0x00, 0x00, //0x00004bab ja LBB15_40 + 0x4b, 0x8d, 0x14, 0xa4, //0x00004bb1 leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00004bb5 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc9, //0x00004bba decl %ecx + 0x48, 0xff, 0xc0, //0x00004bbc incq %rax + 0x4c, 0x39, 0xe8, //0x00004bbf cmpq %r13, %rax + 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00004bc2 jae LBB15_40 + 0x8d, 0x56, 0x01, //0x00004bc8 leal $1(%rsi), %edx + 0x83, 0xfe, 0x12, //0x00004bcb cmpl $18, %esi + 0x89, 0xd6, //0x00004bce movl %edx, %esi + 0x0f, 0x8c, 0xca, 0xff, 0xff, 0xff, //0x00004bd0 jl LBB15_37 + //0x00004bd6 LBB15_40 + 0x4c, 0x39, 0xe8, //0x00004bd6 cmpq %r13, %rax + 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00004bd9 jae LBB15_54 + 0x41, 0x8a, 0x34, 0x07, //0x00004bdf movb (%r15,%rax), %sil + 0x8d, 0x56, 0xd0, //0x00004be3 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00004be6 cmpb $9, %dl + 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00004be9 ja LBB15_46 + 0x49, 0x8d, 0x7d, 0xff, //0x00004bef leaq $-1(%r13), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004bf3 .p2align 4, 0x90 + //0x00004c00 LBB15_43 + 0x48, 0x39, 0xc7, //0x00004c00 cmpq %rax, %rdi + 0x0f, 0x84, 0x40, 0x02, 0x00, 0x00, //0x00004c03 je LBB15_76 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004c09 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x00004c0f incq %rax + 0x8d, 0x56, 0xd0, //0x00004c12 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00004c15 cmpb $9, %dl + 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00004c18 jbe LBB15_43 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x00004c1e movl $1, $-52(%rbp) + //0x00004c25 LBB15_46 + 0x40, 0x80, 0xce, 0x20, //0x00004c25 orb $32, %sil + 0x40, 0x80, 0xfe, 0x65, //0x00004c29 cmpb $101, %sil + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00004c2d jne LBB15_54 + 0x48, 0x8d, 0x78, 0x01, //0x00004c33 leaq $1(%rax), %rdi + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004c37 movq $8, (%rbx) + 0x4c, 0x39, 0xef, //0x00004c3e cmpq %r13, %rdi + 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00004c41 jae LBB15_52 + 0x41, 0x8a, 0x34, 0x3f, //0x00004c47 movb (%r15,%rdi), %sil + 0x40, 0x80, 0xfe, 0x2d, //0x00004c4b cmpb $45, %sil + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00004c4f je LBB15_50 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004c55 movl $1, %r8d + 0x40, 0x80, 0xfe, 0x2b, //0x00004c5b cmpb $43, %sil + 0x0f, 0x85, 0x94, 0x02, 0x00, 0x00, //0x00004c5f jne LBB15_85 + //0x00004c65 LBB15_50 + 0x48, 0x83, 0xc0, 0x02, //0x00004c65 addq $2, %rax + 0x4c, 0x39, 0xe8, //0x00004c69 cmpq %r13, %rax + 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x00004c6c jae LBB15_52 + 0x31, 0xd2, //0x00004c72 xorl %edx, %edx + 0x40, 0x80, 0xfe, 0x2b, //0x00004c74 cmpb $43, %sil + 0x0f, 0x94, 0xc2, //0x00004c78 sete %dl + 0x44, 0x8d, 0x44, 0x12, 0xff, //0x00004c7b leal $-1(%rdx,%rdx), %r8d + 0x41, 0x8a, 0x34, 0x07, //0x00004c80 movb (%r15,%rax), %sil + 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00004c84 jmp LBB15_86 + //0x00004c89 LBB15_52 + 0x4d, 0x89, 0x2e, //0x00004c89 movq %r13, (%r14) + 0x48, 0xc7, 0x03, 0xff, 0xff, 0xff, 0xff, //0x00004c8c movq $-1, (%rbx) + //0x00004c93 LBB15_53 + 0x48, 0x83, 0xc4, 0x38, //0x00004c93 addq $56, %rsp + 0x5b, //0x00004c97 popq %rbx + 0x41, 0x5c, //0x00004c98 popq %r12 + 0x41, 0x5d, //0x00004c9a popq %r13 + 0x41, 0x5e, //0x00004c9c popq %r14 + 0x41, 0x5f, //0x00004c9e popq %r15 + 0x5d, //0x00004ca0 popq %rbp + 0xc3, //0x00004ca1 retq + //0x00004ca2 LBB15_54 + 0x89, 0xcf, //0x00004ca2 movl %ecx, %edi + 0x49, 0x89, 0xc5, //0x00004ca4 movq %rax, %r13 + 0x41, 0x83, 0xf8, 0x09, //0x00004ca7 cmpl $9, %r8d + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00004cab jne LBB15_59 + //0x00004cb1 LBB15_55 + 0x85, 0xff, //0x00004cb1 testl %edi, %edi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004cb3 jne LBB15_58 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004cb9 movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xc9, //0x00004cc3 movslq %r9d, %rcx + 0x4d, 0x85, 0xe4, //0x00004cc6 testq %r12, %r12 + 0x0f, 0x89, 0xba, 0x01, 0x00, 0x00, //0x00004cc9 jns LBB15_80 + 0x4c, 0x89, 0xe2, //0x00004ccf movq %r12, %rdx + 0x48, 0x21, 0xca, //0x00004cd2 andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00004cd5 cmpq %rax, %rdx + 0x0f, 0x84, 0xab, 0x01, 0x00, 0x00, //0x00004cd8 je LBB15_80 + //0x00004cde LBB15_58 + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004cde movq $8, (%rbx) + //0x00004ce5 LBB15_59 + 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00004ce5 movq $0, $-64(%rbp) + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004ced vmovq %r12, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0x46, 0xfc, 0xff, 0xff, //0x00004cf2 vpunpckldq $-954(%rip), %xmm0, %xmm0 /* LCPI15_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x4e, 0xfc, 0xff, 0xff, //0x00004cfa vsubpd $-946(%rip), %xmm0, %xmm0 /* LCPI15_1+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004d02 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x00004d08 vaddsd %xmm0, %xmm1, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004d0c vmovsd %xmm0, $-48(%rbp) + 0x4c, 0x89, 0xe0, //0x00004d11 movq %r12, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00004d14 shrq $52, %rax + 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x00004d18 je LBB15_71 + //0x00004d1e LBB15_60 + 0x4c, 0x89, 0x5d, 0xb0, //0x00004d1e movq %r11, $-80(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x00004d22 movq %r10, $-88(%rbp) + 0x48, 0x8d, 0x4d, 0xd0, //0x00004d26 leaq $-48(%rbp), %rcx + 0x48, 0x89, 0xfe, //0x00004d2a movq %rdi, %rsi + 0x4c, 0x89, 0xe7, //0x00004d2d movq %r12, %rdi + 0x48, 0x89, 0x75, 0xb8, //0x00004d30 movq %rsi, $-72(%rbp) + 0x44, 0x89, 0xca, //0x00004d34 movl %r9d, %edx + 0x44, 0x89, 0x4d, 0xc8, //0x00004d37 movl %r9d, $-56(%rbp) + 0xe8, 0x10, 0xe4, 0xff, 0xff, //0x00004d3b callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004d40 testb %al, %al + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00004d42 je LBB15_64 + 0x48, 0x8b, 0x75, 0xb8, //0x00004d48 movq $-72(%rbp), %rsi + 0x8b, 0x55, 0xc8, //0x00004d4c movl $-56(%rbp), %edx + 0x83, 0x7d, 0xcc, 0x00, //0x00004d4f cmpl $0, $-52(%rbp) + 0x0f, 0x84, 0x27, 0x01, 0x00, 0x00, //0x00004d53 je LBB15_79 + 0x49, 0xff, 0xc4, //0x00004d59 incq %r12 + 0x48, 0x8d, 0x4d, 0xc0, //0x00004d5c leaq $-64(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x00004d60 movq %r12, %rdi + 0xe8, 0xe8, 0xe3, 0xff, 0xff, //0x00004d63 callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004d68 testb %al, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00004d6a je LBB15_64 + 0xc5, 0xfb, 0x10, 0x4d, 0xc0, //0x00004d70 vmovsd $-64(%rbp), %xmm1 + 0xc5, 0xfb, 0x10, 0x45, 0xd0, //0x00004d75 vmovsd $-48(%rbp), %xmm0 + 0xc5, 0xf9, 0x2e, 0xc8, //0x00004d7a vucomisd %xmm0, %xmm1 + 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x00004d7e jne LBB15_64 + 0x0f, 0x8b, 0x21, 0x00, 0x00, 0x00, //0x00004d84 jnp LBB15_66 + //0x00004d8a LBB15_64 + 0x49, 0x8b, 0x06, //0x00004d8a movq (%r14), %rax + 0x49, 0x01, 0xc7, //0x00004d8d addq %rax, %r15 + 0x4c, 0x89, 0xee, //0x00004d90 movq %r13, %rsi + 0x48, 0x29, 0xc6, //0x00004d93 subq %rax, %rsi + 0x4c, 0x89, 0xff, //0x00004d96 movq %r15, %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x00004d99 movq $-88(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x00004d9d movq $-80(%rbp), %rcx + 0xe8, 0x0a, 0xec, 0xff, 0xff, //0x00004da1 callq _atof_native + //0x00004da6 LBB15_65 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004da6 vmovsd %xmm0, $-48(%rbp) + //0x00004dab LBB15_66 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00004dab vmovq %xmm0, %rax + //0x00004db0 LBB15_67 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004db0 movabsq $-9223372036854775808, %rcx + 0x48, 0xff, 0xc9, //0x00004dba decq %rcx + 0x48, 0x21, 0xc1, //0x00004dbd andq %rax, %rcx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00004dc0 movabsq $9218868437227405312, %rdx + 0x48, 0x39, 0xd1, //0x00004dca cmpq %rdx, %rcx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00004dcd jne LBB15_69 + 0x48, 0xc7, 0x03, 0xf8, 0xff, 0xff, 0xff, //0x00004dd3 movq $-8, (%rbx) + //0x00004dda LBB15_69 + 0x48, 0x89, 0x43, 0x08, //0x00004dda movq %rax, $8(%rbx) + //0x00004dde LBB15_70 + 0x4d, 0x89, 0x2e, //0x00004dde movq %r13, (%r14) + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x00004de1 jmp LBB15_53 + //0x00004de6 LBB15_71 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004de6 vmovq %xmm0, %rcx + 0x44, 0x89, 0xc8, //0x00004deb movl %r9d, %eax + 0xc1, 0xe8, 0x1f, //0x00004dee shrl $31, %eax + 0x48, 0xc1, 0xe0, 0x3f, //0x00004df1 shlq $63, %rax + 0x48, 0x09, 0xc8, //0x00004df5 orq %rcx, %rax + 0x48, 0x89, 0x45, 0xd0, //0x00004df8 movq %rax, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x00004dfc testq %r12, %r12 + 0x0f, 0x84, 0xab, 0xff, 0xff, 0xff, //0x00004dff je LBB15_67 + 0x85, 0xff, //0x00004e05 testl %edi, %edi + 0x0f, 0x84, 0xa3, 0xff, 0xff, 0xff, //0x00004e07 je LBB15_67 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x00004e0d vmovq %rax, %xmm0 + 0x8d, 0x47, 0xff, //0x00004e12 leal $-1(%rdi), %eax + 0x83, 0xf8, 0x24, //0x00004e15 cmpl $36, %eax + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00004e18 ja LBB15_77 + 0x83, 0xff, 0x17, //0x00004e1e cmpl $23, %edi + 0x0f, 0x8c, 0x9d, 0x00, 0x00, 0x00, //0x00004e21 jl LBB15_81 + 0x48, 0x63, 0xc7, //0x00004e27 movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0x2f, 0xf0, 0x00, 0x00, //0x00004e2a leaq $61487(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x00004e31 vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004e3a vmovsd %xmm0, $-48(%rbp) + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004e3f movl $22, %eax + 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x00004e44 jmp LBB15_82 + //0x00004e49 LBB15_76 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x00004e49 movl $1, $-52(%rbp) + 0x89, 0xcf, //0x00004e50 movl %ecx, %edi + 0x41, 0x83, 0xf8, 0x09, //0x00004e52 cmpl $9, %r8d + 0x0f, 0x84, 0x55, 0xfe, 0xff, 0xff, //0x00004e56 je LBB15_55 + 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x00004e5c jmp LBB15_59 + //0x00004e61 LBB15_77 + 0x83, 0xff, 0xea, //0x00004e61 cmpl $-22, %edi + 0x0f, 0x82, 0xb4, 0xfe, 0xff, 0xff, //0x00004e64 jb LBB15_60 + 0xf7, 0xdf, //0x00004e6a negl %edi + 0x48, 0x63, 0xc7, //0x00004e6c movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0xea, 0xef, 0x00, 0x00, //0x00004e6f leaq $61418(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x00004e76 vdivsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xe9, 0x26, 0xff, 0xff, 0xff, //0x00004e7b jmp LBB15_65 + //0x00004e80 LBB15_79 + 0x48, 0x8b, 0x45, 0xd0, //0x00004e80 movq $-48(%rbp), %rax + 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00004e84 jmp LBB15_67 + //0x00004e89 LBB15_80 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004e89 vmovq %r12, %xmm0 + 0x4c, 0x0f, 0xaf, 0xe1, //0x00004e8e imulq %rcx, %r12 + 0xc5, 0xf9, 0x62, 0x05, 0xa6, 0xfa, 0xff, 0xff, //0x00004e92 vpunpckldq $-1370(%rip), %xmm0, %xmm0 /* LCPI15_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0xae, 0xfa, 0xff, 0xff, //0x00004e9a vsubpd $-1362(%rip), %xmm0, %xmm0 /* LCPI15_1+0(%rip) */ + 0x4c, 0x89, 0x63, 0x10, //0x00004ea2 movq %r12, $16(%rbx) + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004ea6 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x00004eac vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x00004eb0 andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004eb3 vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x00004eb8 orq %rax, %rcx + 0x48, 0x89, 0x4b, 0x08, //0x00004ebb movq %rcx, $8(%rbx) + 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x00004ebf jmp LBB15_70 + //0x00004ec4 LBB15_81 + 0x89, 0xf8, //0x00004ec4 movl %edi, %eax + //0x00004ec6 LBB15_82 + 0xc5, 0xf9, 0x2e, 0x05, 0x92, 0xfa, 0xff, 0xff, //0x00004ec6 vucomisd $-1390(%rip), %xmm0 /* LCPI15_2+0(%rip) */ + 0x0f, 0x87, 0x4a, 0xfe, 0xff, 0xff, //0x00004ece ja LBB15_60 + 0xc5, 0xfb, 0x10, 0x0d, 0x8c, 0xfa, 0xff, 0xff, //0x00004ed4 vmovsd $-1396(%rip), %xmm1 /* LCPI15_3+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x00004edc vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x38, 0xfe, 0xff, 0xff, //0x00004ee0 ja LBB15_60 + 0x89, 0xc0, //0x00004ee6 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x71, 0xef, 0x00, 0x00, //0x00004ee8 leaq $61297(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x00004eef vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x00004ef4 jmp LBB15_65 + //0x00004ef9 LBB15_85 + 0x48, 0x89, 0xf8, //0x00004ef9 movq %rdi, %rax + //0x00004efc LBB15_86 + 0x8d, 0x7e, 0xd0, //0x00004efc leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x00004eff cmpb $9, %dil + 0x0f, 0x87, 0xee, 0xfa, 0xff, 0xff, //0x00004f03 ja LBB15_5 + 0x44, 0x89, 0x4d, 0xc8, //0x00004f09 movl %r9d, $-56(%rbp) + 0x4c, 0x39, 0xe8, //0x00004f0d cmpq %r13, %rax + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00004f10 jae LBB15_93 + 0x40, 0x80, 0xff, 0x09, //0x00004f16 cmpb $9, %dil + 0x0f, 0x87, 0x3f, 0x00, 0x00, 0x00, //0x00004f1a ja LBB15_93 + 0x4d, 0x8d, 0x4d, 0xff, //0x00004f20 leaq $-1(%r13), %r9 + 0x31, 0xff, //0x00004f24 xorl %edi, %edi + //0x00004f26 LBB15_90 + 0x89, 0xfa, //0x00004f26 movl %edi, %edx + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00004f28 cmpl $10000, %edi + 0x8d, 0x3c, 0x92, //0x00004f2e leal (%rdx,%rdx,4), %edi + 0x40, 0x0f, 0xb6, 0xf6, //0x00004f31 movzbl %sil, %esi + 0x8d, 0x7c, 0x7e, 0xd0, //0x00004f35 leal $-48(%rsi,%rdi,2), %edi + 0x0f, 0x4d, 0xfa, //0x00004f39 cmovgel %edx, %edi + 0x49, 0x39, 0xc1, //0x00004f3c cmpq %rax, %r9 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00004f3f je LBB15_94 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004f45 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x00004f4b incq %rax + 0x8d, 0x56, 0xd0, //0x00004f4e leal $-48(%rsi), %edx + 0x80, 0xfa, 0x0a, //0x00004f51 cmpb $10, %dl + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00004f54 jb LBB15_90 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004f5a jmp LBB15_95 + //0x00004f5f LBB15_93 + 0x31, 0xff, //0x00004f5f xorl %edi, %edi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004f61 jmp LBB15_95 + //0x00004f66 LBB15_94 + 0x4c, 0x89, 0xe8, //0x00004f66 movq %r13, %rax + //0x00004f69 LBB15_95 + 0x41, 0x0f, 0xaf, 0xf8, //0x00004f69 imull %r8d, %edi + 0x01, 0xcf, //0x00004f6d addl %ecx, %edi + 0x49, 0x89, 0xc5, //0x00004f6f movq %rax, %r13 + 0x44, 0x8b, 0x4d, 0xc8, //0x00004f72 movl $-56(%rbp), %r9d + 0xe9, 0x6a, 0xfd, 0xff, 0xff, //0x00004f76 jmp LBB15_59 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004f7b .p2align 4, 0x90 + //0x00004f80 _vsigned + 0x55, //0x00004f80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004f81 movq %rsp, %rbp + 0x53, //0x00004f84 pushq %rbx + 0x48, 0x8b, 0x1e, //0x00004f85 movq (%rsi), %rbx + 0x4c, 0x8b, 0x07, //0x00004f88 movq (%rdi), %r8 + 0x4c, 0x8b, 0x57, 0x08, //0x00004f8b movq $8(%rdi), %r10 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004f8f movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00004f96 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x00004f9a vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x00004f9f movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00004fa2 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd3, //0x00004fa6 cmpq %r10, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00004fa9 jae LBB16_1 + 0x41, 0x8a, 0x0c, 0x18, //0x00004faf movb (%r8,%rbx), %cl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00004fb3 movl $1, %r9d + 0x80, 0xf9, 0x2d, //0x00004fb9 cmpb $45, %cl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00004fbc jne LBB16_5 + 0x48, 0xff, 0xc3, //0x00004fc2 incq %rbx + 0x4c, 0x39, 0xd3, //0x00004fc5 cmpq %r10, %rbx + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004fc8 jae LBB16_1 + 0x41, 0x8a, 0x0c, 0x18, //0x00004fce movb (%r8,%rbx), %cl + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004fd2 movq $-1, %r9 + //0x00004fd9 LBB16_5 + 0x8d, 0x79, 0xd0, //0x00004fd9 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x00004fdc cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00004fe0 jb LBB16_7 + 0x48, 0x89, 0x1e, //0x00004fe6 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00004fe9 movq $-2, (%rdx) + 0x5b, //0x00004ff0 popq %rbx + 0x5d, //0x00004ff1 popq %rbp + 0xc3, //0x00004ff2 retq + //0x00004ff3 LBB16_1 + 0x4c, 0x89, 0x16, //0x00004ff3 movq %r10, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00004ff6 movq $-1, (%rdx) + 0x5b, //0x00004ffd popq %rbx + 0x5d, //0x00004ffe popq %rbp + 0xc3, //0x00004fff retq + //0x00005000 LBB16_7 + 0x80, 0xf9, 0x30, //0x00005000 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00005003 jne LBB16_8 + 0x48, 0x8d, 0x7b, 0x01, //0x00005009 leaq $1(%rbx), %rdi + 0x4c, 0x39, 0xd3, //0x0000500d cmpq %r10, %rbx + 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x00005010 jae LBB16_17 + 0x41, 0x8a, 0x0c, 0x38, //0x00005016 movb (%r8,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x0000501a addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000501d cmpb $55, %cl + 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x00005020 ja LBB16_17 + 0x44, 0x0f, 0xb6, 0xd9, //0x00005026 movzbl %cl, %r11d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000502a movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x00005034 btq %r11, %rcx + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00005038 jae LBB16_17 + //0x0000503e LBB16_8 + 0x31, 0xff, //0x0000503e xorl %edi, %edi + //0x00005040 .p2align 4, 0x90 + //0x00005040 LBB16_9 + 0x4c, 0x39, 0xd3, //0x00005040 cmpq %r10, %rbx + 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x00005043 jae LBB16_22 + 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x00005049 movsbq (%r8,%rbx), %rcx + 0x8d, 0x41, 0xd0, //0x0000504e leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00005051 cmpb $9, %al + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00005053 ja LBB16_18 + 0x48, 0x6b, 0xff, 0x0a, //0x00005059 imulq $10, %rdi, %rdi + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000505d jo LBB16_13 + 0x48, 0xff, 0xc3, //0x00005063 incq %rbx + 0x48, 0x83, 0xc1, 0xd0, //0x00005066 addq $-48, %rcx + 0x49, 0x0f, 0xaf, 0xc9, //0x0000506a imulq %r9, %rcx + 0x48, 0x01, 0xcf, //0x0000506e addq %rcx, %rdi + 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00005071 jno LBB16_9 + //0x00005077 LBB16_13 + 0x48, 0xff, 0xcb, //0x00005077 decq %rbx + 0x48, 0x89, 0x1e, //0x0000507a movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000507d movq $-5, (%rdx) + 0x5b, //0x00005084 popq %rbx + 0x5d, //0x00005085 popq %rbp + 0xc3, //0x00005086 retq + //0x00005087 LBB16_17 + 0x48, 0x89, 0x3e, //0x00005087 movq %rdi, (%rsi) + 0x5b, //0x0000508a popq %rbx + 0x5d, //0x0000508b popq %rbp + 0xc3, //0x0000508c retq + //0x0000508d LBB16_18 + 0x80, 0xf9, 0x65, //0x0000508d cmpb $101, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00005090 je LBB16_21 + 0x80, 0xf9, 0x45, //0x00005096 cmpb $69, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00005099 je LBB16_21 + 0x80, 0xf9, 0x2e, //0x0000509f cmpb $46, %cl + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000050a2 jne LBB16_22 + //0x000050a8 LBB16_21 + 0x48, 0x89, 0x1e, //0x000050a8 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000050ab movq $-6, (%rdx) + 0x5b, //0x000050b2 popq %rbx + 0x5d, //0x000050b3 popq %rbp + 0xc3, //0x000050b4 retq + //0x000050b5 LBB16_22 + 0x48, 0x89, 0x1e, //0x000050b5 movq %rbx, (%rsi) + 0x48, 0x89, 0x7a, 0x10, //0x000050b8 movq %rdi, $16(%rdx) + 0x5b, //0x000050bc popq %rbx + 0x5d, //0x000050bd popq %rbp + 0xc3, //0x000050be retq + 0x90, //0x000050bf .p2align 4, 0x90 + //0x000050c0 _vunsigned + 0x55, //0x000050c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000050c1 movq %rsp, %rbp + 0x49, 0x89, 0xd0, //0x000050c4 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x000050c7 movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x000050ca movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x000050cd movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000050d1 movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x000050d8 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x000050dc vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x06, //0x000050e1 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x000050e4 movq %rax, $24(%rdx) + 0x4c, 0x39, 0xd9, //0x000050e8 cmpq %r11, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x000050eb jae LBB17_1 + 0x41, 0x8a, 0x04, 0x09, //0x000050f1 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x000050f5 cmpb $45, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000050f7 jne LBB17_4 + //0x000050fd LBB17_3 + 0x48, 0x89, 0x0e, //0x000050fd movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00005100 movq $-6, (%r8) + 0x5d, //0x00005107 popq %rbp + 0xc3, //0x00005108 retq + //0x00005109 LBB17_1 + 0x4c, 0x89, 0x1e, //0x00005109 movq %r11, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000510c movq $-1, (%r8) + 0x5d, //0x00005113 popq %rbp + 0xc3, //0x00005114 retq + //0x00005115 LBB17_4 + 0x8d, 0x50, 0xd0, //0x00005115 leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x00005118 cmpb $10, %dl + 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x0000511b jb LBB17_6 + 0x48, 0x89, 0x0e, //0x00005121 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x00005124 movq $-2, (%r8) + 0x5d, //0x0000512b popq %rbp + 0xc3, //0x0000512c retq + //0x0000512d LBB17_6 + 0x3c, 0x30, //0x0000512d cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000512f jne LBB17_7 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x00005135 movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x0000513a addb $-46, %al + 0x3c, 0x37, //0x0000513c cmpb $55, %al + 0x0f, 0x87, 0xb6, 0x00, 0x00, 0x00, //0x0000513e ja LBB17_16 + 0x0f, 0xb6, 0xc0, //0x00005144 movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00005147 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00005151 btq %rax, %rdx + 0x0f, 0x83, 0x9f, 0x00, 0x00, 0x00, //0x00005155 jae LBB17_16 + //0x0000515b LBB17_7 + 0x31, 0xc0, //0x0000515b xorl %eax, %eax + 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x0000515d movl $10, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005163 .p2align 4, 0x90 + //0x00005170 LBB17_8 + 0x4c, 0x39, 0xd9, //0x00005170 cmpq %r11, %rcx + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x00005173 jae LBB17_20 + 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x00005179 movsbl (%r9,%rcx), %edi + 0x8d, 0x57, 0xd0, //0x0000517e leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00005181 cmpb $9, %dl + 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x00005184 ja LBB17_17 + 0x49, 0xf7, 0xe2, //0x0000518a mulq %r10 + 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x0000518d jo LBB17_13 + 0x48, 0xff, 0xc1, //0x00005193 incq %rcx + 0x83, 0xc7, 0xd0, //0x00005196 addl $-48, %edi + 0x48, 0x63, 0xd7, //0x00005199 movslq %edi, %rdx + 0x48, 0x89, 0xd7, //0x0000519c movq %rdx, %rdi + 0x48, 0xc1, 0xff, 0x3f, //0x0000519f sarq $63, %rdi + 0x48, 0x01, 0xd0, //0x000051a3 addq %rdx, %rax + 0x48, 0x83, 0xd7, 0x00, //0x000051a6 adcq $0, %rdi + 0x89, 0xfa, //0x000051aa movl %edi, %edx + 0x83, 0xe2, 0x01, //0x000051ac andl $1, %edx + 0x48, 0xf7, 0xda, //0x000051af negq %rdx + 0x48, 0x31, 0xd7, //0x000051b2 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000051b5 jne LBB17_13 + 0x48, 0x85, 0xd2, //0x000051bb testq %rdx, %rdx + 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x000051be jns LBB17_8 + //0x000051c4 LBB17_13 + 0x48, 0xff, 0xc9, //0x000051c4 decq %rcx + 0x48, 0x89, 0x0e, //0x000051c7 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000051ca movq $-5, (%r8) + 0x5d, //0x000051d1 popq %rbp + 0xc3, //0x000051d2 retq + //0x000051d3 LBB17_17 + 0x40, 0x80, 0xff, 0x65, //0x000051d3 cmpb $101, %dil + 0x0f, 0x84, 0x20, 0xff, 0xff, 0xff, //0x000051d7 je LBB17_3 + 0x40, 0x80, 0xff, 0x45, //0x000051dd cmpb $69, %dil + 0x0f, 0x84, 0x16, 0xff, 0xff, 0xff, //0x000051e1 je LBB17_3 + 0x40, 0x80, 0xff, 0x2e, //0x000051e7 cmpb $46, %dil + 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x000051eb je LBB17_3 + //0x000051f1 LBB17_20 + 0x48, 0x89, 0x0e, //0x000051f1 movq %rcx, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x000051f4 movq %rax, $16(%r8) + 0x5d, //0x000051f8 popq %rbp + 0xc3, //0x000051f9 retq + //0x000051fa LBB17_16 + 0x48, 0xff, 0xc1, //0x000051fa incq %rcx + 0x48, 0x89, 0x0e, //0x000051fd movq %rcx, (%rsi) + 0x5d, //0x00005200 popq %rbp + 0xc3, //0x00005201 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005202 .p2align 4, 0x00 + //0x00005210 LCPI18_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005210 .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005218 .quad 5 + //0x00005220 .p2align 4, 0x90 + //0x00005220 _skip_array + 0x55, //0x00005220 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005221 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005224 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005227 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000522a movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000522d vmovaps $-37(%rip), %xmm0 /* LCPI18_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00005235 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00005239 movq %rax, %rdi + 0x5d, //0x0000523c popq %rbp + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000523d jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005242 .p2align 4, 0x90 + //0x00005250 _fsm_exec + 0x55, //0x00005250 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005251 movq %rsp, %rbp + 0x41, 0x57, //0x00005254 pushq %r15 + 0x41, 0x56, //0x00005256 pushq %r14 + 0x41, 0x55, //0x00005258 pushq %r13 + 0x41, 0x54, //0x0000525a pushq %r12 + 0x53, //0x0000525c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000525d subq $40, %rsp + 0x48, 0x89, 0x4d, 0xb8, //0x00005261 movq %rcx, $-72(%rbp) + 0x48, 0x83, 0x3f, 0x00, //0x00005265 cmpq $0, (%rdi) + 0x0f, 0x84, 0x14, 0x04, 0x00, 0x00, //0x00005269 je LBB19_2 + 0x49, 0x89, 0xd0, //0x0000526f movq %rdx, %r8 + 0x49, 0x89, 0xfd, //0x00005272 movq %rdi, %r13 + 0x48, 0x89, 0x75, 0xc8, //0x00005275 movq %rsi, $-56(%rbp) + 0x48, 0x8d, 0x46, 0x08, //0x00005279 leaq $8(%rsi), %rax + 0x48, 0x89, 0x45, 0xc0, //0x0000527d movq %rax, $-64(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00005281 movq $-1, %r12 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00005288 jmp LBB19_4 + //0x0000528d LBB19_3 + 0x48, 0x8d, 0x48, 0x03, //0x0000528d leaq $3(%rax), %rcx + 0x49, 0x89, 0x08, //0x00005291 movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x00005294 testq %rax, %rax + 0x0f, 0x8e, 0x56, 0x04, 0x00, 0x00, //0x00005297 jle LBB19_62 + 0x90, 0x90, 0x90, //0x0000529d .p2align 4, 0x90 + //0x000052a0 LBB19_39 + 0x49, 0x8b, 0x55, 0x00, //0x000052a0 movq (%r13), %rdx + 0x4d, 0x89, 0xe6, //0x000052a4 movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x000052a7 testq %rdx, %rdx + 0x0f, 0x84, 0x22, 0x04, 0x00, 0x00, //0x000052aa je LBB19_65 + //0x000052b0 LBB19_4 + 0x48, 0x8b, 0x5d, 0xc8, //0x000052b0 movq $-56(%rbp), %rbx + 0x48, 0x8b, 0x3b, //0x000052b4 movq (%rbx), %rdi + 0x48, 0x8b, 0x73, 0x08, //0x000052b7 movq $8(%rbx), %rsi + 0x4d, 0x89, 0xc7, //0x000052bb movq %r8, %r15 + 0x4c, 0x89, 0xc2, //0x000052be movq %r8, %rdx + 0xe8, 0x5a, 0xef, 0xff, 0xff, //0x000052c1 callq _advance_ns + 0x84, 0xc0, //0x000052c6 testb %al, %al + 0x0f, 0x84, 0xb5, 0x03, 0x00, 0x00, //0x000052c8 je LBB19_2 + 0x49, 0x8b, 0x4d, 0x00, //0x000052ce movq (%r13), %rcx + 0x41, 0x8b, 0x7c, 0xcd, 0x00, //0x000052d2 movl (%r13,%rcx,8), %edi + 0x49, 0x83, 0xfc, 0xff, //0x000052d7 cmpq $-1, %r12 + 0x4d, 0x89, 0xf8, //0x000052db movq %r15, %r8 + 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x000052de jne LBB19_7 + 0x4d, 0x8b, 0x20, //0x000052e4 movq (%r8), %r12 + 0x49, 0xff, 0xcc, //0x000052e7 decq %r12 + //0x000052ea LBB19_7 + 0x44, 0x0f, 0xbe, 0xc8, //0x000052ea movsbl %al, %r9d + 0x48, 0x8d, 0x51, 0xff, //0x000052ee leaq $-1(%rcx), %rdx + 0xff, 0xcf, //0x000052f2 decl %edi + 0x83, 0xff, 0x05, //0x000052f4 cmpl $5, %edi + 0x0f, 0x87, 0x39, 0x00, 0x00, 0x00, //0x000052f7 ja LBB19_12 + 0x48, 0x8d, 0x35, 0x08, 0x05, 0x00, 0x00, //0x000052fd leaq $1288(%rip), %rsi /* LJTI19_0+0(%rip) */ + 0x48, 0x63, 0x3c, 0xbe, //0x00005304 movslq (%rsi,%rdi,4), %rdi + 0x48, 0x01, 0xf7, //0x00005308 addq %rsi, %rdi + 0xff, 0xe7, //0x0000530b jmpq *%rdi + //0x0000530d LBB19_9 + 0x41, 0x83, 0xf9, 0x2c, //0x0000530d cmpl $44, %r9d + 0x0f, 0x84, 0x7b, 0x01, 0x00, 0x00, //0x00005311 je LBB19_31 + 0x41, 0x83, 0xf9, 0x5d, //0x00005317 cmpl $93, %r9d + 0x0f, 0x85, 0xaa, 0x03, 0x00, 0x00, //0x0000531b jne LBB19_64 + 0x49, 0x89, 0x55, 0x00, //0x00005321 movq %rdx, (%r13) + 0x4d, 0x89, 0xe6, //0x00005325 movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x00005328 testq %rdx, %rdx + 0x0f, 0x85, 0x7f, 0xff, 0xff, 0xff, //0x0000532b jne LBB19_4 + 0xe9, 0x9c, 0x03, 0x00, 0x00, //0x00005331 jmp LBB19_65 + //0x00005336 LBB19_12 + 0x49, 0x89, 0x55, 0x00, //0x00005336 movq %rdx, (%r13) + 0x41, 0x83, 0xf9, 0x7b, //0x0000533a cmpl $123, %r9d + 0x0f, 0x86, 0xef, 0x00, 0x00, 0x00, //0x0000533e jbe LBB19_28 + 0xe9, 0x82, 0x03, 0x00, 0x00, //0x00005344 jmp LBB19_64 + //0x00005349 LBB19_13 + 0x41, 0x83, 0xf9, 0x2c, //0x00005349 cmpl $44, %r9d + 0x0f, 0x84, 0x62, 0x01, 0x00, 0x00, //0x0000534d je LBB19_33 + 0x41, 0x83, 0xf9, 0x7d, //0x00005353 cmpl $125, %r9d + 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00005357 jne LBB19_64 + 0x49, 0x89, 0x55, 0x00, //0x0000535d movq %rdx, (%r13) + 0x4d, 0x89, 0xe6, //0x00005361 movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x00005364 testq %rdx, %rdx + 0x0f, 0x85, 0x43, 0xff, 0xff, 0xff, //0x00005367 jne LBB19_4 + 0xe9, 0x60, 0x03, 0x00, 0x00, //0x0000536d jmp LBB19_65 + //0x00005372 LBB19_16 + 0x3c, 0x22, //0x00005372 cmpb $34, %al + 0x0f, 0x85, 0x51, 0x03, 0x00, 0x00, //0x00005374 jne LBB19_64 + 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x04, 0x00, 0x00, 0x00, //0x0000537a movq $4, (%r13,%rcx,8) + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00005383 movq $-1, $-48(%rbp) + 0x4d, 0x8b, 0x38, //0x0000538b movq (%r8), %r15 + 0x48, 0x89, 0xdf, //0x0000538e movq %rbx, %rdi + //0x00005391 LBB19_18 + 0x4c, 0x89, 0xfe, //0x00005391 movq %r15, %rsi + 0x48, 0x8d, 0x55, 0xd0, //0x00005394 leaq $-48(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb8, //0x00005398 movq $-72(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x0000539c movq %r8, %rbx + 0xe8, 0x5c, 0xf1, 0xff, 0xff, //0x0000539f callq _advance_string + 0x49, 0x89, 0xc6, //0x000053a4 movq %rax, %r14 + 0x48, 0x85, 0xc0, //0x000053a7 testq %rax, %rax + 0x0f, 0x88, 0xeb, 0x02, 0x00, 0x00, //0x000053aa js LBB19_55 + 0x4c, 0x89, 0x33, //0x000053b0 movq %r14, (%rbx) + 0x4d, 0x85, 0xff, //0x000053b3 testq %r15, %r15 + 0x49, 0x89, 0xd8, //0x000053b6 movq %rbx, %r8 + 0x0f, 0x8f, 0xe1, 0xfe, 0xff, 0xff, //0x000053b9 jg LBB19_39 + 0xe9, 0xef, 0x02, 0x00, 0x00, //0x000053bf jmp LBB19_56 + //0x000053c4 LBB19_20 + 0x3c, 0x3a, //0x000053c4 cmpb $58, %al + 0x0f, 0x85, 0xff, 0x02, 0x00, 0x00, //0x000053c6 jne LBB19_64 + 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053cc movq $0, (%r13,%rcx,8) + 0xe9, 0xc6, 0xfe, 0xff, 0xff, //0x000053d5 jmp LBB19_39 + //0x000053da LBB19_22 + 0x3c, 0x5d, //0x000053da cmpb $93, %al + 0x0f, 0x85, 0x3e, 0x00, 0x00, 0x00, //0x000053dc jne LBB19_27 + 0x49, 0x89, 0x55, 0x00, //0x000053e2 movq %rdx, (%r13) + 0x4d, 0x89, 0xe6, //0x000053e6 movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x000053e9 testq %rdx, %rdx + 0x0f, 0x85, 0xbe, 0xfe, 0xff, 0xff, //0x000053ec jne LBB19_4 + 0xe9, 0xdb, 0x02, 0x00, 0x00, //0x000053f2 jmp LBB19_65 + //0x000053f7 LBB19_24 + 0x41, 0x83, 0xf9, 0x22, //0x000053f7 cmpl $34, %r9d + 0x0f, 0x84, 0xd7, 0x00, 0x00, 0x00, //0x000053fb je LBB19_35 + 0x41, 0x83, 0xf9, 0x7d, //0x00005401 cmpl $125, %r9d + 0x0f, 0x85, 0xc0, 0x02, 0x00, 0x00, //0x00005405 jne LBB19_64 + 0x49, 0x89, 0x55, 0x00, //0x0000540b movq %rdx, (%r13) + 0x4d, 0x89, 0xe6, //0x0000540f movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x00005412 testq %rdx, %rdx + 0x0f, 0x85, 0x95, 0xfe, 0xff, 0xff, //0x00005415 jne LBB19_4 + 0xe9, 0xb2, 0x02, 0x00, 0x00, //0x0000541b jmp LBB19_65 + //0x00005420 LBB19_27 + 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005420 movq $1, (%r13,%rcx,8) + 0x41, 0x83, 0xf9, 0x7b, //0x00005429 cmpl $123, %r9d + 0x0f, 0x87, 0x98, 0x02, 0x00, 0x00, //0x0000542d ja LBB19_64 + //0x00005433 LBB19_28 + 0x44, 0x89, 0xc8, //0x00005433 movl %r9d, %eax + 0x48, 0x8d, 0x0d, 0xe7, 0x03, 0x00, 0x00, //0x00005436 leaq $999(%rip), %rcx /* LJTI19_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x81, //0x0000543d movslq (%rcx,%rax,4), %rax + 0x48, 0x01, 0xc8, //0x00005441 addq %rcx, %rax + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005444 movq $-1, %r14 + 0xff, 0xe0, //0x0000544b jmpq *%rax + //0x0000544d LBB19_29 + 0x4c, 0x89, 0xc3, //0x0000544d movq %r8, %rbx + 0x4d, 0x8b, 0x38, //0x00005450 movq (%r8), %r15 + 0x4d, 0x8d, 0x77, 0xff, //0x00005453 leaq $-1(%r15), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00005457 movq $-56(%rbp), %rax + 0x48, 0x8b, 0x38, //0x0000545b movq (%rax), %rdi + 0x4c, 0x01, 0xf7, //0x0000545e addq %r14, %rdi + 0x48, 0x8b, 0x70, 0x08, //0x00005461 movq $8(%rax), %rsi + 0x4c, 0x29, 0xf6, //0x00005465 subq %r14, %rsi + 0xe8, 0x23, 0x08, 0x00, 0x00, //0x00005468 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x0000546d testq %rax, %rax + 0x0f, 0x88, 0x48, 0x02, 0x00, 0x00, //0x00005470 js LBB19_57 + 0x48, 0x8b, 0x0b, //0x00005476 movq (%rbx), %rcx + 0x48, 0x8d, 0x44, 0x08, 0xff, //0x00005479 leaq $-1(%rax,%rcx), %rax + 0x48, 0x89, 0x03, //0x0000547e movq %rax, (%rbx) + 0x4d, 0x85, 0xff, //0x00005481 testq %r15, %r15 + 0x49, 0x89, 0xd8, //0x00005484 movq %rbx, %r8 + 0x0f, 0x8f, 0x13, 0xfe, 0xff, 0xff, //0x00005487 jg LBB19_39 + 0xe9, 0x40, 0x02, 0x00, 0x00, //0x0000548d jmp LBB19_65 + //0x00005492 LBB19_31 + 0x48, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00005492 cmpq $4095, %rcx + 0x0f, 0x8f, 0xf0, 0x01, 0x00, 0x00, //0x00005499 jg LBB19_58 + 0x48, 0x8d, 0x41, 0x01, //0x0000549f leaq $1(%rcx), %rax + 0x49, 0x89, 0x45, 0x00, //0x000054a3 movq %rax, (%r13) + 0x49, 0xc7, 0x44, 0xcd, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000054a7 movq $0, $8(%r13,%rcx,8) + 0xe9, 0xeb, 0xfd, 0xff, 0xff, //0x000054b0 jmp LBB19_39 + //0x000054b5 LBB19_33 + 0x48, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000054b5 cmpq $4095, %rcx + 0x0f, 0x8f, 0xcd, 0x01, 0x00, 0x00, //0x000054bc jg LBB19_58 + 0x48, 0x8d, 0x41, 0x01, //0x000054c2 leaq $1(%rcx), %rax + 0x49, 0x89, 0x45, 0x00, //0x000054c6 movq %rax, (%r13) + 0x49, 0xc7, 0x44, 0xcd, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000054ca movq $3, $8(%r13,%rcx,8) + 0xe9, 0xc8, 0xfd, 0xff, 0xff, //0x000054d3 jmp LBB19_39 + //0x000054d8 LBB19_35 + 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x02, 0x00, 0x00, 0x00, //0x000054d8 movq $2, (%r13,%rcx,8) + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000054e1 movq $-1, $-48(%rbp) + 0x4d, 0x8b, 0x38, //0x000054e9 movq (%r8), %r15 + 0x48, 0x89, 0xdf, //0x000054ec movq %rbx, %rdi + 0x4c, 0x89, 0xfe, //0x000054ef movq %r15, %rsi + 0x48, 0x8d, 0x55, 0xd0, //0x000054f2 leaq $-48(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb8, //0x000054f6 movq $-72(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x000054fa movq %r8, %rbx + 0xe8, 0xfe, 0xef, 0xff, 0xff, //0x000054fd callq _advance_string + 0x49, 0x89, 0xc6, //0x00005502 movq %rax, %r14 + 0x48, 0x85, 0xc0, //0x00005505 testq %rax, %rax + 0x0f, 0x88, 0x8d, 0x01, 0x00, 0x00, //0x00005508 js LBB19_55 + 0x4c, 0x89, 0x33, //0x0000550e movq %r14, (%rbx) + 0x4d, 0x85, 0xff, //0x00005511 testq %r15, %r15 + 0x0f, 0x8e, 0x99, 0x01, 0x00, 0x00, //0x00005514 jle LBB19_56 + 0x49, 0x8b, 0x45, 0x00, //0x0000551a movq (%r13), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000551e cmpq $4095, %rax + 0x0f, 0x8f, 0x65, 0x01, 0x00, 0x00, //0x00005524 jg LBB19_58 + 0x49, 0x89, 0xd8, //0x0000552a movq %rbx, %r8 + 0x48, 0x8d, 0x48, 0x01, //0x0000552d leaq $1(%rax), %rcx + 0x49, 0x89, 0x4d, 0x00, //0x00005531 movq %rcx, (%r13) + 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00005535 movq $4, $8(%r13,%rax,8) + 0xe9, 0x5d, 0xfd, 0xff, 0xff, //0x0000553e jmp LBB19_39 + //0x00005543 LBB19_40 + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00005543 movq $-1, $-48(%rbp) + 0x4d, 0x8b, 0x38, //0x0000554b movq (%r8), %r15 + 0x48, 0x8b, 0x7d, 0xc8, //0x0000554e movq $-56(%rbp), %rdi + 0xe9, 0x3a, 0xfe, 0xff, 0xff, //0x00005552 jmp LBB19_18 + //0x00005557 LBB19_41 + 0x4d, 0x8b, 0x30, //0x00005557 movq (%r8), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x0000555a movq $-56(%rbp), %rax + 0x48, 0x8b, 0x38, //0x0000555e movq (%rax), %rdi + 0x4c, 0x01, 0xf7, //0x00005561 addq %r14, %rdi + 0x48, 0x8b, 0x70, 0x08, //0x00005564 movq $8(%rax), %rsi + 0x4c, 0x29, 0xf6, //0x00005568 subq %r14, %rsi + 0xe8, 0x20, 0x07, 0x00, 0x00, //0x0000556b callq _do_skip_number + 0x4d, 0x89, 0xf8, //0x00005570 movq %r15, %r8 + 0x49, 0x8b, 0x0f, //0x00005573 movq (%r15), %rcx + 0x48, 0x85, 0xc0, //0x00005576 testq %rax, %rax + 0x0f, 0x88, 0x7f, 0x01, 0x00, 0x00, //0x00005579 js LBB19_63 + 0x48, 0x01, 0xc1, //0x0000557f addq %rax, %rcx + 0x49, 0x89, 0x08, //0x00005582 movq %rcx, (%r8) + 0x4d, 0x85, 0xf6, //0x00005585 testq %r14, %r14 + 0x0f, 0x8f, 0x12, 0xfd, 0xff, 0xff, //0x00005588 jg LBB19_39 + 0xe9, 0x79, 0x01, 0x00, 0x00, //0x0000558e jmp LBB19_68 + //0x00005593 LBB19_43 + 0x49, 0x8b, 0x45, 0x00, //0x00005593 movq (%r13), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00005597 cmpq $4095, %rax + 0x0f, 0x8f, 0xec, 0x00, 0x00, 0x00, //0x0000559d jg LBB19_58 + 0x48, 0x8d, 0x48, 0x01, //0x000055a3 leaq $1(%rax), %rcx + 0x49, 0x89, 0x4d, 0x00, //0x000055a7 movq %rcx, (%r13) + 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x05, 0x00, 0x00, 0x00, //0x000055ab movq $5, $8(%r13,%rax,8) + 0xe9, 0xe7, 0xfc, 0xff, 0xff, //0x000055b4 jmp LBB19_39 + //0x000055b9 LBB19_45 + 0x49, 0x8b, 0x00, //0x000055b9 movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000055bc movq $-64(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x000055c0 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x000055c3 leaq $-4(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x000055c7 cmpq %rdx, %rax + 0x0f, 0x87, 0x14, 0x01, 0x00, 0x00, //0x000055ca ja LBB19_61 + 0x48, 0x8b, 0x4d, 0xc8, //0x000055d0 movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x000055d4 movq (%rcx), %rcx + 0x8b, 0x14, 0x01, //0x000055d7 movl (%rcx,%rax), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x000055da cmpl $1702063201, %edx + 0x0f, 0x85, 0xd3, 0x01, 0x00, 0x00, //0x000055e0 jne LBB19_78 + 0x48, 0x8d, 0x48, 0x04, //0x000055e6 leaq $4(%rax), %rcx + 0x49, 0x89, 0x08, //0x000055ea movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x000055ed testq %rax, %rax + 0x0f, 0x8f, 0xaa, 0xfc, 0xff, 0xff, //0x000055f0 jg LBB19_39 + 0xe9, 0xf8, 0x00, 0x00, 0x00, //0x000055f6 jmp LBB19_62 + //0x000055fb LBB19_48 + 0x49, 0x8b, 0x00, //0x000055fb movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000055fe movq $-64(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005602 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00005605 leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00005609 cmpq %rdx, %rax + 0x0f, 0x87, 0xd2, 0x00, 0x00, 0x00, //0x0000560c ja LBB19_61 + 0x48, 0x8b, 0x4d, 0xc8, //0x00005612 movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005616 movq (%rcx), %rcx + 0x81, 0x7c, 0x01, 0xff, 0x6e, 0x75, 0x6c, 0x6c, //0x00005619 cmpl $1819047278, $-1(%rcx,%rax) + 0x0f, 0x84, 0x66, 0xfc, 0xff, 0xff, //0x00005621 je LBB19_3 + 0xe9, 0xe8, 0x00, 0x00, 0x00, //0x00005627 jmp LBB19_69 + //0x0000562c LBB19_50 + 0x49, 0x8b, 0x00, //0x0000562c movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x0000562f movq $-64(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005633 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00005636 leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x0000563a cmpq %rdx, %rax + 0x0f, 0x87, 0xa1, 0x00, 0x00, 0x00, //0x0000563d ja LBB19_61 + 0x48, 0x8b, 0x4d, 0xc8, //0x00005643 movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005647 movq (%rcx), %rcx + 0x81, 0x7c, 0x01, 0xff, 0x74, 0x72, 0x75, 0x65, //0x0000564a cmpl $1702195828, $-1(%rcx,%rax) + 0x0f, 0x84, 0x35, 0xfc, 0xff, 0xff, //0x00005652 je LBB19_3 + 0xe9, 0x06, 0x01, 0x00, 0x00, //0x00005658 jmp LBB19_73 + //0x0000565d LBB19_52 + 0x49, 0x8b, 0x45, 0x00, //0x0000565d movq (%r13), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00005661 cmpq $4095, %rax + 0x0f, 0x8f, 0x22, 0x00, 0x00, 0x00, //0x00005667 jg LBB19_58 + 0x48, 0x8d, 0x48, 0x01, //0x0000566d leaq $1(%rax), %rcx + 0x49, 0x89, 0x4d, 0x00, //0x00005671 movq %rcx, (%r13) + 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00005675 movq $6, $8(%r13,%rax,8) + 0xe9, 0x1d, 0xfc, 0xff, 0xff, //0x0000567e jmp LBB19_39 + //0x00005683 LBB19_2 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005683 movq $-1, %r14 + 0xe9, 0x43, 0x00, 0x00, 0x00, //0x0000568a jmp LBB19_65 + //0x0000568f LBB19_58 + 0x49, 0xc7, 0xc6, 0xf9, 0xff, 0xff, 0xff, //0x0000568f movq $-7, %r14 + 0xe9, 0x37, 0x00, 0x00, 0x00, //0x00005696 jmp LBB19_65 + //0x0000569b LBB19_55 + 0x49, 0x83, 0xfe, 0xff, //0x0000569b cmpq $-1, %r14 + 0x48, 0x8d, 0x45, 0xd0, //0x0000569f leaq $-48(%rbp), %rax + 0x48, 0x0f, 0x44, 0x45, 0xc0, //0x000056a3 cmoveq $-64(%rbp), %rax + 0x48, 0x8b, 0x00, //0x000056a8 movq (%rax), %rax + 0x48, 0x89, 0x03, //0x000056ab movq %rax, (%rbx) + 0xe9, 0x1f, 0x00, 0x00, 0x00, //0x000056ae jmp LBB19_65 + //0x000056b3 LBB19_56 + 0x49, 0xff, 0xcf, //0x000056b3 decq %r15 + 0x4d, 0x89, 0xfe, //0x000056b6 movq %r15, %r14 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000056b9 jmp LBB19_65 + //0x000056be LBB19_57 + 0x48, 0x8b, 0x0b, //0x000056be movq (%rbx), %rcx + 0x48, 0x29, 0xc1, //0x000056c1 subq %rax, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x000056c4 addq $-2, %rcx + 0x48, 0x89, 0x0b, //0x000056c8 movq %rcx, (%rbx) + //0x000056cb LBB19_64 + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000056cb movq $-2, %r14 + //0x000056d2 LBB19_65 + 0x4c, 0x89, 0xf0, //0x000056d2 movq %r14, %rax + 0x48, 0x83, 0xc4, 0x28, //0x000056d5 addq $40, %rsp + 0x5b, //0x000056d9 popq %rbx + 0x41, 0x5c, //0x000056da popq %r12 + 0x41, 0x5d, //0x000056dc popq %r13 + 0x41, 0x5e, //0x000056de popq %r14 + 0x41, 0x5f, //0x000056e0 popq %r15 + 0x5d, //0x000056e2 popq %rbp + 0xc3, //0x000056e3 retq + //0x000056e4 LBB19_61 + 0x49, 0x89, 0x08, //0x000056e4 movq %rcx, (%r8) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000056e7 movq $-1, %r14 + 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x000056ee jmp LBB19_65 + //0x000056f3 LBB19_62 + 0x48, 0xff, 0xc8, //0x000056f3 decq %rax + 0x49, 0x89, 0xc6, //0x000056f6 movq %rax, %r14 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000056f9 jmp LBB19_65 + //0x000056fe LBB19_63 + 0x48, 0xf7, 0xd0, //0x000056fe notq %rax + 0x48, 0x01, 0xc1, //0x00005701 addq %rax, %rcx + 0x49, 0x89, 0x08, //0x00005704 movq %rcx, (%r8) + 0xe9, 0xbf, 0xff, 0xff, 0xff, //0x00005707 jmp LBB19_64 + //0x0000570c LBB19_68 + 0x49, 0xff, 0xce, //0x0000570c decq %r14 + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x0000570f jmp LBB19_65 + //0x00005714 LBB19_69 + 0x48, 0x8d, 0x50, 0xff, //0x00005714 leaq $-1(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005718 movq %rdx, (%r8) + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x0000571b movq $-2, %r14 + 0x80, 0x7c, 0x01, 0xff, 0x6e, //0x00005722 cmpb $110, $-1(%rcx,%rax) + 0x0f, 0x85, 0xa5, 0xff, 0xff, 0xff, //0x00005727 jne LBB19_65 + 0x49, 0x89, 0x00, //0x0000572d movq %rax, (%r8) + 0x80, 0x3c, 0x01, 0x75, //0x00005730 cmpb $117, (%rcx,%rax) + 0x0f, 0x85, 0x98, 0xff, 0xff, 0xff, //0x00005734 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x01, //0x0000573a leaq $1(%rax), %rdx + 0x49, 0x89, 0x10, //0x0000573e movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x00005741 cmpb $108, $1(%rcx,%rax) + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x00005746 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x02, //0x0000574c leaq $2(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005750 movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x02, 0x6c, //0x00005753 cmpb $108, $2(%rcx,%rax) + 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x00005758 jne LBB19_65 + 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x0000575e jmp LBB19_77 + //0x00005763 LBB19_73 + 0x48, 0x8d, 0x50, 0xff, //0x00005763 leaq $-1(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005767 movq %rdx, (%r8) + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x0000576a movq $-2, %r14 + 0x80, 0x7c, 0x01, 0xff, 0x74, //0x00005771 cmpb $116, $-1(%rcx,%rax) + 0x0f, 0x85, 0x56, 0xff, 0xff, 0xff, //0x00005776 jne LBB19_65 + 0x49, 0x89, 0x00, //0x0000577c movq %rax, (%r8) + 0x80, 0x3c, 0x01, 0x72, //0x0000577f cmpb $114, (%rcx,%rax) + 0x0f, 0x85, 0x49, 0xff, 0xff, 0xff, //0x00005783 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x01, //0x00005789 leaq $1(%rax), %rdx + 0x49, 0x89, 0x10, //0x0000578d movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x01, 0x75, //0x00005790 cmpb $117, $1(%rcx,%rax) + 0x0f, 0x85, 0x37, 0xff, 0xff, 0xff, //0x00005795 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x02, //0x0000579b leaq $2(%rax), %rdx + 0x49, 0x89, 0x10, //0x0000579f movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x02, 0x65, //0x000057a2 cmpb $101, $2(%rcx,%rax) + 0x0f, 0x85, 0x25, 0xff, 0xff, 0xff, //0x000057a7 jne LBB19_65 + //0x000057ad LBB19_77 + 0x48, 0x83, 0xc0, 0x03, //0x000057ad addq $3, %rax + 0x49, 0x89, 0x00, //0x000057b1 movq %rax, (%r8) + 0xe9, 0x19, 0xff, 0xff, 0xff, //0x000057b4 jmp LBB19_65 + //0x000057b9 LBB19_78 + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000057b9 movq $-2, %r14 + 0x80, 0xfa, 0x61, //0x000057c0 cmpb $97, %dl + 0x0f, 0x85, 0x09, 0xff, 0xff, 0xff, //0x000057c3 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x01, //0x000057c9 leaq $1(%rax), %rdx + 0x49, 0x89, 0x10, //0x000057cd movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x000057d0 cmpb $108, $1(%rcx,%rax) + 0x0f, 0x85, 0xf7, 0xfe, 0xff, 0xff, //0x000057d5 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x02, //0x000057db leaq $2(%rax), %rdx + 0x49, 0x89, 0x10, //0x000057df movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x02, 0x73, //0x000057e2 cmpb $115, $2(%rcx,%rax) + 0x0f, 0x85, 0xe5, 0xfe, 0xff, 0xff, //0x000057e7 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x03, //0x000057ed leaq $3(%rax), %rdx + 0x49, 0x89, 0x10, //0x000057f1 movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x03, 0x65, //0x000057f4 cmpb $101, $3(%rcx,%rax) + 0x0f, 0x85, 0xd3, 0xfe, 0xff, 0xff, //0x000057f9 jne LBB19_65 + 0x48, 0x83, 0xc0, 0x04, //0x000057ff addq $4, %rax + 0x49, 0x89, 0x00, //0x00005803 movq %rax, (%r8) + 0xe9, 0xc7, 0xfe, 0xff, 0xff, //0x00005806 jmp LBB19_65 + 0x90, //0x0000580b .p2align 2, 0x90 + // // .set L19_0_set_9, LBB19_9-LJTI19_0 + // // .set L19_0_set_13, LBB19_13-LJTI19_0 + // // .set L19_0_set_16, LBB19_16-LJTI19_0 + // // .set L19_0_set_20, LBB19_20-LJTI19_0 + // // .set L19_0_set_22, LBB19_22-LJTI19_0 + // // .set L19_0_set_24, LBB19_24-LJTI19_0 + //0x0000580c LJTI19_0 + 0x01, 0xfb, 0xff, 0xff, //0x0000580c .long L19_0_set_9 + 0x3d, 0xfb, 0xff, 0xff, //0x00005810 .long L19_0_set_13 + 0x66, 0xfb, 0xff, 0xff, //0x00005814 .long L19_0_set_16 + 0xb8, 0xfb, 0xff, 0xff, //0x00005818 .long L19_0_set_20 + 0xce, 0xfb, 0xff, 0xff, //0x0000581c .long L19_0_set_22 + 0xeb, 0xfb, 0xff, 0xff, //0x00005820 .long L19_0_set_24 + // // .set L19_1_set_65, LBB19_65-LJTI19_1 + // // .set L19_1_set_64, LBB19_64-LJTI19_1 + // // .set L19_1_set_40, LBB19_40-LJTI19_1 + // // .set L19_1_set_41, LBB19_41-LJTI19_1 + // // .set L19_1_set_29, LBB19_29-LJTI19_1 + // // .set L19_1_set_43, LBB19_43-LJTI19_1 + // // .set L19_1_set_45, LBB19_45-LJTI19_1 + // // .set L19_1_set_48, LBB19_48-LJTI19_1 + // // .set L19_1_set_50, LBB19_50-LJTI19_1 + // // .set L19_1_set_52, LBB19_52-LJTI19_1 + //0x00005824 LJTI19_1 + 0xae, 0xfe, 0xff, 0xff, //0x00005824 .long L19_1_set_65 + 0xa7, 0xfe, 0xff, 0xff, //0x00005828 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000582c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005830 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005834 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005838 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000583c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005840 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005844 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005848 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000584c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005850 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005854 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005858 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000585c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005860 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005864 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005868 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000586c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005870 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005874 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005878 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000587c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005880 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005884 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005888 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000588c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005890 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005894 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005898 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000589c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058a0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058a4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058a8 .long L19_1_set_64 + 0x1f, 0xfd, 0xff, 0xff, //0x000058ac .long L19_1_set_40 + 0xa7, 0xfe, 0xff, 0xff, //0x000058b0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058b4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058b8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058bc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058c0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058c4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058c8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058cc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058d0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058d4 .long L19_1_set_64 + 0x33, 0xfd, 0xff, 0xff, //0x000058d8 .long L19_1_set_41 + 0xa7, 0xfe, 0xff, 0xff, //0x000058dc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058e0 .long L19_1_set_64 + 0x29, 0xfc, 0xff, 0xff, //0x000058e4 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058e8 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058ec .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058f0 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058f4 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058f8 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058fc .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x00005900 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x00005904 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x00005908 .long L19_1_set_29 + 0xa7, 0xfe, 0xff, 0xff, //0x0000590c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005910 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005914 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005918 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000591c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005920 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005924 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005928 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000592c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005930 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005934 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005938 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000593c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005940 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005944 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005948 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000594c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005950 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005954 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005958 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000595c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005960 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005964 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005968 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000596c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005970 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005974 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005978 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000597c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005980 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005984 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005988 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000598c .long L19_1_set_64 + 0x6f, 0xfd, 0xff, 0xff, //0x00005990 .long L19_1_set_43 + 0xa7, 0xfe, 0xff, 0xff, //0x00005994 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005998 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000599c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059a0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059a4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059a8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059ac .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059b0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059b4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059b8 .long L19_1_set_64 + 0x95, 0xfd, 0xff, 0xff, //0x000059bc .long L19_1_set_45 + 0xa7, 0xfe, 0xff, 0xff, //0x000059c0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059c4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059c8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059cc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059d0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059d4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059d8 .long L19_1_set_64 + 0xd7, 0xfd, 0xff, 0xff, //0x000059dc .long L19_1_set_48 + 0xa7, 0xfe, 0xff, 0xff, //0x000059e0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059e4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059e8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059ec .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059f0 .long L19_1_set_64 + 0x08, 0xfe, 0xff, 0xff, //0x000059f4 .long L19_1_set_50 + 0xa7, 0xfe, 0xff, 0xff, //0x000059f8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059fc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005a00 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005a04 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005a08 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005a0c .long L19_1_set_64 + 0x39, 0xfe, 0xff, 0xff, //0x00005a10 .long L19_1_set_52 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a14 .p2align 4, 0x00 + //0x00005a20 LCPI20_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a20 .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a28 .quad 6 + //0x00005a30 .p2align 4, 0x90 + //0x00005a30 _skip_object + 0x55, //0x00005a30 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005a31 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005a34 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005a37 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x00005a3a movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x00005a3d vmovaps $-37(%rip), %xmm0 /* LCPI20_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00005a45 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00005a49 movq %rax, %rdi + 0x5d, //0x00005a4c popq %rbp + 0xe9, 0xfe, 0xf7, 0xff, 0xff, //0x00005a4d jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005a52 .p2align 4, 0x90 + //0x00005a60 _skip_string + 0x55, //0x00005a60 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005a61 movq %rsp, %rbp + 0x41, 0x57, //0x00005a64 pushq %r15 + 0x41, 0x56, //0x00005a66 pushq %r14 + 0x41, 0x54, //0x00005a68 pushq %r12 + 0x53, //0x00005a6a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00005a6b subq $16, %rsp + 0x48, 0x89, 0xd1, //0x00005a6f movq %rdx, %rcx + 0x49, 0x89, 0xf6, //0x00005a72 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00005a75 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00005a78 movq $-1, $-40(%rbp) + 0x48, 0x8b, 0x1e, //0x00005a80 movq (%rsi), %rbx + 0x4c, 0x8d, 0x65, 0xd8, //0x00005a83 leaq $-40(%rbp), %r12 + 0x48, 0x89, 0xde, //0x00005a87 movq %rbx, %rsi + 0x4c, 0x89, 0xe2, //0x00005a8a movq %r12, %rdx + 0xe8, 0x6e, 0xea, 0xff, 0xff, //0x00005a8d callq _advance_string + 0x48, 0x85, 0xc0, //0x00005a92 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00005a95 js LBB21_1 + 0x48, 0xff, 0xcb, //0x00005a9b decq %rbx + 0x48, 0x89, 0xc1, //0x00005a9e movq %rax, %rcx + 0x48, 0x89, 0xd8, //0x00005aa1 movq %rbx, %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005aa4 jmp LBB21_3 + //0x00005aa9 LBB21_1 + 0x49, 0x83, 0xc7, 0x08, //0x00005aa9 addq $8, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x00005aad cmpq $-1, %rax + 0x4d, 0x0f, 0x44, 0xe7, //0x00005ab1 cmoveq %r15, %r12 + 0x49, 0x8b, 0x0c, 0x24, //0x00005ab5 movq (%r12), %rcx + //0x00005ab9 LBB21_3 + 0x49, 0x89, 0x0e, //0x00005ab9 movq %rcx, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00005abc addq $16, %rsp + 0x5b, //0x00005ac0 popq %rbx + 0x41, 0x5c, //0x00005ac1 popq %r12 + 0x41, 0x5e, //0x00005ac3 popq %r14 + 0x41, 0x5f, //0x00005ac5 popq %r15 + 0x5d, //0x00005ac7 popq %rbp + 0xc3, //0x00005ac8 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005ac9 .p2align 4, 0x90 + //0x00005ad0 _skip_negative + 0x55, //0x00005ad0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005ad1 movq %rsp, %rbp + 0x41, 0x56, //0x00005ad4 pushq %r14 + 0x53, //0x00005ad6 pushq %rbx + 0x49, 0x89, 0xf6, //0x00005ad7 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x00005ada movq (%rsi), %rbx + 0x48, 0x8b, 0x07, //0x00005add movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00005ae0 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x00005ae3 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x00005ae7 subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00005aea movq %rax, %rdi + 0xe8, 0x9e, 0x01, 0x00, 0x00, //0x00005aed callq _do_skip_number + 0x49, 0x8b, 0x0e, //0x00005af2 movq (%r14), %rcx + 0x48, 0x85, 0xc0, //0x00005af5 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00005af8 js LBB22_1 + 0x48, 0x01, 0xc1, //0x00005afe addq %rax, %rcx + 0x49, 0x89, 0x0e, //0x00005b01 movq %rcx, (%r14) + 0x48, 0xff, 0xcb, //0x00005b04 decq %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005b07 jmp LBB22_3 + //0x00005b0c LBB22_1 + 0x48, 0xf7, 0xd0, //0x00005b0c notq %rax + 0x48, 0x01, 0xc1, //0x00005b0f addq %rax, %rcx + 0x49, 0x89, 0x0e, //0x00005b12 movq %rcx, (%r14) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00005b15 movq $-2, %rbx + //0x00005b1c LBB22_3 + 0x48, 0x89, 0xd8, //0x00005b1c movq %rbx, %rax + 0x5b, //0x00005b1f popq %rbx + 0x41, 0x5e, //0x00005b20 popq %r14 + 0x5d, //0x00005b22 popq %rbp + 0xc3, //0x00005b23 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b24 .p2align 5, 0x00 + //0x00005b40 LCPI23_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005b40 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005b50 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005b60 LCPI23_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005b60 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005b70 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005b80 LCPI23_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005b80 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005b90 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005ba0 LCPI23_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005ba0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005bb0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005bc0 LCPI23_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005bc0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005bd0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005be0 LCPI23_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005be0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005bf0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005c00 LCPI23_6 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005c00 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005c10 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00005c20 .p2align 4, 0x00 + //0x00005c20 LCPI23_7 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005c20 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005c30 LCPI23_8 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005c30 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005c40 LCPI23_9 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005c40 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005c50 LCPI23_10 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005c50 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005c60 LCPI23_11 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005c60 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005c70 LCPI23_12 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005c70 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005c80 LCPI23_13 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005c80 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00005c90 .p2align 4, 0x90 + //0x00005c90 _do_skip_number + 0x55, //0x00005c90 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005c91 movq %rsp, %rbp + 0x41, 0x57, //0x00005c94 pushq %r15 + 0x41, 0x56, //0x00005c96 pushq %r14 + 0x41, 0x55, //0x00005c98 pushq %r13 + 0x41, 0x54, //0x00005c9a pushq %r12 + 0x53, //0x00005c9c pushq %rbx + 0x48, 0x85, 0xf6, //0x00005c9d testq %rsi, %rsi + 0x0f, 0x84, 0xe4, 0x03, 0x00, 0x00, //0x00005ca0 je LBB23_53 + 0x80, 0x3f, 0x30, //0x00005ca6 cmpb $48, (%rdi) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00005ca9 jne LBB23_5 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00005caf movl $1, %edx + 0x48, 0x83, 0xfe, 0x01, //0x00005cb4 cmpq $1, %rsi + 0x0f, 0x84, 0xc9, 0x04, 0x00, 0x00, //0x00005cb8 je LBB23_73 + 0x8a, 0x47, 0x01, //0x00005cbe movb $1(%rdi), %al + 0x04, 0xd2, //0x00005cc1 addb $-46, %al + 0x3c, 0x37, //0x00005cc3 cmpb $55, %al + 0x0f, 0x87, 0xbc, 0x04, 0x00, 0x00, //0x00005cc5 ja LBB23_73 + 0x0f, 0xb6, 0xc0, //0x00005ccb movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00005cce movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00005cd8 btq %rax, %rcx + 0x0f, 0x83, 0xa5, 0x04, 0x00, 0x00, //0x00005cdc jae LBB23_73 + //0x00005ce2 LBB23_5 + 0x48, 0x83, 0xfe, 0x20, //0x00005ce2 cmpq $32, %rsi + 0x0f, 0x82, 0xcc, 0x04, 0x00, 0x00, //0x00005ce6 jb LBB23_76 + 0x4c, 0x8d, 0x5e, 0xe0, //0x00005cec leaq $-32(%rsi), %r11 + 0x4c, 0x89, 0xd8, //0x00005cf0 movq %r11, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x00005cf3 andq $-32, %rax + 0x4c, 0x8d, 0x54, 0x38, 0x20, //0x00005cf7 leaq $32(%rax,%rdi), %r10 + 0x41, 0x83, 0xe3, 0x1f, //0x00005cfc andl $31, %r11d + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005d00 movq $-1, %r9 + 0xc5, 0xfd, 0x6f, 0x05, 0x31, 0xfe, 0xff, 0xff, //0x00005d07 vmovdqa $-463(%rip), %ymm0 /* LCPI23_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x49, 0xfe, 0xff, 0xff, //0x00005d0f vmovdqa $-439(%rip), %ymm1 /* LCPI23_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x61, 0xfe, 0xff, 0xff, //0x00005d17 vmovdqa $-415(%rip), %ymm2 /* LCPI23_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x1d, 0x79, 0xfe, 0xff, 0xff, //0x00005d1f vmovdqa $-391(%rip), %ymm3 /* LCPI23_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x91, 0xfe, 0xff, 0xff, //0x00005d27 vmovdqa $-367(%rip), %ymm4 /* LCPI23_4+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0xa9, 0xfe, 0xff, 0xff, //0x00005d2f vmovdqa $-343(%rip), %ymm5 /* LCPI23_5+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xc1, 0xfe, 0xff, 0xff, //0x00005d37 vmovdqa $-319(%rip), %ymm6 /* LCPI23_6+0(%rip) */ + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005d3f movq $-1, %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005d46 movq $-1, %r8 + 0x49, 0x89, 0xfe, //0x00005d4d movq %rdi, %r14 + //0x00005d50 .p2align 4, 0x90 + //0x00005d50 LBB23_7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x3e, //0x00005d50 vmovdqu (%r14), %ymm7 + 0xc5, 0x45, 0x64, 0xc0, //0x00005d55 vpcmpgtb %ymm0, %ymm7, %ymm8 + 0xc5, 0x75, 0x64, 0xcf, //0x00005d59 vpcmpgtb %ymm7, %ymm1, %ymm9 + 0xc4, 0x41, 0x3d, 0xdb, 0xc1, //0x00005d5d vpand %ymm9, %ymm8, %ymm8 + 0xc5, 0x45, 0x74, 0xca, //0x00005d62 vpcmpeqb %ymm2, %ymm7, %ymm9 + 0xc5, 0x45, 0x74, 0xd3, //0x00005d66 vpcmpeqb %ymm3, %ymm7, %ymm10 + 0xc4, 0x41, 0x2d, 0xeb, 0xc9, //0x00005d6a vpor %ymm9, %ymm10, %ymm9 + 0xc5, 0x45, 0xeb, 0xd4, //0x00005d6f vpor %ymm4, %ymm7, %ymm10 + 0xc5, 0x2d, 0x74, 0xd6, //0x00005d73 vpcmpeqb %ymm6, %ymm10, %ymm10 + 0xc5, 0xc5, 0x74, 0xfd, //0x00005d77 vpcmpeqb %ymm5, %ymm7, %ymm7 + 0xc5, 0xfd, 0xd7, 0xd7, //0x00005d7b vpmovmskb %ymm7, %edx + 0xc4, 0x41, 0x7d, 0xd7, 0xe2, //0x00005d7f vpmovmskb %ymm10, %r12d + 0xc4, 0x41, 0x7d, 0xd7, 0xf9, //0x00005d84 vpmovmskb %ymm9, %r15d + 0xc5, 0xad, 0xeb, 0xff, //0x00005d89 vpor %ymm7, %ymm10, %ymm7 + 0xc4, 0x41, 0x35, 0xeb, 0xc0, //0x00005d8d vpor %ymm8, %ymm9, %ymm8 + 0xc5, 0xbd, 0xeb, 0xff, //0x00005d92 vpor %ymm7, %ymm8, %ymm7 + 0xc5, 0xfd, 0xd7, 0xcf, //0x00005d96 vpmovmskb %ymm7, %ecx + 0x48, 0xf7, 0xd1, //0x00005d9a notq %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00005d9d bsfq %rcx, %rcx + 0x83, 0xf9, 0x20, //0x00005da1 cmpl $32, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005da4 je LBB23_9 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005daa movl $-1, %ebx + 0xd3, 0xe3, //0x00005daf shll %cl, %ebx + 0xf7, 0xd3, //0x00005db1 notl %ebx + 0x21, 0xda, //0x00005db3 andl %ebx, %edx + 0x41, 0x21, 0xdc, //0x00005db5 andl %ebx, %r12d + 0x44, 0x21, 0xfb, //0x00005db8 andl %r15d, %ebx + 0x41, 0x89, 0xdf, //0x00005dbb movl %ebx, %r15d + //0x00005dbe LBB23_9 + 0x8d, 0x5a, 0xff, //0x00005dbe leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00005dc1 andl %edx, %ebx + 0x0f, 0x85, 0xa4, 0x03, 0x00, 0x00, //0x00005dc3 jne LBB23_70 + 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x00005dc9 leal $-1(%r12), %ebx + 0x44, 0x21, 0xe3, //0x00005dce andl %r12d, %ebx + 0x0f, 0x85, 0x96, 0x03, 0x00, 0x00, //0x00005dd1 jne LBB23_70 + 0x41, 0x8d, 0x5f, 0xff, //0x00005dd7 leal $-1(%r15), %ebx + 0x44, 0x21, 0xfb, //0x00005ddb andl %r15d, %ebx + 0x0f, 0x85, 0x89, 0x03, 0x00, 0x00, //0x00005dde jne LBB23_70 + 0x85, 0xd2, //0x00005de4 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00005de6 je LBB23_15 + 0x4c, 0x89, 0xf3, //0x00005dec movq %r14, %rbx + 0x48, 0x29, 0xfb, //0x00005def subq %rdi, %rbx + 0x0f, 0xbc, 0xd2, //0x00005df2 bsfl %edx, %edx + 0x48, 0x01, 0xda, //0x00005df5 addq %rbx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00005df8 cmpq $-1, %r8 + 0x0f, 0x85, 0x82, 0x03, 0x00, 0x00, //0x00005dfc jne LBB23_72 + 0x49, 0x89, 0xd0, //0x00005e02 movq %rdx, %r8 + //0x00005e05 LBB23_15 + 0x45, 0x85, 0xe4, //0x00005e05 testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005e08 je LBB23_18 + 0x4c, 0x89, 0xf3, //0x00005e0e movq %r14, %rbx + 0x48, 0x29, 0xfb, //0x00005e11 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd4, //0x00005e14 bsfl %r12d, %edx + 0x48, 0x01, 0xda, //0x00005e18 addq %rbx, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x00005e1b cmpq $-1, %rax + 0x0f, 0x85, 0x5f, 0x03, 0x00, 0x00, //0x00005e1f jne LBB23_72 + 0x48, 0x89, 0xd0, //0x00005e25 movq %rdx, %rax + //0x00005e28 LBB23_18 + 0x45, 0x85, 0xff, //0x00005e28 testl %r15d, %r15d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005e2b je LBB23_21 + 0x4c, 0x89, 0xf3, //0x00005e31 movq %r14, %rbx + 0x48, 0x29, 0xfb, //0x00005e34 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd7, //0x00005e37 bsfl %r15d, %edx + 0x48, 0x01, 0xda, //0x00005e3b addq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00005e3e cmpq $-1, %r9 + 0x0f, 0x85, 0x3c, 0x03, 0x00, 0x00, //0x00005e42 jne LBB23_72 + 0x49, 0x89, 0xd1, //0x00005e48 movq %rdx, %r9 + //0x00005e4b LBB23_21 + 0x83, 0xf9, 0x20, //0x00005e4b cmpl $32, %ecx + 0x0f, 0x85, 0x42, 0x02, 0x00, 0x00, //0x00005e4e jne LBB23_54 + 0x49, 0x83, 0xc6, 0x20, //0x00005e54 addq $32, %r14 + 0x48, 0x83, 0xc6, 0xe0, //0x00005e58 addq $-32, %rsi + 0x48, 0x83, 0xfe, 0x1f, //0x00005e5c cmpq $31, %rsi + 0x0f, 0x87, 0xea, 0xfe, 0xff, 0xff, //0x00005e60 ja LBB23_7 + 0xc5, 0xf8, 0x77, //0x00005e66 vzeroupper + 0x4c, 0x89, 0xde, //0x00005e69 movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x10, //0x00005e6c cmpq $16, %rsi + 0x0f, 0x82, 0x72, 0x01, 0x00, 0x00, //0x00005e70 jb LBB23_42 + //0x00005e76 LBB23_24 + 0x4c, 0x8d, 0x76, 0xf0, //0x00005e76 leaq $-16(%rsi), %r14 + 0x4c, 0x89, 0xf1, //0x00005e7a movq %r14, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00005e7d andq $-16, %rcx + 0x4e, 0x8d, 0x5c, 0x11, 0x10, //0x00005e81 leaq $16(%rcx,%r10), %r11 + 0x41, 0x83, 0xe6, 0x0f, //0x00005e86 andl $15, %r14d + 0xc5, 0x79, 0x6f, 0x05, 0x8e, 0xfd, 0xff, 0xff, //0x00005e8a vmovdqa $-626(%rip), %xmm8 /* LCPI23_7+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x96, 0xfd, 0xff, 0xff, //0x00005e92 vmovdqa $-618(%rip), %xmm9 /* LCPI23_8+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x9e, 0xfd, 0xff, 0xff, //0x00005e9a vmovdqa $-610(%rip), %xmm10 /* LCPI23_9+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x1d, 0xa6, 0xfd, 0xff, 0xff, //0x00005ea2 vmovdqa $-602(%rip), %xmm11 /* LCPI23_10+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0xae, 0xfd, 0xff, 0xff, //0x00005eaa vmovdqa $-594(%rip), %xmm4 /* LCPI23_11+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0xb6, 0xfd, 0xff, 0xff, //0x00005eb2 vmovdqa $-586(%rip), %xmm5 /* LCPI23_12+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x35, 0xbe, 0xfd, 0xff, 0xff, //0x00005eba vmovdqa $-578(%rip), %xmm6 /* LCPI23_13+0(%rip) */ + 0x41, 0xbf, 0xff, 0xff, 0xff, 0xff, //0x00005ec2 movl $4294967295, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005ec8 .p2align 4, 0x90 + //0x00005ed0 LBB23_25 + 0xc4, 0xc1, 0x7a, 0x6f, 0x3a, //0x00005ed0 vmovdqu (%r10), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00005ed5 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x00005eda vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x00005ede vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x00005ee2 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x00005ee6 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00005eea vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xeb, 0xd4, //0x00005eee vpor %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x00005ef2 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x00005ef6 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x00005efa vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x00005efe vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x00005f02 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd7, //0x00005f06 vpmovmskb %xmm7, %edx + 0xc5, 0x79, 0xd7, 0xea, //0x00005f0a vpmovmskb %xmm2, %r13d + 0xc5, 0x79, 0xd7, 0xe1, //0x00005f0e vpmovmskb %xmm1, %r12d + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005f12 vpmovmskb %xmm0, %ecx + 0x4c, 0x31, 0xf9, //0x00005f16 xorq %r15, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00005f19 bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x00005f1d cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005f20 je LBB23_27 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005f26 movl $-1, %ebx + 0xd3, 0xe3, //0x00005f2b shll %cl, %ebx + 0xf7, 0xd3, //0x00005f2d notl %ebx + 0x21, 0xda, //0x00005f2f andl %ebx, %edx + 0x41, 0x21, 0xdd, //0x00005f31 andl %ebx, %r13d + 0x44, 0x21, 0xe3, //0x00005f34 andl %r12d, %ebx + 0x41, 0x89, 0xdc, //0x00005f37 movl %ebx, %r12d + //0x00005f3a LBB23_27 + 0x8d, 0x5a, 0xff, //0x00005f3a leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00005f3d andl %edx, %ebx + 0x0f, 0x85, 0x36, 0x02, 0x00, 0x00, //0x00005f3f jne LBB23_71 + 0x41, 0x8d, 0x5d, 0xff, //0x00005f45 leal $-1(%r13), %ebx + 0x44, 0x21, 0xeb, //0x00005f49 andl %r13d, %ebx + 0x0f, 0x85, 0x29, 0x02, 0x00, 0x00, //0x00005f4c jne LBB23_71 + 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x00005f52 leal $-1(%r12), %ebx + 0x44, 0x21, 0xe3, //0x00005f57 andl %r12d, %ebx + 0x0f, 0x85, 0x1b, 0x02, 0x00, 0x00, //0x00005f5a jne LBB23_71 + 0x85, 0xd2, //0x00005f60 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00005f62 je LBB23_33 + 0x4c, 0x89, 0xd3, //0x00005f68 movq %r10, %rbx + 0x48, 0x29, 0xfb, //0x00005f6b subq %rdi, %rbx + 0x0f, 0xbc, 0xd2, //0x00005f6e bsfl %edx, %edx + 0x48, 0x01, 0xda, //0x00005f71 addq %rbx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00005f74 cmpq $-1, %r8 + 0x0f, 0x85, 0x06, 0x02, 0x00, 0x00, //0x00005f78 jne LBB23_72 + 0x49, 0x89, 0xd0, //0x00005f7e movq %rdx, %r8 + //0x00005f81 LBB23_33 + 0x45, 0x85, 0xed, //0x00005f81 testl %r13d, %r13d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005f84 je LBB23_36 + 0x4c, 0x89, 0xd3, //0x00005f8a movq %r10, %rbx + 0x48, 0x29, 0xfb, //0x00005f8d subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd5, //0x00005f90 bsfl %r13d, %edx + 0x48, 0x01, 0xda, //0x00005f94 addq %rbx, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x00005f97 cmpq $-1, %rax + 0x0f, 0x85, 0xe3, 0x01, 0x00, 0x00, //0x00005f9b jne LBB23_72 + 0x48, 0x89, 0xd0, //0x00005fa1 movq %rdx, %rax + //0x00005fa4 LBB23_36 + 0x45, 0x85, 0xe4, //0x00005fa4 testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005fa7 je LBB23_39 + 0x4c, 0x89, 0xd3, //0x00005fad movq %r10, %rbx + 0x48, 0x29, 0xfb, //0x00005fb0 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd4, //0x00005fb3 bsfl %r12d, %edx + 0x48, 0x01, 0xda, //0x00005fb7 addq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00005fba cmpq $-1, %r9 + 0x0f, 0x85, 0xc0, 0x01, 0x00, 0x00, //0x00005fbe jne LBB23_72 + 0x49, 0x89, 0xd1, //0x00005fc4 movq %rdx, %r9 + //0x00005fc7 LBB23_39 + 0x83, 0xf9, 0x10, //0x00005fc7 cmpl $16, %ecx + 0x0f, 0x85, 0xe4, 0x00, 0x00, 0x00, //0x00005fca jne LBB23_55 + 0x49, 0x83, 0xc2, 0x10, //0x00005fd0 addq $16, %r10 + 0x48, 0x83, 0xc6, 0xf0, //0x00005fd4 addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x00005fd8 cmpq $15, %rsi + 0x0f, 0x87, 0xee, 0xfe, 0xff, 0xff, //0x00005fdc ja LBB23_25 + 0x4c, 0x89, 0xf6, //0x00005fe2 movq %r14, %rsi + 0x4d, 0x89, 0xda, //0x00005fe5 movq %r11, %r10 + //0x00005fe8 LBB23_42 + 0x48, 0x85, 0xf6, //0x00005fe8 testq %rsi, %rsi + 0x0f, 0x84, 0xc6, 0x00, 0x00, 0x00, //0x00005feb je LBB23_56 + 0x4d, 0x8d, 0x1c, 0x32, //0x00005ff1 leaq (%r10,%rsi), %r11 + 0x48, 0x8d, 0x1d, 0xe4, 0x01, 0x00, 0x00, //0x00005ff5 leaq $484(%rip), %rbx /* LJTI23_0+0(%rip) */ + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00005ffc jmp LBB23_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006001 .p2align 4, 0x90 + //0x00006010 LBB23_44 + 0x49, 0x89, 0xca, //0x00006010 movq %rcx, %r10 + 0x48, 0xff, 0xce, //0x00006013 decq %rsi + 0x0f, 0x84, 0x7c, 0x01, 0x00, 0x00, //0x00006016 je LBB23_75 + //0x0000601c LBB23_45 + 0x41, 0x0f, 0xbe, 0x12, //0x0000601c movsbl (%r10), %edx + 0x83, 0xc2, 0xd5, //0x00006020 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00006023 cmpl $58, %edx + 0x0f, 0x87, 0x8b, 0x00, 0x00, 0x00, //0x00006026 ja LBB23_56 + 0x49, 0x8d, 0x4a, 0x01, //0x0000602c leaq $1(%r10), %rcx + 0x48, 0x63, 0x14, 0x93, //0x00006030 movslq (%rbx,%rdx,4), %rdx + 0x48, 0x01, 0xda, //0x00006034 addq %rbx, %rdx + 0xff, 0xe2, //0x00006037 jmpq *%rdx + //0x00006039 LBB23_47 + 0x48, 0x89, 0xca, //0x00006039 movq %rcx, %rdx + 0x48, 0x29, 0xfa, //0x0000603c subq %rdi, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000603f cmpq $-1, %r9 + 0x0f, 0x85, 0x67, 0x01, 0x00, 0x00, //0x00006043 jne LBB23_79 + 0x48, 0xff, 0xca, //0x00006049 decq %rdx + 0x49, 0x89, 0xd1, //0x0000604c movq %rdx, %r9 + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000604f jmp LBB23_44 + //0x00006054 LBB23_49 + 0x48, 0x89, 0xca, //0x00006054 movq %rcx, %rdx + 0x48, 0x29, 0xfa, //0x00006057 subq %rdi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x0000605a cmpq $-1, %rax + 0x0f, 0x85, 0x4c, 0x01, 0x00, 0x00, //0x0000605e jne LBB23_79 + 0x48, 0xff, 0xca, //0x00006064 decq %rdx + 0x48, 0x89, 0xd0, //0x00006067 movq %rdx, %rax + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000606a jmp LBB23_44 + //0x0000606f LBB23_51 + 0x48, 0x89, 0xca, //0x0000606f movq %rcx, %rdx + 0x48, 0x29, 0xfa, //0x00006072 subq %rdi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00006075 cmpq $-1, %r8 + 0x0f, 0x85, 0x31, 0x01, 0x00, 0x00, //0x00006079 jne LBB23_79 + 0x48, 0xff, 0xca, //0x0000607f decq %rdx + 0x49, 0x89, 0xd0, //0x00006082 movq %rdx, %r8 + 0xe9, 0x86, 0xff, 0xff, 0xff, //0x00006085 jmp LBB23_44 + //0x0000608a LBB23_53 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000608a movq $-1, %rax + 0xe9, 0xf4, 0x00, 0x00, 0x00, //0x00006091 jmp LBB23_74 + //0x00006096 LBB23_54 + 0x49, 0x01, 0xce, //0x00006096 addq %rcx, %r14 + 0xc5, 0xf8, 0x77, //0x00006099 vzeroupper + 0x4d, 0x89, 0xf2, //0x0000609c movq %r14, %r10 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000609f movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x000060a6 testq %rax, %rax + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000060a9 jne LBB23_57 + 0xe9, 0xd3, 0x00, 0x00, 0x00, //0x000060af jmp LBB23_73 + //0x000060b4 LBB23_55 + 0x49, 0x01, 0xca, //0x000060b4 addq %rcx, %r10 + //0x000060b7 LBB23_56 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000060b7 movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x000060be testq %rax, %rax + 0x0f, 0x84, 0xc0, 0x00, 0x00, 0x00, //0x000060c1 je LBB23_73 + //0x000060c7 LBB23_57 + 0x4d, 0x85, 0xc9, //0x000060c7 testq %r9, %r9 + 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x000060ca je LBB23_73 + 0x4d, 0x85, 0xc0, //0x000060d0 testq %r8, %r8 + 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, //0x000060d3 je LBB23_73 + 0x49, 0x29, 0xfa, //0x000060d9 subq %rdi, %r10 + 0x49, 0x8d, 0x4a, 0xff, //0x000060dc leaq $-1(%r10), %rcx + 0x48, 0x39, 0xc8, //0x000060e0 cmpq %rcx, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x000060e3 je LBB23_65 + 0x49, 0x39, 0xc8, //0x000060e9 cmpq %rcx, %r8 + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000060ec je LBB23_65 + 0x49, 0x39, 0xc9, //0x000060f2 cmpq %rcx, %r9 + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000060f5 je LBB23_65 + 0x4d, 0x85, 0xc9, //0x000060fb testq %r9, %r9 + 0x0f, 0x8e, 0x29, 0x00, 0x00, 0x00, //0x000060fe jle LBB23_66 + 0x49, 0x8d, 0x49, 0xff, //0x00006104 leaq $-1(%r9), %rcx + 0x48, 0x39, 0xc8, //0x00006108 cmpq %rcx, %rax + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000610b je LBB23_66 + 0x49, 0xf7, 0xd1, //0x00006111 notq %r9 + 0x4c, 0x89, 0xca, //0x00006114 movq %r9, %rdx + 0x4c, 0x89, 0xc8, //0x00006117 movq %r9, %rax + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x0000611a jmp LBB23_74 + //0x0000611f LBB23_65 + 0x49, 0xf7, 0xda, //0x0000611f negq %r10 + 0x4c, 0x89, 0xd2, //0x00006122 movq %r10, %rdx + 0x4c, 0x89, 0xd0, //0x00006125 movq %r10, %rax + 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x00006128 jmp LBB23_74 + //0x0000612d LBB23_66 + 0x4c, 0x89, 0xc1, //0x0000612d movq %r8, %rcx + 0x48, 0x09, 0xc1, //0x00006130 orq %rax, %rcx + 0x49, 0x39, 0xc0, //0x00006133 cmpq %rax, %r8 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00006136 jl LBB23_69 + 0x48, 0x85, 0xc9, //0x0000613c testq %rcx, %rcx + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x0000613f js LBB23_69 + 0x49, 0xf7, 0xd0, //0x00006145 notq %r8 + 0x4c, 0x89, 0xc2, //0x00006148 movq %r8, %rdx + 0x4c, 0x89, 0xc0, //0x0000614b movq %r8, %rax + 0xe9, 0x37, 0x00, 0x00, 0x00, //0x0000614e jmp LBB23_74 + //0x00006153 LBB23_69 + 0x48, 0x85, 0xc9, //0x00006153 testq %rcx, %rcx + 0x48, 0x8d, 0x48, 0xff, //0x00006156 leaq $-1(%rax), %rcx + 0x48, 0xf7, 0xd0, //0x0000615a notq %rax + 0x49, 0x0f, 0x48, 0xc2, //0x0000615d cmovsq %r10, %rax + 0x49, 0x39, 0xc8, //0x00006161 cmpq %rcx, %r8 + 0x49, 0x0f, 0x45, 0xc2, //0x00006164 cmovneq %r10, %rax + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00006168 jmp LBB23_74 + //0x0000616d LBB23_70 + 0x49, 0x29, 0xfe, //0x0000616d subq %rdi, %r14 + 0x0f, 0xbc, 0xd3, //0x00006170 bsfl %ebx, %edx + 0x4c, 0x01, 0xf2, //0x00006173 addq %r14, %rdx + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00006176 jmp LBB23_72 + //0x0000617b LBB23_71 + 0x49, 0x29, 0xfa, //0x0000617b subq %rdi, %r10 + 0x0f, 0xbc, 0xd3, //0x0000617e bsfl %ebx, %edx + 0x4c, 0x01, 0xd2, //0x00006181 addq %r10, %rdx + //0x00006184 LBB23_72 + 0x48, 0xf7, 0xd2, //0x00006184 notq %rdx + //0x00006187 LBB23_73 + 0x48, 0x89, 0xd0, //0x00006187 movq %rdx, %rax + //0x0000618a LBB23_74 + 0x5b, //0x0000618a popq %rbx + 0x41, 0x5c, //0x0000618b popq %r12 + 0x41, 0x5d, //0x0000618d popq %r13 + 0x41, 0x5e, //0x0000618f popq %r14 + 0x41, 0x5f, //0x00006191 popq %r15 + 0x5d, //0x00006193 popq %rbp + 0xc5, 0xf8, 0x77, //0x00006194 vzeroupper + 0xc3, //0x00006197 retq + //0x00006198 LBB23_75 + 0x4d, 0x89, 0xda, //0x00006198 movq %r11, %r10 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000619b movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x000061a2 testq %rax, %rax + 0x0f, 0x85, 0x1c, 0xff, 0xff, 0xff, //0x000061a5 jne LBB23_57 + 0xe9, 0xd7, 0xff, 0xff, 0xff, //0x000061ab jmp LBB23_73 + //0x000061b0 LBB23_79 + 0x48, 0xf7, 0xda, //0x000061b0 negq %rdx + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000061b3 jmp LBB23_73 + //0x000061b8 LBB23_76 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000061b8 movq $-1, %r9 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000061bf movq $-1, %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000061c6 movq $-1, %r8 + 0x49, 0x89, 0xfa, //0x000061cd movq %rdi, %r10 + 0x48, 0x83, 0xfe, 0x10, //0x000061d0 cmpq $16, %rsi + 0x0f, 0x83, 0x9c, 0xfc, 0xff, 0xff, //0x000061d4 jae LBB23_24 + 0xe9, 0x09, 0xfe, 0xff, 0xff, //0x000061da jmp LBB23_42 + 0x90, //0x000061df .p2align 2, 0x90 + // // .set L23_0_set_47, LBB23_47-LJTI23_0 + // // .set L23_0_set_56, LBB23_56-LJTI23_0 + // // .set L23_0_set_51, LBB23_51-LJTI23_0 + // // .set L23_0_set_44, LBB23_44-LJTI23_0 + // // .set L23_0_set_49, LBB23_49-LJTI23_0 + //0x000061e0 LJTI23_0 + 0x59, 0xfe, 0xff, 0xff, //0x000061e0 .long L23_0_set_47 + 0xd7, 0xfe, 0xff, 0xff, //0x000061e4 .long L23_0_set_56 + 0x59, 0xfe, 0xff, 0xff, //0x000061e8 .long L23_0_set_47 + 0x8f, 0xfe, 0xff, 0xff, //0x000061ec .long L23_0_set_51 + 0xd7, 0xfe, 0xff, 0xff, //0x000061f0 .long L23_0_set_56 + 0x30, 0xfe, 0xff, 0xff, //0x000061f4 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x000061f8 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x000061fc .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006200 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006204 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006208 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x0000620c .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006210 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006214 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006218 .long L23_0_set_44 + 0xd7, 0xfe, 0xff, 0xff, //0x0000621c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006220 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006224 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006228 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000622c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006230 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006234 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006238 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000623c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006240 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006244 .long L23_0_set_56 + 0x74, 0xfe, 0xff, 0xff, //0x00006248 .long L23_0_set_49 + 0xd7, 0xfe, 0xff, 0xff, //0x0000624c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006250 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006254 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006258 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000625c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006260 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006264 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006268 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000626c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006270 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006274 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006278 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000627c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006280 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006284 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006288 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000628c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006290 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006294 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006298 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000629c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062a0 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062a4 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062a8 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062ac .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062b0 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062b4 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062b8 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062bc .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062c0 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062c4 .long L23_0_set_56 + 0x74, 0xfe, 0xff, 0xff, //0x000062c8 .long L23_0_set_49 + 0x90, 0x90, 0x90, 0x90, //0x000062cc .p2align 4, 0x90 + //0x000062d0 _skip_positive + 0x55, //0x000062d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000062d1 movq %rsp, %rbp + 0x41, 0x56, //0x000062d4 pushq %r14 + 0x53, //0x000062d6 pushq %rbx + 0x49, 0x89, 0xf6, //0x000062d7 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x000062da movq (%rsi), %rbx + 0x48, 0xff, 0xcb, //0x000062dd decq %rbx + 0x48, 0x8b, 0x07, //0x000062e0 movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x000062e3 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x000062e6 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x000062ea subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x000062ed movq %rax, %rdi + 0xe8, 0x9b, 0xf9, 0xff, 0xff, //0x000062f0 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x000062f5 testq %rax, %rax + 0x0f, 0x88, 0x0d, 0x00, 0x00, 0x00, //0x000062f8 js LBB24_1 + 0x49, 0x8b, 0x0e, //0x000062fe movq (%r14), %rcx + 0x48, 0x8d, 0x4c, 0x08, 0xff, //0x00006301 leaq $-1(%rax,%rcx), %rcx + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00006306 jmp LBB24_3 + //0x0000630b LBB24_1 + 0x49, 0x8b, 0x0e, //0x0000630b movq (%r14), %rcx + 0x48, 0x29, 0xc1, //0x0000630e subq %rax, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x00006311 addq $-2, %rcx + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00006315 movq $-2, %rbx + //0x0000631c LBB24_3 + 0x49, 0x89, 0x0e, //0x0000631c movq %rcx, (%r14) + 0x48, 0x89, 0xd8, //0x0000631f movq %rbx, %rax + 0x5b, //0x00006322 popq %rbx + 0x41, 0x5e, //0x00006323 popq %r14 + 0x5d, //0x00006325 popq %rbp + 0xc3, //0x00006326 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006327 .p2align 4, 0x90 + //0x00006330 _skip_number + 0x55, //0x00006330 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006331 movq %rsp, %rbp + 0x41, 0x57, //0x00006334 pushq %r15 + 0x41, 0x56, //0x00006336 pushq %r14 + 0x41, 0x54, //0x00006338 pushq %r12 + 0x53, //0x0000633a pushq %rbx + 0x49, 0x89, 0xf6, //0x0000633b movq %rsi, %r14 + 0x4c, 0x8b, 0x27, //0x0000633e movq (%rdi), %r12 + 0x48, 0x8b, 0x77, 0x08, //0x00006341 movq $8(%rdi), %rsi + 0x4d, 0x8b, 0x3e, //0x00006345 movq (%r14), %r15 + 0x31, 0xc0, //0x00006348 xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x3c, 0x2d, //0x0000634a cmpb $45, (%r12,%r15) + 0x4b, 0x8d, 0x1c, 0x3c, //0x0000634f leaq (%r12,%r15), %rbx + 0x0f, 0x94, 0xc0, //0x00006353 sete %al + 0x48, 0x01, 0xc3, //0x00006356 addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x00006359 subq %rax, %rsi + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x0000635c je LBB25_6 + 0x49, 0x39, 0xf7, //0x00006362 cmpq %rsi, %r15 + 0x0f, 0x83, 0x0c, 0x00, 0x00, 0x00, //0x00006365 jae LBB25_3 + 0x8a, 0x03, //0x0000636b movb (%rbx), %al + 0x04, 0xd0, //0x0000636d addb $-48, %al + 0x3c, 0x09, //0x0000636f cmpb $9, %al + 0x0f, 0x87, 0x38, 0x00, 0x00, 0x00, //0x00006371 ja LBB25_8 + //0x00006377 LBB25_3 + 0x48, 0x89, 0xdf, //0x00006377 movq %rbx, %rdi + 0xe8, 0x11, 0xf9, 0xff, 0xff, //0x0000637a callq _do_skip_number + 0x48, 0x85, 0xc0, //0x0000637f testq %rax, %rax + 0x0f, 0x88, 0x21, 0x00, 0x00, 0x00, //0x00006382 js LBB25_7 + 0x48, 0x01, 0xc3, //0x00006388 addq %rax, %rbx + //0x0000638b LBB25_5 + 0x4c, 0x29, 0xe3, //0x0000638b subq %r12, %rbx + 0x49, 0x89, 0x1e, //0x0000638e movq %rbx, (%r14) + 0x4c, 0x89, 0xf8, //0x00006391 movq %r15, %rax + 0x5b, //0x00006394 popq %rbx + 0x41, 0x5c, //0x00006395 popq %r12 + 0x41, 0x5e, //0x00006397 popq %r14 + 0x41, 0x5f, //0x00006399 popq %r15 + 0x5d, //0x0000639b popq %rbp + 0xc3, //0x0000639c retq + //0x0000639d LBB25_6 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000639d movq $-1, %r15 + 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x000063a4 jmp LBB25_5 + //0x000063a9 LBB25_7 + 0x48, 0xf7, 0xd0, //0x000063a9 notq %rax + 0x48, 0x01, 0xc3, //0x000063ac addq %rax, %rbx + //0x000063af LBB25_8 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x000063af movq $-2, %r15 + 0xe9, 0xd0, 0xff, 0xff, 0xff, //0x000063b6 jmp LBB25_5 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000063bb .p2align 4, 0x90 + //0x000063c0 _skip_one + 0x55, //0x000063c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000063c1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000063c4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000063c7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000063ca movq %rdi, %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000063cd movl $1, %edi + 0xc4, 0xe1, 0xf9, 0x6e, 0xc7, //0x000063d2 vmovq %rdi, %xmm0 + 0xc5, 0xfa, 0x7f, 0x00, //0x000063d7 vmovdqu %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x000063db movq %rax, %rdi + 0x5d, //0x000063de popq %rbp + 0xe9, 0x6c, 0xee, 0xff, 0xff, //0x000063df jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000063e4 .p2align 4, 0x90 + //0x000063f0 _validate_one + 0x55, //0x000063f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000063f1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000063f4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000063f7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000063fa movq %rdi, %rsi + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000063fd movl $1, %ecx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00006402 vmovq %rcx, %xmm0 + 0xc5, 0xfa, 0x7f, 0x00, //0x00006407 vmovdqu %xmm0, (%rax) + 0xb9, 0x20, 0x00, 0x00, 0x00, //0x0000640b movl $32, %ecx + 0x48, 0x89, 0xc7, //0x00006410 movq %rax, %rdi + 0x5d, //0x00006413 popq %rbp + 0xe9, 0x37, 0xee, 0xff, 0xff, //0x00006414 jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006419 .p2align 5, 0x00 + //0x00006420 LCPI28_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006420 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006430 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00006440 LCPI28_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00006440 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00006450 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00006460 LCPI28_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006460 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006470 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00006480 LCPI28_6 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00006480 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00006490 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000064a0 LCPI28_7 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000064a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000064b0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000064c0 LCPI28_8 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000064c0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000064d0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x000064e0 LCPI28_9 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000064e0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000064f0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00006500 LCPI28_10 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006500 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006510 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00006520 .p2align 4, 0x00 + //0x00006520 LCPI28_3 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006520 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00006530 LCPI28_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00006530 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00006540 LCPI28_5 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006540 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00006550 .p2align 4, 0x90 + //0x00006550 _skip_one_fast + 0x55, //0x00006550 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006551 movq %rsp, %rbp + 0x41, 0x57, //0x00006554 pushq %r15 + 0x41, 0x56, //0x00006556 pushq %r14 + 0x41, 0x55, //0x00006558 pushq %r13 + 0x41, 0x54, //0x0000655a pushq %r12 + 0x53, //0x0000655c pushq %rbx + 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000655d subq $128, %rsp + 0x49, 0x89, 0xf6, //0x00006564 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00006567 movq %rdi, %r15 + 0x48, 0x8b, 0x3f, //0x0000656a movq (%rdi), %rdi + 0x49, 0x8b, 0x77, 0x08, //0x0000656d movq $8(%r15), %rsi + 0x4c, 0x89, 0xf2, //0x00006571 movq %r14, %rdx + 0xe8, 0xa7, 0xdc, 0xff, 0xff, //0x00006574 callq _advance_ns + 0x4d, 0x8b, 0x0e, //0x00006579 movq (%r14), %r9 + 0x4d, 0x8d, 0x41, 0xff, //0x0000657c leaq $-1(%r9), %r8 + 0x0f, 0xbe, 0xc8, //0x00006580 movsbl %al, %ecx + 0x83, 0xf9, 0x7b, //0x00006583 cmpl $123, %ecx + 0x0f, 0x87, 0x87, 0x01, 0x00, 0x00, //0x00006586 ja LBB28_26 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000658c movq $-1, %rax + 0x48, 0x8d, 0x35, 0x32, 0x09, 0x00, 0x00, //0x00006593 leaq $2354(%rip), %rsi /* LJTI28_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8e, //0x0000659a movslq (%rsi,%rcx,4), %rcx + 0x48, 0x01, 0xf1, //0x0000659e addq %rsi, %rcx + 0xff, 0xe1, //0x000065a1 jmpq *%rcx + //0x000065a3 LBB28_2 + 0x49, 0x8b, 0x07, //0x000065a3 movq (%r15), %rax + 0x49, 0x8b, 0x7f, 0x08, //0x000065a6 movq $8(%r15), %rdi + 0x48, 0x89, 0xfe, //0x000065aa movq %rdi, %rsi + 0x4c, 0x29, 0xce, //0x000065ad subq %r9, %rsi + 0x4a, 0x8d, 0x0c, 0x08, //0x000065b0 leaq (%rax,%r9), %rcx + 0x48, 0x83, 0xfe, 0x20, //0x000065b4 cmpq $32, %rsi + 0x0f, 0x82, 0x6a, 0x00, 0x00, 0x00, //0x000065b8 jb LBB28_7 + 0x4c, 0x29, 0xcf, //0x000065be subq %r9, %rdi + 0x48, 0x83, 0xc7, 0xe0, //0x000065c1 addq $-32, %rdi + 0x48, 0x89, 0xfa, //0x000065c5 movq %rdi, %rdx + 0x48, 0x83, 0xe2, 0xe0, //0x000065c8 andq $-32, %rdx + 0x4c, 0x01, 0xca, //0x000065cc addq %r9, %rdx + 0x48, 0x8d, 0x54, 0x10, 0x20, //0x000065cf leaq $32(%rax,%rdx), %rdx + 0x83, 0xe7, 0x1f, //0x000065d4 andl $31, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x41, 0xfe, 0xff, 0xff, //0x000065d7 vmovdqa $-447(%rip), %ymm0 /* LCPI28_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x59, 0xfe, 0xff, 0xff, //0x000065df vmovdqa $-423(%rip), %ymm1 /* LCPI28_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x71, 0xfe, 0xff, 0xff, //0x000065e7 vmovdqa $-399(%rip), %ymm2 /* LCPI28_2+0(%rip) */ + 0x90, //0x000065ef .p2align 4, 0x90 + //0x000065f0 LBB28_4 + 0xc5, 0xfe, 0x6f, 0x19, //0x000065f0 vmovdqu (%rcx), %ymm3 + 0xc5, 0xe5, 0x74, 0xe0, //0x000065f4 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xe5, 0xeb, 0xd9, //0x000065f8 vpor %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0x74, 0xda, //0x000065fc vpcmpeqb %ymm2, %ymm3, %ymm3 + 0xc5, 0xe5, 0xeb, 0xdc, //0x00006600 vpor %ymm4, %ymm3, %ymm3 + 0xc5, 0xfd, 0xd7, 0xdb, //0x00006604 vpmovmskb %ymm3, %ebx + 0x85, 0xdb, //0x00006608 testl %ebx, %ebx + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x0000660a jne LBB28_20 + 0x48, 0x83, 0xc1, 0x20, //0x00006610 addq $32, %rcx + 0x48, 0x83, 0xc6, 0xe0, //0x00006614 addq $-32, %rsi + 0x48, 0x83, 0xfe, 0x1f, //0x00006618 cmpq $31, %rsi + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x0000661c ja LBB28_4 + 0x48, 0x89, 0xfe, //0x00006622 movq %rdi, %rsi + 0x48, 0x89, 0xd1, //0x00006625 movq %rdx, %rcx + //0x00006628 LBB28_7 + 0x48, 0x83, 0xfe, 0x10, //0x00006628 cmpq $16, %rsi + 0x0f, 0x82, 0x67, 0x00, 0x00, 0x00, //0x0000662c jb LBB28_12 + 0x48, 0x8d, 0x56, 0xf0, //0x00006632 leaq $-16(%rsi), %rdx + 0x48, 0x89, 0xd7, //0x00006636 movq %rdx, %rdi + 0x48, 0x83, 0xe7, 0xf0, //0x00006639 andq $-16, %rdi + 0x48, 0x8d, 0x7c, 0x0f, 0x10, //0x0000663d leaq $16(%rdi,%rcx), %rdi + 0x83, 0xe2, 0x0f, //0x00006642 andl $15, %edx + 0xc5, 0xf9, 0x6f, 0x05, 0xd3, 0xfe, 0xff, 0xff, //0x00006645 vmovdqa $-301(%rip), %xmm0 /* LCPI28_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xdb, 0xfe, 0xff, 0xff, //0x0000664d vmovdqa $-293(%rip), %xmm1 /* LCPI28_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xe3, 0xfe, 0xff, 0xff, //0x00006655 vmovdqa $-285(%rip), %xmm2 /* LCPI28_5+0(%rip) */ + 0x90, 0x90, 0x90, //0x0000665d .p2align 4, 0x90 + //0x00006660 LBB28_9 + 0xc5, 0xfa, 0x6f, 0x19, //0x00006660 vmovdqu (%rcx), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x00006664 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xeb, 0xd9, //0x00006668 vpor %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x0000666c vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x00006670 vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x00006674 vpmovmskb %xmm3, %ebx + 0x66, 0x85, 0xdb, //0x00006678 testw %bx, %bx + 0x0f, 0x85, 0xa0, 0x07, 0x00, 0x00, //0x0000667b jne LBB28_92 + 0x48, 0x83, 0xc1, 0x10, //0x00006681 addq $16, %rcx + 0x48, 0x83, 0xc6, 0xf0, //0x00006685 addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x00006689 cmpq $15, %rsi + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000668d ja LBB28_9 + 0x48, 0x89, 0xd6, //0x00006693 movq %rdx, %rsi + 0x48, 0x89, 0xf9, //0x00006696 movq %rdi, %rcx + //0x00006699 LBB28_12 + 0x48, 0x85, 0xf6, //0x00006699 testq %rsi, %rsi + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x0000669c je LBB28_19 + 0x48, 0x8d, 0x14, 0x31, //0x000066a2 leaq (%rcx,%rsi), %rdx + //0x000066a6 LBB28_14 + 0x0f, 0xb6, 0x19, //0x000066a6 movzbl (%rcx), %ebx + 0x80, 0xfb, 0x2c, //0x000066a9 cmpb $44, %bl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000066ac je LBB28_19 + 0x80, 0xfb, 0x7d, //0x000066b2 cmpb $125, %bl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000066b5 je LBB28_19 + 0x80, 0xfb, 0x5d, //0x000066bb cmpb $93, %bl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000066be je LBB28_19 + 0x48, 0xff, 0xc1, //0x000066c4 incq %rcx + 0x48, 0xff, 0xce, //0x000066c7 decq %rsi + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x000066ca jne LBB28_14 + 0x48, 0x89, 0xd1, //0x000066d0 movq %rdx, %rcx + //0x000066d3 LBB28_19 + 0x48, 0x29, 0xc1, //0x000066d3 subq %rax, %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000066d6 jmp LBB28_22 + //0x000066db LBB28_20 + 0x48, 0x63, 0xd3, //0x000066db movslq %ebx, %rdx + //0x000066de LBB28_21 + 0x48, 0x0f, 0xbc, 0xd2, //0x000066de bsfq %rdx, %rdx + 0x48, 0x29, 0xc1, //0x000066e2 subq %rax, %rcx + 0x48, 0x01, 0xd1, //0x000066e5 addq %rdx, %rcx + //0x000066e8 LBB28_22 + 0x49, 0x89, 0x0e, //0x000066e8 movq %rcx, (%r14) + //0x000066eb LBB28_23 + 0x4c, 0x89, 0xc0, //0x000066eb movq %r8, %rax + //0x000066ee LBB28_24 + 0x48, 0x8d, 0x65, 0xd8, //0x000066ee leaq $-40(%rbp), %rsp + 0x5b, //0x000066f2 popq %rbx + 0x41, 0x5c, //0x000066f3 popq %r12 + 0x41, 0x5d, //0x000066f5 popq %r13 + 0x41, 0x5e, //0x000066f7 popq %r14 + 0x41, 0x5f, //0x000066f9 popq %r15 + 0x5d, //0x000066fb popq %rbp + 0xc5, 0xf8, 0x77, //0x000066fc vzeroupper + 0xc3, //0x000066ff retq + //0x00006700 LBB28_25 + 0x49, 0x83, 0xc1, 0x03, //0x00006700 addq $3, %r9 + 0x4d, 0x3b, 0x4f, 0x08, //0x00006704 cmpq $8(%r15), %r9 + 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x00006708 ja LBB28_24 + 0xe9, 0xcf, 0x03, 0x00, 0x00, //0x0000670e jmp LBB28_62 + //0x00006713 LBB28_26 + 0x4d, 0x89, 0x06, //0x00006713 movq %r8, (%r14) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00006716 movq $-2, %rax + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x0000671d jmp LBB28_24 + //0x00006722 LBB28_27 + 0x4d, 0x89, 0xc4, //0x00006722 movq %r8, %r12 + 0x49, 0x8b, 0x0f, //0x00006725 movq (%r15), %rcx + 0x4d, 0x8b, 0x5f, 0x08, //0x00006728 movq $8(%r15), %r11 + 0x48, 0x89, 0x4c, 0x24, 0x10, //0x0000672c movq %rcx, $16(%rsp) + 0x4e, 0x8d, 0x3c, 0x09, //0x00006731 leaq (%rcx,%r9), %r15 + 0x4d, 0x29, 0xcb, //0x00006735 subq %r9, %r11 + 0x49, 0x83, 0xfb, 0x20, //0x00006738 cmpq $32, %r11 + 0x0f, 0x8c, 0xf6, 0x06, 0x00, 0x00, //0x0000673c jl LBB28_36 + 0xbb, 0x20, 0x00, 0x00, 0x00, //0x00006742 movl $32, %ebx + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00006747 movl $4294967295, %r9d + 0x31, 0xd2, //0x0000674d xorl %edx, %edx + 0xc5, 0xfd, 0x6f, 0x05, 0x29, 0xfd, 0xff, 0xff, //0x0000674f vmovdqa $-727(%rip), %ymm0 /* LCPI28_6+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x41, 0xfd, 0xff, 0xff, //0x00006757 vmovdqa $-703(%rip), %ymm1 /* LCPI28_7+0(%rip) */ + 0x45, 0x8d, 0x91, 0xab, 0xaa, 0xaa, 0xaa, //0x0000675f leal $-1431655765(%r9), %r10d + 0x31, 0xff, //0x00006766 xorl %edi, %edi + 0xe9, 0x58, 0x00, 0x00, 0x00, //0x00006768 jmp LBB28_29 + 0x90, 0x90, 0x90, //0x0000676d .p2align 4, 0x90 + //0x00006770 LBB28_32 + 0x89, 0xfe, //0x00006770 movl %edi, %esi + 0x44, 0x31, 0xce, //0x00006772 xorl %r9d, %esi + 0x21, 0xce, //0x00006775 andl %ecx, %esi + 0x44, 0x8d, 0x04, 0x36, //0x00006777 leal (%rsi,%rsi), %r8d + 0x41, 0x09, 0xf8, //0x0000677b orl %edi, %r8d + 0x44, 0x89, 0xc1, //0x0000677e movl %r8d, %ecx + 0x44, 0x31, 0xd1, //0x00006781 xorl %r10d, %ecx + 0x21, 0xf1, //0x00006784 andl %esi, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006786 andl $-1431655766, %ecx + 0x31, 0xff, //0x0000678c xorl %edi, %edi + 0x01, 0xf1, //0x0000678e addl %esi, %ecx + 0x40, 0x0f, 0x92, 0xc7, //0x00006790 setb %dil + 0x01, 0xc9, //0x00006794 addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00006796 xorl $1431655765, %ecx + 0x44, 0x21, 0xc1, //0x0000679c andl %r8d, %ecx + 0x44, 0x31, 0xc9, //0x0000679f xorl %r9d, %ecx + 0x41, 0x21, 0xcd, //0x000067a2 andl %ecx, %r13d + 0x45, 0x85, 0xed, //0x000067a5 testl %r13d, %r13d + 0x0f, 0x85, 0x49, 0x00, 0x00, 0x00, //0x000067a8 jne LBB28_90 + //0x000067ae LBB28_33 + 0x48, 0x83, 0xc2, 0x20, //0x000067ae addq $32, %rdx + 0x49, 0x8d, 0x4c, 0x1b, 0xe0, //0x000067b2 leaq $-32(%r11,%rbx), %rcx + 0x48, 0x83, 0xc3, 0xe0, //0x000067b7 addq $-32, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x000067bb cmpq $63, %rcx + 0x0f, 0x8e, 0x64, 0x06, 0x00, 0x00, //0x000067bf jle LBB28_34 + //0x000067c5 LBB28_29 + 0xc4, 0xc1, 0x7e, 0x6f, 0x14, 0x17, //0x000067c5 vmovdqu (%r15,%rdx), %ymm2 + 0xc5, 0xed, 0x74, 0xd8, //0x000067cb vpcmpeqb %ymm0, %ymm2, %ymm3 + 0xc5, 0x7d, 0xd7, 0xeb, //0x000067cf vpmovmskb %ymm3, %r13d + 0xc5, 0xed, 0x74, 0xd1, //0x000067d3 vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x000067d7 vpmovmskb %ymm2, %ecx + 0x48, 0x85, 0xff, //0x000067db testq %rdi, %rdi + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x000067de jne LBB28_32 + 0x85, 0xc9, //0x000067e4 testl %ecx, %ecx + 0x0f, 0x85, 0x84, 0xff, 0xff, 0xff, //0x000067e6 jne LBB28_32 + 0x31, 0xff, //0x000067ec xorl %edi, %edi + 0x45, 0x85, 0xed, //0x000067ee testl %r13d, %r13d + 0x0f, 0x84, 0xb7, 0xff, 0xff, 0xff, //0x000067f1 je LBB28_33 + //0x000067f7 LBB28_90 + 0x49, 0x0f, 0xbc, 0xc5, //0x000067f7 bsfq %r13, %rax + 0x49, 0x01, 0xc7, //0x000067fb addq %rax, %r15 + 0x49, 0x01, 0xd7, //0x000067fe addq %rdx, %r15 + //0x00006801 LBB28_91 + 0x4c, 0x2b, 0x7c, 0x24, 0x10, //0x00006801 subq $16(%rsp), %r15 + 0x49, 0xff, 0xc7, //0x00006806 incq %r15 + 0x4d, 0x89, 0x3e, //0x00006809 movq %r15, (%r14) + 0x4c, 0x89, 0xe0, //0x0000680c movq %r12, %rax + 0xe9, 0xda, 0xfe, 0xff, 0xff, //0x0000680f jmp LBB28_24 + //0x00006814 LBB28_37 + 0x4d, 0x89, 0xc4, //0x00006814 movq %r8, %r12 + 0x49, 0x8b, 0x4f, 0x08, //0x00006817 movq $8(%r15), %rcx + 0x4c, 0x29, 0xc9, //0x0000681b subq %r9, %rcx + 0x4d, 0x03, 0x0f, //0x0000681e addq (%r15), %r9 + 0x31, 0xd2, //0x00006821 xorl %edx, %edx + 0xc5, 0xfd, 0x6f, 0x05, 0x55, 0xfc, 0xff, 0xff, //0x00006823 vmovdqa $-939(%rip), %ymm0 /* LCPI28_6+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x6d, 0xfc, 0xff, 0xff, //0x0000682b vmovdqa $-915(%rip), %ymm1 /* LCPI28_7+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x00006833 vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfd, 0x6f, 0x1d, 0xa1, 0xfc, 0xff, 0xff, //0x00006837 vmovdqa $-863(%rip), %ymm3 /* LCPI28_9+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0xb9, 0xfc, 0xff, 0xff, //0x0000683f vmovdqa $-839(%rip), %ymm4 /* LCPI28_10+0(%rip) */ + 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006847 vxorps %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xd2, //0x0000684c xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x0000684f xorl %r8d, %r8d + 0x31, 0xf6, //0x00006852 xorl %esi, %esi + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006854 jmp LBB28_39 + //0x00006859 LBB28_38 + 0x49, 0xc1, 0xfd, 0x3f, //0x00006859 sarq $63, %r13 + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x0000685d popcntq %rcx, %rcx + 0x49, 0x01, 0xc8, //0x00006862 addq %rcx, %r8 + 0x49, 0x83, 0xc1, 0x40, //0x00006865 addq $64, %r9 + 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006869 movq $16(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x0000686e addq $-64, %rcx + 0x4c, 0x89, 0xea, //0x00006872 movq %r13, %rdx + //0x00006875 LBB28_39 + 0x48, 0x83, 0xf9, 0x40, //0x00006875 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00006879 movq %rcx, $16(%rsp) + 0x0f, 0x8c, 0x28, 0x01, 0x00, 0x00, //0x0000687e jl LBB28_46 + //0x00006884 LBB28_40 + 0xc4, 0xc1, 0x7e, 0x6f, 0x39, //0x00006884 vmovdqu (%r9), %ymm7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x71, 0x20, //0x00006889 vmovdqu $32(%r9), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x0000688f vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x00006893 vpmovmskb %ymm8, %r13d + 0xc5, 0x4d, 0x74, 0xc0, //0x00006898 vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x0000689c vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x000068a1 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x000068a5 orq %rdi, %r13 + 0xc5, 0x45, 0x74, 0xc1, //0x000068a8 vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x000068ac vpmovmskb %ymm8, %edi + 0xc5, 0x4d, 0x74, 0xc1, //0x000068b1 vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x000068b5 vpmovmskb %ymm8, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x000068ba shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x000068be orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x000068c1 movq %rdi, %rbx + 0x4c, 0x09, 0xd3, //0x000068c4 orq %r10, %rbx + 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x000068c7 je LBB28_42 + 0x4c, 0x89, 0xd3, //0x000068cd movq %r10, %rbx + 0x48, 0xf7, 0xd3, //0x000068d0 notq %rbx + 0x48, 0x21, 0xfb, //0x000068d3 andq %rdi, %rbx + 0x4c, 0x8d, 0x1c, 0x1b, //0x000068d6 leaq (%rbx,%rbx), %r11 + 0x4d, 0x09, 0xd3, //0x000068da orq %r10, %r11 + 0x49, 0x89, 0xd2, //0x000068dd movq %rdx, %r10 + 0x4c, 0x89, 0xda, //0x000068e0 movq %r11, %rdx + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000068e3 movabsq $-6148914691236517206, %rcx + 0x48, 0x31, 0xca, //0x000068ed xorq %rcx, %rdx + 0x48, 0x21, 0xcf, //0x000068f0 andq %rcx, %rdi + 0x48, 0x21, 0xd7, //0x000068f3 andq %rdx, %rdi + 0x4c, 0x89, 0xd2, //0x000068f6 movq %r10, %rdx + 0x45, 0x31, 0xd2, //0x000068f9 xorl %r10d, %r10d + 0x48, 0x01, 0xdf, //0x000068fc addq %rbx, %rdi + 0x41, 0x0f, 0x92, 0xc2, //0x000068ff setb %r10b + 0x48, 0x01, 0xff, //0x00006903 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006906 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00006910 xorq %rcx, %rdi + 0x4c, 0x21, 0xdf, //0x00006913 andq %r11, %rdi + 0x48, 0xf7, 0xd7, //0x00006916 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006919 jmp LBB28_43 + //0x0000691e LBB28_42 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000691e movq $-1, %rdi + 0x45, 0x31, 0xd2, //0x00006925 xorl %r10d, %r10d + //0x00006928 LBB28_43 + 0x4c, 0x21, 0xef, //0x00006928 andq %r13, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xef, //0x0000692b vmovq %rdi, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006930 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006936 vmovq %xmm5, %r13 + 0x49, 0x31, 0xd5, //0x0000693b xorq %rdx, %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x0000693e vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xcd, //0x00006942 vpmovmskb %ymm5, %ecx + 0xc5, 0xcd, 0x74, 0xeb, //0x00006946 vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x0000694a vpmovmskb %ymm5, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x0000694e shlq $32, %rdx + 0x48, 0x09, 0xd1, //0x00006952 orq %rdx, %rcx + 0x4c, 0x89, 0xea, //0x00006955 movq %r13, %rdx + 0x48, 0xf7, 0xd2, //0x00006958 notq %rdx + 0x48, 0x21, 0xd1, //0x0000695b andq %rdx, %rcx + 0xc5, 0xc5, 0x74, 0xec, //0x0000695e vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xfd, //0x00006962 vpmovmskb %ymm5, %edi + 0xc5, 0xcd, 0x74, 0xec, //0x00006966 vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xdd, //0x0000696a vpmovmskb %ymm5, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x0000696e shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x00006972 orq %rbx, %rdi + 0x48, 0x21, 0xd7, //0x00006975 andq %rdx, %rdi + 0x0f, 0x84, 0xdb, 0xfe, 0xff, 0xff, //0x00006978 je LBB28_38 + 0x90, 0x90, //0x0000697e .p2align 4, 0x90 + //0x00006980 LBB28_44 + 0x48, 0x8d, 0x5f, 0xff, //0x00006980 leaq $-1(%rdi), %rbx + 0x48, 0x89, 0xda, //0x00006984 movq %rbx, %rdx + 0x48, 0x21, 0xca, //0x00006987 andq %rcx, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x0000698a popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x0000698f addq %r8, %rdx + 0x48, 0x39, 0xf2, //0x00006992 cmpq %rsi, %rdx + 0x0f, 0x86, 0x19, 0x04, 0x00, 0x00, //0x00006995 jbe LBB28_87 + 0x48, 0xff, 0xc6, //0x0000699b incq %rsi + 0x48, 0x21, 0xdf, //0x0000699e andq %rbx, %rdi + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000069a1 jne LBB28_44 + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x000069a7 jmp LBB28_38 + //0x000069ac LBB28_46 + 0x48, 0x85, 0xc9, //0x000069ac testq %rcx, %rcx + 0x0f, 0x8e, 0x91, 0x04, 0x00, 0x00, //0x000069af jle LBB28_93 + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x000069b5 vmovups %ymm9, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x000069bb vmovups %ymm9, $32(%rsp) + 0x44, 0x89, 0xc9, //0x000069c1 movl %r9d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x000069c4 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x000069ca cmpl $4033, %ecx + 0x0f, 0x82, 0xae, 0xfe, 0xff, 0xff, //0x000069d0 jb LBB28_40 + 0x48, 0x83, 0x7c, 0x24, 0x10, 0x20, //0x000069d6 cmpq $32, $16(%rsp) + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000069dc jb LBB28_50 + 0xc4, 0xc1, 0x7c, 0x10, 0x29, //0x000069e2 vmovups (%r9), %ymm5 + 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x000069e7 vmovups %ymm5, $32(%rsp) + 0x49, 0x83, 0xc1, 0x20, //0x000069ed addq $32, %r9 + 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x000069f1 movq $16(%rsp), %rcx + 0x48, 0x8d, 0x59, 0xe0, //0x000069f6 leaq $-32(%rcx), %rbx + 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x000069fa leaq $64(%rsp), %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000069ff jmp LBB28_51 + //0x00006a04 LBB28_50 + 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006a04 leaq $32(%rsp), %rdi + 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x00006a09 movq $16(%rsp), %rbx + //0x00006a0e LBB28_51 + 0x48, 0x83, 0xfb, 0x10, //0x00006a0e cmpq $16, %rbx + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00006a12 jb LBB28_52 + 0xc4, 0xc1, 0x78, 0x10, 0x29, //0x00006a18 vmovups (%r9), %xmm5 + 0xc5, 0xf8, 0x11, 0x2f, //0x00006a1d vmovups %xmm5, (%rdi) + 0x49, 0x83, 0xc1, 0x10, //0x00006a21 addq $16, %r9 + 0x48, 0x83, 0xc7, 0x10, //0x00006a25 addq $16, %rdi + 0x48, 0x83, 0xc3, 0xf0, //0x00006a29 addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x08, //0x00006a2d cmpq $8, %rbx + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00006a31 jae LBB28_57 + //0x00006a37 LBB28_53 + 0x48, 0x83, 0xfb, 0x04, //0x00006a37 cmpq $4, %rbx + 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x00006a3b jl LBB28_54 + //0x00006a41 LBB28_58 + 0x41, 0x8b, 0x09, //0x00006a41 movl (%r9), %ecx + 0x89, 0x0f, //0x00006a44 movl %ecx, (%rdi) + 0x49, 0x83, 0xc1, 0x04, //0x00006a46 addq $4, %r9 + 0x48, 0x83, 0xc7, 0x04, //0x00006a4a addq $4, %rdi + 0x48, 0x83, 0xc3, 0xfc, //0x00006a4e addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00006a52 cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006a56 jae LBB28_59 + //0x00006a5c LBB28_55 + 0x4c, 0x89, 0xc9, //0x00006a5c movq %r9, %rcx + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006a5f leaq $32(%rsp), %r9 + 0x48, 0x85, 0xdb, //0x00006a64 testq %rbx, %rbx + 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00006a67 jne LBB28_60 + 0xe9, 0x12, 0xfe, 0xff, 0xff, //0x00006a6d jmp LBB28_40 + //0x00006a72 LBB28_52 + 0x48, 0x83, 0xfb, 0x08, //0x00006a72 cmpq $8, %rbx + 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x00006a76 jb LBB28_53 + //0x00006a7c LBB28_57 + 0x49, 0x8b, 0x09, //0x00006a7c movq (%r9), %rcx + 0x48, 0x89, 0x0f, //0x00006a7f movq %rcx, (%rdi) + 0x49, 0x83, 0xc1, 0x08, //0x00006a82 addq $8, %r9 + 0x48, 0x83, 0xc7, 0x08, //0x00006a86 addq $8, %rdi + 0x48, 0x83, 0xc3, 0xf8, //0x00006a8a addq $-8, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00006a8e cmpq $4, %rbx + 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x00006a92 jge LBB28_58 + //0x00006a98 LBB28_54 + 0x48, 0x83, 0xfb, 0x02, //0x00006a98 cmpq $2, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006a9c jb LBB28_55 + //0x00006aa2 LBB28_59 + 0x41, 0x0f, 0xb7, 0x09, //0x00006aa2 movzwl (%r9), %ecx + 0x66, 0x89, 0x0f, //0x00006aa6 movw %cx, (%rdi) + 0x49, 0x83, 0xc1, 0x02, //0x00006aa9 addq $2, %r9 + 0x48, 0x83, 0xc7, 0x02, //0x00006aad addq $2, %rdi + 0x48, 0x83, 0xc3, 0xfe, //0x00006ab1 addq $-2, %rbx + 0x4c, 0x89, 0xc9, //0x00006ab5 movq %r9, %rcx + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006ab8 leaq $32(%rsp), %r9 + 0x48, 0x85, 0xdb, //0x00006abd testq %rbx, %rbx + 0x0f, 0x84, 0xbe, 0xfd, 0xff, 0xff, //0x00006ac0 je LBB28_40 + //0x00006ac6 LBB28_60 + 0x8a, 0x09, //0x00006ac6 movb (%rcx), %cl + 0x88, 0x0f, //0x00006ac8 movb %cl, (%rdi) + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006aca leaq $32(%rsp), %r9 + 0xe9, 0xb0, 0xfd, 0xff, 0xff, //0x00006acf jmp LBB28_40 + //0x00006ad4 LBB28_61 + 0x49, 0x83, 0xc1, 0x04, //0x00006ad4 addq $4, %r9 + 0x4d, 0x3b, 0x4f, 0x08, //0x00006ad8 cmpq $8(%r15), %r9 + 0x0f, 0x87, 0x0c, 0xfc, 0xff, 0xff, //0x00006adc ja LBB28_24 + //0x00006ae2 LBB28_62 + 0x4d, 0x89, 0x0e, //0x00006ae2 movq %r9, (%r14) + 0xe9, 0x01, 0xfc, 0xff, 0xff, //0x00006ae5 jmp LBB28_23 + //0x00006aea LBB28_63 + 0x4c, 0x89, 0x44, 0x24, 0x18, //0x00006aea movq %r8, $24(%rsp) + 0x49, 0x8b, 0x4f, 0x08, //0x00006aef movq $8(%r15), %rcx + 0x4c, 0x29, 0xc9, //0x00006af3 subq %r9, %rcx + 0x4d, 0x03, 0x0f, //0x00006af6 addq (%r15), %r9 + 0x45, 0x31, 0xe4, //0x00006af9 xorl %r12d, %r12d + 0xc5, 0xfd, 0x6f, 0x05, 0x7c, 0xf9, 0xff, 0xff, //0x00006afc vmovdqa $-1668(%rip), %ymm0 /* LCPI28_6+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x94, 0xf9, 0xff, 0xff, //0x00006b04 vmovdqa $-1644(%rip), %ymm1 /* LCPI28_7+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x00006b0c vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfd, 0x6f, 0x1d, 0xa8, 0xf9, 0xff, 0xff, //0x00006b10 vmovdqa $-1624(%rip), %ymm3 /* LCPI28_8+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x40, 0xf9, 0xff, 0xff, //0x00006b18 vmovdqa $-1728(%rip), %ymm4 /* LCPI28_2+0(%rip) */ + 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006b20 vxorps %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xd2, //0x00006b25 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00006b28 xorl %r8d, %r8d + 0x31, 0xf6, //0x00006b2b xorl %esi, %esi + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006b2d jmp LBB28_65 + //0x00006b32 LBB28_64 + 0x49, 0xc1, 0xfd, 0x3f, //0x00006b32 sarq $63, %r13 + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x00006b36 popcntq %rcx, %rcx + 0x49, 0x01, 0xc8, //0x00006b3b addq %rcx, %r8 + 0x49, 0x83, 0xc1, 0x40, //0x00006b3e addq $64, %r9 + 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006b42 movq $16(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00006b47 addq $-64, %rcx + 0x4d, 0x89, 0xec, //0x00006b4b movq %r13, %r12 + //0x00006b4e LBB28_65 + 0x48, 0x83, 0xf9, 0x40, //0x00006b4e cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00006b52 movq %rcx, $16(%rsp) + 0x0f, 0x8c, 0x2f, 0x01, 0x00, 0x00, //0x00006b57 jl LBB28_72 + //0x00006b5d LBB28_66 + 0xc4, 0xc1, 0x7e, 0x6f, 0x39, //0x00006b5d vmovdqu (%r9), %ymm7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x71, 0x20, //0x00006b62 vmovdqu $32(%r9), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x00006b68 vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x00006b6c vpmovmskb %ymm8, %r13d + 0xc5, 0x4d, 0x74, 0xc0, //0x00006b71 vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006b75 vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00006b7a shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00006b7e orq %rdi, %r13 + 0xc5, 0x45, 0x74, 0xc1, //0x00006b81 vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006b85 vpmovmskb %ymm8, %edi + 0xc5, 0x4d, 0x74, 0xc1, //0x00006b8a vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x00006b8e vpmovmskb %ymm8, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00006b93 shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x00006b97 orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x00006b9a movq %rdi, %rbx + 0x4c, 0x09, 0xd3, //0x00006b9d orq %r10, %rbx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00006ba0 je LBB28_68 + 0x4c, 0x89, 0xd3, //0x00006ba6 movq %r10, %rbx + 0x48, 0xf7, 0xd3, //0x00006ba9 notq %rbx + 0x48, 0x21, 0xfb, //0x00006bac andq %rdi, %rbx + 0x4c, 0x8d, 0x1c, 0x1b, //0x00006baf leaq (%rbx,%rbx), %r11 + 0x4d, 0x09, 0xd3, //0x00006bb3 orq %r10, %r11 + 0x4c, 0x89, 0xda, //0x00006bb6 movq %r11, %rdx + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006bb9 movabsq $-6148914691236517206, %rcx + 0x48, 0x31, 0xca, //0x00006bc3 xorq %rcx, %rdx + 0x48, 0x21, 0xcf, //0x00006bc6 andq %rcx, %rdi + 0x48, 0x21, 0xd7, //0x00006bc9 andq %rdx, %rdi + 0x45, 0x31, 0xd2, //0x00006bcc xorl %r10d, %r10d + 0x48, 0x01, 0xdf, //0x00006bcf addq %rbx, %rdi + 0x41, 0x0f, 0x92, 0xc2, //0x00006bd2 setb %r10b + 0x48, 0x01, 0xff, //0x00006bd6 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006bd9 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00006be3 xorq %rcx, %rdi + 0x4c, 0x21, 0xdf, //0x00006be6 andq %r11, %rdi + 0x48, 0xf7, 0xd7, //0x00006be9 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006bec jmp LBB28_69 + //0x00006bf1 LBB28_68 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00006bf1 movq $-1, %rdi + 0x45, 0x31, 0xd2, //0x00006bf8 xorl %r10d, %r10d + //0x00006bfb LBB28_69 + 0x4c, 0x21, 0xef, //0x00006bfb andq %r13, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xef, //0x00006bfe vmovq %rdi, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006c03 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006c09 vmovq %xmm5, %r13 + 0x4d, 0x31, 0xe5, //0x00006c0e xorq %r12, %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x00006c11 vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xcd, //0x00006c15 vpmovmskb %ymm5, %ecx + 0xc5, 0xcd, 0x74, 0xeb, //0x00006c19 vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x00006c1d vpmovmskb %ymm5, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x00006c21 shlq $32, %rdx + 0x48, 0x09, 0xd1, //0x00006c25 orq %rdx, %rcx + 0x4c, 0x89, 0xea, //0x00006c28 movq %r13, %rdx + 0x48, 0xf7, 0xd2, //0x00006c2b notq %rdx + 0x48, 0x21, 0xd1, //0x00006c2e andq %rdx, %rcx + 0xc5, 0xc5, 0x74, 0xec, //0x00006c31 vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xfd, //0x00006c35 vpmovmskb %ymm5, %edi + 0xc5, 0xcd, 0x74, 0xec, //0x00006c39 vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xdd, //0x00006c3d vpmovmskb %ymm5, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00006c41 shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x00006c45 orq %rbx, %rdi + 0x48, 0x21, 0xd7, //0x00006c48 andq %rdx, %rdi + 0x0f, 0x84, 0xe1, 0xfe, 0xff, 0xff, //0x00006c4b je LBB28_64 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006c51 .p2align 4, 0x90 + //0x00006c60 LBB28_70 + 0x48, 0x8d, 0x5f, 0xff, //0x00006c60 leaq $-1(%rdi), %rbx + 0x48, 0x89, 0xda, //0x00006c64 movq %rbx, %rdx + 0x48, 0x21, 0xca, //0x00006c67 andq %rcx, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x00006c6a popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x00006c6f addq %r8, %rdx + 0x48, 0x39, 0xf2, //0x00006c72 cmpq %rsi, %rdx + 0x0f, 0x86, 0x6b, 0x01, 0x00, 0x00, //0x00006c75 jbe LBB28_88 + 0x48, 0xff, 0xc6, //0x00006c7b incq %rsi + 0x48, 0x21, 0xdf, //0x00006c7e andq %rbx, %rdi + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00006c81 jne LBB28_70 + 0xe9, 0xa6, 0xfe, 0xff, 0xff, //0x00006c87 jmp LBB28_64 + //0x00006c8c LBB28_72 + 0x48, 0x85, 0xc9, //0x00006c8c testq %rcx, %rcx + 0x0f, 0x8e, 0xb1, 0x01, 0x00, 0x00, //0x00006c8f jle LBB28_93 + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x00006c95 vmovups %ymm9, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x00006c9b vmovups %ymm9, $32(%rsp) + 0x44, 0x89, 0xc9, //0x00006ca1 movl %r9d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006ca4 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006caa cmpl $4033, %ecx + 0x0f, 0x82, 0xa7, 0xfe, 0xff, 0xff, //0x00006cb0 jb LBB28_66 + 0x48, 0x83, 0x7c, 0x24, 0x10, 0x20, //0x00006cb6 cmpq $32, $16(%rsp) + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00006cbc jb LBB28_76 + 0xc4, 0xc1, 0x7c, 0x10, 0x29, //0x00006cc2 vmovups (%r9), %ymm5 + 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x00006cc7 vmovups %ymm5, $32(%rsp) + 0x49, 0x83, 0xc1, 0x20, //0x00006ccd addq $32, %r9 + 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006cd1 movq $16(%rsp), %rcx + 0x48, 0x8d, 0x59, 0xe0, //0x00006cd6 leaq $-32(%rcx), %rbx + 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x00006cda leaq $64(%rsp), %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006cdf jmp LBB28_77 + //0x00006ce4 LBB28_76 + 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006ce4 leaq $32(%rsp), %rdi + 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x00006ce9 movq $16(%rsp), %rbx + //0x00006cee LBB28_77 + 0x48, 0x83, 0xfb, 0x10, //0x00006cee cmpq $16, %rbx + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00006cf2 jb LBB28_78 + 0xc4, 0xc1, 0x78, 0x10, 0x29, //0x00006cf8 vmovups (%r9), %xmm5 + 0xc5, 0xf8, 0x11, 0x2f, //0x00006cfd vmovups %xmm5, (%rdi) + 0x49, 0x83, 0xc1, 0x10, //0x00006d01 addq $16, %r9 + 0x48, 0x83, 0xc7, 0x10, //0x00006d05 addq $16, %rdi + 0x48, 0x83, 0xc3, 0xf0, //0x00006d09 addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x08, //0x00006d0d cmpq $8, %rbx + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00006d11 jae LBB28_83 + //0x00006d17 LBB28_79 + 0x48, 0x83, 0xfb, 0x04, //0x00006d17 cmpq $4, %rbx + 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x00006d1b jl LBB28_80 + //0x00006d21 LBB28_84 + 0x41, 0x8b, 0x09, //0x00006d21 movl (%r9), %ecx + 0x89, 0x0f, //0x00006d24 movl %ecx, (%rdi) + 0x49, 0x83, 0xc1, 0x04, //0x00006d26 addq $4, %r9 + 0x48, 0x83, 0xc7, 0x04, //0x00006d2a addq $4, %rdi + 0x48, 0x83, 0xc3, 0xfc, //0x00006d2e addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00006d32 cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006d36 jae LBB28_85 + //0x00006d3c LBB28_81 + 0x4c, 0x89, 0xc9, //0x00006d3c movq %r9, %rcx + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006d3f leaq $32(%rsp), %r9 + 0x48, 0x85, 0xdb, //0x00006d44 testq %rbx, %rbx + 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00006d47 jne LBB28_86 + 0xe9, 0x0b, 0xfe, 0xff, 0xff, //0x00006d4d jmp LBB28_66 + //0x00006d52 LBB28_78 + 0x48, 0x83, 0xfb, 0x08, //0x00006d52 cmpq $8, %rbx + 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x00006d56 jb LBB28_79 + //0x00006d5c LBB28_83 + 0x49, 0x8b, 0x09, //0x00006d5c movq (%r9), %rcx + 0x48, 0x89, 0x0f, //0x00006d5f movq %rcx, (%rdi) + 0x49, 0x83, 0xc1, 0x08, //0x00006d62 addq $8, %r9 + 0x48, 0x83, 0xc7, 0x08, //0x00006d66 addq $8, %rdi + 0x48, 0x83, 0xc3, 0xf8, //0x00006d6a addq $-8, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00006d6e cmpq $4, %rbx + 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x00006d72 jge LBB28_84 + //0x00006d78 LBB28_80 + 0x48, 0x83, 0xfb, 0x02, //0x00006d78 cmpq $2, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006d7c jb LBB28_81 + //0x00006d82 LBB28_85 + 0x41, 0x0f, 0xb7, 0x09, //0x00006d82 movzwl (%r9), %ecx + 0x66, 0x89, 0x0f, //0x00006d86 movw %cx, (%rdi) + 0x49, 0x83, 0xc1, 0x02, //0x00006d89 addq $2, %r9 + 0x48, 0x83, 0xc7, 0x02, //0x00006d8d addq $2, %rdi + 0x48, 0x83, 0xc3, 0xfe, //0x00006d91 addq $-2, %rbx + 0x4c, 0x89, 0xc9, //0x00006d95 movq %r9, %rcx + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006d98 leaq $32(%rsp), %r9 + 0x48, 0x85, 0xdb, //0x00006d9d testq %rbx, %rbx + 0x0f, 0x84, 0xb7, 0xfd, 0xff, 0xff, //0x00006da0 je LBB28_66 + //0x00006da6 LBB28_86 + 0x8a, 0x09, //0x00006da6 movb (%rcx), %cl + 0x88, 0x0f, //0x00006da8 movb %cl, (%rdi) + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006daa leaq $32(%rsp), %r9 + 0xe9, 0xa9, 0xfd, 0xff, 0xff, //0x00006daf jmp LBB28_66 + //0x00006db4 LBB28_87 + 0x49, 0x8b, 0x47, 0x08, //0x00006db4 movq $8(%r15), %rax + 0x48, 0x0f, 0xbc, 0xcf, //0x00006db8 bsfq %rdi, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x10, //0x00006dbc subq $16(%rsp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00006dc1 leaq $1(%rcx,%rax), %rax + 0x49, 0x89, 0x06, //0x00006dc6 movq %rax, (%r14) + 0x49, 0x8b, 0x4f, 0x08, //0x00006dc9 movq $8(%r15), %rcx + 0x48, 0x39, 0xc8, //0x00006dcd cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00006dd0 cmovaq %rcx, %rax + 0x49, 0x89, 0x06, //0x00006dd4 movq %rax, (%r14) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006dd7 movq $-1, %rax + 0x4c, 0x89, 0xe1, //0x00006dde movq %r12, %rcx + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00006de1 jmp LBB28_89 + //0x00006de6 LBB28_88 + 0x49, 0x8b, 0x47, 0x08, //0x00006de6 movq $8(%r15), %rax + 0x48, 0x0f, 0xbc, 0xcf, //0x00006dea bsfq %rdi, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x10, //0x00006dee subq $16(%rsp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00006df3 leaq $1(%rcx,%rax), %rax + 0x49, 0x89, 0x06, //0x00006df8 movq %rax, (%r14) + 0x49, 0x8b, 0x4f, 0x08, //0x00006dfb movq $8(%r15), %rcx + 0x48, 0x39, 0xc8, //0x00006dff cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00006e02 cmovaq %rcx, %rax + 0x49, 0x89, 0x06, //0x00006e06 movq %rax, (%r14) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006e09 movq $-1, %rax + 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006e10 movq $24(%rsp), %rcx + //0x00006e15 LBB28_89 + 0x48, 0x0f, 0x47, 0xc8, //0x00006e15 cmovaq %rax, %rcx + 0x48, 0x89, 0xc8, //0x00006e19 movq %rcx, %rax + 0xe9, 0xcd, 0xf8, 0xff, 0xff, //0x00006e1c jmp LBB28_24 + //0x00006e21 LBB28_92 + 0x0f, 0xb7, 0xd3, //0x00006e21 movzwl %bx, %edx + 0xe9, 0xb5, 0xf8, 0xff, 0xff, //0x00006e24 jmp LBB28_21 + //0x00006e29 LBB28_34 + 0x48, 0x85, 0xff, //0x00006e29 testq %rdi, %rdi + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00006e2c jne LBB28_94 + 0x49, 0x01, 0xd7, //0x00006e32 addq %rdx, %r15 + 0x49, 0x29, 0xd3, //0x00006e35 subq %rdx, %r11 + //0x00006e38 LBB28_36 + 0x4d, 0x85, 0xdb, //0x00006e38 testq %r11, %r11 + 0x0f, 0x8f, 0x52, 0x00, 0x00, 0x00, //0x00006e3b jg LBB28_98 + 0xe9, 0xa8, 0xf8, 0xff, 0xff, //0x00006e41 jmp LBB28_24 + //0x00006e46 LBB28_93 + 0x49, 0x8b, 0x4f, 0x08, //0x00006e46 movq $8(%r15), %rcx + 0x49, 0x89, 0x0e, //0x00006e4a movq %rcx, (%r14) + 0xe9, 0x9c, 0xf8, 0xff, 0xff, //0x00006e4d jmp LBB28_24 + //0x00006e52 LBB28_94 + 0x49, 0x39, 0xd3, //0x00006e52 cmpq %rdx, %r11 + 0x0f, 0x84, 0x93, 0xf8, 0xff, 0xff, //0x00006e55 je LBB28_24 + 0x4d, 0x8d, 0x7c, 0x17, 0x01, //0x00006e5b leaq $1(%r15,%rdx), %r15 + 0x48, 0xf7, 0xd2, //0x00006e60 notq %rdx + 0x49, 0x01, 0xd3, //0x00006e63 addq %rdx, %r11 + 0x4d, 0x85, 0xdb, //0x00006e66 testq %r11, %r11 + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00006e69 jg LBB28_98 + 0xe9, 0x7a, 0xf8, 0xff, 0xff, //0x00006e6f jmp LBB28_24 + //0x00006e74 LBB28_96 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00006e74 movq $-2, %rdx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00006e7b movl $2, %eax + 0x49, 0x01, 0xc7, //0x00006e80 addq %rax, %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006e83 movq $-1, %rax + 0x49, 0x01, 0xd3, //0x00006e8a addq %rdx, %r11 + 0x0f, 0x8e, 0x5b, 0xf8, 0xff, 0xff, //0x00006e8d jle LBB28_24 + //0x00006e93 LBB28_98 + 0x41, 0x0f, 0xb6, 0x07, //0x00006e93 movzbl (%r15), %eax + 0x3c, 0x5c, //0x00006e97 cmpb $92, %al + 0x0f, 0x84, 0xd5, 0xff, 0xff, 0xff, //0x00006e99 je LBB28_96 + 0x3c, 0x22, //0x00006e9f cmpb $34, %al + 0x0f, 0x84, 0x5a, 0xf9, 0xff, 0xff, //0x00006ea1 je LBB28_91 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00006ea7 movq $-1, %rdx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00006eae movl $1, %eax + 0x49, 0x01, 0xc7, //0x00006eb3 addq %rax, %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006eb6 movq $-1, %rax + 0x49, 0x01, 0xd3, //0x00006ebd addq %rdx, %r11 + 0x0f, 0x8f, 0xcd, 0xff, 0xff, 0xff, //0x00006ec0 jg LBB28_98 + 0xe9, 0x23, 0xf8, 0xff, 0xff, //0x00006ec6 jmp LBB28_24 + 0x90, //0x00006ecb .p2align 2, 0x90 + // // .set L28_0_set_24, LBB28_24-LJTI28_0 + // // .set L28_0_set_26, LBB28_26-LJTI28_0 + // // .set L28_0_set_27, LBB28_27-LJTI28_0 + // // .set L28_0_set_2, LBB28_2-LJTI28_0 + // // .set L28_0_set_37, LBB28_37-LJTI28_0 + // // .set L28_0_set_61, LBB28_61-LJTI28_0 + // // .set L28_0_set_25, LBB28_25-LJTI28_0 + // // .set L28_0_set_63, LBB28_63-LJTI28_0 + //0x00006ecc LJTI28_0 + 0x22, 0xf8, 0xff, 0xff, //0x00006ecc .long L28_0_set_24 + 0x47, 0xf8, 0xff, 0xff, //0x00006ed0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ed4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ed8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006edc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ee0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ee4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ee8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006eec .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ef0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ef4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ef8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006efc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f00 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f04 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f08 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f0c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f10 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f14 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f18 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f1c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f20 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f24 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f28 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f2c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f30 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f34 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f38 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f3c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f40 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f44 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f48 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f4c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f50 .long L28_0_set_26 + 0x56, 0xf8, 0xff, 0xff, //0x00006f54 .long L28_0_set_27 + 0x47, 0xf8, 0xff, 0xff, //0x00006f58 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f5c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f60 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f64 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f68 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f6c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f70 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f74 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f78 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f7c .long L28_0_set_26 + 0xd7, 0xf6, 0xff, 0xff, //0x00006f80 .long L28_0_set_2 + 0x47, 0xf8, 0xff, 0xff, //0x00006f84 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f88 .long L28_0_set_26 + 0xd7, 0xf6, 0xff, 0xff, //0x00006f8c .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006f90 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006f94 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006f98 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006f9c .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fa0 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fa4 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fa8 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fac .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fb0 .long L28_0_set_2 + 0x47, 0xf8, 0xff, 0xff, //0x00006fb4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fb8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fbc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fc0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fc4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fc8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fcc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fd0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fd4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fd8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fdc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fe0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fe4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fe8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fec .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ff0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ff4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ff8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ffc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007000 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007004 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007008 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000700c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007010 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007014 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007018 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000701c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007020 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007024 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007028 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000702c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007030 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007034 .long L28_0_set_26 + 0x48, 0xf9, 0xff, 0xff, //0x00007038 .long L28_0_set_37 + 0x47, 0xf8, 0xff, 0xff, //0x0000703c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007040 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007044 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007048 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000704c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007050 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007054 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007058 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000705c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007060 .long L28_0_set_26 + 0x08, 0xfc, 0xff, 0xff, //0x00007064 .long L28_0_set_61 + 0x47, 0xf8, 0xff, 0xff, //0x00007068 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000706c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007070 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007074 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007078 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000707c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007080 .long L28_0_set_26 + 0x34, 0xf8, 0xff, 0xff, //0x00007084 .long L28_0_set_25 + 0x47, 0xf8, 0xff, 0xff, //0x00007088 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000708c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007090 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007094 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007098 .long L28_0_set_26 + 0x34, 0xf8, 0xff, 0xff, //0x0000709c .long L28_0_set_25 + 0x47, 0xf8, 0xff, 0xff, //0x000070a0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070a4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070a8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070ac .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070b0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070b4 .long L28_0_set_26 + 0x1e, 0xfc, 0xff, 0xff, //0x000070b8 .long L28_0_set_63 + 0x90, 0x90, 0x90, 0x90, //0x000070bc .p2align 4, 0x90 + //0x000070c0 _get_by_path + 0x55, //0x000070c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000070c1 movq %rsp, %rbp + 0x41, 0x57, //0x000070c4 pushq %r15 + 0x41, 0x56, //0x000070c6 pushq %r14 + 0x41, 0x55, //0x000070c8 pushq %r13 + 0x41, 0x54, //0x000070ca pushq %r12 + 0x53, //0x000070cc pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x000070cd subq $40, %rsp + 0x49, 0x89, 0xf7, //0x000070d1 movq %rsi, %r15 + 0x49, 0x89, 0xfd, //0x000070d4 movq %rdi, %r13 + 0x48, 0x8b, 0x42, 0x08, //0x000070d7 movq $8(%rdx), %rax + 0x48, 0x85, 0xc0, //0x000070db testq %rax, %rax + 0x0f, 0x84, 0x91, 0x07, 0x00, 0x00, //0x000070de je LBB29_98 + 0x4c, 0x8b, 0x32, //0x000070e4 movq (%rdx), %r14 + 0x48, 0xc1, 0xe0, 0x04, //0x000070e7 shlq $4, %rax + 0x4c, 0x01, 0xf0, //0x000070eb addq %r14, %rax + 0x48, 0x89, 0x4d, 0xb0, //0x000070ee movq %rcx, $-80(%rbp) + 0x48, 0x89, 0x45, 0xb8, //0x000070f2 movq %rax, $-72(%rbp) + //0x000070f6 LBB29_2 + 0x49, 0x8b, 0x7d, 0x00, //0x000070f6 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x000070fa movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x000070fe movq %r15, %rdx + 0xe8, 0x1a, 0xd1, 0xff, 0xff, //0x00007101 callq _advance_ns + 0x49, 0x8b, 0x0e, //0x00007106 movq (%r14), %rcx + 0x48, 0x85, 0xc9, //0x00007109 testq %rcx, %rcx + 0x0f, 0x84, 0xbe, 0x07, 0x00, 0x00, //0x0000710c je LBB29_104 + 0x8a, 0x49, 0x17, //0x00007112 movb $23(%rcx), %cl + 0x80, 0xe1, 0x1f, //0x00007115 andb $31, %cl + 0x80, 0xf9, 0x02, //0x00007118 cmpb $2, %cl + 0x0f, 0x84, 0xbf, 0x06, 0x00, 0x00, //0x0000711b je LBB29_91 + 0x80, 0xf9, 0x18, //0x00007121 cmpb $24, %cl + 0x0f, 0x85, 0xa6, 0x07, 0x00, 0x00, //0x00007124 jne LBB29_104 + 0x3c, 0x7b, //0x0000712a cmpb $123, %al + 0x4c, 0x89, 0x75, 0xc8, //0x0000712c movq %r14, $-56(%rbp) + 0x0f, 0x85, 0x81, 0x07, 0x00, 0x00, //0x00007130 jne LBB29_102 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007136 .p2align 4, 0x90 + //0x00007140 LBB29_6 + 0x49, 0x8b, 0x7d, 0x00, //0x00007140 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x00007144 movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x00007148 movq %r15, %rdx + 0xe8, 0xd0, 0xd0, 0xff, 0xff, //0x0000714b callq _advance_ns + 0x3c, 0x22, //0x00007150 cmpb $34, %al + 0x0f, 0x85, 0x40, 0x07, 0x00, 0x00, //0x00007152 jne LBB29_99 + 0x49, 0x8b, 0x46, 0x08, //0x00007158 movq $8(%r14), %rax + 0x4c, 0x8b, 0x30, //0x0000715c movq (%rax), %r14 + 0x4c, 0x8b, 0x60, 0x08, //0x0000715f movq $8(%rax), %r12 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007163 movq $-1, $-64(%rbp) + 0x49, 0x8b, 0x1f, //0x0000716b movq (%r15), %rbx + 0x4c, 0x89, 0xef, //0x0000716e movq %r13, %rdi + 0x48, 0x89, 0xde, //0x00007171 movq %rbx, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x00007174 leaq $-64(%rbp), %rdx + 0xe8, 0x63, 0x2b, 0x00, 0x00, //0x00007178 callq _advance_string_default + 0x48, 0x85, 0xc0, //0x0000717d testq %rax, %rax + 0x0f, 0x88, 0x59, 0x07, 0x00, 0x00, //0x00007180 js LBB29_105 + 0x49, 0x89, 0x07, //0x00007186 movq %rax, (%r15) + 0x48, 0x8b, 0x4d, 0xc0, //0x00007189 movq $-64(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x0000718d cmpq $-1, %rcx + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00007191 je LBB29_10 + 0x48, 0x39, 0xc1, //0x00007197 cmpq %rax, %rcx + 0x0f, 0x8e, 0x70, 0x02, 0x00, 0x00, //0x0000719a jle LBB29_45 + //0x000071a0 LBB29_10 + 0x48, 0x89, 0xd9, //0x000071a0 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x000071a3 notq %rcx + 0x48, 0x01, 0xc8, //0x000071a6 addq %rcx, %rax + 0x48, 0x89, 0xc1, //0x000071a9 movq %rax, %rcx + 0x4c, 0x09, 0xe1, //0x000071ac orq %r12, %rcx + 0x0f, 0x84, 0xcb, 0x00, 0x00, 0x00, //0x000071af je LBB29_21 + 0x4c, 0x39, 0xe0, //0x000071b5 cmpq %r12, %rax + 0x0f, 0x85, 0xd2, 0x00, 0x00, 0x00, //0x000071b8 jne LBB29_22 + 0x49, 0x03, 0x5d, 0x00, //0x000071be addq (%r13), %rbx + 0x49, 0x83, 0xfc, 0x20, //0x000071c2 cmpq $32, %r12 + 0x0f, 0x82, 0x57, 0x00, 0x00, 0x00, //0x000071c6 jb LBB29_17 + 0x49, 0x8d, 0x44, 0x24, 0xe0, //0x000071cc leaq $-32(%r12), %rax + 0x48, 0x89, 0xc2, //0x000071d1 movq %rax, %rdx + 0x48, 0x83, 0xe2, 0xe0, //0x000071d4 andq $-32, %rdx + 0x48, 0x8d, 0x4c, 0x13, 0x20, //0x000071d8 leaq $32(%rbx,%rdx), %rcx + 0x49, 0x8d, 0x54, 0x16, 0x20, //0x000071dd leaq $32(%r14,%rdx), %rdx + 0x83, 0xe0, 0x1f, //0x000071e2 andl $31, %eax + 0x31, 0xf6, //0x000071e5 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071e7 .p2align 4, 0x90 + //0x000071f0 LBB29_14 + 0xc5, 0xfe, 0x6f, 0x04, 0x33, //0x000071f0 vmovdqu (%rbx,%rsi), %ymm0 + 0xc4, 0xc1, 0x7d, 0x74, 0x04, 0x36, //0x000071f5 vpcmpeqb (%r14,%rsi), %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x000071fb vpmovmskb %ymm0, %edi + 0x83, 0xff, 0xff, //0x000071ff cmpl $-1, %edi + 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00007202 jne LBB29_28 + 0x49, 0x83, 0xc4, 0xe0, //0x00007208 addq $-32, %r12 + 0x48, 0x83, 0xc6, 0x20, //0x0000720c addq $32, %rsi + 0x49, 0x83, 0xfc, 0x1f, //0x00007210 cmpq $31, %r12 + 0x0f, 0x87, 0xd6, 0xff, 0xff, 0xff, //0x00007214 ja LBB29_14 + 0x49, 0x89, 0xc4, //0x0000721a movq %rax, %r12 + 0x49, 0x89, 0xd6, //0x0000721d movq %rdx, %r14 + 0x48, 0x89, 0xcb, //0x00007220 movq %rcx, %rbx + //0x00007223 LBB29_17 + 0x89, 0xde, //0x00007223 movl %ebx, %esi + 0x81, 0xe6, 0xff, 0x0f, 0x00, 0x00, //0x00007225 andl $4095, %esi + 0x44, 0x89, 0xf7, //0x0000722b movl %r14d, %edi + 0x81, 0xe7, 0xff, 0x0f, 0x00, 0x00, //0x0000722e andl $4095, %edi + 0x48, 0x81, 0xff, 0xe0, 0x0f, 0x00, 0x00, //0x00007234 cmpq $4064, %rdi + 0x0f, 0x87, 0x5a, 0x00, 0x00, 0x00, //0x0000723b ja LBB29_23 + 0x81, 0xfe, 0xe1, 0x0f, 0x00, 0x00, //0x00007241 cmpl $4065, %esi + 0x0f, 0x83, 0x4e, 0x00, 0x00, 0x00, //0x00007247 jae LBB29_23 + 0xc5, 0xfe, 0x6f, 0x03, //0x0000724d vmovdqu (%rbx), %ymm0 + 0xc4, 0xc1, 0x7d, 0x74, 0x06, //0x00007251 vpcmpeqb (%r14), %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00007256 vpmovmskb %ymm0, %eax + 0x83, 0xf8, 0xff, //0x0000725a cmpl $-1, %eax + 0x0f, 0x84, 0x08, 0x01, 0x00, 0x00, //0x0000725d je LBB29_33 + 0xf7, 0xd0, //0x00007263 notl %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00007265 bsfq %rax, %rax + 0x4c, 0x39, 0xe0, //0x00007269 cmpq %r12, %rax + 0x40, 0x0f, 0x93, 0xc6, //0x0000726c setae %sil + 0x4c, 0x8b, 0x75, 0xc8, //0x00007270 movq $-56(%rbp), %r14 + 0xe9, 0x47, 0x01, 0x00, 0x00, //0x00007274 jmp LBB29_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007279 .p2align 4, 0x90 + //0x00007280 LBB29_21 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007280 movl $1, %ebx + 0x4c, 0x8b, 0x75, 0xc8, //0x00007285 movq $-56(%rbp), %r14 + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x00007289 jmp LBB29_41 + 0x90, 0x90, //0x0000728e .p2align 4, 0x90 + //0x00007290 LBB29_22 + 0x31, 0xdb, //0x00007290 xorl %ebx, %ebx + 0x4c, 0x8b, 0x75, 0xc8, //0x00007292 movq $-56(%rbp), %r14 + 0xe9, 0x29, 0x01, 0x00, 0x00, //0x00007296 jmp LBB29_41 + //0x0000729b LBB29_23 + 0x49, 0x83, 0xfc, 0x10, //0x0000729b cmpq $16, %r12 + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x0000729f jb LBB29_29 + 0x49, 0x8d, 0x44, 0x24, 0xf0, //0x000072a5 leaq $-16(%r12), %rax + 0x48, 0x89, 0xc1, //0x000072aa movq %rax, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x000072ad andq $-16, %rcx + 0x48, 0x8d, 0x54, 0x0b, 0x10, //0x000072b1 leaq $16(%rbx,%rcx), %rdx + 0x49, 0x8d, 0x4c, 0x0e, 0x10, //0x000072b6 leaq $16(%r14,%rcx), %rcx + 0x83, 0xe0, 0x0f, //0x000072bb andl $15, %eax + 0x31, 0xf6, //0x000072be xorl %esi, %esi + //0x000072c0 .p2align 4, 0x90 + //0x000072c0 LBB29_25 + 0xc5, 0xfa, 0x6f, 0x04, 0x33, //0x000072c0 vmovdqu (%rbx,%rsi), %xmm0 + 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x36, //0x000072c5 vpcmpeqb (%r14,%rsi), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000072cb vpmovmskb %xmm0, %edi + 0x66, 0x83, 0xff, 0xff, //0x000072cf cmpw $-1, %di + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x000072d3 jne LBB29_28 + 0x49, 0x83, 0xc4, 0xf0, //0x000072d9 addq $-16, %r12 + 0x48, 0x83, 0xc6, 0x10, //0x000072dd addq $16, %rsi + 0x49, 0x83, 0xfc, 0x0f, //0x000072e1 cmpq $15, %r12 + 0x0f, 0x87, 0xd5, 0xff, 0xff, 0xff, //0x000072e5 ja LBB29_25 + 0x89, 0xd6, //0x000072eb movl %edx, %esi + 0x81, 0xe6, 0xff, 0x0f, 0x00, 0x00, //0x000072ed andl $4095, %esi + 0x89, 0xcf, //0x000072f3 movl %ecx, %edi + 0x81, 0xe7, 0xff, 0x0f, 0x00, 0x00, //0x000072f5 andl $4095, %edi + 0x81, 0xff, 0xf0, 0x0f, 0x00, 0x00, //0x000072fb cmpl $4080, %edi + 0x4c, 0x8b, 0x75, 0xc8, //0x00007301 movq $-56(%rbp), %r14 + 0x0f, 0x86, 0x29, 0x00, 0x00, 0x00, //0x00007305 jbe LBB29_30 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000730b jmp LBB29_34 + //0x00007310 LBB29_28 + 0x31, 0xf6, //0x00007310 xorl %esi, %esi + 0x4c, 0x8b, 0x75, 0xc8, //0x00007312 movq $-56(%rbp), %r14 + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x00007316 jmp LBB29_40 + //0x0000731b LBB29_29 + 0x4c, 0x89, 0xe0, //0x0000731b movq %r12, %rax + 0x4c, 0x89, 0xf1, //0x0000731e movq %r14, %rcx + 0x48, 0x89, 0xda, //0x00007321 movq %rbx, %rdx + 0x81, 0xff, 0xf0, 0x0f, 0x00, 0x00, //0x00007324 cmpl $4080, %edi + 0x4c, 0x8b, 0x75, 0xc8, //0x0000732a movq $-56(%rbp), %r14 + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x0000732e ja LBB29_34 + //0x00007334 LBB29_30 + 0x81, 0xfe, 0xf1, 0x0f, 0x00, 0x00, //0x00007334 cmpl $4081, %esi + 0x0f, 0x83, 0x37, 0x00, 0x00, 0x00, //0x0000733a jae LBB29_34 + 0xc5, 0xfa, 0x6f, 0x02, //0x00007340 vmovdqu (%rdx), %xmm0 + 0xc5, 0xf9, 0x74, 0x01, //0x00007344 vpcmpeqb (%rcx), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00007348 vpmovmskb %xmm0, %ecx + 0x66, 0x83, 0xf9, 0xff, //0x0000734c cmpw $-1, %cx + 0x0f, 0x84, 0x58, 0x00, 0x00, 0x00, //0x00007350 je LBB29_38 + 0xf7, 0xd1, //0x00007356 notl %ecx + 0x0f, 0xb7, 0xc9, //0x00007358 movzwl %cx, %ecx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000735b bsfq %rcx, %rcx + 0x48, 0x39, 0xc1, //0x0000735f cmpq %rax, %rcx + 0x40, 0x0f, 0x93, 0xc6, //0x00007362 setae %sil + 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00007366 jmp LBB29_40 + //0x0000736b LBB29_33 + 0x40, 0xb6, 0x01, //0x0000736b movb $1, %sil + 0x4c, 0x8b, 0x75, 0xc8, //0x0000736e movq $-56(%rbp), %r14 + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00007372 jmp LBB29_40 + //0x00007377 LBB29_34 + 0x40, 0xb6, 0x01, //0x00007377 movb $1, %sil + 0x48, 0x85, 0xc0, //0x0000737a testq %rax, %rax + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x0000737d je LBB29_40 + 0x31, 0xff, //0x00007383 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007385 .p2align 4, 0x90 + //0x00007390 LBB29_36 + 0x0f, 0xb6, 0x1c, 0x3a, //0x00007390 movzbl (%rdx,%rdi), %ebx + 0x3a, 0x1c, 0x39, //0x00007394 cmpb (%rcx,%rdi), %bl + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00007397 jne LBB29_39 + 0x48, 0xff, 0xc7, //0x0000739d incq %rdi + 0x48, 0x39, 0xf8, //0x000073a0 cmpq %rdi, %rax + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x000073a3 jne LBB29_36 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000073a9 jmp LBB29_40 + //0x000073ae LBB29_38 + 0x40, 0xb6, 0x01, //0x000073ae movb $1, %sil + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000073b1 jmp LBB29_40 + //0x000073b6 LBB29_39 + 0x31, 0xf6, //0x000073b6 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000073b8 .p2align 4, 0x90 + //0x000073c0 LBB29_40 + 0x40, 0x0f, 0xb6, 0xde, //0x000073c0 movzbl %sil, %ebx + //0x000073c4 LBB29_41 + 0x49, 0x8b, 0x7d, 0x00, //0x000073c4 movq (%r13), %rdi + //0x000073c8 LBB29_42 + 0x49, 0x8b, 0x75, 0x08, //0x000073c8 movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x000073cc movq %r15, %rdx + 0xc5, 0xf8, 0x77, //0x000073cf vzeroupper + 0xe8, 0x49, 0xce, 0xff, 0xff, //0x000073d2 callq _advance_ns + 0x3c, 0x3a, //0x000073d7 cmpb $58, %al + 0x0f, 0x85, 0xd8, 0x04, 0x00, 0x00, //0x000073d9 jne LBB29_102 + 0x48, 0x85, 0xdb, //0x000073df testq %rbx, %rbx + 0x0f, 0x85, 0x78, 0x04, 0x00, 0x00, //0x000073e2 jne LBB29_97 + 0x4c, 0x89, 0xef, //0x000073e8 movq %r13, %rdi + 0x4c, 0x89, 0xfe, //0x000073eb movq %r15, %rsi + 0xe8, 0x5d, 0xf1, 0xff, 0xff, //0x000073ee callq _skip_one_fast + 0x49, 0x8b, 0x7d, 0x00, //0x000073f3 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x000073f7 movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x000073fb movq %r15, %rdx + 0xe8, 0x1d, 0xce, 0xff, 0xff, //0x000073fe callq _advance_ns + 0x3c, 0x2c, //0x00007403 cmpb $44, %al + 0x0f, 0x84, 0x35, 0xfd, 0xff, 0xff, //0x00007405 je LBB29_6 + 0xe9, 0x88, 0x04, 0x00, 0x00, //0x0000740b jmp LBB29_99 + //0x00007410 LBB29_45 + 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00007410 movq $0, $-48(%rbp) + 0x49, 0x8b, 0x7d, 0x00, //0x00007418 movq (%r13), %rdi + 0x48, 0x01, 0xfb, //0x0000741c addq %rdi, %rbx + 0x4c, 0x8d, 0x44, 0x07, 0xff, //0x0000741f leaq $-1(%rdi,%rax), %r8 + 0x4f, 0x8d, 0x14, 0x26, //0x00007424 leaq (%r14,%r12), %r10 + 0x4d, 0x85, 0xe4, //0x00007428 testq %r12, %r12 + 0x0f, 0x8e, 0x85, 0x03, 0x00, 0x00, //0x0000742b jle LBB29_89 + 0x49, 0x39, 0xd8, //0x00007431 cmpq %rbx, %r8 + 0x0f, 0x86, 0x7c, 0x03, 0x00, 0x00, //0x00007434 jbe LBB29_89 + //0x0000743a LBB29_47 + 0x8a, 0x03, //0x0000743a movb (%rbx), %al + 0x3c, 0x5c, //0x0000743c cmpb $92, %al + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x0000743e jne LBB29_52 + 0x4c, 0x89, 0xc1, //0x00007444 movq %r8, %rcx + 0x48, 0x29, 0xd9, //0x00007447 subq %rbx, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000744a movq $-1, %rax + 0x48, 0x85, 0xc9, //0x00007451 testq %rcx, %rcx + 0x0f, 0x8e, 0xba, 0x04, 0x00, 0x00, //0x00007454 jle LBB29_109 + 0x0f, 0xb6, 0x53, 0x01, //0x0000745a movzbl $1(%rbx), %edx + 0x48, 0x8d, 0x35, 0x2b, 0xa0, 0x00, 0x00, //0x0000745e leaq $41003(%rip), %rsi /* __UnquoteTab+0(%rip) */ + 0x44, 0x8a, 0x1c, 0x32, //0x00007465 movb (%rdx,%rsi), %r11b + 0x41, 0x80, 0xfb, 0xff, //0x00007469 cmpb $-1, %r11b + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x0000746d je LBB29_54 + 0x45, 0x84, 0xdb, //0x00007473 testb %r11b, %r11b + 0x0f, 0x84, 0x86, 0x04, 0x00, 0x00, //0x00007476 je LBB29_107 + 0x44, 0x88, 0x5d, 0xd0, //0x0000747c movb %r11b, $-48(%rbp) + 0x48, 0x83, 0xc3, 0x02, //0x00007480 addq $2, %rbx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00007484 movl $1, %ecx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x00007489 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x0000748e cmpq %r10, %r14 + 0x0f, 0x82, 0x2c, 0x01, 0x00, 0x00, //0x00007491 jb LBB29_65 + 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x00007497 jmp LBB29_73 + //0x0000749c LBB29_52 + 0x41, 0x3a, 0x06, //0x0000749c cmpb (%r14), %al + 0x0f, 0x85, 0x28, 0x03, 0x00, 0x00, //0x0000749f jne LBB29_90 + 0x48, 0xff, 0xc3, //0x000074a5 incq %rbx + 0x49, 0xff, 0xc6, //0x000074a8 incq %r14 + 0xe9, 0xf4, 0x02, 0x00, 0x00, //0x000074ab jmp LBB29_75 + //0x000074b0 LBB29_54 + 0x48, 0x83, 0xf9, 0x03, //0x000074b0 cmpq $3, %rcx + 0x0f, 0x8e, 0x57, 0x04, 0x00, 0x00, //0x000074b4 jle LBB29_108 + 0x8b, 0x43, 0x02, //0x000074ba movl $2(%rbx), %eax + 0x89, 0xc2, //0x000074bd movl %eax, %edx + 0xf7, 0xd2, //0x000074bf notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x000074c1 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000074c7 andl $-2139062144, %edx + 0x85, 0xf2, //0x000074cd testl %esi, %edx + 0x0f, 0x85, 0x1d, 0x04, 0x00, 0x00, //0x000074cf jne LBB29_106 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x000074d5 leal $421075225(%rax), %esi + 0x09, 0xc6, //0x000074db orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x000074dd testl $-2139062144, %esi + 0x0f, 0x85, 0x09, 0x04, 0x00, 0x00, //0x000074e3 jne LBB29_106 + 0x89, 0xc6, //0x000074e9 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000074eb andl $2139062143, %esi + 0x41, 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000074f1 movl $-1061109568, %r9d + 0x41, 0x29, 0xf1, //0x000074f7 subl %esi, %r9d + 0x44, 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x000074fa leal $1179010630(%rsi), %r11d + 0x41, 0x21, 0xd1, //0x00007501 andl %edx, %r9d + 0x45, 0x85, 0xd9, //0x00007504 testl %r11d, %r9d + 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00007507 jne LBB29_106 + 0x41, 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000750d movl $-522133280, %r9d + 0x41, 0x29, 0xf1, //0x00007513 subl %esi, %r9d + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00007516 addl $960051513, %esi + 0x44, 0x21, 0xca, //0x0000751c andl %r9d, %edx + 0x85, 0xf2, //0x0000751f testl %esi, %edx + 0x0f, 0x85, 0xcb, 0x03, 0x00, 0x00, //0x00007521 jne LBB29_106 + 0x0f, 0xc8, //0x00007527 bswapl %eax + 0x89, 0xc2, //0x00007529 movl %eax, %edx + 0xc1, 0xea, 0x04, //0x0000752b shrl $4, %edx + 0xf7, 0xd2, //0x0000752e notl %edx + 0x81, 0xe2, 0x01, 0x01, 0x01, 0x01, //0x00007530 andl $16843009, %edx + 0x8d, 0x14, 0xd2, //0x00007536 leal (%rdx,%rdx,8), %edx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007539 andl $252645135, %eax + 0x01, 0xd0, //0x0000753e addl %edx, %eax + 0x41, 0x89, 0xc3, //0x00007540 movl %eax, %r11d + 0x41, 0xc1, 0xeb, 0x04, //0x00007543 shrl $4, %r11d + 0x41, 0x09, 0xc3, //0x00007547 orl %eax, %r11d + 0x44, 0x89, 0xde, //0x0000754a movl %r11d, %esi + 0xc1, 0xee, 0x08, //0x0000754d shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00007550 andl $65280, %esi + 0x41, 0x0f, 0xb6, 0xc3, //0x00007556 movzbl %r11b, %eax + 0x09, 0xf0, //0x0000755a orl %esi, %eax + 0x4c, 0x8d, 0x4b, 0x06, //0x0000755c leaq $6(%rbx), %r9 + 0x83, 0xf8, 0x7f, //0x00007560 cmpl $127, %eax + 0x0f, 0x86, 0xab, 0x00, 0x00, 0x00, //0x00007563 jbe LBB29_77 + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x00007569 cmpl $2047, %eax + 0x0f, 0x86, 0xbf, 0x00, 0x00, 0x00, //0x0000756e jbe LBB29_78 + 0x44, 0x89, 0xda, //0x00007574 movl %r11d, %edx + 0x81, 0xe2, 0x00, 0x00, 0xf8, 0x00, //0x00007577 andl $16252928, %edx + 0x81, 0xfa, 0x00, 0x00, 0xd8, 0x00, //0x0000757d cmpl $14155776, %edx + 0x0f, 0x84, 0xdc, 0x00, 0x00, 0x00, //0x00007583 je LBB29_79 + 0xc1, 0xee, 0x0c, //0x00007589 shrl $12, %esi + 0x40, 0x80, 0xce, 0xe0, //0x0000758c orb $-32, %sil + 0x40, 0x88, 0x75, 0xd0, //0x00007590 movb %sil, $-48(%rbp) + 0xc1, 0xe8, 0x06, //0x00007594 shrl $6, %eax + 0x24, 0x3f, //0x00007597 andb $63, %al + 0x0c, 0x80, //0x00007599 orb $-128, %al + 0x88, 0x45, 0xd1, //0x0000759b movb %al, $-47(%rbp) + 0x41, 0x80, 0xe3, 0x3f, //0x0000759e andb $63, %r11b + 0x41, 0x80, 0xcb, 0x80, //0x000075a2 orb $-128, %r11b + 0x44, 0x88, 0x5d, 0xd2, //0x000075a6 movb %r11b, $-46(%rbp) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000075aa movl $3, %ecx + 0x41, 0x89, 0xf3, //0x000075af movl %esi, %r11d + 0x4c, 0x89, 0xcb, //0x000075b2 movq %r9, %rbx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x000075b5 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x000075ba cmpq %r10, %r14 + 0x0f, 0x83, 0xd4, 0x01, 0x00, 0x00, //0x000075bd jae LBB29_73 + //0x000075c3 LBB29_65 + 0x48, 0x8d, 0x45, 0xd0, //0x000075c3 leaq $-48(%rbp), %rax + 0x49, 0x39, 0xc1, //0x000075c7 cmpq %rax, %r9 + 0x0f, 0x86, 0xc7, 0x01, 0x00, 0x00, //0x000075ca jbe LBB29_73 + 0x45, 0x38, 0x1e, //0x000075d0 cmpb %r11b, (%r14) + 0x0f, 0x85, 0xbe, 0x01, 0x00, 0x00, //0x000075d3 jne LBB29_73 + 0x49, 0xff, 0xc6, //0x000075d9 incq %r14 + 0x48, 0x8d, 0x55, 0xd1, //0x000075dc leaq $-47(%rbp), %rdx + 0x4c, 0x89, 0xf6, //0x000075e0 movq %r14, %rsi + //0x000075e3 LBB29_68 + 0x49, 0x89, 0xf6, //0x000075e3 movq %rsi, %r14 + 0x48, 0x89, 0xd1, //0x000075e6 movq %rdx, %rcx + 0x4c, 0x39, 0xca, //0x000075e9 cmpq %r9, %rdx + 0x0f, 0x83, 0xa9, 0x01, 0x00, 0x00, //0x000075ec jae LBB29_74 + 0x4d, 0x39, 0xd6, //0x000075f2 cmpq %r10, %r14 + 0x0f, 0x83, 0xa0, 0x01, 0x00, 0x00, //0x000075f5 jae LBB29_74 + 0x41, 0x0f, 0xb6, 0x06, //0x000075fb movzbl (%r14), %eax + 0x49, 0x8d, 0x76, 0x01, //0x000075ff leaq $1(%r14), %rsi + 0x48, 0x8d, 0x51, 0x01, //0x00007603 leaq $1(%rcx), %rdx + 0x3a, 0x01, //0x00007607 cmpb (%rcx), %al + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00007609 je LBB29_68 + 0xe9, 0x87, 0x01, 0x00, 0x00, //0x0000760f jmp LBB29_74 + //0x00007614 LBB29_77 + 0x44, 0x88, 0x5d, 0xd0, //0x00007614 movb %r11b, $-48(%rbp) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00007618 movl $1, %ecx + 0x4c, 0x89, 0xcb, //0x0000761d movq %r9, %rbx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x00007620 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x00007625 cmpq %r10, %r14 + 0x0f, 0x82, 0x95, 0xff, 0xff, 0xff, //0x00007628 jb LBB29_65 + 0xe9, 0x64, 0x01, 0x00, 0x00, //0x0000762e jmp LBB29_73 + //0x00007633 LBB29_78 + 0xc1, 0xe8, 0x06, //0x00007633 shrl $6, %eax + 0x0c, 0xc0, //0x00007636 orb $-64, %al + 0x88, 0x45, 0xd0, //0x00007638 movb %al, $-48(%rbp) + 0x41, 0x80, 0xe3, 0x3f, //0x0000763b andb $63, %r11b + 0x41, 0x80, 0xcb, 0x80, //0x0000763f orb $-128, %r11b + 0x44, 0x88, 0x5d, 0xd1, //0x00007643 movb %r11b, $-47(%rbp) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007647 movl $2, %ecx + 0x41, 0x89, 0xc3, //0x0000764c movl %eax, %r11d + 0x4c, 0x89, 0xcb, //0x0000764f movq %r9, %rbx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x00007652 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x00007657 cmpq %r10, %r14 + 0x0f, 0x82, 0x63, 0xff, 0xff, 0xff, //0x0000765a jb LBB29_65 + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x00007660 jmp LBB29_73 + //0x00007665 LBB29_79 + 0x48, 0x83, 0xf9, 0x06, //0x00007665 cmpq $6, %rcx + 0x0f, 0x8c, 0xbc, 0x02, 0x00, 0x00, //0x00007669 jl LBB29_111 + 0x3d, 0xff, 0xdb, 0x00, 0x00, //0x0000766f cmpl $56319, %eax + 0x0f, 0x87, 0xb1, 0x02, 0x00, 0x00, //0x00007674 ja LBB29_111 + 0x41, 0x80, 0x39, 0x5c, //0x0000767a cmpb $92, (%r9) + 0x0f, 0x85, 0xa7, 0x02, 0x00, 0x00, //0x0000767e jne LBB29_111 + 0x80, 0x7b, 0x07, 0x75, //0x00007684 cmpb $117, $7(%rbx) + 0x0f, 0x85, 0x9d, 0x02, 0x00, 0x00, //0x00007688 jne LBB29_111 + 0x4c, 0x8d, 0x4b, 0x08, //0x0000768e leaq $8(%rbx), %r9 + 0x8b, 0x4b, 0x08, //0x00007692 movl $8(%rbx), %ecx + 0x89, 0xca, //0x00007695 movl %ecx, %edx + 0xf7, 0xd2, //0x00007697 notl %edx + 0x8d, 0xb1, 0xd0, 0xcf, 0xcf, 0xcf, //0x00007699 leal $-808464432(%rcx), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x0000769f andl $-2139062144, %edx + 0x85, 0xf2, //0x000076a5 testl %esi, %edx + 0x0f, 0x85, 0x72, 0x02, 0x00, 0x00, //0x000076a7 jne LBB29_110 + 0x8d, 0xb1, 0x19, 0x19, 0x19, 0x19, //0x000076ad leal $421075225(%rcx), %esi + 0x09, 0xce, //0x000076b3 orl %ecx, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x000076b5 testl $-2139062144, %esi + 0x0f, 0x85, 0x5e, 0x02, 0x00, 0x00, //0x000076bb jne LBB29_110 + 0x89, 0xce, //0x000076c1 movl %ecx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000076c3 andl $2139062143, %esi + 0x41, 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000076c9 movl $-1061109568, %r11d + 0x41, 0x29, 0xf3, //0x000076cf subl %esi, %r11d + 0x44, 0x8d, 0xa6, 0x46, 0x46, 0x46, 0x46, //0x000076d2 leal $1179010630(%rsi), %r12d + 0x41, 0x21, 0xd3, //0x000076d9 andl %edx, %r11d + 0x45, 0x85, 0xe3, //0x000076dc testl %r12d, %r11d + 0x0f, 0x85, 0x3a, 0x02, 0x00, 0x00, //0x000076df jne LBB29_110 + 0x41, 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000076e5 movl $-522133280, %r11d + 0x41, 0x29, 0xf3, //0x000076eb subl %esi, %r11d + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x000076ee addl $960051513, %esi + 0x44, 0x21, 0xda, //0x000076f4 andl %r11d, %edx + 0x85, 0xf2, //0x000076f7 testl %esi, %edx + 0x0f, 0x85, 0x20, 0x02, 0x00, 0x00, //0x000076f9 jne LBB29_110 + 0x0f, 0xc9, //0x000076ff bswapl %ecx + 0x89, 0xca, //0x00007701 movl %ecx, %edx + 0xc1, 0xea, 0x04, //0x00007703 shrl $4, %edx + 0xf7, 0xd2, //0x00007706 notl %edx + 0x81, 0xe2, 0x01, 0x01, 0x01, 0x01, //0x00007708 andl $16843009, %edx + 0x8d, 0x14, 0xd2, //0x0000770e leal (%rdx,%rdx,8), %edx + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007711 andl $252645135, %ecx + 0x01, 0xd1, //0x00007717 addl %edx, %ecx + 0x89, 0xca, //0x00007719 movl %ecx, %edx + 0xc1, 0xea, 0x04, //0x0000771b shrl $4, %edx + 0x09, 0xca, //0x0000771e orl %ecx, %edx + 0x89, 0xd1, //0x00007720 movl %edx, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00007722 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00007728 cmpl $14417920, %ecx + 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x0000772e jne LBB29_111 + 0x89, 0xd1, //0x00007734 movl %edx, %ecx + 0xc1, 0xe9, 0x08, //0x00007736 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00007739 andl $65280, %ecx + 0x0f, 0xb6, 0xd2, //0x0000773f movzbl %dl, %edx + 0x09, 0xca, //0x00007742 orl %ecx, %edx + 0xc1, 0xe0, 0x0a, //0x00007744 shll $10, %eax + 0x8d, 0x84, 0x10, 0x00, 0x24, 0xa0, 0xfc, //0x00007747 leal $-56613888(%rax,%rdx), %eax + 0x41, 0x89, 0xc3, //0x0000774e movl %eax, %r11d + 0x41, 0xc1, 0xeb, 0x12, //0x00007751 shrl $18, %r11d + 0x41, 0x80, 0xcb, 0xf0, //0x00007755 orb $-16, %r11b + 0x44, 0x88, 0x5d, 0xd0, //0x00007759 movb %r11b, $-48(%rbp) + 0x89, 0xc1, //0x0000775d movl %eax, %ecx + 0xc1, 0xe9, 0x0c, //0x0000775f shrl $12, %ecx + 0x80, 0xe1, 0x3f, //0x00007762 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00007765 orb $-128, %cl + 0x88, 0x4d, 0xd1, //0x00007768 movb %cl, $-47(%rbp) + 0x89, 0xc1, //0x0000776b movl %eax, %ecx + 0xc1, 0xe9, 0x06, //0x0000776d shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00007770 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00007773 orb $-128, %cl + 0x88, 0x4d, 0xd2, //0x00007776 movb %cl, $-46(%rbp) + 0x24, 0x3f, //0x00007779 andb $63, %al + 0x0c, 0x80, //0x0000777b orb $-128, %al + 0x88, 0x45, 0xd3, //0x0000777d movb %al, $-45(%rbp) + 0x48, 0x83, 0xc3, 0x0c, //0x00007780 addq $12, %rbx + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00007784 movl $4, %ecx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x00007789 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x0000778e cmpq %r10, %r14 + 0x0f, 0x82, 0x2c, 0xfe, 0xff, 0xff, //0x00007791 jb LBB29_65 + //0x00007797 LBB29_73 + 0x48, 0x8d, 0x4d, 0xd0, //0x00007797 leaq $-48(%rbp), %rcx + //0x0000779b LBB29_74 + 0x4c, 0x39, 0xc9, //0x0000779b cmpq %r9, %rcx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x0000779e jne LBB29_90 + //0x000077a4 LBB29_75 + 0x49, 0x39, 0xd8, //0x000077a4 cmpq %rbx, %r8 + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x000077a7 jbe LBB29_89 + 0x4d, 0x39, 0xd6, //0x000077ad cmpq %r10, %r14 + 0x0f, 0x82, 0x84, 0xfc, 0xff, 0xff, //0x000077b0 jb LBB29_47 + //0x000077b6 LBB29_89 + 0x49, 0x31, 0xd8, //0x000077b6 xorq %rbx, %r8 + 0x4d, 0x31, 0xd6, //0x000077b9 xorq %r10, %r14 + 0x31, 0xdb, //0x000077bc xorl %ebx, %ebx + 0x4d, 0x09, 0xc6, //0x000077be orq %r8, %r14 + 0x0f, 0x94, 0xc3, //0x000077c1 sete %bl + 0x4c, 0x8b, 0x75, 0xc8, //0x000077c4 movq $-56(%rbp), %r14 + 0xe9, 0xfb, 0xfb, 0xff, 0xff, //0x000077c8 jmp LBB29_42 + //0x000077cd LBB29_90 + 0x31, 0xdb, //0x000077cd xorl %ebx, %ebx + 0x4c, 0x8b, 0x75, 0xc8, //0x000077cf movq $-56(%rbp), %r14 + 0xe9, 0xf0, 0xfb, 0xff, 0xff, //0x000077d3 jmp LBB29_42 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077d8 .p2align 4, 0x90 + //0x000077e0 LBB29_91 + 0x3c, 0x5b, //0x000077e0 cmpb $91, %al + 0x0f, 0x85, 0xcf, 0x00, 0x00, 0x00, //0x000077e2 jne LBB29_102 + 0x49, 0x8b, 0x46, 0x08, //0x000077e8 movq $8(%r14), %rax + 0x48, 0x8b, 0x18, //0x000077ec movq (%rax), %rbx + 0x48, 0x85, 0xdb, //0x000077ef testq %rbx, %rbx + 0x0f, 0x88, 0xd8, 0x00, 0x00, 0x00, //0x000077f2 js LBB29_104 + 0x49, 0x8b, 0x7d, 0x00, //0x000077f8 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x000077fc movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x00007800 movq %r15, %rdx + 0xe8, 0x18, 0xca, 0xff, 0xff, //0x00007803 callq _advance_ns + 0x3c, 0x5d, //0x00007808 cmpb $93, %al + 0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, //0x0000780a je LBB29_100 + 0x49, 0xff, 0x0f, //0x00007810 decq (%r15) + 0x48, 0xff, 0xc3, //0x00007813 incq %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007816 .p2align 4, 0x90 + //0x00007820 LBB29_95 + 0x48, 0xff, 0xcb, //0x00007820 decq %rbx + 0x48, 0x85, 0xdb, //0x00007823 testq %rbx, %rbx + 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00007826 jle LBB29_97 + 0x4c, 0x89, 0xef, //0x0000782c movq %r13, %rdi + 0x4c, 0x89, 0xfe, //0x0000782f movq %r15, %rsi + 0xe8, 0x19, 0xed, 0xff, 0xff, //0x00007832 callq _skip_one_fast + 0x49, 0x8b, 0x7d, 0x00, //0x00007837 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x0000783b movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x0000783f movq %r15, %rdx + 0xe8, 0xd9, 0xc9, 0xff, 0xff, //0x00007842 callq _advance_ns + 0x3c, 0x2c, //0x00007847 cmpb $44, %al + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00007849 je LBB29_95 + 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x0000784f jmp LBB29_101 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007854 .p2align 4, 0x90 + //0x00007860 LBB29_97 + 0x49, 0x83, 0xc6, 0x10, //0x00007860 addq $16, %r14 + 0x48, 0x8b, 0x45, 0xb8, //0x00007864 movq $-72(%rbp), %rax + 0x49, 0x39, 0xc6, //0x00007868 cmpq %rax, %r14 + 0x48, 0x8b, 0x4d, 0xb0, //0x0000786b movq $-80(%rbp), %rcx + 0x0f, 0x85, 0x81, 0xf8, 0xff, 0xff, //0x0000786f jne LBB29_2 + //0x00007875 LBB29_98 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007875 movl $1, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x0000787a vmovq %rax, %xmm0 + 0xc5, 0xfa, 0x7f, 0x01, //0x0000787f vmovdqu %xmm0, (%rcx) + 0x48, 0x89, 0xcf, //0x00007883 movq %rcx, %rdi + 0x4c, 0x89, 0xee, //0x00007886 movq %r13, %rsi + 0x4c, 0x89, 0xfa, //0x00007889 movq %r15, %rdx + 0x31, 0xc9, //0x0000788c xorl %ecx, %ecx + 0xe8, 0xbd, 0xd9, 0xff, 0xff, //0x0000788e callq _fsm_exec + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00007893 jmp LBB29_103 + //0x00007898 LBB29_99 + 0x3c, 0x7d, //0x00007898 cmpb $125, %al + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x0000789a jne LBB29_102 + //0x000078a0 LBB29_100 + 0x49, 0xff, 0x0f, //0x000078a0 decq (%r15) + 0x48, 0xc7, 0xc0, 0xdf, 0xff, 0xff, 0xff, //0x000078a3 movq $-33, %rax + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000078aa jmp LBB29_103 + //0x000078af LBB29_101 + 0x3c, 0x5d, //0x000078af cmpb $93, %al + 0x0f, 0x84, 0xe9, 0xff, 0xff, 0xff, //0x000078b1 je LBB29_100 + //0x000078b7 LBB29_102 + 0x49, 0xff, 0x0f, //0x000078b7 decq (%r15) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000078ba movq $-2, %rax + //0x000078c1 LBB29_103 + 0x48, 0x83, 0xc4, 0x28, //0x000078c1 addq $40, %rsp + 0x5b, //0x000078c5 popq %rbx + 0x41, 0x5c, //0x000078c6 popq %r12 + 0x41, 0x5d, //0x000078c8 popq %r13 + 0x41, 0x5e, //0x000078ca popq %r14 + 0x41, 0x5f, //0x000078cc popq %r15 + 0x5d, //0x000078ce popq %rbp + 0xc3, //0x000078cf retq + //0x000078d0 LBB29_104 + 0x49, 0xff, 0x0f, //0x000078d0 decq (%r15) + 0x48, 0xc7, 0xc0, 0xde, 0xff, 0xff, 0xff, //0x000078d3 movq $-34, %rax + 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x000078da jmp LBB29_103 + //0x000078df LBB29_105 + 0x49, 0x8b, 0x45, 0x08, //0x000078df movq $8(%r13), %rax + 0x49, 0x89, 0x07, //0x000078e3 movq %rax, (%r15) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000078e6 movq $-1, %rax + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000078ed jmp LBB29_103 + //0x000078f2 LBB29_106 + 0x48, 0x83, 0xc3, 0x02, //0x000078f2 addq $2, %rbx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000078f6 movq $-2, %rax + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000078fd jmp LBB29_109 + //0x00007902 LBB29_107 + 0x48, 0xff, 0xc3, //0x00007902 incq %rbx + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00007905 movq $-3, %rax + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000790c jmp LBB29_109 + //0x00007911 LBB29_108 + 0x48, 0xff, 0xc3, //0x00007911 incq %rbx + //0x00007914 LBB29_109 + 0x48, 0x29, 0xfb, //0x00007914 subq %rdi, %rbx + 0x49, 0x89, 0x1f, //0x00007917 movq %rbx, (%r15) + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x0000791a jmp LBB29_103 + //0x0000791f LBB29_110 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000791f movq $-2, %rax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00007926 jmp LBB29_112 + //0x0000792b LBB29_111 + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000792b movq $-4, %rax + //0x00007932 LBB29_112 + 0x4c, 0x89, 0xcb, //0x00007932 movq %r9, %rbx + 0xe9, 0xda, 0xff, 0xff, 0xff, //0x00007935 jmp LBB29_109 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000793a .p2align 4, 0x90 + //0x00007940 _validate_utf8 + 0x55, //0x00007940 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007941 movq %rsp, %rbp + 0x41, 0x57, //0x00007944 pushq %r15 + 0x41, 0x56, //0x00007946 pushq %r14 + 0x41, 0x54, //0x00007948 pushq %r12 + 0x53, //0x0000794a pushq %rbx + 0x50, //0x0000794b pushq %rax + 0x4c, 0x8b, 0x17, //0x0000794c movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000794f movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x00007953 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x00007956 addq %r10, %rcx + 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x00007959 leaq $-3(%r10,%r11), %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000795e jmp LBB30_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007963 .p2align 4, 0x90 + //0x00007970 LBB30_19 + 0x48, 0x01, 0xd9, //0x00007970 addq %rbx, %rcx + //0x00007973 LBB30_1 + 0x4c, 0x39, 0xc1, //0x00007973 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007976 jae LBB30_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000797c movl $1, %ebx + 0x80, 0x39, 0x00, //0x00007981 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007984 jns LBB30_19 + 0x8b, 0x01, //0x0000798a movl (%rcx), %eax + 0x89, 0xc7, //0x0000798c movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000798e andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007994 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000799a jne LBB30_10 + 0x89, 0xc7, //0x000079a0 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000079a2 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000079a8 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000079ae je LBB30_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000079b4 movl $3, %ebx + 0x85, 0xff, //0x000079b9 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000079bb jne LBB30_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000079c1 .p2align 4, 0x90 + //0x000079d0 LBB30_10 + 0x89, 0xc7, //0x000079d0 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000079d2 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000079d8 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000079de jne LBB30_12 + 0x89, 0xc7, //0x000079e4 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000079e6 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x000079eb andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000079ee jne LBB30_19 + //0x000079f4 LBB30_12 + 0x89, 0xc7, //0x000079f4 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x000079f6 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x000079fc cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007a02 jne LBB30_16 + 0x89, 0xc7, //0x00007a08 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x00007a0a andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007a10 je LBB30_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00007a16 movl $4, %ebx + 0xa8, 0x04, //0x00007a1b testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x00007a1d je LBB30_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x00007a23 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x00007a28 je LBB30_19 + //0x00007a2e LBB30_16 + 0x48, 0x89, 0xcf, //0x00007a2e movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x00007a31 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x00007a34 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x00007a37 cmpq $4096, %rbx + 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x00007a3e jae LBB30_17 + 0x48, 0x63, 0xc7, //0x00007a44 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x00007a47 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x00007a4b movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x00007a4e movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007a53 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00007a58 jmp LBB30_19 + //0x00007a5d LBB30_2 + 0x4d, 0x01, 0xd3, //0x00007a5d addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x00007a60 cmpq %r11, %rcx + 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x00007a63 jae LBB30_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x00007a69 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x00007a6d leaq $-38(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007a71 jmp LBB30_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007a76 .p2align 4, 0x90 + //0x00007a80 LBB30_5 + 0x48, 0xff, 0xc1, //0x00007a80 incq %rcx + 0x4c, 0x39, 0xd9, //0x00007a83 cmpq %r11, %rcx + 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00007a86 jae LBB30_36 + //0x00007a8c LBB30_4 + 0x80, 0x39, 0x00, //0x00007a8c cmpb $0, (%rcx) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x00007a8f jns LBB30_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00007a95 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00007a99 movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x00007a9d movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00007aa0 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00007aa3 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007aa7 jb LBB30_21 + 0x44, 0x0f, 0xb6, 0x21, //0x00007aad movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007ab1 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00007ab6 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x00007aba leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x00007abe addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00007ac2 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00007ac5 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007ac8 je LBB30_24 + //0x00007ace LBB30_25 + 0x41, 0x0f, 0xb6, 0x07, //0x00007ace movzbl (%r15), %eax + 0x88, 0x07, //0x00007ad2 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007ad4 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00007ad9 movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00007add jmp LBB30_26 + //0x00007ae2 LBB30_21 + 0x45, 0x31, 0xe4, //0x00007ae2 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x00007ae5 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x00007ae8 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x00007aeb movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x00007aee testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007af1 jne LBB30_25 + //0x00007af7 LBB30_24 + 0x31, 0xff, //0x00007af7 xorl %edi, %edi + //0x00007af9 LBB30_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x00007af9 movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x00007afd shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x00007b00 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x00007b04 shll $8, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x00007b07 movzbl %r12b, %edi + 0x09, 0xdf, //0x00007b0b orl %ebx, %edi + 0x09, 0xf8, //0x00007b0d orl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x00007b0f andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007b14 cmpl $8421600, %eax + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00007b19 jne LBB30_29 + 0x89, 0xf8, //0x00007b1f movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007b21 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007b26 cmpl $8205, %eax + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00007b2b je LBB30_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007b31 movl $3, %ebx + 0x85, 0xc0, //0x00007b36 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00007b38 jne LBB30_34 + 0x90, 0x90, //0x00007b3e .p2align 4, 0x90 + //0x00007b40 LBB30_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x00007b40 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00007b44 je LBB30_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007b4a andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007b50 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007b55 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00007b5b jne LBB30_31 + //0x00007b61 LBB30_34 + 0x48, 0x01, 0xd9, //0x00007b61 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00007b64 cmpq %r11, %rcx + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00007b67 jb LBB30_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x00007b6d jmp LBB30_36 + //0x00007b72 LBB30_31 + 0x48, 0x89, 0xc8, //0x00007b72 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00007b75 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x00007b78 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x00007b7b cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007b82 jae LBB30_32 + 0x48, 0x98, //0x00007b88 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x00007b8a leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x00007b8e movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007b91 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007b96 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x00007b9b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00007b9e cmpq %r11, %rcx + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00007ba1 jb LBB30_4 + //0x00007ba7 LBB30_36 + 0x4c, 0x29, 0xd1, //0x00007ba7 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x00007baa movq %rcx, (%rsi) + 0x31, 0xc0, //0x00007bad xorl %eax, %eax + //0x00007baf LBB30_37 + 0x48, 0x83, 0xc4, 0x08, //0x00007baf addq $8, %rsp + 0x5b, //0x00007bb3 popq %rbx + 0x41, 0x5c, //0x00007bb4 popq %r12 + 0x41, 0x5e, //0x00007bb6 popq %r14 + 0x41, 0x5f, //0x00007bb8 popq %r15 + 0x5d, //0x00007bba popq %rbp + 0xc3, //0x00007bbb retq + //0x00007bbc LBB30_32 + 0x48, 0x89, 0x06, //0x00007bbc movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007bbf movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007bc6 jmp LBB30_37 + //0x00007bcb LBB30_17 + 0x48, 0x89, 0x3e, //0x00007bcb movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007bce movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007bd5 jmp LBB30_37 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007bda .p2align 5, 0x00 + //0x00007be0 LCPI31_0 + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007be0 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007bf0 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + //0x00007c00 LCPI31_1 + 0x02, //0x00007c00 .byte 2 + 0x02, //0x00007c01 .byte 2 + 0x02, //0x00007c02 .byte 2 + 0x02, //0x00007c03 .byte 2 + 0x02, //0x00007c04 .byte 2 + 0x02, //0x00007c05 .byte 2 + 0x02, //0x00007c06 .byte 2 + 0x02, //0x00007c07 .byte 2 + 0x80, //0x00007c08 .byte 128 + 0x80, //0x00007c09 .byte 128 + 0x80, //0x00007c0a .byte 128 + 0x80, //0x00007c0b .byte 128 + 0x21, //0x00007c0c .byte 33 + 0x01, //0x00007c0d .byte 1 + 0x15, //0x00007c0e .byte 21 + 0x49, //0x00007c0f .byte 73 + 0x02, //0x00007c10 .byte 2 + 0x02, //0x00007c11 .byte 2 + 0x02, //0x00007c12 .byte 2 + 0x02, //0x00007c13 .byte 2 + 0x02, //0x00007c14 .byte 2 + 0x02, //0x00007c15 .byte 2 + 0x02, //0x00007c16 .byte 2 + 0x02, //0x00007c17 .byte 2 + 0x80, //0x00007c18 .byte 128 + 0x80, //0x00007c19 .byte 128 + 0x80, //0x00007c1a .byte 128 + 0x80, //0x00007c1b .byte 128 + 0x21, //0x00007c1c .byte 33 + 0x01, //0x00007c1d .byte 1 + 0x15, //0x00007c1e .byte 21 + 0x49, //0x00007c1f .byte 73 + //0x00007c20 LCPI31_2 + 0xe7, //0x00007c20 .byte 231 + 0xa3, //0x00007c21 .byte 163 + 0x83, //0x00007c22 .byte 131 + 0x83, //0x00007c23 .byte 131 + 0x8b, //0x00007c24 .byte 139 + 0xcb, //0x00007c25 .byte 203 + 0xcb, //0x00007c26 .byte 203 + 0xcb, //0x00007c27 .byte 203 + 0xcb, //0x00007c28 .byte 203 + 0xcb, //0x00007c29 .byte 203 + 0xcb, //0x00007c2a .byte 203 + 0xcb, //0x00007c2b .byte 203 + 0xcb, //0x00007c2c .byte 203 + 0xdb, //0x00007c2d .byte 219 + 0xcb, //0x00007c2e .byte 203 + 0xcb, //0x00007c2f .byte 203 + 0xe7, //0x00007c30 .byte 231 + 0xa3, //0x00007c31 .byte 163 + 0x83, //0x00007c32 .byte 131 + 0x83, //0x00007c33 .byte 131 + 0x8b, //0x00007c34 .byte 139 + 0xcb, //0x00007c35 .byte 203 + 0xcb, //0x00007c36 .byte 203 + 0xcb, //0x00007c37 .byte 203 + 0xcb, //0x00007c38 .byte 203 + 0xcb, //0x00007c39 .byte 203 + 0xcb, //0x00007c3a .byte 203 + 0xcb, //0x00007c3b .byte 203 + 0xcb, //0x00007c3c .byte 203 + 0xdb, //0x00007c3d .byte 219 + 0xcb, //0x00007c3e .byte 203 + 0xcb, //0x00007c3f .byte 203 + //0x00007c40 LCPI31_3 + 0x01, //0x00007c40 .byte 1 + 0x01, //0x00007c41 .byte 1 + 0x01, //0x00007c42 .byte 1 + 0x01, //0x00007c43 .byte 1 + 0x01, //0x00007c44 .byte 1 + 0x01, //0x00007c45 .byte 1 + 0x01, //0x00007c46 .byte 1 + 0x01, //0x00007c47 .byte 1 + 0xe6, //0x00007c48 .byte 230 + 0xae, //0x00007c49 .byte 174 + 0xba, //0x00007c4a .byte 186 + 0xba, //0x00007c4b .byte 186 + 0x01, //0x00007c4c .byte 1 + 0x01, //0x00007c4d .byte 1 + 0x01, //0x00007c4e .byte 1 + 0x01, //0x00007c4f .byte 1 + 0x01, //0x00007c50 .byte 1 + 0x01, //0x00007c51 .byte 1 + 0x01, //0x00007c52 .byte 1 + 0x01, //0x00007c53 .byte 1 + 0x01, //0x00007c54 .byte 1 + 0x01, //0x00007c55 .byte 1 + 0x01, //0x00007c56 .byte 1 + 0x01, //0x00007c57 .byte 1 + 0xe6, //0x00007c58 .byte 230 + 0xae, //0x00007c59 .byte 174 + 0xba, //0x00007c5a .byte 186 + 0xba, //0x00007c5b .byte 186 + 0x01, //0x00007c5c .byte 1 + 0x01, //0x00007c5d .byte 1 + 0x01, //0x00007c5e .byte 1 + 0x01, //0x00007c5f .byte 1 + //0x00007c60 LCPI31_4 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00007c60 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00007c70 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00007c80 LCPI31_5 + 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x00007c80 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' + 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x00007c90 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' + //0x00007ca0 LCPI31_7 + 0xff, //0x00007ca0 .byte 255 + 0xff, //0x00007ca1 .byte 255 + 0xff, //0x00007ca2 .byte 255 + 0xff, //0x00007ca3 .byte 255 + 0xff, //0x00007ca4 .byte 255 + 0xff, //0x00007ca5 .byte 255 + 0xff, //0x00007ca6 .byte 255 + 0xff, //0x00007ca7 .byte 255 + 0xff, //0x00007ca8 .byte 255 + 0xff, //0x00007ca9 .byte 255 + 0xff, //0x00007caa .byte 255 + 0xff, //0x00007cab .byte 255 + 0xff, //0x00007cac .byte 255 + 0xff, //0x00007cad .byte 255 + 0xff, //0x00007cae .byte 255 + 0xff, //0x00007caf .byte 255 + 0xff, //0x00007cb0 .byte 255 + 0xff, //0x00007cb1 .byte 255 + 0xff, //0x00007cb2 .byte 255 + 0xff, //0x00007cb3 .byte 255 + 0xff, //0x00007cb4 .byte 255 + 0xff, //0x00007cb5 .byte 255 + 0xff, //0x00007cb6 .byte 255 + 0xff, //0x00007cb7 .byte 255 + 0xff, //0x00007cb8 .byte 255 + 0xff, //0x00007cb9 .byte 255 + 0xff, //0x00007cba .byte 255 + 0xff, //0x00007cbb .byte 255 + 0xff, //0x00007cbc .byte 255 + 0xef, //0x00007cbd .byte 239 + 0xdf, //0x00007cbe .byte 223 + 0xbf, //0x00007cbf .byte 191 + //0x00007cc0 LCPI31_8 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00007ce0 .p2align 3, 0x00 + //0x00007ce0 LCPI31_6 + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //0x00007ce0 .quad -9187201950435737472 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007ce8 .p2align 4, 0x90 + //0x00007cf0 _validate_utf8_fast + 0x55, //0x00007cf0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007cf1 movq %rsp, %rbp + 0x53, //0x00007cf4 pushq %rbx + 0x48, 0x81, 0xec, 0xa0, 0x00, 0x00, 0x00, //0x00007cf5 subq $160, %rsp + 0x48, 0x8b, 0x47, 0x08, //0x00007cfc movq $8(%rdi), %rax + 0x48, 0x85, 0xc0, //0x00007d00 testq %rax, %rax + 0x0f, 0x84, 0xc3, 0x07, 0x00, 0x00, //0x00007d03 je LBB31_12 + 0x4c, 0x8b, 0x07, //0x00007d09 movq (%rdi), %r8 + 0x4d, 0x8d, 0x0c, 0x00, //0x00007d0c leaq (%r8,%rax), %r9 + 0x49, 0x8d, 0x79, 0x80, //0x00007d10 leaq $-128(%r9), %rdi + 0xc5, 0xf1, 0xef, 0xc9, //0x00007d14 vpxor %xmm1, %xmm1, %xmm1 + 0xc5, 0xe9, 0xef, 0xd2, //0x00007d18 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0xef, 0xc0, //0x00007d1c vpxor %xmm0, %xmm0, %xmm0 + 0x4c, 0x89, 0xc2, //0x00007d20 movq %r8, %rdx + 0x4c, 0x39, 0xc7, //0x00007d23 cmpq %r8, %rdi + 0x0f, 0x86, 0x70, 0x03, 0x00, 0x00, //0x00007d26 jbe LBB31_14 + 0x48, 0x8d, 0x50, 0xff, //0x00007d2c leaq $-1(%rax), %rdx + 0xc5, 0xfd, 0x6f, 0x25, 0xa8, 0xfe, 0xff, 0xff, //0x00007d30 vmovdqa $-344(%rip), %ymm4 /* LCPI31_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xe0, 0xfe, 0xff, 0xff, //0x00007d38 vmovdqa $-288(%rip), %ymm6 /* LCPI31_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x3d, 0xf8, 0xfe, 0xff, 0xff, //0x00007d40 vmovdqa $-264(%rip), %ymm7 /* LCPI31_3+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x05, 0x10, 0xff, 0xff, 0xff, //0x00007d48 vmovdqa $-240(%rip), %ymm8 /* LCPI31_4+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0x28, 0xff, 0xff, 0xff, //0x00007d50 vmovdqa $-216(%rip), %ymm9 /* LCPI31_5+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x40, 0xff, 0xff, 0xff, //0x00007d58 vmovdqa $-192(%rip), %ymm10 /* LCPI31_7+0(%rip) */ + 0x4c, 0x89, 0xc1, //0x00007d60 movq %r8, %rcx + 0xc5, 0xf9, 0xef, 0xc0, //0x00007d63 vpxor %xmm0, %xmm0, %xmm0 + 0xc5, 0xe9, 0xef, 0xd2, //0x00007d67 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf1, 0xef, 0xc9, //0x00007d6b vpxor %xmm1, %xmm1, %xmm1 + 0x90, //0x00007d6f .p2align 4, 0x90 + //0x00007d70 LBB31_3 + 0xc5, 0x7e, 0x6f, 0x39, //0x00007d70 vmovdqu (%rcx), %ymm15 + 0xc5, 0x7e, 0x6f, 0x69, 0x20, //0x00007d74 vmovdqu $32(%rcx), %ymm13 + 0xc5, 0x7e, 0x6f, 0x61, 0x40, //0x00007d79 vmovdqu $64(%rcx), %ymm12 + 0xc5, 0x7e, 0x6f, 0x59, 0x60, //0x00007d7e vmovdqu $96(%rcx), %ymm11 + 0xc4, 0xc1, 0x15, 0xeb, 0xdf, //0x00007d83 vpor %ymm15, %ymm13, %ymm3 + 0xc4, 0x41, 0x25, 0xeb, 0xf4, //0x00007d88 vpor %ymm12, %ymm11, %ymm14 + 0xc5, 0x8d, 0xeb, 0xeb, //0x00007d8d vpor %ymm3, %ymm14, %ymm5 + 0xc5, 0xfd, 0xd7, 0xf5, //0x00007d91 vpmovmskb %ymm5, %esi + 0x85, 0xf6, //0x00007d95 testl %esi, %esi + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00007d97 jne LBB31_6 + 0xc5, 0xf5, 0xeb, 0xc0, //0x00007d9d vpor %ymm0, %ymm1, %ymm0 + //0x00007da1 LBB31_5 + 0x48, 0x83, 0xe9, 0x80, //0x00007da1 subq $-128, %rcx + 0x48, 0x39, 0xf9, //0x00007da5 cmpq %rdi, %rcx + 0x0f, 0x82, 0xc2, 0xff, 0xff, 0xff, //0x00007da8 jb LBB31_3 + 0xe9, 0xe2, 0x02, 0x00, 0x00, //0x00007dae jmp LBB31_13 + //0x00007db3 LBB31_6 + 0xc5, 0xfd, 0xd7, 0xf3, //0x00007db3 vpmovmskb %ymm3, %esi + 0x85, 0xf6, //0x00007db7 testl %esi, %esi + 0x0f, 0x85, 0xf0, 0x00, 0x00, 0x00, //0x00007db9 jne LBB31_9 + 0xc5, 0xf5, 0xeb, 0xc0, //0x00007dbf vpor %ymm0, %ymm1, %ymm0 + 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x00007dc3 vperm2i128 $33, %ymm12, %ymm2, %ymm1 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x00007dc9 vpalignr $15, %ymm1, %ymm12, %ymm2 + 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007dcf vpsrlw $4, %ymm2, %ymm3 + 0xc5, 0xe5, 0xdb, 0xdc, //0x00007dd4 vpand %ymm4, %ymm3, %ymm3 + 0xc5, 0x7d, 0x6f, 0x35, 0x20, 0xfe, 0xff, 0xff, //0x00007dd8 vmovdqa $-480(%rip), %ymm14 /* LCPI31_1+0(%rip) */ + 0xc4, 0xe2, 0x0d, 0x00, 0xdb, //0x00007de0 vpshufb %ymm3, %ymm14, %ymm3 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007de5 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007de9 vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x55, 0x71, 0xd4, 0x04, //0x00007dee vpsrlw $4, %ymm12, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007df4 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007df8 vpshufb %ymm5, %ymm7, %ymm5 + 0xc5, 0xed, 0xdb, 0xd5, //0x00007dfd vpand %ymm5, %ymm2, %ymm2 + 0xc5, 0xe5, 0xdb, 0xd2, //0x00007e01 vpand %ymm2, %ymm3, %ymm2 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd9, 0x0e, //0x00007e05 vpalignr $14, %ymm1, %ymm12, %ymm3 + 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00007e0b vpalignr $13, %ymm1, %ymm12, %ymm1 + 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007e11 vpsubusb %ymm8, %ymm3, %ymm3 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007e16 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcb, //0x00007e1b vpor %ymm3, %ymm1, %ymm1 + 0xc4, 0x41, 0x11, 0xef, 0xed, //0x00007e1f vpxor %xmm13, %xmm13, %xmm13 + 0xc5, 0x95, 0x74, 0xc9, //0x00007e24 vpcmpeqb %ymm1, %ymm13, %ymm1 + 0xc4, 0xe2, 0x7d, 0x59, 0x1d, 0xaf, 0xfe, 0xff, 0xff, //0x00007e28 vpbroadcastq $-337(%rip), %ymm3 /* LCPI31_6+0(%rip) */ + 0xc5, 0xf5, 0xdf, 0xcb, //0x00007e31 vpandn %ymm3, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x00007e35 vpxor %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00007e39 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xc3, 0x1d, 0x46, 0xcb, 0x21, //0x00007e3d vperm2i128 $33, %ymm11, %ymm12, %ymm1 + 0xc4, 0xe3, 0x25, 0x0f, 0xd1, 0x0f, //0x00007e43 vpalignr $15, %ymm1, %ymm11, %ymm2 + 0xc5, 0xd5, 0x71, 0xd2, 0x04, //0x00007e49 vpsrlw $4, %ymm2, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007e4e vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x0d, 0x00, 0xed, //0x00007e52 vpshufb %ymm5, %ymm14, %ymm5 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007e57 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007e5b vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x1d, 0x71, 0xd3, 0x04, //0x00007e60 vpsrlw $4, %ymm11, %ymm12 + 0xc5, 0x1d, 0xdb, 0xe4, //0x00007e66 vpand %ymm4, %ymm12, %ymm12 + 0xc4, 0x42, 0x45, 0x00, 0xe4, //0x00007e6a vpshufb %ymm12, %ymm7, %ymm12 + 0xc5, 0x9d, 0xdb, 0xd2, //0x00007e6f vpand %ymm2, %ymm12, %ymm2 + 0xc5, 0xd5, 0xdb, 0xd2, //0x00007e73 vpand %ymm2, %ymm5, %ymm2 + 0xc4, 0xe3, 0x25, 0x0f, 0xe9, 0x0e, //0x00007e77 vpalignr $14, %ymm1, %ymm11, %ymm5 + 0xc4, 0xe3, 0x25, 0x0f, 0xc9, 0x0d, //0x00007e7d vpalignr $13, %ymm1, %ymm11, %ymm1 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007e83 vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007e88 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcd, //0x00007e8d vpor %ymm5, %ymm1, %ymm1 + 0xc5, 0x95, 0x74, 0xc9, //0x00007e91 vpcmpeqb %ymm1, %ymm13, %ymm1 + 0xc5, 0xf5, 0xdf, 0xcb, //0x00007e95 vpandn %ymm3, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x00007e99 vpxor %ymm2, %ymm1, %ymm1 + //0x00007e9d LBB31_8 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00007e9d vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x00007ea1 vpsubusb %ymm10, %ymm11, %ymm1 + 0xc5, 0x7d, 0x7f, 0xda, //0x00007ea6 vmovdqa %ymm11, %ymm2 + 0xe9, 0xf2, 0xfe, 0xff, 0xff, //0x00007eaa jmp LBB31_5 + //0x00007eaf LBB31_9 + 0xc4, 0xc3, 0x6d, 0x46, 0xcf, 0x21, //0x00007eaf vperm2i128 $33, %ymm15, %ymm2, %ymm1 + 0xc4, 0xe3, 0x05, 0x0f, 0xd1, 0x0f, //0x00007eb5 vpalignr $15, %ymm1, %ymm15, %ymm2 + 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007ebb vpsrlw $4, %ymm2, %ymm3 + 0xc5, 0xe5, 0xdb, 0xdc, //0x00007ec0 vpand %ymm4, %ymm3, %ymm3 + 0xc5, 0xfd, 0x6f, 0x2d, 0x34, 0xfd, 0xff, 0xff, //0x00007ec4 vmovdqa $-716(%rip), %ymm5 /* LCPI31_1+0(%rip) */ + 0xc4, 0xe2, 0x55, 0x00, 0xdb, //0x00007ecc vpshufb %ymm3, %ymm5, %ymm3 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007ed1 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007ed5 vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x55, 0x71, 0xd7, 0x04, //0x00007eda vpsrlw $4, %ymm15, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007ee0 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007ee4 vpshufb %ymm5, %ymm7, %ymm5 + 0xc5, 0xed, 0xdb, 0xd5, //0x00007ee9 vpand %ymm5, %ymm2, %ymm2 + 0xc5, 0xe5, 0xdb, 0xd2, //0x00007eed vpand %ymm2, %ymm3, %ymm2 + 0xc4, 0xe3, 0x05, 0x0f, 0xd9, 0x0e, //0x00007ef1 vpalignr $14, %ymm1, %ymm15, %ymm3 + 0xc4, 0xe3, 0x05, 0x0f, 0xc9, 0x0d, //0x00007ef7 vpalignr $13, %ymm1, %ymm15, %ymm1 + 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007efd vpsubusb %ymm8, %ymm3, %ymm3 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007f02 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcb, //0x00007f07 vpor %ymm3, %ymm1, %ymm1 + 0xc5, 0xe1, 0xef, 0xdb, //0x00007f0b vpxor %xmm3, %xmm3, %xmm3 + 0xc5, 0xf5, 0x74, 0xdb, //0x00007f0f vpcmpeqb %ymm3, %ymm1, %ymm3 + 0xc4, 0xe2, 0x7d, 0x59, 0x0d, 0xc4, 0xfd, 0xff, 0xff, //0x00007f13 vpbroadcastq $-572(%rip), %ymm1 /* LCPI31_6+0(%rip) */ + 0xc5, 0xe5, 0xdf, 0xd9, //0x00007f1c vpandn %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0xef, 0xd2, //0x00007f20 vpxor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x54, 0x24, 0x60, //0x00007f24 vmovdqu %ymm2, $96(%rsp) + 0xc4, 0xc3, 0x05, 0x46, 0xdd, 0x21, //0x00007f2a vperm2i128 $33, %ymm13, %ymm15, %ymm3 + 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0f, //0x00007f30 vpalignr $15, %ymm3, %ymm13, %ymm5 + 0xc5, 0x85, 0x71, 0xd5, 0x04, //0x00007f36 vpsrlw $4, %ymm5, %ymm15 + 0xc5, 0x05, 0xdb, 0xfc, //0x00007f3b vpand %ymm4, %ymm15, %ymm15 + 0xc5, 0xfd, 0x6f, 0x15, 0xb9, 0xfc, 0xff, 0xff, //0x00007f3f vmovdqa $-839(%rip), %ymm2 /* LCPI31_1+0(%rip) */ + 0xc4, 0x42, 0x6d, 0x00, 0xff, //0x00007f47 vpshufb %ymm15, %ymm2, %ymm15 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007f4c vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00007f50 vpshufb %ymm5, %ymm6, %ymm5 + 0xc4, 0xc1, 0x6d, 0x71, 0xd5, 0x04, //0x00007f55 vpsrlw $4, %ymm13, %ymm2 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007f5b vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x45, 0x00, 0xd2, //0x00007f5f vpshufb %ymm2, %ymm7, %ymm2 + 0xc5, 0xd5, 0xdb, 0xd2, //0x00007f64 vpand %ymm2, %ymm5, %ymm2 + 0xc5, 0x85, 0xdb, 0xd2, //0x00007f68 vpand %ymm2, %ymm15, %ymm2 + 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0e, //0x00007f6c vpalignr $14, %ymm3, %ymm13, %ymm5 + 0xc4, 0xe3, 0x15, 0x0f, 0xdb, 0x0d, //0x00007f72 vpalignr $13, %ymm3, %ymm13, %ymm3 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007f78 vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00007f7d vpsubusb %ymm9, %ymm3, %ymm3 + 0xc5, 0xe5, 0xeb, 0xdd, //0x00007f82 vpor %ymm5, %ymm3, %ymm3 + 0xc5, 0xe5, 0x74, 0x1d, 0x32, 0xfd, 0xff, 0xff, //0x00007f86 vpcmpeqb $-718(%rip), %ymm3, %ymm3 /* LCPI31_8+0(%rip) */ + 0xc5, 0xe5, 0xdf, 0xd9, //0x00007f8e vpandn %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0xef, 0xd2, //0x00007f92 vpxor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfd, 0xeb, 0x44, 0x24, 0x60, //0x00007f96 vpor $96(%rsp), %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc2, //0x00007f9c vpor %ymm2, %ymm0, %ymm0 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf6, //0x00007fa0 vpmovmskb %ymm14, %esi + 0x85, 0xf6, //0x00007fa5 testl %esi, %esi + 0x0f, 0x84, 0xd6, 0x00, 0x00, 0x00, //0x00007fa7 je LBB31_11 + 0xc4, 0xc3, 0x15, 0x46, 0xd4, 0x21, //0x00007fad vperm2i128 $33, %ymm12, %ymm13, %ymm2 + 0xc4, 0xe3, 0x1d, 0x0f, 0xda, 0x0f, //0x00007fb3 vpalignr $15, %ymm2, %ymm12, %ymm3 + 0xc5, 0xd5, 0x71, 0xd3, 0x04, //0x00007fb9 vpsrlw $4, %ymm3, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007fbe vpand %ymm4, %ymm5, %ymm5 + 0xc5, 0x7d, 0x6f, 0x3d, 0x36, 0xfc, 0xff, 0xff, //0x00007fc2 vmovdqa $-970(%rip), %ymm15 /* LCPI31_1+0(%rip) */ + 0xc4, 0xe2, 0x05, 0x00, 0xed, //0x00007fca vpshufb %ymm5, %ymm15, %ymm5 + 0xc5, 0xe5, 0xdb, 0xdc, //0x00007fcf vpand %ymm4, %ymm3, %ymm3 + 0xc4, 0xe2, 0x4d, 0x00, 0xdb, //0x00007fd3 vpshufb %ymm3, %ymm6, %ymm3 + 0xc4, 0xc1, 0x15, 0x71, 0xd4, 0x04, //0x00007fd8 vpsrlw $4, %ymm12, %ymm13 + 0xc5, 0x15, 0xdb, 0xec, //0x00007fde vpand %ymm4, %ymm13, %ymm13 + 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00007fe2 vpshufb %ymm13, %ymm7, %ymm13 + 0xc5, 0x95, 0xdb, 0xdb, //0x00007fe7 vpand %ymm3, %ymm13, %ymm3 + 0xc5, 0xd5, 0xdb, 0xdb, //0x00007feb vpand %ymm3, %ymm5, %ymm3 + 0xc4, 0xe3, 0x1d, 0x0f, 0xea, 0x0e, //0x00007fef vpalignr $14, %ymm2, %ymm12, %ymm5 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd2, 0x0d, //0x00007ff5 vpalignr $13, %ymm2, %ymm12, %ymm2 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007ffb vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x6d, 0xd8, 0xd1, //0x00008000 vpsubusb %ymm9, %ymm2, %ymm2 + 0xc5, 0xed, 0xeb, 0xd5, //0x00008005 vpor %ymm5, %ymm2, %ymm2 + 0xc4, 0x41, 0x09, 0xef, 0xf6, //0x00008009 vpxor %xmm14, %xmm14, %xmm14 + 0xc5, 0x8d, 0x74, 0xd2, //0x0000800e vpcmpeqb %ymm2, %ymm14, %ymm2 + 0xc5, 0xed, 0xdf, 0xd1, //0x00008012 vpandn %ymm1, %ymm2, %ymm2 + 0xc5, 0xed, 0xef, 0xd3, //0x00008016 vpxor %ymm3, %ymm2, %ymm2 + 0xc4, 0xc3, 0x1d, 0x46, 0xdb, 0x21, //0x0000801a vperm2i128 $33, %ymm11, %ymm12, %ymm3 + 0xc4, 0xe3, 0x25, 0x0f, 0xeb, 0x0f, //0x00008020 vpalignr $15, %ymm3, %ymm11, %ymm5 + 0xc5, 0x9d, 0x71, 0xd5, 0x04, //0x00008026 vpsrlw $4, %ymm5, %ymm12 + 0xc5, 0x1d, 0xdb, 0xe4, //0x0000802b vpand %ymm4, %ymm12, %ymm12 + 0xc4, 0x42, 0x05, 0x00, 0xe4, //0x0000802f vpshufb %ymm12, %ymm15, %ymm12 + 0xc5, 0xd5, 0xdb, 0xec, //0x00008034 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00008038 vpshufb %ymm5, %ymm6, %ymm5 + 0xc4, 0xc1, 0x15, 0x71, 0xd3, 0x04, //0x0000803d vpsrlw $4, %ymm11, %ymm13 + 0xc5, 0x15, 0xdb, 0xec, //0x00008043 vpand %ymm4, %ymm13, %ymm13 + 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00008047 vpshufb %ymm13, %ymm7, %ymm13 + 0xc5, 0x95, 0xdb, 0xed, //0x0000804c vpand %ymm5, %ymm13, %ymm5 + 0xc5, 0x9d, 0xdb, 0xed, //0x00008050 vpand %ymm5, %ymm12, %ymm5 + 0xc4, 0x63, 0x25, 0x0f, 0xe3, 0x0e, //0x00008054 vpalignr $14, %ymm3, %ymm11, %ymm12 + 0xc4, 0xe3, 0x25, 0x0f, 0xdb, 0x0d, //0x0000805a vpalignr $13, %ymm3, %ymm11, %ymm3 + 0xc4, 0x41, 0x1d, 0xd8, 0xe0, //0x00008060 vpsubusb %ymm8, %ymm12, %ymm12 + 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00008065 vpsubusb %ymm9, %ymm3, %ymm3 + 0xc5, 0x9d, 0xeb, 0xdb, //0x0000806a vpor %ymm3, %ymm12, %ymm3 + 0xc5, 0x8d, 0x74, 0xdb, //0x0000806e vpcmpeqb %ymm3, %ymm14, %ymm3 + 0xc5, 0xe5, 0xdf, 0xc9, //0x00008072 vpandn %ymm1, %ymm3, %ymm1 + 0xc5, 0xf5, 0xef, 0xcd, //0x00008076 vpxor %ymm5, %ymm1, %ymm1 + 0xc5, 0xed, 0xeb, 0xc0, //0x0000807a vpor %ymm0, %ymm2, %ymm0 + 0xe9, 0x1a, 0xfe, 0xff, 0xff, //0x0000807e jmp LBB31_8 + //0x00008083 LBB31_11 + 0xc4, 0xc1, 0x15, 0xd8, 0xca, //0x00008083 vpsubusb %ymm10, %ymm13, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00008088 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0x7f, 0xea, //0x0000808c vmovdqa %ymm13, %ymm2 + 0xe9, 0x0c, 0xfd, 0xff, 0xff, //0x00008090 jmp LBB31_5 + //0x00008095 LBB31_13 + 0x48, 0x83, 0xe2, 0x80, //0x00008095 andq $-128, %rdx + 0x4c, 0x01, 0xc2, //0x00008099 addq %r8, %rdx + //0x0000809c LBB31_14 + 0x49, 0x8d, 0x49, 0xc0, //0x0000809c leaq $-64(%r9), %rcx + 0x48, 0x39, 0xca, //0x000080a0 cmpq %rcx, %rdx + 0x0f, 0x83, 0x79, 0x01, 0x00, 0x00, //0x000080a3 jae LBB31_20 + 0x48, 0x89, 0xc6, //0x000080a9 movq %rax, %rsi + 0x48, 0x29, 0xd6, //0x000080ac subq %rdx, %rsi + 0x4a, 0x8d, 0x7c, 0x06, 0xff, //0x000080af leaq $-1(%rsi,%r8), %rdi + 0xc5, 0xfd, 0x6f, 0x1d, 0x24, 0xfb, 0xff, 0xff, //0x000080b4 vmovdqa $-1244(%rip), %ymm3 /* LCPI31_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x3c, 0xfb, 0xff, 0xff, //0x000080bc vmovdqa $-1220(%rip), %ymm4 /* LCPI31_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x54, 0xfb, 0xff, 0xff, //0x000080c4 vmovdqa $-1196(%rip), %ymm5 /* LCPI31_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x6c, 0xfb, 0xff, 0xff, //0x000080cc vmovdqa $-1172(%rip), %ymm6 /* LCPI31_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x3d, 0x84, 0xfb, 0xff, 0xff, //0x000080d4 vmovdqa $-1148(%rip), %ymm7 /* LCPI31_4+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x05, 0x9c, 0xfb, 0xff, 0xff, //0x000080dc vmovdqa $-1124(%rip), %ymm8 /* LCPI31_5+0(%rip) */ + 0xc4, 0x41, 0x31, 0xef, 0xc9, //0x000080e4 vpxor %xmm9, %xmm9, %xmm9 + 0xc5, 0x7d, 0x6f, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x000080e9 vmovdqa $-1105(%rip), %ymm10 /* LCPI31_7+0(%rip) */ + 0x48, 0x89, 0xd6, //0x000080f1 movq %rdx, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000080f4 .p2align 4, 0x90 + //0x00008100 LBB31_16 + 0xc5, 0x7e, 0x6f, 0x26, //0x00008100 vmovdqu (%rsi), %ymm12 + 0xc5, 0x7e, 0x6f, 0x5e, 0x20, //0x00008104 vmovdqu $32(%rsi), %ymm11 + 0xc4, 0x41, 0x25, 0xeb, 0xec, //0x00008109 vpor %ymm12, %ymm11, %ymm13 + 0xc4, 0xc1, 0x7d, 0xd7, 0xdd, //0x0000810e vpmovmskb %ymm13, %ebx + 0x85, 0xdb, //0x00008113 testl %ebx, %ebx + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00008115 jne LBB31_18 + 0xc5, 0xf5, 0xeb, 0xc0, //0x0000811b vpor %ymm0, %ymm1, %ymm0 + 0x48, 0x83, 0xc6, 0x40, //0x0000811f addq $64, %rsi + 0x48, 0x39, 0xce, //0x00008123 cmpq %rcx, %rsi + 0x0f, 0x82, 0xd4, 0xff, 0xff, 0xff, //0x00008126 jb LBB31_16 + 0xe9, 0xea, 0x00, 0x00, 0x00, //0x0000812c jmp LBB31_19 + //0x00008131 LBB31_18 + 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x00008131 vperm2i128 $33, %ymm12, %ymm2, %ymm1 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x00008137 vpalignr $15, %ymm1, %ymm12, %ymm2 + 0xc5, 0x95, 0x71, 0xd2, 0x04, //0x0000813d vpsrlw $4, %ymm2, %ymm13 + 0xc5, 0x15, 0xdb, 0xeb, //0x00008142 vpand %ymm3, %ymm13, %ymm13 + 0xc4, 0x42, 0x5d, 0x00, 0xed, //0x00008146 vpshufb %ymm13, %ymm4, %ymm13 + 0xc5, 0xed, 0xdb, 0xd3, //0x0000814b vpand %ymm3, %ymm2, %ymm2 + 0xc4, 0xe2, 0x55, 0x00, 0xd2, //0x0000814f vpshufb %ymm2, %ymm5, %ymm2 + 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x00008154 vpsrlw $4, %ymm12, %ymm14 + 0xc5, 0x0d, 0xdb, 0xf3, //0x0000815a vpand %ymm3, %ymm14, %ymm14 + 0xc4, 0x42, 0x4d, 0x00, 0xf6, //0x0000815e vpshufb %ymm14, %ymm6, %ymm14 + 0xc5, 0x8d, 0xdb, 0xd2, //0x00008163 vpand %ymm2, %ymm14, %ymm2 + 0xc5, 0x95, 0xdb, 0xd2, //0x00008167 vpand %ymm2, %ymm13, %ymm2 + 0xc4, 0x63, 0x1d, 0x0f, 0xe9, 0x0e, //0x0000816b vpalignr $14, %ymm1, %ymm12, %ymm13 + 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00008171 vpalignr $13, %ymm1, %ymm12, %ymm1 + 0xc5, 0x15, 0xd8, 0xef, //0x00008177 vpsubusb %ymm7, %ymm13, %ymm13 + 0xc4, 0xc1, 0x75, 0xd8, 0xc8, //0x0000817b vpsubusb %ymm8, %ymm1, %ymm1 + 0xc5, 0x95, 0xeb, 0xc9, //0x00008180 vpor %ymm1, %ymm13, %ymm1 + 0xc5, 0xb5, 0x74, 0xc9, //0x00008184 vpcmpeqb %ymm1, %ymm9, %ymm1 + 0xc4, 0x62, 0x7d, 0x59, 0x2d, 0x4f, 0xfb, 0xff, 0xff, //0x00008188 vpbroadcastq $-1201(%rip), %ymm13 /* LCPI31_6+0(%rip) */ + 0xc4, 0xc1, 0x75, 0xdf, 0xcd, //0x00008191 vpandn %ymm13, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x00008196 vpxor %ymm2, %ymm1, %ymm1 + 0xc4, 0xc3, 0x1d, 0x46, 0xd3, 0x21, //0x0000819a vperm2i128 $33, %ymm11, %ymm12, %ymm2 + 0xc4, 0x63, 0x25, 0x0f, 0xe2, 0x0f, //0x000081a0 vpalignr $15, %ymm2, %ymm11, %ymm12 + 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x000081a6 vpsrlw $4, %ymm12, %ymm14 + 0xc5, 0x0d, 0xdb, 0xf3, //0x000081ac vpand %ymm3, %ymm14, %ymm14 + 0xc4, 0x42, 0x5d, 0x00, 0xf6, //0x000081b0 vpshufb %ymm14, %ymm4, %ymm14 + 0xc5, 0x1d, 0xdb, 0xe3, //0x000081b5 vpand %ymm3, %ymm12, %ymm12 + 0xc4, 0x42, 0x55, 0x00, 0xe4, //0x000081b9 vpshufb %ymm12, %ymm5, %ymm12 + 0xc4, 0xc1, 0x05, 0x71, 0xd3, 0x04, //0x000081be vpsrlw $4, %ymm11, %ymm15 + 0xc5, 0x05, 0xdb, 0xfb, //0x000081c4 vpand %ymm3, %ymm15, %ymm15 + 0xc4, 0x42, 0x4d, 0x00, 0xff, //0x000081c8 vpshufb %ymm15, %ymm6, %ymm15 + 0xc4, 0x41, 0x1d, 0xdb, 0xe7, //0x000081cd vpand %ymm15, %ymm12, %ymm12 + 0xc4, 0x41, 0x0d, 0xdb, 0xe4, //0x000081d2 vpand %ymm12, %ymm14, %ymm12 + 0xc4, 0x63, 0x25, 0x0f, 0xf2, 0x0e, //0x000081d7 vpalignr $14, %ymm2, %ymm11, %ymm14 + 0xc4, 0xe3, 0x25, 0x0f, 0xd2, 0x0d, //0x000081dd vpalignr $13, %ymm2, %ymm11, %ymm2 + 0xc5, 0x0d, 0xd8, 0xf7, //0x000081e3 vpsubusb %ymm7, %ymm14, %ymm14 + 0xc4, 0xc1, 0x6d, 0xd8, 0xd0, //0x000081e7 vpsubusb %ymm8, %ymm2, %ymm2 + 0xc5, 0x8d, 0xeb, 0xd2, //0x000081ec vpor %ymm2, %ymm14, %ymm2 + 0xc5, 0xb5, 0x74, 0xd2, //0x000081f0 vpcmpeqb %ymm2, %ymm9, %ymm2 + 0xc4, 0xc1, 0x6d, 0xdf, 0xd5, //0x000081f4 vpandn %ymm13, %ymm2, %ymm2 + 0xc5, 0x9d, 0xef, 0xd2, //0x000081f9 vpxor %ymm2, %ymm12, %ymm2 + 0xc5, 0xf5, 0xeb, 0xc0, //0x000081fd vpor %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc2, //0x00008201 vpor %ymm2, %ymm0, %ymm0 + 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x00008205 vpsubusb %ymm10, %ymm11, %ymm1 + 0xc5, 0x7d, 0x7f, 0xda, //0x0000820a vmovdqa %ymm11, %ymm2 + 0x48, 0x83, 0xc6, 0x40, //0x0000820e addq $64, %rsi + 0x48, 0x39, 0xce, //0x00008212 cmpq %rcx, %rsi + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00008215 jb LBB31_16 + //0x0000821b LBB31_19 + 0x48, 0x83, 0xe7, 0xc0, //0x0000821b andq $-64, %rdi + 0x48, 0x01, 0xfa, //0x0000821f addq %rdi, %rdx + //0x00008222 LBB31_20 + 0xc5, 0xe1, 0xef, 0xdb, //0x00008222 vpxor %xmm3, %xmm3, %xmm3 + 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x40, //0x00008226 vmovdqu %ymm3, $64(%rsp) + 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x20, //0x0000822c vmovdqu %ymm3, $32(%rsp) + 0xc5, 0xd9, 0xef, 0xe4, //0x00008232 vpxor %xmm4, %xmm4, %xmm4 + 0x4c, 0x39, 0xca, //0x00008236 cmpq %r9, %rdx + 0x0f, 0x83, 0x70, 0x00, 0x00, 0x00, //0x00008239 jae LBB31_36 + 0x48, 0x89, 0xc1, //0x0000823f movq %rax, %rcx + 0x48, 0x29, 0xd1, //0x00008242 subq %rdx, %rcx + 0x4d, 0x8d, 0x1c, 0x08, //0x00008245 leaq (%r8,%rcx), %r11 + 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00008249 cmpq $128, %r11 + 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00008250 jb LBB31_22 + 0x48, 0x8d, 0x74, 0x24, 0x20, //0x00008256 leaq $32(%rsp), %rsi + 0x4c, 0x39, 0xce, //0x0000825b cmpq %r9, %rsi + 0x0f, 0x83, 0x74, 0x02, 0x00, 0x00, //0x0000825e jae LBB31_26 + 0x48, 0x8d, 0x4c, 0x0c, 0x20, //0x00008264 leaq $32(%rsp,%rcx), %rcx + 0x4c, 0x01, 0xc1, //0x00008269 addq %r8, %rcx + 0x48, 0x39, 0xca, //0x0000826c cmpq %rcx, %rdx + 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x0000826f jae LBB31_26 + //0x00008275 LBB31_22 + 0x31, 0xc9, //0x00008275 xorl %ecx, %ecx + //0x00008277 LBB31_33 + 0x48, 0x8d, 0x4c, 0x0c, 0x20, //0x00008277 leaq $32(%rsp,%rcx), %rcx + 0x48, 0x29, 0xd0, //0x0000827c subq %rdx, %rax + 0x4c, 0x01, 0xc0, //0x0000827f addq %r8, %rax + 0x31, 0xf6, //0x00008282 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008284 .p2align 4, 0x90 + //0x00008290 LBB31_34 + 0x0f, 0xb6, 0x1c, 0x32, //0x00008290 movzbl (%rdx,%rsi), %ebx + 0x88, 0x1c, 0x31, //0x00008294 movb %bl, (%rcx,%rsi) + 0x48, 0xff, 0xc6, //0x00008297 incq %rsi + 0x48, 0x39, 0xf0, //0x0000829a cmpq %rsi, %rax + 0x0f, 0x85, 0xed, 0xff, 0xff, 0xff, //0x0000829d jne LBB31_34 + //0x000082a3 LBB31_35 + 0xc5, 0xfe, 0x6f, 0x64, 0x24, 0x20, //0x000082a3 vmovdqu $32(%rsp), %ymm4 + 0xc5, 0xfe, 0x6f, 0x5c, 0x24, 0x40, //0x000082a9 vmovdqu $64(%rsp), %ymm3 + //0x000082af LBB31_36 + 0xc5, 0xdd, 0xeb, 0xeb, //0x000082af vpor %ymm3, %ymm4, %ymm5 + 0xc5, 0xfd, 0xd7, 0xc5, //0x000082b3 vpmovmskb %ymm5, %eax + 0x85, 0xc0, //0x000082b7 testl %eax, %eax + 0x0f, 0x85, 0x38, 0x03, 0x00, 0x00, //0x000082b9 jne LBB31_40 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000082bf vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000082c3 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x000082c7 vptest %ymm0, %ymm0 + 0x0f, 0x84, 0xfa, 0x01, 0x00, 0x00, //0x000082cc je LBB31_12 + //0x000082d2 LBB31_41 + 0x49, 0x8d, 0x49, 0xfd, //0x000082d2 leaq $-3(%r9), %rcx + 0x4c, 0x89, 0xc0, //0x000082d6 movq %r8, %rax + 0x49, 0x39, 0xc8, //0x000082d9 cmpq %rcx, %r8 + 0x0f, 0x83, 0xde, 0x00, 0x00, 0x00, //0x000082dc jae LBB31_55 + 0x4c, 0x89, 0xc0, //0x000082e2 movq %r8, %rax + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000082e5 jmp LBB31_44 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000082ea .p2align 4, 0x90 + //0x000082f0 LBB31_43 + 0x48, 0x01, 0xf0, //0x000082f0 addq %rsi, %rax + 0x48, 0x39, 0xc8, //0x000082f3 cmpq %rcx, %rax + 0x0f, 0x83, 0xc4, 0x00, 0x00, 0x00, //0x000082f6 jae LBB31_55 + //0x000082fc LBB31_44 + 0xbe, 0x01, 0x00, 0x00, 0x00, //0x000082fc movl $1, %esi + 0x80, 0x38, 0x00, //0x00008301 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00008304 jns LBB31_43 + 0x8b, 0x10, //0x0000830a movl (%rax), %edx + 0x89, 0xd6, //0x0000830c movl %edx, %esi + 0x81, 0xe6, 0xf0, 0xc0, 0xc0, 0x00, //0x0000830e andl $12632304, %esi + 0x81, 0xfe, 0xe0, 0x80, 0x80, 0x00, //0x00008314 cmpl $8421600, %esi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000831a jne LBB31_48 + 0x89, 0xd7, //0x00008320 movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00008322 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00008328 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000832e je LBB31_48 + 0xbe, 0x03, 0x00, 0x00, 0x00, //0x00008334 movl $3, %esi + 0x85, 0xff, //0x00008339 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000833b jne LBB31_43 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008341 .p2align 4, 0x90 + //0x00008350 LBB31_48 + 0x89, 0xd6, //0x00008350 movl %edx, %esi + 0x81, 0xe6, 0xe0, 0xc0, 0x00, 0x00, //0x00008352 andl $49376, %esi + 0x81, 0xfe, 0xc0, 0x80, 0x00, 0x00, //0x00008358 cmpl $32960, %esi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000835e jne LBB31_50 + 0x89, 0xd7, //0x00008364 movl %edx, %edi + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00008366 movl $2, %esi + 0x83, 0xe7, 0x1e, //0x0000836b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000836e jne LBB31_43 + //0x00008374 LBB31_50 + 0x89, 0xd6, //0x00008374 movl %edx, %esi + 0x81, 0xe6, 0xf8, 0xc0, 0xc0, 0xc0, //0x00008376 andl $-1061109512, %esi + 0x81, 0xfe, 0xf0, 0x80, 0x80, 0x80, //0x0000837c cmpl $-2139062032, %esi + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00008382 jne LBB31_54 + 0x89, 0xd6, //0x00008388 movl %edx, %esi + 0x81, 0xe6, 0x07, 0x30, 0x00, 0x00, //0x0000838a andl $12295, %esi + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00008390 je LBB31_54 + 0xbe, 0x04, 0x00, 0x00, 0x00, //0x00008396 movl $4, %esi + 0xf6, 0xc2, 0x04, //0x0000839b testb $4, %dl + 0x0f, 0x84, 0x4c, 0xff, 0xff, 0xff, //0x0000839e je LBB31_43 + 0x81, 0xe2, 0x03, 0x30, 0x00, 0x00, //0x000083a4 andl $12291, %edx + 0x0f, 0x84, 0x40, 0xff, 0xff, 0xff, //0x000083aa je LBB31_43 + //0x000083b0 LBB31_54 + 0x48, 0xf7, 0xd0, //0x000083b0 notq %rax + 0x4c, 0x01, 0xc0, //0x000083b3 addq %r8, %rax + 0x48, 0x8d, 0x65, 0xf8, //0x000083b6 leaq $-8(%rbp), %rsp + 0x5b, //0x000083ba popq %rbx + 0x5d, //0x000083bb popq %rbp + 0xc5, 0xf8, 0x77, //0x000083bc vzeroupper + 0xc3, //0x000083bf retq + //0x000083c0 LBB31_55 + 0x4c, 0x39, 0xc8, //0x000083c0 cmpq %r9, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x000083c3 jae LBB31_12 + 0x4c, 0x8d, 0x54, 0x24, 0x20, //0x000083c9 leaq $32(%rsp), %r10 + 0x4c, 0x8d, 0x5c, 0x24, 0x1e, //0x000083ce leaq $30(%rsp), %r11 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000083d3 jmp LBB31_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083d8 .p2align 4, 0x90 + //0x000083e0 LBB31_57 + 0x48, 0xff, 0xc0, //0x000083e0 incq %rax + 0x4c, 0x39, 0xc8, //0x000083e3 cmpq %r9, %rax + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x000083e6 jae LBB31_12 + //0x000083ec LBB31_58 + 0x80, 0x38, 0x00, //0x000083ec cmpb $0, (%rax) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x000083ef jns LBB31_57 + 0xc6, 0x44, 0x24, 0x20, 0x00, //0x000083f5 movb $0, $32(%rsp) + 0xc6, 0x44, 0x24, 0x1e, 0x00, //0x000083fa movb $0, $30(%rsp) + 0x4c, 0x89, 0xc9, //0x000083ff movq %r9, %rcx + 0x48, 0x29, 0xc1, //0x00008402 subq %rax, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00008405 cmpq $2, %rcx + 0x0f, 0x82, 0x33, 0x00, 0x00, 0x00, //0x00008409 jb LBB31_62 + 0x0f, 0xb6, 0x10, //0x0000840f movzbl (%rax), %edx + 0x0f, 0xb6, 0x78, 0x01, //0x00008412 movzbl $1(%rax), %edi + 0x88, 0x54, 0x24, 0x20, //0x00008416 movb %dl, $32(%rsp) + 0x48, 0x8d, 0x70, 0x02, //0x0000841a leaq $2(%rax), %rsi + 0x48, 0x83, 0xc1, 0xfe, //0x0000841e addq $-2, %rcx + 0x4c, 0x89, 0xdb, //0x00008422 movq %r11, %rbx + 0x48, 0x85, 0xc9, //0x00008425 testq %rcx, %rcx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00008428 je LBB31_63 + //0x0000842e LBB31_61 + 0x0f, 0xb6, 0x0e, //0x0000842e movzbl (%rsi), %ecx + 0x88, 0x0b, //0x00008431 movb %cl, (%rbx) + 0x0f, 0xb6, 0x54, 0x24, 0x20, //0x00008433 movzbl $32(%rsp), %edx + 0x0f, 0xb6, 0x4c, 0x24, 0x1e, //0x00008438 movzbl $30(%rsp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000843d jmp LBB31_64 + //0x00008442 LBB31_62 + 0x31, 0xd2, //0x00008442 xorl %edx, %edx + 0x31, 0xff, //0x00008444 xorl %edi, %edi + 0x4c, 0x89, 0xd3, //0x00008446 movq %r10, %rbx + 0x48, 0x89, 0xc6, //0x00008449 movq %rax, %rsi + 0x48, 0x85, 0xc9, //0x0000844c testq %rcx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x0000844f jne LBB31_61 + //0x00008455 LBB31_63 + 0x31, 0xc9, //0x00008455 xorl %ecx, %ecx + //0x00008457 LBB31_64 + 0x0f, 0xb6, 0xf1, //0x00008457 movzbl %cl, %esi + 0xc1, 0xe6, 0x10, //0x0000845a shll $16, %esi + 0x40, 0x0f, 0xb6, 0xff, //0x0000845d movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x00008461 shll $8, %edi + 0x0f, 0xb6, 0xca, //0x00008464 movzbl %dl, %ecx + 0x09, 0xf9, //0x00008467 orl %edi, %ecx + 0x09, 0xce, //0x00008469 orl %ecx, %esi + 0x81, 0xe6, 0xf0, 0xc0, 0xc0, 0x00, //0x0000846b andl $12632304, %esi + 0x81, 0xfe, 0xe0, 0x80, 0x80, 0x00, //0x00008471 cmpl $8421600, %esi + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00008477 jne LBB31_67 + 0x89, 0xcf, //0x0000847d movl %ecx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x0000847f andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00008485 cmpl $8205, %edi + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000848b je LBB31_67 + 0xbe, 0x03, 0x00, 0x00, 0x00, //0x00008491 movl $3, %esi + 0x85, 0xff, //0x00008496 testl %edi, %edi + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00008498 jne LBB31_69 + 0x90, 0x90, //0x0000849e .p2align 4, 0x90 + //0x000084a0 LBB31_67 + 0xf6, 0xc2, 0x1e, //0x000084a0 testb $30, %dl + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x000084a3 je LBB31_54 + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000084a9 andl $49376, %ecx + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x000084af movl $2, %esi + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000084b4 cmpl $32960, %ecx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000084ba jne LBB31_54 + //0x000084c0 LBB31_69 + 0x48, 0x01, 0xf0, //0x000084c0 addq %rsi, %rax + 0x4c, 0x39, 0xc8, //0x000084c3 cmpq %r9, %rax + 0x0f, 0x82, 0x20, 0xff, 0xff, 0xff, //0x000084c6 jb LBB31_58 + //0x000084cc LBB31_12 + 0x31, 0xc0, //0x000084cc xorl %eax, %eax + 0x48, 0x8d, 0x65, 0xf8, //0x000084ce leaq $-8(%rbp), %rsp + 0x5b, //0x000084d2 popq %rbx + 0x5d, //0x000084d3 popq %rbp + 0xc5, 0xf8, 0x77, //0x000084d4 vzeroupper + 0xc3, //0x000084d7 retq + //0x000084d8 LBB31_26 + 0x4c, 0x89, 0xd9, //0x000084d8 movq %r11, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x000084db andq $-128, %rcx + 0x48, 0x8d, 0x79, 0x80, //0x000084df leaq $-128(%rcx), %rdi + 0x48, 0x89, 0xfe, //0x000084e3 movq %rdi, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x000084e6 shrq $7, %rsi + 0x48, 0xff, 0xc6, //0x000084ea incq %rsi + 0x41, 0x89, 0xf2, //0x000084ed movl %esi, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x000084f0 andl $1, %r10d + 0x48, 0x85, 0xff, //0x000084f4 testq %rdi, %rdi + 0x0f, 0x84, 0xea, 0x00, 0x00, 0x00, //0x000084f7 je LBB31_39 + 0x4c, 0x29, 0xd6, //0x000084fd subq %r10, %rsi + 0x31, 0xff, //0x00008500 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008502 .p2align 4, 0x90 + //0x00008510 LBB31_28 + 0xc5, 0xfc, 0x10, 0x1c, 0x3a, //0x00008510 vmovups (%rdx,%rdi), %ymm3 + 0xc5, 0xfc, 0x10, 0x64, 0x3a, 0x20, //0x00008515 vmovups $32(%rdx,%rdi), %ymm4 + 0xc5, 0xfc, 0x10, 0x6c, 0x3a, 0x40, //0x0000851b vmovups $64(%rdx,%rdi), %ymm5 + 0xc5, 0xfc, 0x10, 0x74, 0x3a, 0x60, //0x00008521 vmovups $96(%rdx,%rdi), %ymm6 + 0xc5, 0xfc, 0x11, 0x5c, 0x3c, 0x20, //0x00008527 vmovups %ymm3, $32(%rsp,%rdi) + 0xc5, 0xfc, 0x11, 0x64, 0x3c, 0x40, //0x0000852d vmovups %ymm4, $64(%rsp,%rdi) + 0xc5, 0xfc, 0x11, 0x6c, 0x3c, 0x60, //0x00008533 vmovups %ymm5, $96(%rsp,%rdi) + 0xc5, 0xfc, 0x11, 0xb4, 0x3c, 0x80, 0x00, 0x00, 0x00, //0x00008539 vmovups %ymm6, $128(%rsp,%rdi) + 0xc5, 0xfe, 0x6f, 0x9c, 0x3a, 0x80, 0x00, 0x00, 0x00, //0x00008542 vmovdqu $128(%rdx,%rdi), %ymm3 + 0xc5, 0xfe, 0x6f, 0xa4, 0x3a, 0xa0, 0x00, 0x00, 0x00, //0x0000854b vmovdqu $160(%rdx,%rdi), %ymm4 + 0xc5, 0xfe, 0x6f, 0xac, 0x3a, 0xc0, 0x00, 0x00, 0x00, //0x00008554 vmovdqu $192(%rdx,%rdi), %ymm5 + 0xc5, 0xfe, 0x6f, 0xb4, 0x3a, 0xe0, 0x00, 0x00, 0x00, //0x0000855d vmovdqu $224(%rdx,%rdi), %ymm6 + 0xc5, 0xfe, 0x7f, 0x9c, 0x3c, 0xa0, 0x00, 0x00, 0x00, //0x00008566 vmovdqu %ymm3, $160(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xa4, 0x3c, 0xc0, 0x00, 0x00, 0x00, //0x0000856f vmovdqu %ymm4, $192(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xac, 0x3c, 0xe0, 0x00, 0x00, 0x00, //0x00008578 vmovdqu %ymm5, $224(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xb4, 0x3c, 0x00, 0x01, 0x00, 0x00, //0x00008581 vmovdqu %ymm6, $256(%rsp,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x0000858a addq $256, %rdi + 0x48, 0x83, 0xc6, 0xfe, //0x00008591 addq $-2, %rsi + 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x00008595 jne LBB31_28 + 0x4d, 0x85, 0xd2, //0x0000859b testq %r10, %r10 + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x0000859e je LBB31_31 + //0x000085a4 LBB31_30 + 0xc5, 0xfe, 0x6f, 0x1c, 0x3a, //0x000085a4 vmovdqu (%rdx,%rdi), %ymm3 + 0xc5, 0xfe, 0x6f, 0x64, 0x3a, 0x20, //0x000085a9 vmovdqu $32(%rdx,%rdi), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6c, 0x3a, 0x40, //0x000085af vmovdqu $64(%rdx,%rdi), %ymm5 + 0xc5, 0xfe, 0x6f, 0x74, 0x3a, 0x60, //0x000085b5 vmovdqu $96(%rdx,%rdi), %ymm6 + 0xc5, 0xfe, 0x7f, 0x5c, 0x3c, 0x20, //0x000085bb vmovdqu %ymm3, $32(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0x64, 0x3c, 0x40, //0x000085c1 vmovdqu %ymm4, $64(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0x6c, 0x3c, 0x60, //0x000085c7 vmovdqu %ymm5, $96(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xb4, 0x3c, 0x80, 0x00, 0x00, 0x00, //0x000085cd vmovdqu %ymm6, $128(%rsp,%rdi) + //0x000085d6 LBB31_31 + 0x4c, 0x39, 0xd9, //0x000085d6 cmpq %r11, %rcx + 0x0f, 0x84, 0xc4, 0xfc, 0xff, 0xff, //0x000085d9 je LBB31_35 + 0x48, 0x01, 0xca, //0x000085df addq %rcx, %rdx + 0xe9, 0x90, 0xfc, 0xff, 0xff, //0x000085e2 jmp LBB31_33 + //0x000085e7 LBB31_39 + 0x31, 0xff, //0x000085e7 xorl %edi, %edi + 0x4d, 0x85, 0xd2, //0x000085e9 testq %r10, %r10 + 0x0f, 0x85, 0xb2, 0xff, 0xff, 0xff, //0x000085ec jne LBB31_30 + 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x000085f2 jmp LBB31_31 + //0x000085f7 LBB31_40 + 0xc4, 0xe3, 0x6d, 0x46, 0xd4, 0x21, //0x000085f7 vperm2i128 $33, %ymm4, %ymm2, %ymm2 + 0xc4, 0xe3, 0x5d, 0x0f, 0xea, 0x0f, //0x000085fd vpalignr $15, %ymm2, %ymm4, %ymm5 + 0xc5, 0xcd, 0x71, 0xd5, 0x04, //0x00008603 vpsrlw $4, %ymm5, %ymm6 + 0xc5, 0xfd, 0x6f, 0x0d, 0xd0, 0xf5, 0xff, 0xff, //0x00008608 vmovdqa $-2608(%rip), %ymm1 /* LCPI31_0+0(%rip) */ + 0xc5, 0xcd, 0xdb, 0xf1, //0x00008610 vpand %ymm1, %ymm6, %ymm6 + 0xc5, 0xfd, 0x6f, 0x3d, 0xe4, 0xf5, 0xff, 0xff, //0x00008614 vmovdqa $-2588(%rip), %ymm7 /* LCPI31_1+0(%rip) */ + 0xc4, 0xe2, 0x45, 0x00, 0xf6, //0x0000861c vpshufb %ymm6, %ymm7, %ymm6 + 0xc5, 0xd5, 0xdb, 0xe9, //0x00008621 vpand %ymm1, %ymm5, %ymm5 + 0xc5, 0x7d, 0x6f, 0x05, 0xf3, 0xf5, 0xff, 0xff, //0x00008625 vmovdqa $-2573(%rip), %ymm8 /* LCPI31_2+0(%rip) */ + 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x0000862d vpshufb %ymm5, %ymm8, %ymm5 + 0xc5, 0xb5, 0x71, 0xd4, 0x04, //0x00008632 vpsrlw $4, %ymm4, %ymm9 + 0xc5, 0x35, 0xdb, 0xc9, //0x00008637 vpand %ymm1, %ymm9, %ymm9 + 0xc5, 0x7d, 0x6f, 0x15, 0xfd, 0xf5, 0xff, 0xff, //0x0000863b vmovdqa $-2563(%rip), %ymm10 /* LCPI31_3+0(%rip) */ + 0xc4, 0x42, 0x2d, 0x00, 0xc9, //0x00008643 vpshufb %ymm9, %ymm10, %ymm9 + 0xc5, 0xb5, 0xdb, 0xed, //0x00008648 vpand %ymm5, %ymm9, %ymm5 + 0xc5, 0xcd, 0xdb, 0xed, //0x0000864c vpand %ymm5, %ymm6, %ymm5 + 0xc4, 0xe3, 0x5d, 0x0f, 0xf2, 0x0e, //0x00008650 vpalignr $14, %ymm2, %ymm4, %ymm6 + 0xc4, 0xe3, 0x5d, 0x0f, 0xd2, 0x0d, //0x00008656 vpalignr $13, %ymm2, %ymm4, %ymm2 + 0xc5, 0x7d, 0x6f, 0x0d, 0xfc, 0xf5, 0xff, 0xff, //0x0000865c vmovdqa $-2564(%rip), %ymm9 /* LCPI31_4+0(%rip) */ + 0xc4, 0xc1, 0x4d, 0xd8, 0xf1, //0x00008664 vpsubusb %ymm9, %ymm6, %ymm6 + 0xc5, 0x7d, 0x6f, 0x1d, 0x0f, 0xf6, 0xff, 0xff, //0x00008669 vmovdqa $-2545(%rip), %ymm11 /* LCPI31_5+0(%rip) */ + 0xc4, 0xc1, 0x6d, 0xd8, 0xd3, //0x00008671 vpsubusb %ymm11, %ymm2, %ymm2 + 0xc5, 0xed, 0xeb, 0xd6, //0x00008676 vpor %ymm6, %ymm2, %ymm2 + 0xc5, 0xc9, 0xef, 0xf6, //0x0000867a vpxor %xmm6, %xmm6, %xmm6 + 0xc5, 0xed, 0x74, 0xd6, //0x0000867e vpcmpeqb %ymm6, %ymm2, %ymm2 + 0xc4, 0x62, 0x7d, 0x59, 0x25, 0x55, 0xf6, 0xff, 0xff, //0x00008682 vpbroadcastq $-2475(%rip), %ymm12 /* LCPI31_6+0(%rip) */ + 0xc4, 0xc1, 0x6d, 0xdf, 0xd4, //0x0000868b vpandn %ymm12, %ymm2, %ymm2 + 0xc5, 0xed, 0xef, 0xd5, //0x00008690 vpxor %ymm5, %ymm2, %ymm2 + 0xc4, 0xe3, 0x5d, 0x46, 0xe3, 0x21, //0x00008694 vperm2i128 $33, %ymm3, %ymm4, %ymm4 + 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0f, //0x0000869a vpalignr $15, %ymm4, %ymm3, %ymm5 + 0xc5, 0x95, 0x71, 0xd5, 0x04, //0x000086a0 vpsrlw $4, %ymm5, %ymm13 + 0xc5, 0x15, 0xdb, 0xe9, //0x000086a5 vpand %ymm1, %ymm13, %ymm13 + 0xc4, 0xc2, 0x45, 0x00, 0xfd, //0x000086a9 vpshufb %ymm13, %ymm7, %ymm7 + 0xc5, 0xd5, 0xdb, 0xe9, //0x000086ae vpand %ymm1, %ymm5, %ymm5 + 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x000086b2 vpshufb %ymm5, %ymm8, %ymm5 + 0xc5, 0xbd, 0x71, 0xd3, 0x04, //0x000086b7 vpsrlw $4, %ymm3, %ymm8 + 0xc5, 0xbd, 0xdb, 0xc9, //0x000086bc vpand %ymm1, %ymm8, %ymm1 + 0xc4, 0xe2, 0x2d, 0x00, 0xc9, //0x000086c0 vpshufb %ymm1, %ymm10, %ymm1 + 0xc5, 0xd5, 0xdb, 0xc9, //0x000086c5 vpand %ymm1, %ymm5, %ymm1 + 0xc5, 0xc5, 0xdb, 0xc9, //0x000086c9 vpand %ymm1, %ymm7, %ymm1 + 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0e, //0x000086cd vpalignr $14, %ymm4, %ymm3, %ymm5 + 0xc4, 0xe3, 0x65, 0x0f, 0xe4, 0x0d, //0x000086d3 vpalignr $13, %ymm4, %ymm3, %ymm4 + 0xc4, 0xc1, 0x55, 0xd8, 0xe9, //0x000086d9 vpsubusb %ymm9, %ymm5, %ymm5 + 0xc4, 0xc1, 0x5d, 0xd8, 0xe3, //0x000086de vpsubusb %ymm11, %ymm4, %ymm4 + 0xc5, 0xdd, 0xeb, 0xe5, //0x000086e3 vpor %ymm5, %ymm4, %ymm4 + 0xc5, 0xdd, 0x74, 0xe6, //0x000086e7 vpcmpeqb %ymm6, %ymm4, %ymm4 + 0xc4, 0xc1, 0x5d, 0xdf, 0xe4, //0x000086eb vpandn %ymm12, %ymm4, %ymm4 + 0xc5, 0xdd, 0xef, 0xc9, //0x000086f0 vpxor %ymm1, %ymm4, %ymm1 + 0xc5, 0xed, 0xeb, 0xc0, //0x000086f4 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000086f8 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xe5, 0xd8, 0x0d, 0x9c, 0xf5, 0xff, 0xff, //0x000086fc vpsubusb $-2660(%rip), %ymm3, %ymm1 /* LCPI31_7+0(%rip) */ + 0xc5, 0xfd, 0xeb, 0xc1, //0x00008704 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x00008708 vptest %ymm0, %ymm0 + 0x0f, 0x84, 0xb9, 0xfd, 0xff, 0xff, //0x0000870d je LBB31_12 + 0xe9, 0xba, 0xfb, 0xff, 0xff, //0x00008713 jmp LBB31_41 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00008718 .p2align 5, 0x00 + //0x00008720 LCPI32_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008720 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008730 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00008740 .p2align 4, 0x90 + //0x00008740 _f32toa + 0x55, //0x00008740 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008741 movq %rsp, %rbp + 0x41, 0x57, //0x00008744 pushq %r15 + 0x41, 0x56, //0x00008746 pushq %r14 + 0x41, 0x55, //0x00008748 pushq %r13 + 0x41, 0x54, //0x0000874a pushq %r12 + 0x53, //0x0000874c pushq %rbx + 0xc5, 0xf9, 0x7e, 0xc0, //0x0000874d vmovd %xmm0, %eax + 0x89, 0xc1, //0x00008751 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00008753 shrl $23, %ecx + 0x0f, 0xb6, 0xd9, //0x00008756 movzbl %cl, %ebx + 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x00008759 cmpl $255, %ebx + 0x0f, 0x84, 0xff, 0x0c, 0x00, 0x00, //0x0000875f je LBB32_139 + 0xc6, 0x07, 0x2d, //0x00008765 movb $45, (%rdi) + 0x41, 0x89, 0xc1, //0x00008768 movl %eax, %r9d + 0x41, 0xc1, 0xe9, 0x1f, //0x0000876b shrl $31, %r9d + 0x4e, 0x8d, 0x04, 0x0f, //0x0000876f leaq (%rdi,%r9), %r8 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00008773 testl $2147483647, %eax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00008778 je LBB32_14 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x0000877e andl $8388607, %eax + 0x85, 0xdb, //0x00008783 testl %ebx, %ebx + 0x0f, 0x84, 0xe1, 0x0c, 0x00, 0x00, //0x00008785 je LBB32_140 + 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x0000878b leal $8388608(%rax), %esi + 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x00008791 leal $-150(%rbx), %r15d + 0x8d, 0x4b, 0x81, //0x00008798 leal $-127(%rbx), %ecx + 0x83, 0xf9, 0x17, //0x0000879b cmpl $23, %ecx + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x0000879e ja LBB32_5 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x000087a4 movl $150, %ecx + 0x29, 0xd9, //0x000087a9 subl %ebx, %ecx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000087ab movq $-1, %rdx + 0x48, 0xd3, 0xe2, //0x000087b2 shlq %cl, %rdx + 0xf7, 0xd2, //0x000087b5 notl %edx + 0x85, 0xf2, //0x000087b7 testl %esi, %edx + 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x000087b9 je LBB32_32 + //0x000087bf LBB32_5 + 0x41, 0x89, 0xf6, //0x000087bf movl %esi, %r14d + 0x41, 0x83, 0xe6, 0x01, //0x000087c2 andl $1, %r14d + 0x85, 0xc0, //0x000087c6 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x000087c8 sete %al + 0x83, 0xfb, 0x01, //0x000087cb cmpl $1, %ebx + 0x0f, 0x97, 0xc1, //0x000087ce seta %cl + 0x20, 0xc1, //0x000087d1 andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x000087d3 movzbl %cl, %ecx + 0x41, 0x89, 0xf2, //0x000087d6 movl %esi, %r10d + 0x41, 0xc1, 0xe2, 0x02, //0x000087d9 shll $2, %r10d + 0x8d, 0x44, 0xb1, 0xfe, //0x000087dd leal $-2(%rcx,%rsi,4), %eax + 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x000087e1 imull $1262611, %r15d, %r11d + 0x31, 0xd2, //0x000087e8 xorl %edx, %edx + 0x84, 0xc9, //0x000087ea testb %cl, %cl + 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x000087ec movl $524031, %ecx + 0x0f, 0x44, 0xca, //0x000087f1 cmovel %edx, %ecx + 0x41, 0x29, 0xcb, //0x000087f4 subl %ecx, %r11d + 0x41, 0xc1, 0xfb, 0x16, //0x000087f7 sarl $22, %r11d + 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x000087fb imull $-1741647, %r11d, %ecx + 0xc1, 0xe9, 0x13, //0x00008802 shrl $19, %ecx + 0x44, 0x01, 0xf9, //0x00008805 addl %r15d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00008808 movl $31, %edx + 0x44, 0x29, 0xda, //0x0000880d subl %r11d, %edx + 0x48, 0x63, 0xd2, //0x00008810 movslq %edx, %rdx + 0x48, 0x8d, 0x1d, 0x06, 0xb7, 0x00, 0x00, //0x00008813 leaq $46854(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0xfe, 0xc1, //0x0000881a incb %cl + 0xd3, 0xe0, //0x0000881c shll %cl, %eax + 0x4c, 0x8b, 0x24, 0xd3, //0x0000881e movq (%rbx,%rdx,8), %r12 + 0x49, 0xf7, 0xe4, //0x00008822 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00008825 shrq $32, %rax + 0x31, 0xdb, //0x00008829 xorl %ebx, %ebx + 0x83, 0xf8, 0x01, //0x0000882b cmpl $1, %eax + 0x0f, 0x97, 0xc3, //0x0000882e seta %bl + 0x41, 0xd3, 0xe2, //0x00008831 shll %cl, %r10d + 0x09, 0xd3, //0x00008834 orl %edx, %ebx + 0x4c, 0x89, 0xd0, //0x00008836 movq %r10, %rax + 0x49, 0xf7, 0xe4, //0x00008839 mulq %r12 + 0x49, 0x89, 0xd2, //0x0000883c movq %rdx, %r10 + 0x48, 0xc1, 0xe8, 0x20, //0x0000883f shrq $32, %rax + 0x45, 0x31, 0xff, //0x00008843 xorl %r15d, %r15d + 0x83, 0xf8, 0x01, //0x00008846 cmpl $1, %eax + 0x41, 0x0f, 0x97, 0xc7, //0x00008849 seta %r15b + 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x0000884d leal $2(,%rsi,4), %eax + 0xd3, 0xe0, //0x00008854 shll %cl, %eax + 0x45, 0x09, 0xd7, //0x00008856 orl %r10d, %r15d + 0x49, 0xf7, 0xe4, //0x00008859 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x0000885c shrq $32, %rax + 0x31, 0xc9, //0x00008860 xorl %ecx, %ecx + 0x83, 0xf8, 0x01, //0x00008862 cmpl $1, %eax + 0x0f, 0x97, 0xc1, //0x00008865 seta %cl + 0x09, 0xd1, //0x00008868 orl %edx, %ecx + 0x44, 0x01, 0xf3, //0x0000886a addl %r14d, %ebx + 0x44, 0x29, 0xf1, //0x0000886d subl %r14d, %ecx + 0x41, 0x83, 0xff, 0x28, //0x00008870 cmpl $40, %r15d + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00008874 jb LBB32_12 + 0x44, 0x89, 0xd2, //0x0000887a movl %r10d, %edx + 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000887d movl $3435973837, %eax + 0x48, 0x0f, 0xaf, 0xc2, //0x00008882 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00008886 shrq $37, %rax + 0x41, 0x89, 0xde, //0x0000888a movl %ebx, %r14d + 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x0000888d leaq (,%rax,8), %rsi + 0x48, 0x8d, 0x14, 0xb6, //0x00008895 leaq (%rsi,%rsi,4), %rdx + 0x4c, 0x39, 0xf2, //0x00008899 cmpq %r14, %rdx + 0x41, 0x0f, 0x93, 0xc4, //0x0000889c setae %r12b + 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x000088a0 leaq $40(%rsi,%rsi,4), %r14 + 0x89, 0xce, //0x000088a5 movl %ecx, %esi + 0x49, 0x39, 0xf6, //0x000088a7 cmpq %rsi, %r14 + 0x0f, 0x96, 0xc2, //0x000088aa setbe %dl + 0x41, 0x38, 0xd4, //0x000088ad cmpb %dl, %r12b + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x000088b0 je LBB32_12 + 0x45, 0x31, 0xed, //0x000088b6 xorl %r13d, %r13d + 0x49, 0x39, 0xf6, //0x000088b9 cmpq %rsi, %r14 + 0x41, 0x0f, 0x96, 0xc5, //0x000088bc setbe %r13b + 0x41, 0x01, 0xc5, //0x000088c0 addl %eax, %r13d + 0x41, 0xff, 0xc3, //0x000088c3 incl %r11d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x000088c6 cmpl $100000, %r13d + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x000088cd jae LBB32_18 + //0x000088d3 LBB32_8 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000088d3 movl $1, %eax + 0x41, 0x83, 0xfd, 0x0a, //0x000088d8 cmpl $10, %r13d + 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x000088dc jb LBB32_22 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000088e2 movl $2, %eax + 0x41, 0x83, 0xfd, 0x64, //0x000088e7 cmpl $100, %r13d + 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x000088eb jb LBB32_22 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000088f1 movl $3, %eax + 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x000088f6 cmpl $1000, %r13d + 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x000088fd jb LBB32_22 + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008903 cmpl $10000, %r13d + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x0000890a movl $5, %eax + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x0000890f jmp LBB32_21 + //0x00008914 LBB32_12 + 0x4d, 0x89, 0xd6, //0x00008914 movq %r10, %r14 + 0x49, 0xc1, 0xee, 0x02, //0x00008917 shrq $2, %r14 + 0x44, 0x89, 0xd6, //0x0000891b movl %r10d, %esi + 0x83, 0xe6, 0xfc, //0x0000891e andl $-4, %esi + 0x39, 0xf3, //0x00008921 cmpl %esi, %ebx + 0x0f, 0x96, 0xc2, //0x00008923 setbe %dl + 0x8d, 0x5e, 0x04, //0x00008926 leal $4(%rsi), %ebx + 0x39, 0xcb, //0x00008929 cmpl %ecx, %ebx + 0x0f, 0x96, 0xc0, //0x0000892b setbe %al + 0x38, 0xc2, //0x0000892e cmpb %al, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00008930 je LBB32_15 + 0x45, 0x31, 0xed, //0x00008936 xorl %r13d, %r13d + 0x39, 0xcb, //0x00008939 cmpl %ecx, %ebx + 0x41, 0x0f, 0x96, 0xc5, //0x0000893b setbe %r13b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x0000893f jmp LBB32_17 + //0x00008944 LBB32_14 + 0x41, 0xc6, 0x00, 0x30, //0x00008944 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x00008948 subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x0000894b incl %r8d + 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x0000894e jmp LBB32_138 + //0x00008953 LBB32_15 + 0x83, 0xce, 0x02, //0x00008953 orl $2, %esi + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00008956 movl $1, %r13d + 0x41, 0x39, 0xf7, //0x0000895c cmpl %esi, %r15d + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000895f ja LBB32_17 + 0x0f, 0x94, 0xc0, //0x00008965 sete %al + 0x41, 0xc0, 0xea, 0x02, //0x00008968 shrb $2, %r10b + 0x41, 0x20, 0xc2, //0x0000896c andb %al, %r10b + 0x45, 0x0f, 0xb6, 0xea, //0x0000896f movzbl %r10b, %r13d + //0x00008973 LBB32_17 + 0x45, 0x01, 0xf5, //0x00008973 addl %r14d, %r13d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00008976 cmpl $100000, %r13d + 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x0000897d jb LBB32_8 + //0x00008983 LBB32_18 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00008983 movl $6, %eax + 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00008988 cmpl $1000000, %r13d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x0000898f jb LBB32_22 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00008995 movl $7, %eax + 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x0000899a cmpl $10000000, %r13d + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000089a1 jb LBB32_22 + 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x000089a7 cmpl $100000000, %r13d + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x000089ae movl $9, %eax + //0x000089b3 LBB32_21 + 0x83, 0xd8, 0x00, //0x000089b3 sbbl $0, %eax + //0x000089b6 LBB32_22 + 0x46, 0x8d, 0x3c, 0x18, //0x000089b6 leal (%rax,%r11), %r15d + 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x000089ba leal $5(%rax,%r11), %ecx + 0x83, 0xf9, 0x1b, //0x000089bf cmpl $27, %ecx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000089c2 jb LBB32_26 + 0x89, 0xc0, //0x000089c8 movl %eax, %eax + 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x000089ca leaq $1(%r8,%rax), %rbx + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000089cf cmpl $10000, %r13d + 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x000089d6 jb LBB32_30 + 0x44, 0x89, 0xe8, //0x000089dc movl %r13d, %eax + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000089df movl $3518437209, %r11d + 0x4c, 0x0f, 0xaf, 0xd8, //0x000089e5 imulq %rax, %r11 + 0x49, 0xc1, 0xeb, 0x2d, //0x000089e9 shrq $45, %r11 + 0x41, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x000089ed imull $-10000, %r11d, %eax + 0x44, 0x01, 0xe8, //0x000089f4 addl %r13d, %eax + 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x000089f7 je LBB32_62 + 0x89, 0xc1, //0x000089fd movl %eax, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000089ff imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00008a06 shrq $37, %rcx + 0x6b, 0xd1, 0x64, //0x00008a0a imull $100, %ecx, %edx + 0x29, 0xd0, //0x00008a0d subl %edx, %eax + 0x48, 0x8d, 0x15, 0x8a, 0x41, 0x00, 0x00, //0x00008a0f leaq $16778(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x42, //0x00008a16 movzwl (%rdx,%rax,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x00008a1a movw %ax, $-2(%rbx) + 0x0f, 0xb7, 0x04, 0x4a, //0x00008a1e movzwl (%rdx,%rcx,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x00008a22 movw %ax, $-4(%rbx) + 0x45, 0x31, 0xc9, //0x00008a26 xorl %r9d, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00008a29 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x00008a2d cmpl $100, %r11d + 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00008a31 jae LBB32_64 + //0x00008a37 LBB32_31 + 0x44, 0x89, 0xda, //0x00008a37 movl %r11d, %edx + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00008a3a jmp LBB32_66 + //0x00008a3f LBB32_26 + 0x41, 0x89, 0xc4, //0x00008a3f movl %eax, %r12d + 0x45, 0x85, 0xdb, //0x00008a42 testl %r11d, %r11d + 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00008a45 js LBB32_38 + 0x4b, 0x8d, 0x34, 0x20, //0x00008a4b leaq (%r8,%r12), %rsi + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008a4f cmpl $10000, %r13d + 0x0f, 0x82, 0xa7, 0x02, 0x00, 0x00, //0x00008a56 jb LBB32_43 + 0x44, 0x89, 0xe8, //0x00008a5c movl %r13d, %eax + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008a5f movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xc8, //0x00008a64 imulq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00008a68 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00008a6c imull $-10000, %ecx, %eax + 0x44, 0x01, 0xe8, //0x00008a72 addl %r13d, %eax + 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00008a75 imulq $1374389535, %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00008a7c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00008a80 imull $100, %edx, %ebx + 0x29, 0xd8, //0x00008a83 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0x14, 0x41, 0x00, 0x00, //0x00008a85 leaq $16660(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x00008a8c movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x46, 0xfe, //0x00008a90 movw %ax, $-2(%rsi) + 0x48, 0x8d, 0x46, 0xfc, //0x00008a94 leaq $-4(%rsi), %rax + 0x0f, 0xb7, 0x14, 0x53, //0x00008a98 movzwl (%rbx,%rdx,2), %edx + 0x66, 0x89, 0x56, 0xfc, //0x00008a9c movw %dx, $-4(%rsi) + 0x41, 0x89, 0xcd, //0x00008aa0 movl %ecx, %r13d + 0x41, 0x83, 0xfd, 0x64, //0x00008aa3 cmpl $100, %r13d + 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x00008aa7 jae LBB32_44 + //0x00008aad LBB32_29 + 0x44, 0x89, 0xe9, //0x00008aad movl %r13d, %ecx + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00008ab0 jmp LBB32_46 + //0x00008ab5 LBB32_30 + 0x45, 0x31, 0xc9, //0x00008ab5 xorl %r9d, %r9d + 0x48, 0x89, 0xd9, //0x00008ab8 movq %rbx, %rcx + 0x45, 0x89, 0xeb, //0x00008abb movl %r13d, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x00008abe cmpl $100, %r11d + 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00008ac2 jb LBB32_31 + //0x00008ac8 LBB32_64 + 0x48, 0xff, 0xc9, //0x00008ac8 decq %rcx + 0x4c, 0x8d, 0x15, 0xce, 0x40, 0x00, 0x00, //0x00008acb leaq $16590(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008ad2 .p2align 4, 0x90 + //0x00008ae0 LBB32_65 + 0x44, 0x89, 0xda, //0x00008ae0 movl %r11d, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00008ae3 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00008aea shrq $37, %rdx + 0x6b, 0xc2, 0x64, //0x00008aee imull $100, %edx, %eax + 0x44, 0x89, 0xde, //0x00008af1 movl %r11d, %esi + 0x29, 0xc6, //0x00008af4 subl %eax, %esi + 0x41, 0x0f, 0xb7, 0x04, 0x72, //0x00008af6 movzwl (%r10,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xff, //0x00008afb movw %ax, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00008aff addq $-2, %rcx + 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00008b03 cmpl $9999, %r11d + 0x41, 0x89, 0xd3, //0x00008b0a movl %edx, %r11d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00008b0d ja LBB32_65 + //0x00008b13 LBB32_66 + 0x49, 0x8d, 0x70, 0x01, //0x00008b13 leaq $1(%r8), %rsi + 0x83, 0xfa, 0x0a, //0x00008b17 cmpl $10, %edx + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00008b1a jb LBB32_68 + 0x89, 0xd0, //0x00008b20 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x77, 0x40, 0x00, 0x00, //0x00008b22 leaq $16503(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00008b29 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00008b2c movb $1(%rcx,%rax,2), %al + 0x41, 0x88, 0x50, 0x01, //0x00008b30 movb %dl, $1(%r8) + 0x41, 0x88, 0x40, 0x02, //0x00008b34 movb %al, $2(%r8) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00008b38 jmp LBB32_69 + //0x00008b3d LBB32_68 + 0x80, 0xc2, 0x30, //0x00008b3d addb $48, %dl + 0x88, 0x16, //0x00008b40 movb %dl, (%rsi) + //0x00008b42 LBB32_69 + 0x4c, 0x29, 0xcb, //0x00008b42 subq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008b45 .p2align 4, 0x90 + //0x00008b50 LBB32_70 + 0x80, 0x7b, 0xff, 0x30, //0x00008b50 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00008b54 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00008b58 je LBB32_70 + 0x41, 0x88, 0x10, //0x00008b5e movb %dl, (%r8) + 0x48, 0x8d, 0x43, 0x01, //0x00008b61 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00008b65 movq %rax, %rcx + 0x48, 0x29, 0xf1, //0x00008b68 subq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00008b6b cmpq $2, %rcx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00008b6f jl LBB32_73 + 0xc6, 0x06, 0x2e, //0x00008b75 movb $46, (%rsi) + 0x48, 0x89, 0xc3, //0x00008b78 movq %rax, %rbx + //0x00008b7b LBB32_73 + 0xc6, 0x03, 0x65, //0x00008b7b movb $101, (%rbx) + 0x45, 0x85, 0xff, //0x00008b7e testl %r15d, %r15d + 0x0f, 0x8e, 0x41, 0x01, 0x00, 0x00, //0x00008b81 jle LBB32_76 + 0x41, 0xff, 0xcf, //0x00008b87 decl %r15d + 0xc6, 0x43, 0x01, 0x2b, //0x00008b8a movb $43, $1(%rbx) + 0x44, 0x89, 0xf8, //0x00008b8e movl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00008b91 cmpl $100, %eax + 0x0f, 0x8c, 0x43, 0x01, 0x00, 0x00, //0x00008b94 jl LBB32_77 + //0x00008b9a LBB32_75 + 0x89, 0xc1, //0x00008b9a movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00008b9c movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00008ba1 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00008ba5 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x00008ba9 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x00008bac leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x00008baf subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xe8, 0x3f, 0x00, 0x00, //0x00008bb1 leaq $16360(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x00008bb8 movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x00008bbc movw %cx, $2(%rbx) + 0x0c, 0x30, //0x00008bc0 orb $48, %al + 0x88, 0x43, 0x04, //0x00008bc2 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x00008bc5 addq $5, %rbx + 0x49, 0x89, 0xd8, //0x00008bc9 movq %rbx, %r8 + 0xe9, 0x7f, 0x08, 0x00, 0x00, //0x00008bcc jmp LBB32_137 + //0x00008bd1 LBB32_32 + 0xd3, 0xee, //0x00008bd1 shrl %cl, %esi + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00008bd3 cmpl $100000, %esi + 0x0f, 0x82, 0x1a, 0x02, 0x00, 0x00, //0x00008bd9 jb LBB32_52 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00008bdf movl $6, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00008be4 cmpl $1000000, %esi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00008bea jb LBB32_36 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00008bf0 movl $7, %eax + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00008bf5 cmpl $10000000, %esi + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00008bfb jb LBB32_36 + 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00008c01 cmpl $100000000, %esi + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00008c07 movl $9, %eax + 0x48, 0x83, 0xd8, 0x00, //0x00008c0c sbbq $0, %rax + //0x00008c10 LBB32_36 + 0x4c, 0x01, 0xc0, //0x00008c10 addq %r8, %rax + //0x00008c13 LBB32_37 + 0x89, 0xf1, //0x00008c13 movl %esi, %ecx + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008c15 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00008c1a imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00008c1e shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00008c22 imull $-10000, %edx, %ecx + 0x01, 0xf1, //0x00008c28 addl %esi, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x00008c2a imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00008c31 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00008c35 imull $100, %esi, %ebx + 0x29, 0xd9, //0x00008c38 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x5f, 0x3f, 0x00, 0x00, //0x00008c3a leaq $16223(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00008c41 movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00008c45 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x73, //0x00008c49 movzwl (%rbx,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00008c4d movw %cx, $-4(%rax) + 0x49, 0x89, 0xc1, //0x00008c51 movq %rax, %r9 + 0x48, 0x83, 0xc0, 0xfc, //0x00008c54 addq $-4, %rax + 0x89, 0xd6, //0x00008c58 movl %edx, %esi + 0x83, 0xfe, 0x64, //0x00008c5a cmpl $100, %esi + 0x0f, 0x83, 0xd5, 0x01, 0x00, 0x00, //0x00008c5d jae LBB32_56 + 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00008c63 jmp LBB32_58 + //0x00008c68 LBB32_38 + 0x45, 0x85, 0xff, //0x00008c68 testl %r15d, %r15d + 0x0f, 0x8f, 0x90, 0x04, 0x00, 0x00, //0x00008c6b jg LBB32_98 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00008c71 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x00008c77 addq $2, %r8 + 0x45, 0x85, 0xff, //0x00008c7b testl %r15d, %r15d + 0x0f, 0x89, 0x7d, 0x04, 0x00, 0x00, //0x00008c7e jns LBB32_98 + 0x31, 0xf6, //0x00008c84 xorl %esi, %esi + 0x41, 0x83, 0xff, 0x80, //0x00008c86 cmpl $-128, %r15d + 0x0f, 0x87, 0x5a, 0x04, 0x00, 0x00, //0x00008c8a ja LBB32_96 + 0x45, 0x89, 0xfa, //0x00008c90 movl %r15d, %r10d + 0x41, 0xf7, 0xd2, //0x00008c93 notl %r10d + 0x49, 0xff, 0xc2, //0x00008c96 incq %r10 + 0x4c, 0x89, 0xd6, //0x00008c99 movq %r10, %rsi + 0x48, 0x83, 0xe6, 0x80, //0x00008c9c andq $-128, %rsi + 0x48, 0x8d, 0x46, 0x80, //0x00008ca0 leaq $-128(%rsi), %rax + 0x48, 0x89, 0xc1, //0x00008ca4 movq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00008ca7 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x00008cab incq %rcx + 0x41, 0x89, 0xcb, //0x00008cae movl %ecx, %r11d + 0x41, 0x83, 0xe3, 0x03, //0x00008cb1 andl $3, %r11d + 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00008cb5 cmpq $384, %rax + 0x0f, 0x83, 0x38, 0x03, 0x00, 0x00, //0x00008cbb jae LBB32_90 + 0x31, 0xdb, //0x00008cc1 xorl %ebx, %ebx + 0xe9, 0xda, 0x03, 0x00, 0x00, //0x00008cc3 jmp LBB32_92 + //0x00008cc8 LBB32_76 + 0xc6, 0x43, 0x01, 0x2d, //0x00008cc8 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00008ccc movl $1, %eax + 0x44, 0x29, 0xf8, //0x00008cd1 subl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00008cd4 cmpl $100, %eax + 0x0f, 0x8d, 0xbd, 0xfe, 0xff, 0xff, //0x00008cd7 jge LBB32_75 + //0x00008cdd LBB32_77 + 0x83, 0xf8, 0x0a, //0x00008cdd cmpl $10, %eax + 0x0f, 0x8c, 0x02, 0x01, 0x00, 0x00, //0x00008ce0 jl LBB32_79 + 0x48, 0x98, //0x00008ce6 cltq + 0x48, 0x8d, 0x0d, 0xb1, 0x3e, 0x00, 0x00, //0x00008ce8 leaq $16049(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008cef movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00008cf3 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00008cf7 addq $4, %rbx + 0x49, 0x89, 0xd8, //0x00008cfb movq %rbx, %r8 + 0xe9, 0x4d, 0x07, 0x00, 0x00, //0x00008cfe jmp LBB32_137 + //0x00008d03 LBB32_43 + 0x48, 0x89, 0xf0, //0x00008d03 movq %rsi, %rax + 0x41, 0x83, 0xfd, 0x64, //0x00008d06 cmpl $100, %r13d + 0x0f, 0x82, 0x9d, 0xfd, 0xff, 0xff, //0x00008d0a jb LBB32_29 + //0x00008d10 LBB32_44 + 0x48, 0xff, 0xc8, //0x00008d10 decq %rax + 0x4c, 0x8d, 0x15, 0x86, 0x3e, 0x00, 0x00, //0x00008d13 leaq $16006(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d1a .p2align 4, 0x90 + //0x00008d20 LBB32_45 + 0x44, 0x89, 0xe9, //0x00008d20 movl %r13d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008d23 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00008d2a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x00008d2e imull $100, %ecx, %ebx + 0x44, 0x89, 0xea, //0x00008d31 movl %r13d, %edx + 0x29, 0xda, //0x00008d34 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x52, //0x00008d36 movzwl (%r10,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xff, //0x00008d3b movw %dx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00008d3f addq $-2, %rax + 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00008d43 cmpl $9999, %r13d + 0x41, 0x89, 0xcd, //0x00008d4a movl %ecx, %r13d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00008d4d ja LBB32_45 + //0x00008d53 LBB32_46 + 0x49, 0x63, 0xc7, //0x00008d53 movslq %r15d, %rax + 0x83, 0xf9, 0x0a, //0x00008d56 cmpl $10, %ecx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00008d59 jb LBB32_48 + 0x89, 0xc9, //0x00008d5f movl %ecx, %ecx + 0x48, 0x8d, 0x15, 0x38, 0x3e, 0x00, 0x00, //0x00008d61 leaq $15928(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008d68 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00008d6c movw %cx, (%r8) + 0x49, 0x01, 0xc0, //0x00008d70 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00008d73 cmpq %rax, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00008d76 jl LBB32_49 + 0xe9, 0xcf, 0x06, 0x00, 0x00, //0x00008d7c jmp LBB32_137 + //0x00008d81 LBB32_48 + 0x80, 0xc1, 0x30, //0x00008d81 addb $48, %cl + 0x41, 0x88, 0x08, //0x00008d84 movb %cl, (%r8) + 0x49, 0x01, 0xc0, //0x00008d87 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00008d8a cmpq %rax, %r12 + 0x0f, 0x8d, 0xbd, 0x06, 0x00, 0x00, //0x00008d8d jge LBB32_137 + //0x00008d93 LBB32_49 + 0x4b, 0x8d, 0x04, 0x21, //0x00008d93 leaq (%r9,%r12), %rax + 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x00008d97 leaq $1(%rdi,%rax), %r11 + 0x4d, 0x39, 0xc3, //0x00008d9c cmpq %r8, %r11 + 0x4d, 0x0f, 0x46, 0xd8, //0x00008d9f cmovbeq %r8, %r11 + 0x4a, 0x8d, 0x0c, 0x0f, //0x00008da3 leaq (%rdi,%r9), %rcx + 0x4c, 0x01, 0xe1, //0x00008da7 addq %r12, %rcx + 0x49, 0x29, 0xcb, //0x00008daa subq %rcx, %r11 + 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00008dad cmpq $128, %r11 + 0x0f, 0x82, 0x06, 0x02, 0x00, 0x00, //0x00008db4 jb LBB32_87 + 0x4d, 0x89, 0xda, //0x00008dba movq %r11, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x00008dbd andq $-128, %r10 + 0x49, 0x8d, 0x4a, 0x80, //0x00008dc1 leaq $-128(%r10), %rcx + 0x48, 0x89, 0xcb, //0x00008dc5 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00008dc8 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x00008dcc incq %rbx + 0x89, 0xda, //0x00008dcf movl %ebx, %edx + 0x83, 0xe2, 0x03, //0x00008dd1 andl $3, %edx + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x00008dd4 cmpq $384, %rcx + 0x0f, 0x83, 0xe8, 0x00, 0x00, 0x00, //0x00008ddb jae LBB32_80 + 0x31, 0xc0, //0x00008de1 xorl %eax, %eax + 0xe9, 0x88, 0x01, 0x00, 0x00, //0x00008de3 jmp LBB32_82 + //0x00008de8 LBB32_79 + 0x04, 0x30, //0x00008de8 addb $48, %al + 0x88, 0x43, 0x02, //0x00008dea movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x00008ded addq $3, %rbx + 0x49, 0x89, 0xd8, //0x00008df1 movq %rbx, %r8 + 0xe9, 0x57, 0x06, 0x00, 0x00, //0x00008df4 jmp LBB32_137 + //0x00008df9 LBB32_52 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008df9 movl $1, %r9d + 0x83, 0xfe, 0x0a, //0x00008dff cmpl $10, %esi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00008e02 jb LBB32_55 + 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00008e08 movl $2, %r9d + 0x83, 0xfe, 0x64, //0x00008e0e cmpl $100, %esi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008e11 jb LBB32_55 + 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00008e17 movl $3, %r9d + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00008e1d cmpl $1000, %esi + 0x0f, 0x83, 0xab, 0x01, 0x00, 0x00, //0x00008e23 jae LBB32_88 + //0x00008e29 LBB32_55 + 0x4d, 0x01, 0xc1, //0x00008e29 addq %r8, %r9 + 0x4c, 0x89, 0xc8, //0x00008e2c movq %r9, %rax + 0x83, 0xfe, 0x64, //0x00008e2f cmpl $100, %esi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x00008e32 jb LBB32_58 + //0x00008e38 LBB32_56 + 0x48, 0xff, 0xc8, //0x00008e38 decq %rax + 0x4c, 0x8d, 0x15, 0x5e, 0x3d, 0x00, 0x00, //0x00008e3b leaq $15710(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e42 .p2align 4, 0x90 + //0x00008e50 LBB32_57 + 0x89, 0xf3, //0x00008e50 movl %esi, %ebx + 0x89, 0xf6, //0x00008e52 movl %esi, %esi + 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x00008e54 imulq $1374389535, %rsi, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00008e5b shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x00008e5f imull $100, %esi, %ecx + 0x89, 0xda, //0x00008e62 movl %ebx, %edx + 0x29, 0xca, //0x00008e64 subl %ecx, %edx + 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x00008e66 movzwl (%r10,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xff, //0x00008e6b movw %cx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00008e6f addq $-2, %rax + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00008e73 cmpl $9999, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00008e79 ja LBB32_57 + //0x00008e7f LBB32_58 + 0x83, 0xfe, 0x0a, //0x00008e7f cmpl $10, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00008e82 jb LBB32_60 + 0x89, 0xf0, //0x00008e88 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0x0f, 0x3d, 0x00, 0x00, //0x00008e8a leaq $15631(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008e91 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00008e95 movw %ax, (%r8) + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00008e99 jmp LBB32_61 + //0x00008e9e LBB32_60 + 0x40, 0x80, 0xc6, 0x30, //0x00008e9e addb $48, %sil + 0x41, 0x88, 0x30, //0x00008ea2 movb %sil, (%r8) + //0x00008ea5 LBB32_61 + 0x41, 0x29, 0xf9, //0x00008ea5 subl %edi, %r9d + 0x45, 0x89, 0xc8, //0x00008ea8 movl %r9d, %r8d + 0xe9, 0xa3, 0x05, 0x00, 0x00, //0x00008eab jmp LBB32_138 + //0x00008eb0 LBB32_62 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00008eb0 movl $4, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00008eb6 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x00008eba cmpl $100, %r11d + 0x0f, 0x82, 0x73, 0xfb, 0xff, 0xff, //0x00008ebe jb LBB32_31 + 0xe9, 0xff, 0xfb, 0xff, 0xff, //0x00008ec4 jmp LBB32_64 + //0x00008ec9 LBB32_80 + 0x48, 0x29, 0xd3, //0x00008ec9 subq %rdx, %rbx + 0x48, 0x8d, 0x8c, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x00008ecc leaq $480(%rdi,%rax), %rcx + 0x31, 0xc0, //0x00008ed4 xorl %eax, %eax + 0xc5, 0xfd, 0x6f, 0x05, 0x42, 0xf8, 0xff, 0xff, //0x00008ed6 vmovdqa $-1982(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + 0x90, 0x90, //0x00008ede .p2align 4, 0x90 + //0x00008ee0 LBB32_81 + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xfe, 0xff, 0xff, //0x00008ee0 vmovdqu %ymm0, $-480(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xfe, 0xff, 0xff, //0x00008ee9 vmovdqu %ymm0, $-448(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xfe, 0xff, 0xff, //0x00008ef2 vmovdqu %ymm0, $-416(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0xfe, 0xff, 0xff, //0x00008efb vmovdqu %ymm0, $-384(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0xfe, 0xff, 0xff, //0x00008f04 vmovdqu %ymm0, $-352(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0xfe, 0xff, 0xff, //0x00008f0d vmovdqu %ymm0, $-320(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0xfe, 0xff, 0xff, //0x00008f16 vmovdqu %ymm0, $-288(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0xff, 0xff, 0xff, //0x00008f1f vmovdqu %ymm0, $-256(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x00008f28 vmovdqu %ymm0, $-224(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x00008f31 vmovdqu %ymm0, $-192(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x00008f3a vmovdqu %ymm0, $-160(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x80, //0x00008f43 vmovdqu %ymm0, $-128(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xa0, //0x00008f49 vmovdqu %ymm0, $-96(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xc0, //0x00008f4f vmovdqu %ymm0, $-64(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xe0, //0x00008f55 vmovdqu %ymm0, $-32(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x00008f5b vmovdqu %ymm0, (%rcx,%rax) + 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x00008f60 addq $512, %rax + 0x48, 0x83, 0xc3, 0xfc, //0x00008f66 addq $-4, %rbx + 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00008f6a jne LBB32_81 + //0x00008f70 LBB32_82 + 0x48, 0x85, 0xd2, //0x00008f70 testq %rdx, %rdx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00008f73 je LBB32_85 + 0x4c, 0x01, 0xc8, //0x00008f79 addq %r9, %rax + 0x4c, 0x01, 0xe0, //0x00008f7c addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x60, //0x00008f7f leaq $96(%rdi,%rax), %rax + 0x48, 0xf7, 0xda, //0x00008f84 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x91, 0xf7, 0xff, 0xff, //0x00008f87 vmovdqa $-2159(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + 0x90, //0x00008f8f .p2align 4, 0x90 + //0x00008f90 LBB32_84 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00008f90 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00008f95 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00008f9a vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x00008f9f vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00008fa3 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00008fa7 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00008faa jne LBB32_84 + //0x00008fb0 LBB32_85 + 0x4d, 0x39, 0xda, //0x00008fb0 cmpq %r11, %r10 + 0x0f, 0x84, 0x97, 0x04, 0x00, 0x00, //0x00008fb3 je LBB32_137 + 0x4c, 0x01, 0xd6, //0x00008fb9 addq %r10, %rsi + 0x90, 0x90, 0x90, 0x90, //0x00008fbc .p2align 4, 0x90 + //0x00008fc0 LBB32_87 + 0xc6, 0x06, 0x30, //0x00008fc0 movb $48, (%rsi) + 0x48, 0xff, 0xc6, //0x00008fc3 incq %rsi + 0x4c, 0x39, 0xc6, //0x00008fc6 cmpq %r8, %rsi + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00008fc9 jb LBB32_87 + 0xe9, 0x7c, 0x04, 0x00, 0x00, //0x00008fcf jmp LBB32_137 + //0x00008fd4 LBB32_88 + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008fd4 cmpl $10000, %esi + 0x4c, 0x89, 0xc0, //0x00008fda movq %r8, %rax + 0x48, 0x83, 0xd8, 0x00, //0x00008fdd sbbq $0, %rax + 0x48, 0x83, 0xc0, 0x05, //0x00008fe1 addq $5, %rax + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008fe5 cmpl $10000, %esi + 0x0f, 0x83, 0x22, 0xfc, 0xff, 0xff, //0x00008feb jae LBB32_37 + 0x49, 0x89, 0xc1, //0x00008ff1 movq %rax, %r9 + 0xe9, 0x3f, 0xfe, 0xff, 0xff, //0x00008ff4 jmp LBB32_56 + //0x00008ff9 LBB32_90 + 0x49, 0x8d, 0x84, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x00008ff9 leaq $482(%r9,%rdi), %rax + 0x4d, 0x89, 0xde, //0x00009001 movq %r11, %r14 + 0x49, 0x29, 0xce, //0x00009004 subq %rcx, %r14 + 0x31, 0xdb, //0x00009007 xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x05, 0x0f, 0xf7, 0xff, 0xff, //0x00009009 vmovdqa $-2289(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + //0x00009011 LBB32_91 + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xfe, 0xff, 0xff, //0x00009011 vmovdqu %ymm0, $-480(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xfe, 0xff, 0xff, //0x0000901a vmovdqu %ymm0, $-448(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xfe, 0xff, 0xff, //0x00009023 vmovdqu %ymm0, $-416(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x80, 0xfe, 0xff, 0xff, //0x0000902c vmovdqu %ymm0, $-384(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xa0, 0xfe, 0xff, 0xff, //0x00009035 vmovdqu %ymm0, $-352(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xc0, 0xfe, 0xff, 0xff, //0x0000903e vmovdqu %ymm0, $-320(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xe0, 0xfe, 0xff, 0xff, //0x00009047 vmovdqu %ymm0, $-288(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x00, 0xff, 0xff, 0xff, //0x00009050 vmovdqu %ymm0, $-256(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xff, 0xff, 0xff, //0x00009059 vmovdqu %ymm0, $-224(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xff, 0xff, 0xff, //0x00009062 vmovdqu %ymm0, $-192(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xff, 0xff, 0xff, //0x0000906b vmovdqu %ymm0, $-160(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0x80, //0x00009074 vmovdqu %ymm0, $-128(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xa0, //0x0000907a vmovdqu %ymm0, $-96(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xc0, //0x00009080 vmovdqu %ymm0, $-64(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xe0, //0x00009086 vmovdqu %ymm0, $-32(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x18, //0x0000908c vmovdqu %ymm0, (%rax,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x00009091 addq $512, %rbx + 0x49, 0x83, 0xc6, 0x04, //0x00009098 addq $4, %r14 + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x0000909c jne LBB32_91 + //0x000090a2 LBB32_92 + 0x4d, 0x85, 0xdb, //0x000090a2 testq %r11, %r11 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000090a5 je LBB32_95 + 0x4c, 0x01, 0xcb, //0x000090ab addq %r9, %rbx + 0x48, 0x8d, 0x44, 0x1f, 0x62, //0x000090ae leaq $98(%rdi,%rbx), %rax + 0x49, 0xf7, 0xdb, //0x000090b3 negq %r11 + 0xc5, 0xfd, 0x6f, 0x05, 0x62, 0xf6, 0xff, 0xff, //0x000090b6 vmovdqa $-2462(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + //0x000090be LBB32_94 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x000090be vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x000090c3 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x000090c8 vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x000090cd vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x000090d1 subq $-128, %rax + 0x49, 0xff, 0xc3, //0x000090d5 incq %r11 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000090d8 jne LBB32_94 + //0x000090de LBB32_95 + 0x49, 0x01, 0xf0, //0x000090de addq %rsi, %r8 + 0x49, 0x39, 0xf2, //0x000090e1 cmpq %rsi, %r10 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000090e4 je LBB32_98 + //0x000090ea LBB32_96 + 0x44, 0x89, 0xf8, //0x000090ea movl %r15d, %eax + 0xf7, 0xd8, //0x000090ed negl %eax + 0x90, //0x000090ef .p2align 4, 0x90 + //0x000090f0 LBB32_97 + 0x41, 0xc6, 0x00, 0x30, //0x000090f0 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x000090f4 incq %r8 + 0xff, 0xc6, //0x000090f7 incl %esi + 0x39, 0xc6, //0x000090f9 cmpl %eax, %esi + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x000090fb jl LBB32_97 + //0x00009101 LBB32_98 + 0x4b, 0x8d, 0x04, 0x20, //0x00009101 leaq (%r8,%r12), %rax + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00009105 cmpl $10000, %r13d + 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x0000910c jb LBB32_101 + 0x44, 0x89, 0xe9, //0x00009112 movl %r13d, %ecx + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00009115 movl $3518437209, %r10d + 0x4c, 0x0f, 0xaf, 0xd1, //0x0000911b imulq %rcx, %r10 + 0x49, 0xc1, 0xea, 0x2d, //0x0000911f shrq $45, %r10 + 0x41, 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00009123 imull $-10000, %r10d, %ecx + 0x44, 0x01, 0xe9, //0x0000912a addl %r13d, %ecx + 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x0000912d je LBB32_103 + 0x89, 0xca, //0x00009133 movl %ecx, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00009135 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x0000913c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00009140 imull $100, %edx, %ebx + 0x29, 0xd9, //0x00009143 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x54, 0x3a, 0x00, 0x00, //0x00009145 leaq $14932(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x0000914c movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00009150 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x53, //0x00009154 movzwl (%rbx,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00009158 movw %cx, $-4(%rax) + 0x45, 0x31, 0xc9, //0x0000915c xorl %r9d, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x0000915f addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x00009163 cmpl $100, %r10d + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00009167 jae LBB32_105 + //0x0000916d LBB32_102 + 0x44, 0x89, 0xd1, //0x0000916d movl %r10d, %ecx + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00009170 jmp LBB32_107 + //0x00009175 LBB32_101 + 0x45, 0x31, 0xc9, //0x00009175 xorl %r9d, %r9d + 0x45, 0x89, 0xea, //0x00009178 movl %r13d, %r10d + 0x41, 0x83, 0xfa, 0x64, //0x0000917b cmpl $100, %r10d + 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x0000917f jb LBB32_102 + //0x00009185 LBB32_105 + 0x48, 0xff, 0xc8, //0x00009185 decq %rax + 0x48, 0x8d, 0x15, 0x11, 0x3a, 0x00, 0x00, //0x00009188 leaq $14865(%rip), %rdx /* _Digits+0(%rip) */ + 0x90, //0x0000918f .p2align 4, 0x90 + //0x00009190 LBB32_106 + 0x44, 0x89, 0xd1, //0x00009190 movl %r10d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00009193 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x0000919a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x0000919e imull $100, %ecx, %ebx + 0x44, 0x89, 0xd6, //0x000091a1 movl %r10d, %esi + 0x29, 0xde, //0x000091a4 subl %ebx, %esi + 0x0f, 0xb7, 0x34, 0x72, //0x000091a6 movzwl (%rdx,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xff, //0x000091aa movw %si, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000091ae addq $-2, %rax + 0x41, 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x000091b2 cmpl $9999, %r10d + 0x41, 0x89, 0xca, //0x000091b9 movl %ecx, %r10d + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x000091bc ja LBB32_106 + //0x000091c2 LBB32_107 + 0x83, 0xf9, 0x0a, //0x000091c2 cmpl $10, %ecx + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000091c5 jb LBB32_109 + 0x89, 0xc8, //0x000091cb movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xcc, 0x39, 0x00, 0x00, //0x000091cd leaq $14796(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000091d4 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x000091d8 movw %ax, (%r8) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000091dc jmp LBB32_110 + //0x000091e1 LBB32_109 + 0x80, 0xc1, 0x30, //0x000091e1 addb $48, %cl + 0x41, 0x88, 0x08, //0x000091e4 movb %cl, (%r8) + //0x000091e7 LBB32_110 + 0x4d, 0x29, 0xcc, //0x000091e7 subq %r9, %r12 + 0x49, 0x8d, 0x74, 0x24, 0x01, //0x000091ea leaq $1(%r12), %rsi + 0x49, 0x8d, 0x54, 0x24, 0x61, //0x000091ef leaq $97(%r12), %rdx + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x000091f4 leaq $2(%r12), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000091f9 .p2align 4, 0x90 + //0x00009200 LBB32_111 + 0x48, 0xff, 0xca, //0x00009200 decq %rdx + 0x48, 0xff, 0xce, //0x00009203 decq %rsi + 0x48, 0xff, 0xc8, //0x00009206 decq %rax + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00009209 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000920f leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00009214 je LBB32_111 + 0x4d, 0x8d, 0x0c, 0x30, //0x0000921a leaq (%r8,%rsi), %r9 + 0x45, 0x85, 0xff, //0x0000921e testl %r15d, %r15d + 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00009221 jle LBB32_116 + 0x44, 0x89, 0xc9, //0x00009227 movl %r9d, %ecx + 0x44, 0x29, 0xc1, //0x0000922a subl %r8d, %ecx + 0x41, 0x39, 0xcf, //0x0000922d cmpl %ecx, %r15d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00009230 jge LBB32_117 + 0x43, 0x8d, 0x0c, 0x07, //0x00009236 leal (%r15,%r8), %ecx + 0x41, 0x29, 0xc9, //0x0000923a subl %ecx, %r9d + 0x49, 0x8d, 0x49, 0xff, //0x0000923d leaq $-1(%r9), %rcx + 0x45, 0x89, 0xca, //0x00009241 movl %r9d, %r10d + 0x41, 0x83, 0xe2, 0x03, //0x00009244 andl $3, %r10d + 0x48, 0x83, 0xf9, 0x03, //0x00009248 cmpq $3, %rcx + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x0000924c jae LBB32_121 + 0x31, 0xc9, //0x00009252 xorl %ecx, %ecx + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00009254 jmp LBB32_124 + //0x00009259 LBB32_117 + 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x00009259 jle LBB32_116 + 0x45, 0x01, 0xc7, //0x0000925f addl %r8d, %r15d + 0x45, 0x89, 0xce, //0x00009262 movl %r9d, %r14d + 0x41, 0xf7, 0xd6, //0x00009265 notl %r14d + 0x45, 0x01, 0xfe, //0x00009268 addl %r15d, %r14d + 0x45, 0x31, 0xd2, //0x0000926b xorl %r10d, %r10d + 0x4d, 0x89, 0xcb, //0x0000926e movq %r9, %r11 + 0x41, 0x83, 0xfe, 0x7e, //0x00009271 cmpl $126, %r14d + 0x0f, 0x86, 0xb4, 0x01, 0x00, 0x00, //0x00009275 jbe LBB32_135 + 0x49, 0xff, 0xc6, //0x0000927b incq %r14 + 0x4d, 0x89, 0xf2, //0x0000927e movq %r14, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x00009281 andq $-128, %r10 + 0x4f, 0x8d, 0x1c, 0x10, //0x00009285 leaq (%r8,%r10), %r11 + 0x49, 0x8d, 0x5a, 0x80, //0x00009289 leaq $-128(%r10), %rbx + 0x48, 0x89, 0xd9, //0x0000928d movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00009290 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x00009294 incq %rcx + 0x41, 0x89, 0xcc, //0x00009297 movl %ecx, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x0000929a andl $3, %r12d + 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x0000929e cmpq $384, %rbx + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x000092a5 jae LBB32_129 + 0x31, 0xc9, //0x000092ab xorl %ecx, %ecx + 0xe9, 0x30, 0x01, 0x00, 0x00, //0x000092ad jmp LBB32_131 + //0x000092b2 LBB32_116 + 0x4d, 0x89, 0xc8, //0x000092b2 movq %r9, %r8 + 0xe9, 0x96, 0x01, 0x00, 0x00, //0x000092b5 jmp LBB32_137 + //0x000092ba LBB32_103 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000092ba movl $4, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x000092c0 addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x000092c4 cmpl $100, %r10d + 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x000092c8 jb LBB32_102 + 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x000092ce jmp LBB32_105 + //0x000092d3 LBB32_121 + 0x4d, 0x89, 0xd3, //0x000092d3 movq %r10, %r11 + 0x4d, 0x29, 0xcb, //0x000092d6 subq %r9, %r11 + 0x31, 0xc9, //0x000092d9 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000092db .p2align 4, 0x90 + //0x000092e0 LBB32_122 + 0x49, 0x8d, 0x1c, 0x08, //0x000092e0 leaq (%r8,%rcx), %rbx + 0x8b, 0x54, 0x1e, 0xfc, //0x000092e4 movl $-4(%rsi,%rbx), %edx + 0x89, 0x54, 0x1e, 0xfd, //0x000092e8 movl %edx, $-3(%rsi,%rbx) + 0x48, 0x83, 0xc1, 0xfc, //0x000092ec addq $-4, %rcx + 0x49, 0x39, 0xcb, //0x000092f0 cmpq %rcx, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x000092f3 jne LBB32_122 + 0x48, 0xf7, 0xd9, //0x000092f9 negq %rcx + //0x000092fc LBB32_124 + 0x4d, 0x85, 0xd2, //0x000092fc testq %r10, %r10 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000092ff je LBB32_127 + 0x49, 0xf7, 0xda, //0x00009305 negq %r10 + 0x4c, 0x89, 0xc2, //0x00009308 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x0000930b subq %rcx, %rdx + 0x31, 0xc9, //0x0000930e xorl %ecx, %ecx + //0x00009310 .p2align 4, 0x90 + //0x00009310 LBB32_126 + 0x48, 0x8d, 0x34, 0x0a, //0x00009310 leaq (%rdx,%rcx), %rsi + 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00009314 movzbl (%r12,%rsi), %ebx + 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00009319 movb %bl, $1(%r12,%rsi) + 0x48, 0xff, 0xc9, //0x0000931e decq %rcx + 0x49, 0x39, 0xca, //0x00009321 cmpq %rcx, %r10 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00009324 jne LBB32_126 + //0x0000932a LBB32_127 + 0x49, 0x63, 0xcf, //0x0000932a movslq %r15d, %rcx + 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x0000932d movb $46, (%r8,%rcx) + 0x49, 0x01, 0xc0, //0x00009332 addq %rax, %r8 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x00009335 jmp LBB32_137 + //0x0000933a LBB32_129 + 0x4c, 0x89, 0xe3, //0x0000933a movq %r12, %rbx + 0x48, 0x29, 0xcb, //0x0000933d subq %rcx, %rbx + 0x31, 0xc9, //0x00009340 xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0xd6, 0xf3, 0xff, 0xff, //0x00009342 vmovdqa $-3114(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + //0x0000934a LBB32_130 + 0x49, 0x8d, 0x04, 0x08, //0x0000934a leaq (%r8,%rcx), %rax + 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x0000934e vmovdqu %ymm0, (%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x20, //0x00009353 vmovdqu %ymm0, $32(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x40, //0x00009359 vmovdqu %ymm0, $64(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x60, //0x0000935f vmovdqu %ymm0, $96(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x00, 0x00, 0x00, //0x00009365 vmovdqu %ymm0, $128(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x00, 0x00, 0x00, //0x0000936e vmovdqu %ymm0, $160(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x00, 0x00, 0x00, //0x00009377 vmovdqu %ymm0, $192(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x00, 0x00, 0x00, //0x00009380 vmovdqu %ymm0, $224(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0x01, 0x00, 0x00, //0x00009389 vmovdqu %ymm0, $256(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0x01, 0x00, 0x00, //0x00009392 vmovdqu %ymm0, $288(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0x01, 0x00, 0x00, //0x0000939b vmovdqu %ymm0, $320(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0x01, 0x00, 0x00, //0x000093a4 vmovdqu %ymm0, $352(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x01, 0x00, 0x00, //0x000093ad vmovdqu %ymm0, $384(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x01, 0x00, 0x00, //0x000093b6 vmovdqu %ymm0, $416(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x01, 0x00, 0x00, //0x000093bf vmovdqu %ymm0, $448(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x01, 0x00, 0x00, //0x000093c8 vmovdqu %ymm0, $480(%rsi,%rax) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x000093d1 addq $512, %rcx + 0x48, 0x83, 0xc3, 0x04, //0x000093d8 addq $4, %rbx + 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000093dc jne LBB32_130 + //0x000093e2 LBB32_131 + 0x49, 0x01, 0xf3, //0x000093e2 addq %rsi, %r11 + 0x4d, 0x85, 0xe4, //0x000093e5 testq %r12, %r12 + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000093e8 je LBB32_134 + 0x49, 0x01, 0xc8, //0x000093ee addq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x000093f1 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x000093f4 negq %r12 + 0xc5, 0xfd, 0x6f, 0x05, 0x21, 0xf3, 0xff, 0xff, //0x000093f7 vmovdqa $-3295(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + //0x000093ff LBB32_133 + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x000093ff vmovdqu %ymm0, $-96(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x00009405 vmovdqu %ymm0, $-64(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x0000940b vmovdqu %ymm0, $-32(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00009411 vmovdqu %ymm0, (%r8) + 0x49, 0x83, 0xe8, 0x80, //0x00009416 subq $-128, %r8 + 0x49, 0xff, 0xc4, //0x0000941a incq %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000941d jne LBB32_133 + //0x00009423 LBB32_134 + 0x4d, 0x89, 0xd8, //0x00009423 movq %r11, %r8 + 0x4d, 0x39, 0xd6, //0x00009426 cmpq %r10, %r14 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00009429 je LBB32_137 + //0x0000942f LBB32_135 + 0x45, 0x29, 0xd7, //0x0000942f subl %r10d, %r15d + 0x45, 0x29, 0xcf, //0x00009432 subl %r9d, %r15d + 0x4d, 0x89, 0xd8, //0x00009435 movq %r11, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009438 .p2align 4, 0x90 + //0x00009440 LBB32_136 + 0x41, 0xc6, 0x00, 0x30, //0x00009440 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00009444 incq %r8 + 0x41, 0xff, 0xcf, //0x00009447 decl %r15d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000944a jne LBB32_136 + //0x00009450 LBB32_137 + 0x41, 0x29, 0xf8, //0x00009450 subl %edi, %r8d + //0x00009453 LBB32_138 + 0x44, 0x89, 0xc0, //0x00009453 movl %r8d, %eax + 0x5b, //0x00009456 popq %rbx + 0x41, 0x5c, //0x00009457 popq %r12 + 0x41, 0x5d, //0x00009459 popq %r13 + 0x41, 0x5e, //0x0000945b popq %r14 + 0x41, 0x5f, //0x0000945d popq %r15 + 0x5d, //0x0000945f popq %rbp + 0xc5, 0xf8, 0x77, //0x00009460 vzeroupper + 0xc3, //0x00009463 retq + //0x00009464 LBB32_139 + 0x45, 0x31, 0xc0, //0x00009464 xorl %r8d, %r8d + 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x00009467 jmp LBB32_138 + //0x0000946c LBB32_140 + 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x0000946c movl $-149, %r15d + 0x89, 0xc6, //0x00009472 movl %eax, %esi + 0xe9, 0x46, 0xf3, 0xff, 0xff, //0x00009474 jmp LBB32_5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009479 .p2align 4, 0x00 + //0x00009480 LCPI33_0 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00009480 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' + //0x00009490 LCPI33_1 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00009490 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x000094a0 LCPI33_2 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000094a0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000094b0 .p2align 5, 0x00 + //0x000094c0 LCPI33_3 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x000094c0 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x000094d0 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x000094e0 LCPI33_4 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x000094e0 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x000094f0 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x00009500 LCPI33_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00009500 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00009510 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00009520 .p2align 4, 0x90 + //0x00009520 _to_lower + 0x55, //0x00009520 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009521 movq %rsp, %rbp + 0x53, //0x00009524 pushq %rbx + 0x31, 0xc0, //0x00009525 xorl %eax, %eax + 0xc5, 0xf9, 0x6f, 0x05, 0x51, 0xff, 0xff, 0xff, //0x00009527 vmovdqa $-175(%rip), %xmm0 /* LCPI33_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x59, 0xff, 0xff, 0xff, //0x0000952f vmovdqa $-167(%rip), %xmm1 /* LCPI33_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x61, 0xff, 0xff, 0xff, //0x00009537 vmovdqa $-159(%rip), %xmm2 /* LCPI33_2+0(%rip) */ + 0x48, 0x89, 0xd3, //0x0000953f movq %rdx, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009542 .p2align 4, 0x90 + //0x00009550 LBB33_1 + 0xc5, 0xfa, 0x6f, 0x1c, 0x06, //0x00009550 vmovdqu (%rsi,%rax), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x00009555 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x00009559 vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x0000955d vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x00009561 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00009565 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x0000956a vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x1c, 0x07, //0x0000956e vmovdqu %xmm3, (%rdi,%rax) + 0x48, 0x83, 0xc3, 0xf0, //0x00009573 addq $-16, %rbx + 0x48, 0x83, 0xc0, 0x10, //0x00009577 addq $16, %rax + 0x48, 0x83, 0xfb, 0x0f, //0x0000957b cmpq $15, %rbx + 0x0f, 0x87, 0xcb, 0xff, 0xff, 0xff, //0x0000957f ja LBB33_1 + 0x49, 0x89, 0xd2, //0x00009585 movq %rdx, %r10 + 0x49, 0x29, 0xc2, //0x00009588 subq %rax, %r10 + 0x0f, 0x84, 0xb6, 0x01, 0x00, 0x00, //0x0000958b je LBB33_16 + 0x4c, 0x8d, 0x0c, 0x07, //0x00009591 leaq (%rdi,%rax), %r9 + 0x4c, 0x8d, 0x04, 0x06, //0x00009595 leaq (%rsi,%rax), %r8 + 0x48, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00009599 cmpq $128, %rbx + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x000095a0 jb LBB33_4 + 0x49, 0x83, 0xc2, 0x10, //0x000095a6 addq $16, %r10 + 0x48, 0x8d, 0x4c, 0x06, 0xf0, //0x000095aa leaq $-16(%rsi,%rax), %rcx + 0x4c, 0x01, 0xd1, //0x000095af addq %r10, %rcx + 0x49, 0x39, 0xc9, //0x000095b2 cmpq %rcx, %r9 + 0x0f, 0x83, 0xad, 0x00, 0x00, 0x00, //0x000095b5 jae LBB33_8 + 0x48, 0x8d, 0x4c, 0x07, 0xf0, //0x000095bb leaq $-16(%rdi,%rax), %rcx + 0x4c, 0x01, 0xd1, //0x000095c0 addq %r10, %rcx + 0x49, 0x39, 0xc8, //0x000095c3 cmpq %rcx, %r8 + 0x0f, 0x83, 0x9c, 0x00, 0x00, 0x00, //0x000095c6 jae LBB33_8 + //0x000095cc LBB33_4 + 0x48, 0x89, 0xda, //0x000095cc movq %rbx, %rdx + //0x000095cf LBB33_11 + 0xf6, 0xc2, 0x01, //0x000095cf testb $1, %dl + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x000095d2 jne LBB33_13 + 0x48, 0x89, 0xd0, //0x000095d8 movq %rdx, %rax + 0x48, 0x83, 0xfa, 0x01, //0x000095db cmpq $1, %rdx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000095df jne LBB33_14 + 0xe9, 0x5d, 0x01, 0x00, 0x00, //0x000095e5 jmp LBB33_16 + //0x000095ea LBB33_13 + 0x41, 0x0f, 0xb6, 0x00, //0x000095ea movzbl (%r8), %eax + 0x8d, 0x48, 0xbf, //0x000095ee leal $-65(%rax), %ecx + 0x8d, 0x70, 0x20, //0x000095f1 leal $32(%rax), %esi + 0x80, 0xf9, 0x1a, //0x000095f4 cmpb $26, %cl + 0x40, 0x0f, 0xb6, 0xce, //0x000095f7 movzbl %sil, %ecx + 0x0f, 0x43, 0xc8, //0x000095fb cmovael %eax, %ecx + 0x48, 0x8d, 0x42, 0xff, //0x000095fe leaq $-1(%rdx), %rax + 0x41, 0x88, 0x09, //0x00009602 movb %cl, (%r9) + 0x49, 0xff, 0xc0, //0x00009605 incq %r8 + 0x49, 0xff, 0xc1, //0x00009608 incq %r9 + 0x48, 0x83, 0xfa, 0x01, //0x0000960b cmpq $1, %rdx + 0x0f, 0x84, 0x32, 0x01, 0x00, 0x00, //0x0000960f je LBB33_16 + //0x00009615 LBB33_14 + 0x31, 0xc9, //0x00009615 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009617 .p2align 4, 0x90 + //0x00009620 LBB33_15 + 0x41, 0x0f, 0xb6, 0x14, 0x08, //0x00009620 movzbl (%r8,%rcx), %edx + 0x8d, 0x72, 0xbf, //0x00009625 leal $-65(%rdx), %esi + 0x8d, 0x7a, 0x20, //0x00009628 leal $32(%rdx), %edi + 0x40, 0x80, 0xfe, 0x1a, //0x0000962b cmpb $26, %sil + 0x40, 0x0f, 0xb6, 0xf7, //0x0000962f movzbl %dil, %esi + 0x0f, 0x43, 0xf2, //0x00009633 cmovael %edx, %esi + 0x41, 0x88, 0x34, 0x09, //0x00009636 movb %sil, (%r9,%rcx) + 0x41, 0x0f, 0xb6, 0x54, 0x08, 0x01, //0x0000963a movzbl $1(%r8,%rcx), %edx + 0x8d, 0x72, 0xbf, //0x00009640 leal $-65(%rdx), %esi + 0x8d, 0x7a, 0x20, //0x00009643 leal $32(%rdx), %edi + 0x40, 0x80, 0xfe, 0x1a, //0x00009646 cmpb $26, %sil + 0x40, 0x0f, 0xb6, 0xf7, //0x0000964a movzbl %dil, %esi + 0x0f, 0x43, 0xf2, //0x0000964e cmovael %edx, %esi + 0x41, 0x88, 0x74, 0x09, 0x01, //0x00009651 movb %sil, $1(%r9,%rcx) + 0x48, 0x83, 0xc1, 0x02, //0x00009656 addq $2, %rcx + 0x48, 0x39, 0xc8, //0x0000965a cmpq %rcx, %rax + 0x0f, 0x85, 0xbd, 0xff, 0xff, 0xff, //0x0000965d jne LBB33_15 + 0xe9, 0xdf, 0x00, 0x00, 0x00, //0x00009663 jmp LBB33_16 + //0x00009668 LBB33_8 + 0x49, 0x89, 0xda, //0x00009668 movq %rbx, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x0000966b andq $-128, %r10 + 0x4e, 0x8d, 0x04, 0x16, //0x0000966f leaq (%rsi,%r10), %r8 + 0x49, 0x01, 0xc0, //0x00009673 addq %rax, %r8 + 0x4c, 0x29, 0xd2, //0x00009676 subq %r10, %rdx + 0x48, 0x29, 0xc2, //0x00009679 subq %rax, %rdx + 0x4e, 0x8d, 0x0c, 0x17, //0x0000967c leaq (%rdi,%r10), %r9 + 0x49, 0x01, 0xc1, //0x00009680 addq %rax, %r9 + 0x45, 0x31, 0xdb, //0x00009683 xorl %r11d, %r11d + 0xc5, 0xfd, 0x6f, 0x05, 0x32, 0xfe, 0xff, 0xff, //0x00009686 vmovdqa $-462(%rip), %ymm0 /* LCPI33_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x4a, 0xfe, 0xff, 0xff, //0x0000968e vmovdqa $-438(%rip), %ymm1 /* LCPI33_4+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x62, 0xfe, 0xff, 0xff, //0x00009696 vmovdqa $-414(%rip), %ymm2 /* LCPI33_5+0(%rip) */ + 0x90, 0x90, //0x0000969e .p2align 4, 0x90 + //0x000096a0 LBB33_9 + 0x4a, 0x8d, 0x0c, 0x1e, //0x000096a0 leaq (%rsi,%r11), %rcx + 0xc5, 0xfe, 0x6f, 0x1c, 0x08, //0x000096a4 vmovdqu (%rax,%rcx), %ymm3 + 0xc5, 0xfe, 0x6f, 0x64, 0x08, 0x20, //0x000096a9 vmovdqu $32(%rax,%rcx), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6c, 0x08, 0x40, //0x000096af vmovdqu $64(%rax,%rcx), %ymm5 + 0xc5, 0xfe, 0x6f, 0x74, 0x08, 0x60, //0x000096b5 vmovdqu $96(%rax,%rcx), %ymm6 + 0xc5, 0xe5, 0xfc, 0xf8, //0x000096bb vpaddb %ymm0, %ymm3, %ymm7 + 0xc5, 0x5d, 0xfc, 0xc0, //0x000096bf vpaddb %ymm0, %ymm4, %ymm8 + 0xc5, 0x55, 0xfc, 0xc8, //0x000096c3 vpaddb %ymm0, %ymm5, %ymm9 + 0xc5, 0x4d, 0xfc, 0xd0, //0x000096c7 vpaddb %ymm0, %ymm6, %ymm10 + 0xc5, 0x45, 0xda, 0xd9, //0x000096cb vpminub %ymm1, %ymm7, %ymm11 + 0xc5, 0xa5, 0x74, 0xff, //0x000096cf vpcmpeqb %ymm7, %ymm11, %ymm7 + 0xc5, 0x3d, 0xda, 0xd9, //0x000096d3 vpminub %ymm1, %ymm8, %ymm11 + 0xc4, 0x41, 0x3d, 0x74, 0xc3, //0x000096d7 vpcmpeqb %ymm11, %ymm8, %ymm8 + 0xc5, 0x35, 0xda, 0xd9, //0x000096dc vpminub %ymm1, %ymm9, %ymm11 + 0xc4, 0x41, 0x35, 0x74, 0xcb, //0x000096e0 vpcmpeqb %ymm11, %ymm9, %ymm9 + 0xc5, 0x2d, 0xda, 0xd9, //0x000096e5 vpminub %ymm1, %ymm10, %ymm11 + 0xc4, 0x41, 0x2d, 0x74, 0xd3, //0x000096e9 vpcmpeqb %ymm11, %ymm10, %ymm10 + 0xc5, 0x65, 0xfc, 0xda, //0x000096ee vpaddb %ymm2, %ymm3, %ymm11 + 0xc5, 0x5d, 0xfc, 0xe2, //0x000096f2 vpaddb %ymm2, %ymm4, %ymm12 + 0xc5, 0x55, 0xfc, 0xea, //0x000096f6 vpaddb %ymm2, %ymm5, %ymm13 + 0xc5, 0x4d, 0xfc, 0xf2, //0x000096fa vpaddb %ymm2, %ymm6, %ymm14 + 0xc4, 0xc3, 0x65, 0x4c, 0xdb, 0x70, //0x000096fe vpblendvb %ymm7, %ymm11, %ymm3, %ymm3 + 0xc4, 0xc3, 0x5d, 0x4c, 0xe4, 0x80, //0x00009704 vpblendvb %ymm8, %ymm12, %ymm4, %ymm4 + 0xc4, 0xc3, 0x55, 0x4c, 0xed, 0x90, //0x0000970a vpblendvb %ymm9, %ymm13, %ymm5, %ymm5 + 0xc4, 0xc3, 0x4d, 0x4c, 0xf6, 0xa0, //0x00009710 vpblendvb %ymm10, %ymm14, %ymm6, %ymm6 + 0x4a, 0x8d, 0x0c, 0x1f, //0x00009716 leaq (%rdi,%r11), %rcx + 0xc5, 0xfe, 0x7f, 0x1c, 0x08, //0x0000971a vmovdqu %ymm3, (%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x64, 0x08, 0x20, //0x0000971f vmovdqu %ymm4, $32(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x6c, 0x08, 0x40, //0x00009725 vmovdqu %ymm5, $64(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x74, 0x08, 0x60, //0x0000972b vmovdqu %ymm6, $96(%rax,%rcx) + 0x49, 0x83, 0xeb, 0x80, //0x00009731 subq $-128, %r11 + 0x4d, 0x39, 0xda, //0x00009735 cmpq %r11, %r10 + 0x0f, 0x85, 0x62, 0xff, 0xff, 0xff, //0x00009738 jne LBB33_9 + 0x4c, 0x39, 0xd3, //0x0000973e cmpq %r10, %rbx + 0x0f, 0x85, 0x88, 0xfe, 0xff, 0xff, //0x00009741 jne LBB33_11 + //0x00009747 LBB33_16 + 0x5b, //0x00009747 popq %rbx + 0x5d, //0x00009748 popq %rbp + 0xc5, 0xf8, 0x77, //0x00009749 vzeroupper + 0xc3, //0x0000974c retq + 0x90, 0x90, 0x90, //0x0000974d .p2align 4, 0x90 + //0x00009750 _format_significand + 0x55, //0x00009750 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009751 movq %rsp, %rbp + 0x41, 0x56, //0x00009754 pushq %r14 + 0x53, //0x00009756 pushq %rbx + 0x4c, 0x63, 0xc2, //0x00009757 movslq %edx, %r8 + 0x49, 0x01, 0xf0, //0x0000975a addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x0000975d movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00009760 shrq $32, %rax + 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x00009764 je LBB34_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000976a movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00009774 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00009777 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x0000977a shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x0000977e imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00009784 addl %edi, %ecx + 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, //0x00009786 je LBB34_3 + 0x89, 0xc8, //0x0000978c movl %ecx, %eax + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x0000978e movl $3518437209, %r9d + 0x49, 0x0f, 0xaf, 0xc1, //0x00009794 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00009798 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x0000979c imull $10000, %eax, %edi + 0x29, 0xf9, //0x000097a2 subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x000097a4 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x000097a7 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x000097ab shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000097af imull $10000, %edi, %edi + 0x29, 0xf8, //0x000097b5 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x000097b7 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x000097ba shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x000097bd imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x000097c4 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x000097c8 imull $100, %r9d, %edi + 0x29, 0xf9, //0x000097cc subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x000097ce movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x000097d2 movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x000097d5 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x000097d8 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x000097de shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x000097e1 imull $100, %edi, %ecx + 0x29, 0xc8, //0x000097e4 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x000097e6 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0xaf, 0x33, 0x00, 0x00, //0x000097ea leaq $13231(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x000097f1 movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x000097f6 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x000097fb movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00009800 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00009805 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x0000980a movw %ax, $-6(%r8) + 0x0f, 0xb7, 0x04, 0x79, //0x0000980f movzwl (%rcx,%rdi,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00009813 movw %ax, $-8(%r8) + 0x45, 0x31, 0xc9, //0x00009818 xorl %r9d, %r9d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x0000981b jmp LBB34_5 + //0x00009820 LBB34_1 + 0x45, 0x31, 0xc9, //0x00009820 xorl %r9d, %r9d + 0x4d, 0x89, 0xc6, //0x00009823 movq %r8, %r14 + 0x48, 0x89, 0xfa, //0x00009826 movq %rdi, %rdx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00009829 cmpl $10000, %edx + 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x0000982f jae LBB34_8 + //0x00009835 LBB34_7 + 0x89, 0xd7, //0x00009835 movl %edx, %edi + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x00009837 jmp LBB34_10 + //0x0000983c LBB34_3 + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x0000983c movl $8, %r9d + //0x00009842 LBB34_5 + 0x4d, 0x8d, 0x70, 0xf8, //0x00009842 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00009846 cmpl $10000, %edx + 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x0000984c jb LBB34_7 + //0x00009852 LBB34_8 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00009852 movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0x41, 0x33, 0x00, 0x00, //0x00009858 leaq $13121(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, //0x0000985f .p2align 4, 0x90 + //0x00009860 LBB34_9 + 0x89, 0xd7, //0x00009860 movl %edx, %edi + 0x49, 0x0f, 0xaf, 0xfa, //0x00009862 imulq %r10, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00009866 shrq $45, %rdi + 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x0000986a imull $-10000, %edi, %eax + 0x01, 0xd0, //0x00009870 addl %edx, %eax + 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00009872 imulq $1374389535, %rax, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00009879 shrq $37, %rbx + 0x6b, 0xcb, 0x64, //0x0000987d imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00009880 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00009882 movzwl (%r11,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00009887 movw %ax, $-2(%r14) + 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x0000988c movzwl (%r11,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00009891 movw %ax, $-4(%r14) + 0x49, 0x83, 0xc6, 0xfc, //0x00009896 addq $-4, %r14 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x0000989a cmpl $99999999, %edx + 0x89, 0xfa, //0x000098a0 movl %edi, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x000098a2 ja LBB34_9 + //0x000098a8 LBB34_10 + 0x83, 0xff, 0x64, //0x000098a8 cmpl $100, %edi + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x000098ab jae LBB34_11 + 0x83, 0xff, 0x0a, //0x000098b1 cmpl $10, %edi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x000098b4 jb LBB34_14 + //0x000098ba LBB34_13 + 0x89, 0xf8, //0x000098ba movl %edi, %eax + 0x48, 0x8d, 0x0d, 0xdd, 0x32, 0x00, 0x00, //0x000098bc leaq $13021(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000098c3 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x000098c7 movw %ax, $-2(%r14) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x000098cc jmp LBB34_15 + //0x000098d1 LBB34_11 + 0x0f, 0xb7, 0xc7, //0x000098d1 movzwl %di, %eax + 0xc1, 0xe8, 0x02, //0x000098d4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000098d7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000098dd shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x000098e0 imull $100, %eax, %ecx + 0x29, 0xcf, //0x000098e3 subl %ecx, %edi + 0x0f, 0xb7, 0xcf, //0x000098e5 movzwl %di, %ecx + 0x48, 0x8d, 0x15, 0xb1, 0x32, 0x00, 0x00, //0x000098e8 leaq $12977(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x000098ef movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x000098f3 movw %cx, $-2(%r14) + 0x49, 0x83, 0xc6, 0xfe, //0x000098f8 addq $-2, %r14 + 0x89, 0xc7, //0x000098fc movl %eax, %edi + 0x83, 0xff, 0x0a, //0x000098fe cmpl $10, %edi + 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00009901 jae LBB34_13 + //0x00009907 LBB34_14 + 0x40, 0x80, 0xc7, 0x30, //0x00009907 addb $48, %dil + 0x40, 0x88, 0x3e, //0x0000990b movb %dil, (%rsi) + //0x0000990e LBB34_15 + 0x4d, 0x29, 0xc8, //0x0000990e subq %r9, %r8 + 0x4c, 0x89, 0xc0, //0x00009911 movq %r8, %rax + 0x5b, //0x00009914 popq %rbx + 0x41, 0x5e, //0x00009915 popq %r14 + 0x5d, //0x00009917 popq %rbp + 0xc3, //0x00009918 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009919 .p2align 4, 0x90 + //0x00009920 _left_shift + 0x55, //0x00009920 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009921 movq %rsp, %rbp + 0x41, 0x56, //0x00009924 pushq %r14 + 0x53, //0x00009926 pushq %rbx + 0x89, 0xf1, //0x00009927 movl %esi, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x00009929 imulq $104, %rcx, %rdx + 0x48, 0x8d, 0x35, 0x5c, 0x8c, 0x00, 0x00, //0x0000992d leaq $35932(%rip), %rsi /* _LSHIFT_TAB+0(%rip) */ + 0x44, 0x8b, 0x04, 0x32, //0x00009934 movl (%rdx,%rsi), %r8d + 0x4c, 0x8b, 0x17, //0x00009938 movq (%rdi), %r10 + 0x4c, 0x63, 0x4f, 0x10, //0x0000993b movslq $16(%rdi), %r9 + 0x8a, 0x44, 0x32, 0x04, //0x0000993f movb $4(%rdx,%rsi), %al + 0x4d, 0x85, 0xc9, //0x00009943 testq %r9, %r9 + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00009946 je LBB35_6 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x0000994c leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x00009951 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009953 .p2align 4, 0x90 + //0x00009960 LBB35_3 + 0x84, 0xc0, //0x00009960 testb %al, %al + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00009962 je LBB35_8 + 0x41, 0x38, 0x04, 0x32, //0x00009968 cmpb %al, (%r10,%rsi) + 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x0000996c jne LBB35_5 + 0x0f, 0xb6, 0x04, 0x32, //0x00009972 movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x00009976 incq %rsi + 0x49, 0x39, 0xf1, //0x00009979 cmpq %rsi, %r9 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x0000997c jne LBB35_3 + //0x00009982 LBB35_6 + 0x84, 0xc0, //0x00009982 testb %al, %al + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00009984 je LBB35_8 + //0x0000998a LBB35_7 + 0x41, 0xff, 0xc8, //0x0000998a decl %r8d + //0x0000998d LBB35_8 + 0x45, 0x85, 0xc9, //0x0000998d testl %r9d, %r9d + 0x0f, 0x8e, 0x8c, 0x00, 0x00, 0x00, //0x00009990 jle LBB35_23 + 0x43, 0x8d, 0x04, 0x08, //0x00009996 leal (%r8,%r9), %eax + 0x4c, 0x63, 0xf0, //0x0000999a movslq %eax, %r14 + 0x49, 0xff, 0xce, //0x0000999d decq %r14 + 0x31, 0xd2, //0x000099a0 xorl %edx, %edx + 0x49, 0xbb, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000099a2 movabsq $-3689348814741910323, %r11 + 0x90, 0x90, 0x90, 0x90, //0x000099ac .p2align 4, 0x90 + //0x000099b0 LBB35_10 + 0x4b, 0x0f, 0xbe, 0x74, 0x0a, 0xff, //0x000099b0 movsbq $-1(%r10,%r9), %rsi + 0x48, 0x83, 0xc6, 0xd0, //0x000099b6 addq $-48, %rsi + 0x48, 0xd3, 0xe6, //0x000099ba shlq %cl, %rsi + 0x48, 0x01, 0xd6, //0x000099bd addq %rdx, %rsi + 0x48, 0x89, 0xf0, //0x000099c0 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000099c3 mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x000099c6 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x000099ca leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x000099ce leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xf0, //0x000099d2 movq %rsi, %rax + 0x48, 0x29, 0xd8, //0x000099d5 subq %rbx, %rax + 0x4c, 0x39, 0x77, 0x08, //0x000099d8 cmpq %r14, $8(%rdi) + 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x000099dc jbe LBB35_16 + 0x04, 0x30, //0x000099e2 addb $48, %al + 0x43, 0x88, 0x04, 0x32, //0x000099e4 movb %al, (%r10,%r14) + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000099e8 jmp LBB35_18 + 0x90, 0x90, 0x90, //0x000099ed .p2align 4, 0x90 + //0x000099f0 LBB35_16 + 0x48, 0x85, 0xc0, //0x000099f0 testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000099f3 je LBB35_18 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x000099f9 movl $1, $28(%rdi) + //0x00009a00 LBB35_18 + 0x49, 0x83, 0xf9, 0x02, //0x00009a00 cmpq $2, %r9 + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00009a04 jl LBB35_12 + 0x49, 0xff, 0xc9, //0x00009a0a decq %r9 + 0x4c, 0x8b, 0x17, //0x00009a0d movq (%rdi), %r10 + 0x49, 0xff, 0xce, //0x00009a10 decq %r14 + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00009a13 jmp LBB35_10 + //0x00009a18 LBB35_12 + 0x48, 0x83, 0xfe, 0x0a, //0x00009a18 cmpq $10, %rsi + 0x0f, 0x83, 0x6e, 0x00, 0x00, 0x00, //0x00009a1c jae LBB35_13 + //0x00009a22 LBB35_23 + 0x48, 0x63, 0x4f, 0x10, //0x00009a22 movslq $16(%rdi), %rcx + 0x49, 0x63, 0xc0, //0x00009a26 movslq %r8d, %rax + 0x48, 0x01, 0xc8, //0x00009a29 addq %rcx, %rax + 0x89, 0x47, 0x10, //0x00009a2c movl %eax, $16(%rdi) + 0x48, 0x8b, 0x4f, 0x08, //0x00009a2f movq $8(%rdi), %rcx + 0x48, 0x39, 0xc1, //0x00009a33 cmpq %rax, %rcx + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00009a36 ja LBB35_25 + 0x89, 0x4f, 0x10, //0x00009a3c movl %ecx, $16(%rdi) + 0x89, 0xc8, //0x00009a3f movl %ecx, %eax + //0x00009a41 LBB35_25 + 0x44, 0x01, 0x47, 0x14, //0x00009a41 addl %r8d, $20(%rdi) + 0x85, 0xc0, //0x00009a45 testl %eax, %eax + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00009a47 jle LBB35_29 + 0x48, 0x8b, 0x0f, //0x00009a4d movq (%rdi), %rcx + 0x89, 0xc0, //0x00009a50 movl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009a52 .p2align 4, 0x90 + //0x00009a60 LBB35_27 + 0x80, 0x7c, 0x01, 0xff, 0x30, //0x00009a60 cmpb $48, $-1(%rcx,%rax) + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00009a65 jne LBB35_31 + 0x89, 0xc2, //0x00009a6b movl %eax, %edx + 0x48, 0xff, 0xc8, //0x00009a6d decq %rax + 0xff, 0xca, //0x00009a70 decl %edx + 0x89, 0x57, 0x10, //0x00009a72 movl %edx, $16(%rdi) + 0x48, 0x8d, 0x50, 0x01, //0x00009a75 leaq $1(%rax), %rdx + 0x48, 0x83, 0xfa, 0x01, //0x00009a79 cmpq $1, %rdx + 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00009a7d jg LBB35_27 + //0x00009a83 LBB35_29 + 0x85, 0xc0, //0x00009a83 testl %eax, %eax + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00009a85 je LBB35_30 + //0x00009a8b LBB35_31 + 0x5b, //0x00009a8b popq %rbx + 0x41, 0x5e, //0x00009a8c popq %r14 + 0x5d, //0x00009a8e popq %rbp + 0xc3, //0x00009a8f retq + //0x00009a90 LBB35_13 + 0x49, 0x63, 0xf6, //0x00009a90 movslq %r14d, %rsi + 0x48, 0xff, 0xce, //0x00009a93 decq %rsi + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00009a96 jmp LBB35_14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009a9b .p2align 4, 0x90 + //0x00009aa0 LBB35_15 + 0x04, 0x30, //0x00009aa0 addb $48, %al + 0x48, 0x8b, 0x1f, //0x00009aa2 movq (%rdi), %rbx + 0x88, 0x04, 0x33, //0x00009aa5 movb %al, (%rbx,%rsi) + //0x00009aa8 LBB35_22 + 0x48, 0xff, 0xce, //0x00009aa8 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00009aab cmpq $9, %rcx + 0x0f, 0x86, 0x6d, 0xff, 0xff, 0xff, //0x00009aaf jbe LBB35_23 + //0x00009ab5 LBB35_14 + 0x48, 0x89, 0xd1, //0x00009ab5 movq %rdx, %rcx + 0x48, 0x89, 0xd0, //0x00009ab8 movq %rdx, %rax + 0x49, 0xf7, 0xe3, //0x00009abb mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00009abe shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00009ac2 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00009ac6 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00009aca movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00009acd subq %rbx, %rax + 0x48, 0x39, 0x77, 0x08, //0x00009ad0 cmpq %rsi, $8(%rdi) + 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00009ad4 ja LBB35_15 + 0x48, 0x85, 0xc0, //0x00009ada testq %rax, %rax + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00009add je LBB35_22 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009ae3 movl $1, $28(%rdi) + 0xe9, 0xb9, 0xff, 0xff, 0xff, //0x00009aea jmp LBB35_22 + //0x00009aef LBB35_30 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009aef movl $0, $20(%rdi) + 0x5b, //0x00009af6 popq %rbx + 0x41, 0x5e, //0x00009af7 popq %r14 + 0x5d, //0x00009af9 popq %rbp + 0xc3, //0x00009afa retq + //0x00009afb LBB35_5 + 0x0f, 0x8c, 0x89, 0xfe, 0xff, 0xff, //0x00009afb jl LBB35_7 + 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00009b01 jmp LBB35_8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009b06 .p2align 4, 0x90 + //0x00009b10 _right_shift + 0x55, //0x00009b10 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009b11 movq %rsp, %rbp + 0x89, 0xf1, //0x00009b14 movl %esi, %ecx + 0x4c, 0x63, 0x4f, 0x10, //0x00009b16 movslq $16(%rdi), %r9 + 0x31, 0xf6, //0x00009b1a xorl %esi, %esi + 0x31, 0xc0, //0x00009b1c xorl %eax, %eax + 0x90, 0x90, //0x00009b1e .p2align 4, 0x90 + //0x00009b20 LBB36_1 + 0x4c, 0x39, 0xce, //0x00009b20 cmpq %r9, %rsi + 0x0f, 0x8d, 0x27, 0x01, 0x00, 0x00, //0x00009b23 jge LBB36_2 + 0x48, 0x8d, 0x04, 0x80, //0x00009b29 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x17, //0x00009b2d movq (%rdi), %rdx + 0x48, 0x0f, 0xbe, 0x14, 0x32, //0x00009b30 movsbq (%rdx,%rsi), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009b35 leaq $-48(%rdx,%rax,2), %rax + 0x48, 0xff, 0xc6, //0x00009b3a incq %rsi + 0x48, 0x89, 0xc2, //0x00009b3d movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009b40 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009b43 testq %rdx, %rdx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00009b46 je LBB36_1 + //0x00009b4c LBB36_6 + 0x8b, 0x57, 0x14, //0x00009b4c movl $20(%rdi), %edx + 0x29, 0xf2, //0x00009b4f subl %esi, %edx + 0xff, 0xc2, //0x00009b51 incl %edx + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009b53 movq $-1, %r8 + 0x49, 0xd3, 0xe0, //0x00009b5a shlq %cl, %r8 + 0x89, 0x57, 0x14, //0x00009b5d movl %edx, $20(%rdi) + 0x49, 0xf7, 0xd0, //0x00009b60 notq %r8 + 0x45, 0x31, 0xd2, //0x00009b63 xorl %r10d, %r10d + 0x44, 0x39, 0xce, //0x00009b66 cmpl %r9d, %esi + 0x0f, 0x8d, 0x69, 0x00, 0x00, 0x00, //0x00009b69 jge LBB36_9 + 0x4c, 0x63, 0xce, //0x00009b6f movslq %esi, %r9 + 0x48, 0x8b, 0x37, //0x00009b72 movq (%rdi), %rsi + 0x45, 0x31, 0xd2, //0x00009b75 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009b78 .p2align 4, 0x90 + //0x00009b80 LBB36_8 + 0x48, 0x89, 0xc2, //0x00009b80 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009b83 shrq %cl, %rdx + 0x4c, 0x21, 0xc0, //0x00009b86 andq %r8, %rax + 0x80, 0xc2, 0x30, //0x00009b89 addb $48, %dl + 0x42, 0x88, 0x14, 0x16, //0x00009b8c movb %dl, (%rsi,%r10) + 0x48, 0x8d, 0x04, 0x80, //0x00009b90 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x37, //0x00009b94 movq (%rdi), %rsi + 0x4a, 0x8d, 0x14, 0x0e, //0x00009b97 leaq (%rsi,%r9), %rdx + 0x49, 0x0f, 0xbe, 0x14, 0x12, //0x00009b9b movsbq (%r10,%rdx), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009ba0 leaq $-48(%rdx,%rax,2), %rax + 0x4c, 0x63, 0x5f, 0x10, //0x00009ba5 movslq $16(%rdi), %r11 + 0x4b, 0x8d, 0x54, 0x11, 0x01, //0x00009ba9 leaq $1(%r9,%r10), %rdx + 0x49, 0xff, 0xc2, //0x00009bae incq %r10 + 0x4c, 0x39, 0xda, //0x00009bb1 cmpq %r11, %rdx + 0x0f, 0x8c, 0xc6, 0xff, 0xff, 0xff, //0x00009bb4 jl LBB36_8 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00009bba jmp LBB36_9 + 0x90, //0x00009bbf .p2align 4, 0x90 + //0x00009bc0 LBB36_11 + 0x40, 0x80, 0xc6, 0x30, //0x00009bc0 addb $48, %sil + 0x48, 0x8b, 0x17, //0x00009bc4 movq (%rdi), %rdx + 0x42, 0x88, 0x34, 0x0a, //0x00009bc7 movb %sil, (%rdx,%r9) + 0x41, 0xff, 0xc1, //0x00009bcb incl %r9d + 0x45, 0x89, 0xca, //0x00009bce movl %r9d, %r10d + //0x00009bd1 LBB36_14 + 0x48, 0x01, 0xc0, //0x00009bd1 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009bd4 leaq (%rax,%rax,4), %rax + //0x00009bd8 LBB36_9 + 0x48, 0x85, 0xc0, //0x00009bd8 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x00009bdb je LBB36_15 + 0x48, 0x89, 0xc6, //0x00009be1 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00009be4 shrq %cl, %rsi + 0x4c, 0x21, 0xc0, //0x00009be7 andq %r8, %rax + 0x4d, 0x63, 0xca, //0x00009bea movslq %r10d, %r9 + 0x4c, 0x39, 0x4f, 0x08, //0x00009bed cmpq %r9, $8(%rdi) + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00009bf1 ja LBB36_11 + 0x48, 0x85, 0xf6, //0x00009bf7 testq %rsi, %rsi + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00009bfa je LBB36_14 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009c00 movl $1, $28(%rdi) + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00009c07 jmp LBB36_14 + //0x00009c0c LBB36_15 + 0x44, 0x89, 0x57, 0x10, //0x00009c0c movl %r10d, $16(%rdi) + 0x45, 0x85, 0xd2, //0x00009c10 testl %r10d, %r10d + 0x0f, 0x8e, 0x2c, 0x00, 0x00, 0x00, //0x00009c13 jle LBB36_19 + 0x48, 0x8b, 0x07, //0x00009c19 movq (%rdi), %rax + 0x45, 0x89, 0xd2, //0x00009c1c movl %r10d, %r10d + 0x90, //0x00009c1f .p2align 4, 0x90 + //0x00009c20 LBB36_17 + 0x42, 0x80, 0x7c, 0x10, 0xff, 0x30, //0x00009c20 cmpb $48, $-1(%rax,%r10) + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00009c26 jne LBB36_21 + 0x44, 0x89, 0xd1, //0x00009c2c movl %r10d, %ecx + 0x49, 0xff, 0xca, //0x00009c2f decq %r10 + 0xff, 0xc9, //0x00009c32 decl %ecx + 0x89, 0x4f, 0x10, //0x00009c34 movl %ecx, $16(%rdi) + 0x49, 0x8d, 0x4a, 0x01, //0x00009c37 leaq $1(%r10), %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00009c3b cmpq $1, %rcx + 0x0f, 0x8f, 0xdb, 0xff, 0xff, 0xff, //0x00009c3f jg LBB36_17 + //0x00009c45 LBB36_19 + 0x45, 0x85, 0xd2, //0x00009c45 testl %r10d, %r10d + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00009c48 je LBB36_20 + //0x00009c4e LBB36_21 + 0x5d, //0x00009c4e popq %rbp + 0xc3, //0x00009c4f retq + //0x00009c50 LBB36_2 + 0x48, 0x85, 0xc0, //0x00009c50 testq %rax, %rax + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00009c53 je LBB36_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009c59 .p2align 4, 0x90 + 0x48, 0x89, 0xc2, //0x00009c60 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009c63 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009c66 testq %rdx, %rdx + 0x0f, 0x85, 0xdd, 0xfe, 0xff, 0xff, //0x00009c69 jne LBB36_6 + //0x00009c6f LBB36_4 + 0x48, 0x01, 0xc0, //0x00009c6f addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009c72 leaq (%rax,%rax,4), %rax + 0xff, 0xc6, //0x00009c76 incl %esi + 0x48, 0x89, 0xc2, //0x00009c78 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009c7b shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009c7e testq %rdx, %rdx + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00009c81 je LBB36_4 + 0xe9, 0xc0, 0xfe, 0xff, 0xff, //0x00009c87 jmp LBB36_6 + //0x00009c8c LBB36_20 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009c8c movl $0, $20(%rdi) + 0x5d, //0x00009c93 popq %rbp + 0xc3, //0x00009c94 retq + //0x00009c95 LBB36_22 + 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00009c95 movl $0, $16(%rdi) + 0x5d, //0x00009c9c popq %rbp + 0xc3, //0x00009c9d retq + 0x00, 0x00, //0x00009c9e .p2align 5, 0x00 + //0x00009ca0 LCPI37_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00009ca0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00009cb0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00009cc0 LCPI37_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00009cc0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00009cd0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00009ce0 .p2align 4, 0x90 + //0x00009ce0 _advance_string_default + 0x55, //0x00009ce0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009ce1 movq %rsp, %rbp + 0x41, 0x57, //0x00009ce4 pushq %r15 + 0x41, 0x56, //0x00009ce6 pushq %r14 + 0x41, 0x55, //0x00009ce8 pushq %r13 + 0x41, 0x54, //0x00009cea pushq %r12 + 0x53, //0x00009cec pushq %rbx + 0x4c, 0x8b, 0x67, 0x08, //0x00009ced movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x00009cf1 subq %rsi, %r12 + 0x0f, 0x84, 0xcf, 0x02, 0x00, 0x00, //0x00009cf4 je LBB37_18 + 0x4c, 0x8b, 0x07, //0x00009cfa movq (%rdi), %r8 + 0x4c, 0x01, 0xc6, //0x00009cfd addq %r8, %rsi + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00009d00 movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x00009d07 cmpq $64, %r12 + 0x0f, 0x82, 0x78, 0x01, 0x00, 0x00, //0x00009d0b jb LBB37_19 + 0x45, 0x89, 0xe1, //0x00009d11 movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00009d14 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00009d18 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00009d1f xorl %r15d, %r15d + 0xc5, 0xfd, 0x6f, 0x05, 0x76, 0xff, 0xff, 0xff, //0x00009d22 vmovdqa $-138(%rip), %ymm0 /* LCPI37_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x8e, 0xff, 0xff, 0xff, //0x00009d2a vmovdqa $-114(%rip), %ymm1 /* LCPI37_1+0(%rip) */ + 0x49, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009d32 movabsq $-6148914691236517206, %r10 + 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00009d3c movabsq $6148914691236517205, %r11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009d46 .p2align 4, 0x90 + //0x00009d50 LBB37_3 + 0xc5, 0xfe, 0x6f, 0x16, //0x00009d50 vmovdqu (%rsi), %ymm2 + 0xc5, 0xfe, 0x6f, 0x5e, 0x20, //0x00009d54 vmovdqu $32(%rsi), %ymm3 + 0xc5, 0xed, 0x74, 0xe0, //0x00009d59 vpcmpeqb %ymm0, %ymm2, %ymm4 + 0xc5, 0xfd, 0xd7, 0xc4, //0x00009d5d vpmovmskb %ymm4, %eax + 0xc5, 0xe5, 0x74, 0xe0, //0x00009d61 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xfd, 0xd7, 0xdc, //0x00009d65 vpmovmskb %ymm4, %ebx + 0xc5, 0xed, 0x74, 0xd1, //0x00009d69 vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00009d6d vpmovmskb %ymm2, %edi + 0xc5, 0xe5, 0x74, 0xd1, //0x00009d71 vpcmpeqb %ymm1, %ymm3, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00009d75 vpmovmskb %ymm2, %ecx + 0x48, 0xc1, 0xe3, 0x20, //0x00009d79 shlq $32, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x00009d7d shlq $32, %rcx + 0x48, 0x09, 0xcf, //0x00009d81 orq %rcx, %rdi + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00009d84 je LBB37_5 + 0x49, 0x83, 0xfe, 0xff, //0x00009d8a cmpq $-1, %r14 + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00009d8e je LBB37_8 + //0x00009d94 LBB37_5 + 0x48, 0x09, 0xc3, //0x00009d94 orq %rax, %rbx + 0x48, 0x89, 0xf8, //0x00009d97 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00009d9a orq %r15, %rax + 0x0f, 0x85, 0x3f, 0x00, 0x00, 0x00, //0x00009d9d jne LBB37_9 + //0x00009da3 LBB37_6 + 0x48, 0x85, 0xdb, //0x00009da3 testq %rbx, %rbx + 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00009da6 jne LBB37_10 + //0x00009dac LBB37_7 + 0x48, 0x83, 0xc6, 0x40, //0x00009dac addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x00009db0 addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x00009db4 cmpq $63, %r12 + 0x0f, 0x87, 0x92, 0xff, 0xff, 0xff, //0x00009db8 ja LBB37_3 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00009dbe jmp LBB37_13 + //0x00009dc3 LBB37_8 + 0x48, 0x89, 0xf1, //0x00009dc3 movq %rsi, %rcx + 0x4c, 0x29, 0xc1, //0x00009dc6 subq %r8, %rcx + 0x4c, 0x0f, 0xbc, 0xf7, //0x00009dc9 bsfq %rdi, %r14 + 0x49, 0x01, 0xce, //0x00009dcd addq %rcx, %r14 + 0x4c, 0x89, 0x32, //0x00009dd0 movq %r14, (%rdx) + 0x48, 0x09, 0xc3, //0x00009dd3 orq %rax, %rbx + 0x48, 0x89, 0xf8, //0x00009dd6 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00009dd9 orq %r15, %rax + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00009ddc je LBB37_6 + //0x00009de2 LBB37_9 + 0x4c, 0x89, 0xf8, //0x00009de2 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00009de5 notq %rax + 0x48, 0x21, 0xf8, //0x00009de8 andq %rdi, %rax + 0x4c, 0x8d, 0x2c, 0x00, //0x00009deb leaq (%rax,%rax), %r13 + 0x4d, 0x09, 0xfd, //0x00009def orq %r15, %r13 + 0x4c, 0x89, 0xe9, //0x00009df2 movq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00009df5 notq %rcx + 0x48, 0x21, 0xf9, //0x00009df8 andq %rdi, %rcx + 0x4c, 0x21, 0xd1, //0x00009dfb andq %r10, %rcx + 0x45, 0x31, 0xff, //0x00009dfe xorl %r15d, %r15d + 0x48, 0x01, 0xc1, //0x00009e01 addq %rax, %rcx + 0x41, 0x0f, 0x92, 0xc7, //0x00009e04 setb %r15b + 0x48, 0x01, 0xc9, //0x00009e08 addq %rcx, %rcx + 0x4c, 0x31, 0xd9, //0x00009e0b xorq %r11, %rcx + 0x4c, 0x21, 0xe9, //0x00009e0e andq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00009e11 notq %rcx + 0x48, 0x21, 0xcb, //0x00009e14 andq %rcx, %rbx + 0x48, 0x85, 0xdb, //0x00009e17 testq %rbx, %rbx + 0x0f, 0x84, 0x8c, 0xff, 0xff, 0xff, //0x00009e1a je LBB37_7 + //0x00009e20 LBB37_10 + 0x48, 0x0f, 0xbc, 0xc3, //0x00009e20 bsfq %rbx, %rax + //0x00009e24 LBB37_11 + 0x4c, 0x29, 0xc6, //0x00009e24 subq %r8, %rsi + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00009e27 leaq $1(%rsi,%rax), %rax + //0x00009e2c LBB37_12 + 0x5b, //0x00009e2c popq %rbx + 0x41, 0x5c, //0x00009e2d popq %r12 + 0x41, 0x5d, //0x00009e2f popq %r13 + 0x41, 0x5e, //0x00009e31 popq %r14 + 0x41, 0x5f, //0x00009e33 popq %r15 + 0x5d, //0x00009e35 popq %rbp + 0xc5, 0xf8, 0x77, //0x00009e36 vzeroupper + 0xc3, //0x00009e39 retq + //0x00009e3a LBB37_13 + 0x4d, 0x89, 0xcc, //0x00009e3a movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00009e3d cmpq $32, %r12 + 0x0f, 0x82, 0xb7, 0x00, 0x00, 0x00, //0x00009e41 jb LBB37_24 + //0x00009e47 LBB37_14 + 0xc5, 0xfe, 0x6f, 0x06, //0x00009e47 vmovdqu (%rsi), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0x4d, 0xfe, 0xff, 0xff, //0x00009e4b vpcmpeqb $-435(%rip), %ymm0, %ymm1 /* LCPI37_0+0(%rip) */ + 0xc5, 0x7d, 0xd7, 0xc9, //0x00009e53 vpmovmskb %ymm1, %r9d + 0xc5, 0xfd, 0x74, 0x05, 0x61, 0xfe, 0xff, 0xff, //0x00009e57 vpcmpeqb $-415(%rip), %ymm0, %ymm0 /* LCPI37_1+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xf8, //0x00009e5f vpmovmskb %ymm0, %edi + 0x85, 0xff, //0x00009e63 testl %edi, %edi + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x00009e65 jne LBB37_20 + 0x4d, 0x85, 0xff, //0x00009e6b testq %r15, %r15 + 0x0f, 0x85, 0x48, 0x00, 0x00, 0x00, //0x00009e6e jne LBB37_22 + 0x45, 0x31, 0xff, //0x00009e74 xorl %r15d, %r15d + 0x4d, 0x85, 0xc9, //0x00009e77 testq %r9, %r9 + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x00009e7a je LBB37_23 + //0x00009e80 LBB37_17 + 0x49, 0x0f, 0xbc, 0xc1, //0x00009e80 bsfq %r9, %rax + 0xe9, 0x9b, 0xff, 0xff, 0xff, //0x00009e84 jmp LBB37_11 + //0x00009e89 LBB37_19 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00009e89 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00009e90 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x00009e93 cmpq $32, %r12 + 0x0f, 0x83, 0xaa, 0xff, 0xff, 0xff, //0x00009e97 jae LBB37_14 + 0xe9, 0x5c, 0x00, 0x00, 0x00, //0x00009e9d jmp LBB37_24 + //0x00009ea2 LBB37_20 + 0x49, 0x83, 0xfe, 0xff, //0x00009ea2 cmpq $-1, %r14 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00009ea6 jne LBB37_22 + 0x48, 0x89, 0xf0, //0x00009eac movq %rsi, %rax + 0x4c, 0x29, 0xc0, //0x00009eaf subq %r8, %rax + 0x4c, 0x0f, 0xbc, 0xf7, //0x00009eb2 bsfq %rdi, %r14 + 0x49, 0x01, 0xc6, //0x00009eb6 addq %rax, %r14 + 0x4c, 0x89, 0x32, //0x00009eb9 movq %r14, (%rdx) + //0x00009ebc LBB37_22 + 0x44, 0x89, 0xf8, //0x00009ebc movl %r15d, %eax + 0xf7, 0xd0, //0x00009ebf notl %eax + 0x21, 0xf8, //0x00009ec1 andl %edi, %eax + 0x8d, 0x1c, 0x00, //0x00009ec3 leal (%rax,%rax), %ebx + 0x44, 0x09, 0xfb, //0x00009ec6 orl %r15d, %ebx + 0x89, 0xd9, //0x00009ec9 movl %ebx, %ecx + 0xf7, 0xd1, //0x00009ecb notl %ecx + 0x21, 0xf9, //0x00009ecd andl %edi, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009ecf andl $-1431655766, %ecx + 0x45, 0x31, 0xff, //0x00009ed5 xorl %r15d, %r15d + 0x01, 0xc1, //0x00009ed8 addl %eax, %ecx + 0x41, 0x0f, 0x92, 0xc7, //0x00009eda setb %r15b + 0x01, 0xc9, //0x00009ede addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00009ee0 xorl $1431655765, %ecx + 0x21, 0xd9, //0x00009ee6 andl %ebx, %ecx + 0xf7, 0xd1, //0x00009ee8 notl %ecx + 0x41, 0x21, 0xc9, //0x00009eea andl %ecx, %r9d + 0x4d, 0x85, 0xc9, //0x00009eed testq %r9, %r9 + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x00009ef0 jne LBB37_17 + //0x00009ef6 LBB37_23 + 0x48, 0x83, 0xc6, 0x20, //0x00009ef6 addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x00009efa addq $-32, %r12 + //0x00009efe LBB37_24 + 0x4d, 0x85, 0xff, //0x00009efe testq %r15, %r15 + 0x0f, 0x85, 0x88, 0x00, 0x00, 0x00, //0x00009f01 jne LBB37_35 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009f07 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00009f0e testq %r12, %r12 + 0x0f, 0x84, 0x15, 0xff, 0xff, 0xff, //0x00009f11 je LBB37_12 + //0x00009f17 LBB37_26 + 0x4d, 0x89, 0xc1, //0x00009f17 movq %r8, %r9 + 0x49, 0xf7, 0xd1, //0x00009f1a notq %r9 + //0x00009f1d LBB37_27 + 0x48, 0x8d, 0x7e, 0x01, //0x00009f1d leaq $1(%rsi), %rdi + 0x0f, 0xb6, 0x1e, //0x00009f21 movzbl (%rsi), %ebx + 0x80, 0xfb, 0x22, //0x00009f24 cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00009f27 je LBB37_34 + 0x4d, 0x8d, 0x54, 0x24, 0xff, //0x00009f2d leaq $-1(%r12), %r10 + 0x80, 0xfb, 0x5c, //0x00009f32 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00009f35 je LBB37_30 + 0x4d, 0x89, 0xd4, //0x00009f3b movq %r10, %r12 + 0x48, 0x89, 0xfe, //0x00009f3e movq %rdi, %rsi + 0x4d, 0x85, 0xd2, //0x00009f41 testq %r10, %r10 + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00009f44 jne LBB37_27 + 0xe9, 0xdd, 0xfe, 0xff, 0xff, //0x00009f4a jmp LBB37_12 + //0x00009f4f LBB37_30 + 0x4d, 0x85, 0xd2, //0x00009f4f testq %r10, %r10 + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00009f52 je LBB37_12 + 0x49, 0x83, 0xfe, 0xff, //0x00009f58 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00009f5c jne LBB37_33 + 0x4c, 0x01, 0xcf, //0x00009f62 addq %r9, %rdi + 0x48, 0x89, 0x3a, //0x00009f65 movq %rdi, (%rdx) + 0x49, 0x89, 0xfe, //0x00009f68 movq %rdi, %r14 + //0x00009f6b LBB37_33 + 0x48, 0x83, 0xc6, 0x02, //0x00009f6b addq $2, %rsi + 0x49, 0x83, 0xc4, 0xfe, //0x00009f6f addq $-2, %r12 + 0x4d, 0x89, 0xe2, //0x00009f73 movq %r12, %r10 + 0x4d, 0x85, 0xd2, //0x00009f76 testq %r10, %r10 + 0x0f, 0x85, 0x9e, 0xff, 0xff, 0xff, //0x00009f79 jne LBB37_27 + 0xe9, 0xa8, 0xfe, 0xff, 0xff, //0x00009f7f jmp LBB37_12 + //0x00009f84 LBB37_34 + 0x4c, 0x29, 0xc7, //0x00009f84 subq %r8, %rdi + 0x48, 0x89, 0xf8, //0x00009f87 movq %rdi, %rax + 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x00009f8a jmp LBB37_12 + //0x00009f8f LBB37_35 + 0x4d, 0x85, 0xe4, //0x00009f8f testq %r12, %r12 + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00009f92 je LBB37_18 + 0x49, 0x83, 0xfe, 0xff, //0x00009f98 cmpq $-1, %r14 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00009f9c jne LBB37_38 + 0x4d, 0x89, 0xc6, //0x00009fa2 movq %r8, %r14 + 0x49, 0xf7, 0xd6, //0x00009fa5 notq %r14 + 0x49, 0x01, 0xf6, //0x00009fa8 addq %rsi, %r14 + 0x4c, 0x89, 0x32, //0x00009fab movq %r14, (%rdx) + //0x00009fae LBB37_38 + 0x48, 0xff, 0xc6, //0x00009fae incq %rsi + 0x49, 0xff, 0xcc, //0x00009fb1 decq %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009fb4 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00009fbb testq %r12, %r12 + 0x0f, 0x85, 0x53, 0xff, 0xff, 0xff, //0x00009fbe jne LBB37_26 + 0xe9, 0x63, 0xfe, 0xff, 0xff, //0x00009fc4 jmp LBB37_12 + //0x00009fc9 LBB37_18 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009fc9 movq $-1, %rax + 0xe9, 0x57, 0xfe, 0xff, 0xff, //0x00009fd0 jmp LBB37_12 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009fd5 .p2align 4, 0x00 + //0x00009fe0 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00009fe0 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00009fe8 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00009ff0 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00009ff8 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x0000a000 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x0000a008 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x0000a010 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x0000a018 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x0000a020 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x0000a028 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x0000a030 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x0000a038 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x0000a040 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x0000a048 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x0000a050 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x0000a058 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x0000a060 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x0000a068 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x0000a070 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x0000a078 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x0000a080 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x0000a088 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x0000a090 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x0000a098 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x0000a0a0 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x0000a0a8 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x0000a0b0 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x0000a0b8 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x0000a0c0 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x0000a0c8 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x0000a0d0 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x0000a0d8 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x0000a0e0 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x0000a0e8 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x0000a0f0 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x0000a0f8 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x0000a100 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x0000a108 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x0000a110 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x0000a118 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x0000a120 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x0000a128 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x0000a130 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x0000a138 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x0000a140 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x0000a148 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x0000a150 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x0000a158 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x0000a160 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x0000a168 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x0000a170 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x0000a178 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x0000a180 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x0000a188 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x0000a190 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x0000a198 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x0000a1a0 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x0000a1a8 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x0000a1b0 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x0000a1b8 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x0000a1c0 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x0000a1c8 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x0000a1d0 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x0000a1d8 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x0000a1e0 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x0000a1e8 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x0000a1f0 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x0000a1f8 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x0000a200 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x0000a208 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x0000a210 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x0000a218 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x0000a220 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x0000a228 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x0000a230 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x0000a238 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x0000a240 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x0000a248 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x0000a250 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x0000a258 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x0000a260 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x0000a268 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x0000a270 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x0000a278 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x0000a280 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x0000a288 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x0000a290 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x0000a298 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x0000a2a0 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x0000a2a8 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x0000a2b0 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x0000a2b8 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x0000a2c0 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x0000a2c8 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x0000a2d0 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x0000a2d8 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x0000a2e0 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x0000a2e8 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x0000a2f0 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x0000a2f8 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x0000a300 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x0000a308 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x0000a310 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x0000a318 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x0000a320 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x0000a328 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x0000a330 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x0000a338 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x0000a340 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x0000a348 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x0000a350 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x0000a358 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000a360 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000a368 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000a370 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000a378 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000a380 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000a388 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000a390 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000a398 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000a3a0 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000a3a8 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000a3b0 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000a3b8 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000a3c0 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000a3c8 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000a3d0 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000a3d8 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000a3e0 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000a3e8 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000a3f0 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000a3f8 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000a400 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000a408 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000a410 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000a418 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000a420 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000a428 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000a430 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000a438 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000a440 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000a448 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000a450 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000a458 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000a460 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000a468 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000a470 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000a478 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000a480 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000a488 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000a490 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000a498 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000a4a0 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000a4a8 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000a4b0 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000a4b8 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000a4c0 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000a4c8 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000a4d0 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000a4d8 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000a4e0 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000a4e8 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000a4f0 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000a4f8 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000a500 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000a508 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000a510 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000a518 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000a520 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000a528 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000a530 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000a538 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000a540 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000a548 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000a550 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000a558 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000a560 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000a568 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000a570 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000a578 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000a580 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000a588 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000a590 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000a598 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000a5a0 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000a5a8 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000a5b0 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000a5b8 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000a5c0 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000a5c8 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000a5d0 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000a5d8 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000a5e0 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000a5e8 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000a5f0 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000a5f8 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000a600 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000a608 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000a610 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000a618 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000a620 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000a628 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000a630 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000a638 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000a640 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000a648 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000a650 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000a658 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000a660 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000a668 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000a670 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000a678 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000a680 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000a688 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000a690 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000a698 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000a6a0 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000a6a8 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000a6b0 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000a6b8 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000a6c0 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000a6c8 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000a6d0 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000a6d8 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000a6e0 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000a6e8 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000a6f0 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000a6f8 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000a700 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000a708 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000a710 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000a718 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000a720 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000a728 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000a730 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000a738 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000a740 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000a748 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000a750 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000a758 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000a760 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000a768 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000a770 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000a778 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000a780 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000a788 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000a790 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000a798 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000a7a0 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000a7a8 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000a7b0 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000a7b8 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000a7c0 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000a7c8 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000a7d0 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000a7d8 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000a7e0 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000a7e8 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000a7f0 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000a7f8 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000a800 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000a808 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000a810 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000a818 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000a820 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000a828 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000a830 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000a838 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000a840 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000a848 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000a850 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000a858 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000a860 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000a868 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000a870 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000a878 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000a880 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000a888 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000a890 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000a898 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000a8a0 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000a8a8 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000a8b0 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000a8b8 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000a8c0 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000a8c8 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000a8d0 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000a8d8 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000a8e0 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000a8e8 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000a8f0 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000a8f8 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000a900 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000a908 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000a910 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000a918 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000a920 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000a928 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000a930 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000a938 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000a940 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000a948 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000a950 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000a958 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000a960 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000a968 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000a970 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000a978 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000a980 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000a988 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000a990 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000a998 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000a9a0 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000a9a8 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000a9b0 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000a9b8 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000a9c0 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000a9c8 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000a9d0 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000a9d8 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000a9e0 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000a9e8 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000a9f0 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000a9f8 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000aa00 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000aa08 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000aa10 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000aa18 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000aa20 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000aa28 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000aa30 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000aa38 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000aa40 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000aa48 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000aa50 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000aa58 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000aa60 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000aa68 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000aa70 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000aa78 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000aa80 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000aa88 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000aa90 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000aa98 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000aaa0 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000aaa8 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000aab0 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000aab8 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000aac0 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000aac8 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000aad0 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000aad8 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000aae0 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000aae8 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000aaf0 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000aaf8 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000ab00 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000ab08 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000ab10 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000ab18 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000ab20 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000ab28 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000ab30 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000ab38 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000ab40 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000ab48 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000ab50 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000ab58 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000ab60 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000ab68 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000ab70 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000ab78 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000ab80 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000ab88 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000ab90 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000ab98 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000aba0 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000aba8 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000abb0 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000abb8 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000abc0 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000abc8 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000abd0 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000abd8 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000abe0 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000abe8 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000abf0 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000abf8 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000ac00 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000ac08 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000ac10 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000ac18 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000ac20 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000ac28 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000ac30 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000ac38 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000ac40 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000ac48 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000ac50 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000ac58 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000ac60 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000ac68 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000ac70 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000ac78 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000ac80 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000ac88 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000ac90 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000ac98 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000aca0 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000aca8 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000acb0 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000acb8 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000acc0 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000acc8 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000acd0 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000acd8 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000ace0 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000ace8 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000acf0 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000acf8 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000ad00 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000ad08 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000ad10 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000ad18 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000ad20 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000ad28 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000ad30 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000ad38 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000ad40 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000ad48 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000ad50 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000ad58 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000ad60 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000ad68 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000ad70 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000ad78 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000ad80 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000ad88 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000ad90 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000ad98 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000ada0 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000ada8 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000adb0 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000adb8 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000adc0 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000adc8 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000add0 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000add8 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000ade0 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000ade8 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000adf0 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000adf8 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000ae00 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000ae08 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000ae10 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000ae18 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000ae20 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000ae28 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000ae30 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000ae38 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000ae40 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000ae48 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000ae50 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000ae58 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000ae60 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000ae68 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000ae70 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000ae78 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000ae80 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000ae88 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000ae90 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000ae98 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000aea0 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000aea8 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000aeb0 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000aeb8 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000aec0 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000aec8 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000aed0 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000aed8 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000aee0 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000aee8 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000aef0 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000aef8 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000af00 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000af08 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000af10 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000af18 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000af20 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000af28 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000af30 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000af38 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000af40 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000af48 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000af50 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000af58 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000af60 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000af68 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000af70 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000af78 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000af80 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000af88 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000af90 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000af98 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000afa0 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000afa8 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000afb0 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000afb8 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000afc0 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000afc8 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000afd0 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000afd8 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000afe0 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000afe8 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000aff0 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000aff8 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000b000 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000b008 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000b010 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000b018 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000b020 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000b028 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000b030 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000b038 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000b040 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000b048 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000b050 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000b058 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000b060 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000b068 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000b070 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000b078 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000b080 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000b088 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000b090 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000b098 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000b0a0 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000b0a8 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000b0b0 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000b0b8 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000b0c0 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000b0c8 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000b0d0 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000b0d8 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000b0e0 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000b0e8 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000b0f0 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000b0f8 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000b100 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000b108 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000b110 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000b118 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000b120 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000b128 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000b130 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000b138 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000b140 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000b148 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000b150 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000b158 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000b160 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000b168 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000b170 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000b178 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000b180 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000b188 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000b190 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000b198 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000b1a0 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000b1a8 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000b1b0 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000b1b8 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000b1c0 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000b1c8 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000b1d0 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000b1d8 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000b1e0 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000b1e8 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000b1f0 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000b1f8 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000b200 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000b208 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000b210 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000b218 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000b220 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000b228 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000b230 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000b238 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000b240 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000b248 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000b250 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000b258 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000b260 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000b268 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000b270 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000b278 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000b280 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000b288 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000b290 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000b298 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000b2a0 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000b2a8 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000b2b0 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000b2b8 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000b2c0 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000b2c8 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000b2d0 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000b2d8 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000b2e0 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000b2e8 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000b2f0 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000b2f8 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000b300 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000b308 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000b310 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000b318 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000b320 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000b328 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000b330 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000b338 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000b340 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000b348 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000b350 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000b358 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000b360 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000b368 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000b370 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000b378 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000b380 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000b388 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000b390 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000b398 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000b3a0 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000b3a8 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000b3b0 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000b3b8 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000b3c0 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000b3c8 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000b3d0 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000b3d8 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000b3e0 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000b3e8 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000b3f0 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000b3f8 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000b400 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000b408 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000b410 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000b418 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000b420 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000b428 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000b430 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000b438 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000b440 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000b448 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000b450 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000b458 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000b460 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000b468 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000b470 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000b478 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000b480 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000b488 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000b490 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000b498 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000b4a0 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000b4a8 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000b4b0 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000b4b8 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000b4c0 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000b4c8 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000b4d0 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000b4d8 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000b4e0 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000b4e8 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000b4f0 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000b4f8 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000b500 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000b508 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000b510 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000b518 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000b520 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000b528 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000b530 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000b538 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000b540 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000b548 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000b550 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000b558 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000b560 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000b568 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000b570 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000b578 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000b580 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000b588 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000b590 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b5a0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000b5a8 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b5b0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000b5b8 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b5c0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000b5c8 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b5d0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000b5d8 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b5e0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000b5e8 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b5f0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000b5f8 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b600 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000b608 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b610 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000b618 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b620 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000b628 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b630 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000b638 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b640 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000b648 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b650 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000b658 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b660 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000b668 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b670 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000b678 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b680 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000b688 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b690 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000b698 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6a0 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000b6a8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6b0 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000b6b8 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6c0 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000b6c8 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6d0 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000b6d8 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6e0 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000b6e8 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6f0 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000b6f8 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b700 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000b708 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b710 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000b718 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b720 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000b728 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b730 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000b738 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b740 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000b748 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b750 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000b758 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000b760 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000b768 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000b770 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000b778 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000b780 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000b788 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000b790 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000b798 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000b7a0 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000b7a8 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000b7b0 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000b7b8 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000b7c0 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000b7c8 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000b7d0 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000b7d8 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000b7e0 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000b7e8 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000b7f0 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000b7f8 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000b800 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000b808 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000b810 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000b818 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000b820 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000b828 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000b830 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000b838 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000b840 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000b848 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000b850 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000b858 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000b860 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000b868 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000b870 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000b878 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000b880 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000b888 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000b890 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000b898 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000b8a0 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000b8a8 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000b8b0 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000b8b8 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000b8c0 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000b8c8 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000b8d0 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000b8d8 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000b8e0 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000b8e8 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000b8f0 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000b8f8 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000b900 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000b908 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000b910 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000b918 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000b920 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000b928 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000b930 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000b938 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000b940 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000b948 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000b950 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000b958 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000b960 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000b968 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000b970 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000b978 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000b980 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000b988 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000b990 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000b998 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000b9a0 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000b9a8 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000b9b0 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000b9b8 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000b9c0 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000b9c8 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000b9d0 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000b9d8 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000b9e0 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000b9e8 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000b9f0 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000b9f8 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000ba00 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000ba08 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000ba10 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000ba18 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000ba20 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000ba28 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000ba30 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000ba38 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000ba40 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000ba48 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000ba50 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000ba58 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000ba60 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000ba68 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000ba70 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000ba78 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000ba80 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000ba88 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000ba90 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000ba98 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000baa0 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000baa8 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000bab0 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000bab8 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000bac0 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000bac8 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000bad0 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000bad8 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000bae0 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000bae8 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000baf0 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000baf8 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000bb00 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000bb08 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000bb10 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000bb18 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000bb20 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000bb28 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000bb30 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000bb38 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000bb40 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000bb48 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000bb50 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000bb58 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000bb60 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000bb68 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000bb70 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000bb78 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000bb80 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000bb88 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000bb90 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000bb98 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000bba0 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000bba8 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000bbb0 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000bbb8 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000bbc0 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000bbc8 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000bbd0 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000bbd8 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000bbe0 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000bbe8 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000bbf0 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000bbf8 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000bc00 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000bc08 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000bc10 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000bc18 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000bc20 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000bc28 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000bc30 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000bc38 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000bc40 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000bc48 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000bc50 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000bc58 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000bc60 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000bc68 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000bc70 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000bc78 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000bc80 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000bc88 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000bc90 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000bc98 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000bca0 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000bca8 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000bcb0 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000bcb8 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000bcc0 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000bcc8 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000bcd0 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000bcd8 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000bce0 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000bce8 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000bcf0 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000bcf8 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000bd00 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000bd08 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000bd10 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000bd18 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000bd20 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000bd28 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000bd30 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000bd38 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000bd40 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000bd48 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000bd50 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000bd58 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000bd60 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000bd68 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000bd70 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000bd78 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000bd80 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000bd88 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000bd90 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000bd98 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000bda0 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000bda8 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000bdb0 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000bdb8 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000bdc0 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000bdc8 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000bdd0 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000bdd8 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000bde0 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000bde8 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000bdf0 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000bdf8 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000be00 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000be08 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000be10 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000be18 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000be20 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000be28 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000be30 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000be38 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000be40 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000be48 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000be50 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000be58 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000be60 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000be68 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000be70 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000be78 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000be80 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000be88 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000be90 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000be98 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000bea0 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000bea8 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000beb0 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000beb8 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000bec0 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000bec8 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000bed0 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000bed8 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000bee0 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000bee8 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000bef0 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000bef8 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000bf00 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000bf08 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000bf10 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000bf18 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000bf20 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000bf28 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000bf30 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000bf38 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000bf40 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000bf48 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000bf50 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000bf58 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000bf60 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000bf68 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000bf70 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000bf78 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000bf80 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000bf88 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000bf90 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000bf98 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000bfa0 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000bfa8 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000bfb0 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000bfb8 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000bfc0 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000bfc8 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000bfd0 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000bfd8 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000bfe0 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000bfe8 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000bff0 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000bff8 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000c000 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000c008 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000c010 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000c018 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000c020 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000c028 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000c030 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000c038 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000c040 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000c048 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000c050 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000c058 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000c060 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000c068 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000c070 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000c078 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000c080 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000c088 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000c090 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000c098 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000c0a0 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000c0a8 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000c0b0 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000c0b8 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000c0c0 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000c0c8 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000c0d0 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000c0d8 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000c0e0 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000c0e8 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000c0f0 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000c0f8 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000c100 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000c108 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000c110 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000c118 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000c120 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000c128 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000c130 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000c138 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000c140 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000c148 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000c150 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000c158 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000c160 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000c168 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000c170 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000c178 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000c180 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000c188 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000c190 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000c198 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000c1a0 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000c1a8 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000c1b0 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000c1b8 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000c1c0 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000c1c8 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000c1d0 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000c1d8 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000c1e0 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000c1e8 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000c1f0 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000c1f8 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000c200 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000c208 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000c210 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000c218 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000c220 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000c228 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000c230 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000c238 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000c240 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000c248 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000c250 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000c258 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000c260 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000c268 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000c270 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000c278 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000c280 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000c288 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000c290 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000c298 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000c2a0 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000c2a8 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000c2b0 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000c2b8 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000c2c0 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000c2c8 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000c2d0 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000c2d8 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000c2e0 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000c2e8 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000c2f0 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000c2f8 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000c300 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000c308 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000c310 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000c318 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000c320 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000c328 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000c330 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000c338 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000c340 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000c348 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000c350 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000c358 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000c360 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000c368 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000c370 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000c378 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000c380 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000c388 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000c390 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000c398 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000c3a0 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000c3a8 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000c3b0 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000c3b8 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000c3c0 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000c3c8 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000c3d0 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000c3d8 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000c3e0 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000c3e8 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000c3f0 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000c3f8 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000c400 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000c408 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000c410 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000c418 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000c420 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000c428 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000c430 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000c438 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000c440 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000c448 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000c450 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000c458 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000c460 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000c468 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000c470 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000c478 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000c480 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000c488 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000c490 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000c498 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000c4a0 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000c4a8 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000c4b0 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000c4b8 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000c4c0 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000c4c8 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000c4d0 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000c4d8 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000c4e0 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000c4e8 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000c4f0 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000c4f8 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000c500 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000c508 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000c510 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000c518 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000c520 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000c528 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000c530 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000c538 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000c540 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000c548 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000c550 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000c558 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000c560 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000c568 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000c570 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000c578 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000c580 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000c588 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000c590 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000c598 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000c5a0 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000c5a8 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000c5b0 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000c5b8 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000c5c0 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000c5c8 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000c5d0 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000c5d8 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000c5e0 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000c5e8 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000c5f0 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000c5f8 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000c600 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000c608 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000c610 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000c618 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000c620 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000c628 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000c630 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000c638 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000c640 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000c648 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000c650 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000c658 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000c660 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000c668 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000c670 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000c678 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000c680 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000c688 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000c690 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000c698 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000c6a0 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000c6a8 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000c6b0 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000c6b8 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000c6c0 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000c6c8 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000c6d0 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000c6d8 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000c6e0 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000c6e8 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000c6f0 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000c6f8 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000c700 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000c708 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000c710 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000c718 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000c720 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000c728 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000c730 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000c738 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000c740 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000c748 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000c750 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000c758 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000c760 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000c768 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000c770 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000c778 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000c780 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000c788 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000c790 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000c798 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000c7a0 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000c7a8 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000c7b0 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000c7b8 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000c7c0 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000c7c8 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000c7d0 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000c7d8 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000c7e0 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000c7e8 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000c7f0 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000c7f8 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000c800 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000c808 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000c810 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000c818 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000c820 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000c828 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000c830 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000c838 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000c840 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000c848 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000c850 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000c858 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000c860 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000c868 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000c870 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000c878 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000c880 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000c888 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000c890 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000c898 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000c8a0 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000c8a8 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000c8b0 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000c8b8 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000c8c0 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000c8c8 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000c8d0 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000c8d8 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000c8e0 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000c8e8 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000c8f0 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000c8f8 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000c900 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000c908 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000c910 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000c918 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000c920 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000c928 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000c930 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000c938 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000c940 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000c948 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000c950 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000c958 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000c960 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000c968 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000c970 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000c978 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000c980 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000c988 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000c990 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000c998 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000c9a0 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000c9a8 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000c9b0 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000c9b8 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000c9c0 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000c9c8 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000c9d0 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000c9d8 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000c9e0 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000c9e8 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000c9f0 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000c9f8 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000ca00 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000ca08 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000ca10 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000ca18 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000ca20 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000ca28 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000ca30 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000ca38 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000ca40 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000ca48 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000ca50 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000ca58 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000ca60 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000ca68 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000ca70 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000ca78 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000ca80 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000ca88 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000ca90 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000ca98 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000caa0 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000caa8 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000cab0 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000cab8 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000cac0 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000cac8 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000cad0 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000cad8 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000cae0 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000cae8 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000caf0 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000caf8 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000cb00 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000cb08 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000cb10 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000cb18 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000cb20 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000cb28 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000cb30 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000cb38 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000cb40 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000cb48 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000cb50 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000cb58 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000cb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000cb70 .p2align 4, 0x00 + //0x0000cb70 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x0000cb70 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x0000cb74 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x0000cb78 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000cb7c .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x0000cb80 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x0000cb84 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x0000cb88 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000cb8c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x0000cb90 .long 26 + //0x0000cb94 .p2align 2, 0x00 + //0x0000cb94 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000cb94 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000cb98 .p2align 4, 0x00 + //0x0000cba0 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000cba0 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000cbb0 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000cbc0 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000cbd0 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000cbe0 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000cbf0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000cc00 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000cc10 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000cc20 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000cc30 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000cc40 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000cc50 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000cc60 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000cc68 .p2align 4, 0x00 + //0x0000cc70 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000cc70 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000cc78 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000cc80 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000cc88 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000cc90 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000cc98 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000cca0 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000cca8 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000ccb0 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000ccb8 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000ccc0 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000ccc8 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000ccd0 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000ccd8 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000cce0 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000cce8 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000ccf0 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000ccf8 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000cd00 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000cd08 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000cd10 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000cd18 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000cd20 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000cd28 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000cd30 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000cd38 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000cd40 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000cd48 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000cd50 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000cd58 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000cd60 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000cd68 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000cd70 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000cd78 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000cd80 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000cd88 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000cd90 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000cd98 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000cda0 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000cda8 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000cdb0 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000cdb8 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000cdc0 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000cdc8 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000cdd0 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000cdd8 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000cde0 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000cde8 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000cdf0 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000cdf8 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000ce00 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000ce08 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000ce10 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000ce18 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000ce20 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000ce28 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000ce30 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000ce38 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000ce40 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000ce48 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000ce50 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000ce58 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000ce60 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000ce68 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000ce70 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000ce78 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000ce80 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000ce88 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000ce90 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000ce98 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000cea0 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000cea8 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000ceb0 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000ceb8 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000cec0 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000cec8 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000ced0 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000ced8 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000cee0 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000cee8 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000cef0 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000cef8 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000cf00 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000cf08 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000cf10 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000cf18 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000cf20 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000cf28 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000cf30 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000cf38 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000cf40 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000cf48 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000cf50 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000cf58 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000cf60 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000cf68 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000cf70 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000cf78 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000cf80 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000cf88 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000cf90 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000cf98 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000cfa0 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000cfa8 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000cfb0 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000cfb8 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000cfc0 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000cfc8 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000cfd0 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000cfd8 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000cfe0 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000cfe8 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000cff0 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000cff8 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000d000 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000d008 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000d010 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000d018 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000d020 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000d028 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000d030 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000d038 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000d040 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000d048 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000d050 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000d058 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000d060 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000d068 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000d070 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000d078 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000d080 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000d088 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000d090 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000d098 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000d0a0 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000d0a8 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000d0b0 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000d0b8 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000d0c0 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000d0c8 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000d0d0 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000d0d8 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000d0e0 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000d0e8 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000d0f0 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000d0f8 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000d100 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000d108 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000d110 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000d118 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000d120 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000d128 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000d130 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000d138 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000d140 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000d148 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000d150 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000d158 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000d160 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000d168 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000d170 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000d178 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000d180 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000d188 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000d190 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000d198 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000d1a0 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000d1a8 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000d1b0 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000d1b8 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000d1c0 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000d1c8 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000d1d0 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000d1d8 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000d1e0 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000d1e8 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000d1f0 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000d1f8 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000d200 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000d208 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000d210 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000d218 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000d220 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000d228 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000d230 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000d238 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000d240 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000d248 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000d250 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000d258 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000d260 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000d268 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000d270 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000d278 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000d280 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000d288 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000d290 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000d298 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000d2a0 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000d2a8 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000d2b0 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000d2b8 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000d2c0 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000d2c8 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000d2d0 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000d2d8 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000d2e0 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000d2e8 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000d2f0 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000d2f8 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000d300 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000d308 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000d310 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000d318 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000d320 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000d328 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000d330 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000d338 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000d340 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000d348 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000d350 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000d358 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000d360 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000d368 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000d370 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000d378 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000d380 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000d388 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000d390 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000d398 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000d3a0 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000d3a8 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000d3b0 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000d3b8 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000d3c0 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000d3c8 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000d3d0 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000d3d8 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000d3e0 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000d3e8 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000d3f0 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000d3f8 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000d400 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000d408 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000d410 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000d418 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000d420 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000d428 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000d430 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000d438 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000d440 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000d448 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000d450 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000d458 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000d460 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000d468 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000d470 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000d478 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000d480 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000d488 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000d490 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000d498 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000d4a0 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000d4a8 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000d4b0 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000d4b8 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000d4c0 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000d4c8 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000d4d0 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000d4d8 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000d4e0 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000d4e8 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000d4f0 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000d4f8 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000d500 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000d508 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000d510 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000d518 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000d520 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000d528 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000d530 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000d538 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000d540 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000d548 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000d550 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000d558 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000d560 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000d568 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000d570 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000d578 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000d580 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000d588 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000d590 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000d598 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000d5a0 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000d5a8 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000d5b0 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000d5b8 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000d5c0 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000d5c8 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000d5d0 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000d5d8 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000d5e0 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000d5e8 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000d5f0 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000d5f8 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000d600 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000d608 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000d610 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000d618 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000d620 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000d628 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000d630 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000d638 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000d640 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000d648 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000d650 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000d658 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000d660 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000d668 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000d670 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000d678 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000d680 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000d688 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000d690 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000d698 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000d6a0 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000d6a8 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000d6b0 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000d6b8 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000d6c0 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000d6c8 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000d6d0 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000d6d8 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000d6e0 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000d6e8 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000d6f0 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000d6f8 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000d700 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000d708 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000d710 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000d718 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000d720 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000d728 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000d730 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000d738 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000d740 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000d748 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000d750 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000d758 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000d760 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000d768 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000d770 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000d778 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000d780 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000d788 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000d790 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000d798 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000d7a0 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000d7a8 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000d7b0 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000d7b8 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000d7c0 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000d7c8 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000d7d0 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000d7d8 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000d7e0 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000d7e8 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000d7f0 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000d7f8 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000d800 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000d808 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000d810 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000d818 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000d820 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000d828 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000d830 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000d838 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000d840 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000d848 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000d850 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000d858 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000d860 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000d868 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000d870 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000d878 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000d880 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000d888 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000d890 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000d898 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000d8a0 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000d8a8 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000d8b0 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000d8b8 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000d8c0 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000d8c8 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000d8d0 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000d8d8 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000d8e0 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000d8e8 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000d8f0 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000d8f8 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000d900 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000d908 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000d910 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000d918 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000d920 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000d928 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000d930 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000d938 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000d940 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000d948 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000d950 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000d958 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000d960 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000d968 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000d970 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000d978 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000d980 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000d988 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000d990 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000d998 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000d9a0 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000d9a8 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000d9b0 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000d9b8 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000d9c0 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000d9c8 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000d9d0 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000d9d8 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000d9e0 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000d9e8 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000d9f0 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000d9f8 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000da00 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000da08 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000da10 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000da18 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000da20 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000da28 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000da30 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000da38 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000da40 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000da48 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000da50 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000da58 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000da60 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000da68 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000da70 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000da78 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000da80 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000da88 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000da90 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000da98 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000daa0 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000daa8 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000dab0 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000dab8 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000dac0 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000dac8 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000dad0 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000dad8 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000dae0 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000dae8 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000daf0 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000daf8 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000db00 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000db08 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000db10 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000db18 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000db20 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000db28 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000db30 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000db38 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000db40 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000db48 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000db50 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000db58 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000db60 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000db68 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000db70 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000db78 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000db80 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000db88 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000db90 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000db98 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000dba0 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000dba8 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000dbb0 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000dbb8 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000dbc0 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000dbc8 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000dbd0 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000dbd8 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000dbe0 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000dbe8 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000dbf0 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000dbf8 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000dc00 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000dc08 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000dc10 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000dc18 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000dc20 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000dc28 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000dc30 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000dc38 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000dc40 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000dc48 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000dc50 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000dc58 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000dc60 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000dc68 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000dc70 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000dc78 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000dc80 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000dc88 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000dc90 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000dc98 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000dca0 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000dca8 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000dcb0 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000dcb8 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000dcc0 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000dcc8 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000dcd0 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000dcd8 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000dce0 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000dce8 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000dcf0 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000dcf8 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000dd00 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000dd08 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000dd10 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000dd18 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000dd20 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000dd28 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000dd30 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000dd38 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000dd40 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000dd48 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000dd50 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000dd58 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000dd60 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000dd68 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000dd70 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000dd78 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000dd80 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000dd88 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000dd90 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000dd98 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000dda0 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000dda8 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000ddb0 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000ddb8 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000ddc0 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000ddc8 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000ddd0 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000ddd8 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000dde0 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000dde8 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000ddf0 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000ddf8 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000de00 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000de08 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000de10 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000de18 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000de20 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000de28 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000de30 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000de38 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000de40 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000de48 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000de50 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000de58 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000de60 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000de68 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000de70 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000de78 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000de80 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000de88 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000de90 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000de98 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000dea0 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000dea8 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000deb0 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000deb8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000dec0 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dec8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000ded0 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ded8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000dee0 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dee8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000def0 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000def8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000df00 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df08 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000df10 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df18 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000df20 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df28 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000df30 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df38 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000df40 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df48 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000df50 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df58 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000df60 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df68 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000df70 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df78 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000df80 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df88 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000df90 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df98 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000dfa0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfa8 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000dfb0 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfb8 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000dfc0 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfc8 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000dfd0 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfd8 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000dfe0 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfe8 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000dff0 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dff8 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000e000 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e008 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000e010 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e018 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000e020 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e028 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000e030 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e038 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000e040 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e048 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000e050 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e058 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000e060 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e068 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000e070 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000e078 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000e080 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000e088 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000e090 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000e098 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000e0a0 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000e0a8 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000e0b0 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000e0b8 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000e0c0 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000e0c8 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000e0d0 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000e0d8 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000e0e0 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000e0e8 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000e0f0 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000e0f8 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000e100 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000e108 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000e110 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000e118 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000e120 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000e128 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000e130 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000e138 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000e140 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000e148 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000e150 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000e158 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000e160 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000e168 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000e170 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000e178 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000e180 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000e188 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000e190 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000e198 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000e1a0 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000e1a8 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000e1b0 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000e1b8 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000e1c0 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000e1c8 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000e1d0 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000e1d8 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000e1e0 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000e1e8 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000e1f0 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000e1f8 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000e200 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000e208 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000e210 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000e218 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000e220 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000e228 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000e230 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000e238 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000e240 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000e248 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000e250 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000e258 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000e260 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000e268 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000e270 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000e278 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000e280 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000e288 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000e290 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000e298 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000e2a0 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000e2a8 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000e2b0 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000e2b8 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000e2c0 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000e2c8 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000e2d0 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000e2d8 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000e2e0 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000e2e8 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000e2f0 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000e2f8 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000e300 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000e308 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000e310 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000e318 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000e320 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000e328 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000e330 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000e338 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000e340 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000e348 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000e350 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000e358 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000e360 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000e368 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000e370 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000e378 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000e380 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000e388 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000e390 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000e398 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000e3a0 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000e3a8 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000e3b0 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000e3b8 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000e3c0 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000e3c8 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000e3d0 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000e3d8 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000e3e0 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000e3e8 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000e3f0 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000e3f8 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000e400 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000e408 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000e410 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000e418 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000e420 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000e428 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000e430 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000e438 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000e440 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000e448 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000e450 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000e458 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000e460 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000e468 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000e470 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000e478 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000e480 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000e488 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000e490 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000e498 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000e4a0 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000e4a8 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000e4b0 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000e4b8 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000e4c0 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000e4c8 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000e4d0 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000e4d8 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000e4e0 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000e4e8 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000e4f0 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000e4f8 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000e500 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000e508 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000e510 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000e518 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000e520 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000e528 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000e530 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000e538 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000e540 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000e548 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000e550 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000e558 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000e560 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000e568 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000e570 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000e578 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000e580 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000e588 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000e590 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000e598 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000e5a0 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000e5a8 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000e5b0 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000e5b8 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000e5c0 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000e5c8 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000e5d0 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000e5d8 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000e5e0 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000e5e8 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000e5f0 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000e5f8 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000e600 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000e608 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000e610 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000e618 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000e620 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000e628 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000e630 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000e638 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000e640 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000e648 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000e650 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000e658 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000e660 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000e668 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000e670 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000e678 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000e680 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000e688 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000e690 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000e698 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000e6a0 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000e6a8 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000e6b0 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000e6b8 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000e6c0 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000e6c8 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000e6d0 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000e6d8 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000e6e0 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000e6e8 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000e6f0 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000e6f8 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000e700 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000e708 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000e710 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000e718 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000e720 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000e728 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000e730 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000e738 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000e740 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000e748 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000e750 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000e758 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000e760 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000e768 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000e770 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000e778 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000e780 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000e788 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000e790 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000e798 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000e7a0 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000e7a8 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000e7b0 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000e7b8 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000e7c0 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000e7c8 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000e7d0 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000e7d8 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000e7e0 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000e7e8 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000e7f0 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000e7f8 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000e800 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000e808 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000e810 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000e818 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000e820 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000e828 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000e830 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000e838 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000e840 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000e848 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000e850 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000e858 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000e860 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000e868 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000e870 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000e878 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000e880 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000e888 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000e890 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000e898 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000e8a0 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000e8a8 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000e8b0 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000e8b8 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000e8c0 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000e8c8 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000e8d0 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000e8d8 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000e8e0 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000e8e8 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000e8f0 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000e8f8 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000e900 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000e908 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000e910 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000e918 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000e920 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000e928 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000e930 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000e938 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000e940 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000e948 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000e950 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000e958 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000e960 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000e968 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000e970 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000e978 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000e980 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000e988 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000e990 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000e998 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000e9a0 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000e9a8 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000e9b0 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000e9b8 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000e9c0 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000e9c8 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000e9d0 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000e9d8 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000e9e0 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000e9e8 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000e9f0 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000e9f8 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000ea00 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000ea08 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000ea10 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000ea18 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000ea20 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000ea28 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000ea30 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000ea38 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000ea40 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000ea48 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000ea50 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000ea58 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000ea60 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000ea68 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000ea70 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000ea78 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000ea80 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000ea88 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000ea90 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000ea98 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000eaa0 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000eaa8 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000eab0 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000eab8 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000eac0 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000eac8 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000ead0 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000ead8 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000eae0 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000eae8 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000eaf0 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000eaf8 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000eb00 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000eb08 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000eb10 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000eb18 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000eb20 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000eb28 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000eb30 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000eb38 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000eb40 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000eb48 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000eb50 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000eb58 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000eb60 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000eb68 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000eb70 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000eb78 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000eb80 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000eb88 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000eb90 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000eb98 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000eba0 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000eba8 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000ebb0 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000ebb8 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000ebc0 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000ebc8 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000ebd0 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000ebd8 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000ebe0 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000ebe8 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000ebf0 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000ebf8 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000ec00 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000ec08 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000ec10 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000ec18 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000ec20 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000ec28 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000ec30 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000ec38 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000ec40 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000ec48 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000ec50 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000ec58 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000ec60 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000ec68 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000ec70 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000ec78 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000ec80 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000ec88 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000ec90 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000ec98 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000eca0 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000eca8 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000ecb0 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000ecb8 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000ecc0 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000ecc8 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000ecd0 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000ecd8 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000ece0 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000ece8 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000ecf0 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000ecf8 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000ed00 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000ed08 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000ed10 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000ed18 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000ed20 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000ed28 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000ed30 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000ed38 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000ed40 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000ed48 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000ed50 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000ed58 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000ed60 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000ed68 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000ed70 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000ed78 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000ed80 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000ed88 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000ed90 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000ed98 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000eda0 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000eda8 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000edb0 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000edb8 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000edc0 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000edc8 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000edd0 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000edd8 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000ede0 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000ede8 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000edf0 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000edf8 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000ee00 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000ee08 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000ee10 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000ee18 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000ee20 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000ee28 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000ee30 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000ee38 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000ee40 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000ee48 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000ee50 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000ee58 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000ee60 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000ee68 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000ee70 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000ee78 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000ee80 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000ee88 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000ee90 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000ee98 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000eea0 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000eea8 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000eeb0 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000eeb8 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000eec0 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000eec8 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000eed0 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000eed8 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000eee0 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000eee8 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000eef0 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000eef8 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000ef00 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000ef08 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000ef10 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000ef18 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000ef20 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000ef28 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000ef30 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000ef38 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000ef40 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000ef48 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000ef50 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000ef58 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000ef60 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000ef68 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000ef70 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000ef78 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000ef80 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000ef88 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000ef90 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000ef98 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000efa0 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000efa8 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000efb0 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000efb8 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000efc0 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000efc8 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000efd0 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000efd8 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000efe0 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000efe8 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000eff0 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000eff8 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000f000 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000f008 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000f010 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000f018 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000f020 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000f028 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000f030 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000f038 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000f040 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000f048 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000f050 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000f058 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000f060 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000f068 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000f070 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000f078 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000f080 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000f088 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000f090 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000f098 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000f0a0 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000f0a8 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000f0b0 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000f0b8 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000f0c0 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000f0c8 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000f0d0 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000f0d8 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000f0e0 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000f0e8 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000f0f0 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000f0f8 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000f100 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000f108 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000f110 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000f118 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000f120 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000f128 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000f130 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000f138 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000f140 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000f148 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000f150 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000f158 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000f160 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000f168 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000f170 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000f178 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000f180 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000f188 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000f190 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000f198 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000f1a0 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000f1a8 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000f1b0 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000f1b8 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000f1c0 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000f1c8 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000f1d0 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000f1d8 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000f1e0 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000f1e8 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000f1f0 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000f1f8 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000f200 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000f208 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000f210 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000f218 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000f220 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000f228 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000f230 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000f238 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000f240 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000f248 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000f250 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000f258 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000f260 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000f268 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000f270 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000f278 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000f280 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000f288 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000f290 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000f298 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000f2a0 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000f2a8 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000f2b0 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000f2b8 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000f2c0 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000f2c8 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000f2d0 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000f2d8 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000f2e0 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000f2e8 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000f2f0 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000f2f8 .quad 7784369436827535058 + //0x0000f300 .p2align 4, 0x00 + //0x0000f300 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000f300 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000f310 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000f320 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000f330 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000f340 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f350 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f360 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f370 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f380 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + //0x0000f390 .p2align 4, 0x00 + //0x0000f390 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f390 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000f398 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000f3a8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000f3b8 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000f3c8 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000f3d8 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000f3e8 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000f3f8 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f400 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000f408 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f410 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000f418 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f420 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f428 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f430 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f438 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f440 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000f448 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f450 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000f458 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f460 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f468 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f470 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000f478 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f480 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000f488 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f490 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000f498 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000f4a8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000f4b8 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000f4c8 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000f4d8 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000f4e8 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000f4f8 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f500 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000f508 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f510 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000f518 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f520 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000f528 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f530 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000f538 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f540 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000f548 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f550 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000f558 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f560 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000f568 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f570 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000f578 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f580 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000f588 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5b0 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5b8 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f950 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f958 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000feb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010390 .p2align 4, 0x00 + //0x00010390 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010390 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x00010398 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x000103a8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x000103b8 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x000103c8 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x000103d8 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x000103e8 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x000103f8 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010400 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x00010408 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010410 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x00010418 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010420 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010428 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010430 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010438 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010440 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x00010448 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010450 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x00010458 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010460 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010468 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010470 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x00010478 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010480 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x00010488 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010490 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x00010498 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x000104a8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x000104b8 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x000104c8 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x000104d8 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x000104e8 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x000104f8 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010500 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x00010508 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010510 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x00010518 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010520 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x00010528 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010530 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x00010538 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010540 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x00010548 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010550 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x00010558 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010560 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x00010568 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010570 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x00010578 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010580 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x00010588 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105b0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x000105b8 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010950 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x00010958 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00011390 .p2align 4, 0x00 + //0x00011390 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00011390 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000113a0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113b0 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x000113e0 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113ed QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113fd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001140d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001141d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001142d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001143d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001144d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001145d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001146d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001147d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x0001148d WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' + //0x00011490 .p2align 4, 0x00 + //0x00011490 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x000114b0 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x000114e0 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x000114f0 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00011500 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011506 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011516 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011526 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011536 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011546 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011556 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011566 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011576 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011586 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00011590 .p2align 4, 0x00 + //0x00011590 __HtmlQuoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x000117f8 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011950 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00011958 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011970 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00011978 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012010 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00012018 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012020 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00012028 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00012590 .p2align 4, 0x00 + //0x00012590 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125f0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000125f8 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125fc QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001260c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001261c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001262c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001263c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001264c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001265c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00012660 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012664 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012674 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000126c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000126c8 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126cc QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001270c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001271c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001272c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00012730 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012734 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012744 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012784 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012794 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00012798 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001279c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000127fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00012800 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012804 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012814 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012854 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012864 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00012868 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001286c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001287c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001288c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001289c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000128cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000128d0 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128d4 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012904 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012924 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012934 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00012938 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001293c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001294c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001295c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001296c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001297c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001298c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001299c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000129a0 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129a4 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012a08 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a0c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012a70 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a74 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ad4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012ad8 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012adc QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012b40 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b44 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ba4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012ba8 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bac QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012c10 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012c14 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012c78 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012c7c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012cdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012ce0 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012ce4 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012d48 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x00012d4c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012dac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012db0 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012db4 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012e18 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x00012e1c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012e80 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00012e84 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ee4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012ee8 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x00012eec QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012efc QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012f50 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00012f54 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f64 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012fb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012fb8 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x00012fbc QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fcc QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001300c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001301c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00013020 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00013024 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013034 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013084 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00013088 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x0001308c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001309c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000130ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000130f0 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x000130f4 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013104 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013154 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00013158 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x0001315c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001316c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001317c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001318c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001319c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000131bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000131c0 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x000131c4 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131d4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013224 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00013228 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x0001322c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001323c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001324c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001325c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001326c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001327c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001328c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00013290 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00013294 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132a4 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000132f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000132f8 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x000132fc QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001330c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001331c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001332c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001333c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001334c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001335c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00013360 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00013364 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013374 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000133c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000133c8 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x000133cc QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133dc QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001340c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001341c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001342c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00013430 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00013434 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013444 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013484 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013494 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00013498 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x0001349c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134ac QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000134fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00013500 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00013504 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013514 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013534 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013554 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013564 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00013568 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x0001356c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0001357c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001358c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001359c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000135cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000135d0 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x000135d4 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000135e4 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013604 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013624 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013634 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013638 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x0001363c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x0001364c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001365c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001366c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001367c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001368c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001369c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000136a0 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x000136a4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000136b4 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013704 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013708 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x0001370c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x0001371c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001372c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001373c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001374c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001375c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001376c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013770 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00013774 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00013784 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000137d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000137d8 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x000137dc QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x000137ec QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001380c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001381c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001382c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001383c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013840 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00013844 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00013854 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013864 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013874 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013894 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000138a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000138a8 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x000138ac QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x000138bc QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138cc QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001390c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00013910 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00013914 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00013924 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013934 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013944 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013954 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013964 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013974 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00013978 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x0001397c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x0001398c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001399c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000139dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000139e0 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x000139e4 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x000139f4 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a04 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013a44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013a48 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x00013a4c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x00013a5c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a6c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013aac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013ab0 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00013ab4 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013ac4 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ad4 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ae4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013af4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013b14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013b18 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x00013b1c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x00013b2c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b3c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013b7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013b80 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00013b84 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00013b94 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ba4 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013be4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013be8 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x00013bec QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x00013bfc QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c0c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013c4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013c50 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00013c54 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00013c64 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c74 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ca4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013cb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013cb8 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x00013cbc QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x00013ccc QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cdc QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013d1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013d20 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013d24 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013d34 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d44 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013d84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013d88 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x00013d8c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x00013d9c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013dac QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013dbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013dcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ddc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013dec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00013df0 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013df4 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013e04 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e14 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013e54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e58 .p2align 4, 0x00 + //0x00013e60 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x00013e60 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x00013e68 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x00013e70 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x00013e78 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x00013e80 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x00013e88 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x00013e90 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x00013e98 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00013ea0 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00013ea8 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013eb0 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013eb8 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013ec0 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013ec8 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013ed0 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013ed8 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013ee0 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013ee8 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013ef0 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013ef8 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013f00 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013f08 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013f10 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f18 .p2align 4, 0x00 + //0x00013f20 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013f20 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013f28 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013f30 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013f38 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013f40 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013f48 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00013f50 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00013f58 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00013f60 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00013f68 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00013f70 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00013f78 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00013f80 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00013f88 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00013f90 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00013f98 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00013fa0 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00013fa8 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00013fb0 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00013fb8 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013fc0 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013fc8 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00013fd0 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00013fd8 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00013fe0 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00013fe8 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00013ff0 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00013ff8 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00014000 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00014008 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00014010 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00014018 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00014020 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00014028 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00014030 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00014038 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00014040 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00014048 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00014050 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00014058 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00014060 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00014068 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00014070 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00014078 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00014080 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00014088 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00014090 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00014098 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x000140a0 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x000140a8 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x000140b0 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x000140b8 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x000140c0 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x000140c8 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x000140d0 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x000140d8 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x000140e0 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x000140e8 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x000140f0 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x000140f8 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00014100 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00014108 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00014110 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00014118 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00014120 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00014128 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00014130 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00014138 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00014140 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00014148 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00014150 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00014158 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00014160 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00014168 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00014170 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00014178 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00014180 .quad -5522047002568494196 +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go index 11e51723..41441f51 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go @@ -24,6 +24,8 @@ import ( `github.com/bytedance/sonic/internal/native/avx2` `github.com/bytedance/sonic/internal/native/sse` `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/loader` ) const ( @@ -40,8 +42,9 @@ var ( ) var ( - S_quote uintptr - S_unquote uintptr + S_quote uintptr + S_unquote uintptr + S_html_escape uintptr ) var ( @@ -53,140 +56,148 @@ var ( ) var ( - S_skip_one uintptr - S_skip_one_fast uintptr - S_get_by_path uintptr - S_skip_array uintptr - S_skip_object uintptr - S_skip_number uintptr + S_skip_one uintptr + S_skip_one_fast uintptr + S_get_by_path uintptr + S_skip_array uintptr + S_skip_object uintptr + S_skip_number uintptr +) + +var ( + S_validate_one uintptr + S_validate_utf8 uintptr + S_validate_utf8_fast uintptr +) + +var ( + __Quote func(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer, flags uint64) int + + __Unquote func(s unsafe.Pointer, nb int, dp unsafe.Pointer, ep unsafe.Pointer, flags uint64) int + + __HTMLEscape func(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer) int + + __Value func(s unsafe.Pointer, n int, p int, v unsafe.Pointer, flags uint64) int + + __SkipOne func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) int + + __SkipOneFast func(s unsafe.Pointer, p unsafe.Pointer) int + + __GetByPath func(s unsafe.Pointer, p unsafe.Pointer, path unsafe.Pointer, m unsafe.Pointer) int + + __ValidateOne func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) int + + __I64toa func(out unsafe.Pointer, val int64) (ret int) + + __U64toa func(out unsafe.Pointer, val uint64) (ret int) + + __F64toa func(out unsafe.Pointer, val float64) (ret int) + + __ValidateUTF8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + + __ValidateUTF8Fast func(s unsafe.Pointer) (ret int) ) //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func Quote(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) int +func Quote(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) int { + return __Quote(rt.NoEscape(unsafe.Pointer(s)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(dn)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func Unquote(s unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) int +func Unquote(s unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) int { + return __Unquote(rt.NoEscape(unsafe.Pointer(s)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(ep)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func HTMLEscape(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) int +func HTMLEscape(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) int { + return __HTMLEscape(rt.NoEscape(unsafe.Pointer(s)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(dn))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func Value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) int +func Value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) int { + return __Value(rt.NoEscape(unsafe.Pointer(s)), n, p, rt.NoEscape(unsafe.Pointer(v)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func SkipOne(s *string, p *int, m *types.StateMachine, flags uint64) int +func SkipOne(s *string, p *int, m *types.StateMachine, flags uint64) int { + return __SkipOne(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func SkipOneFast(s *string, p *int) int +func SkipOneFast(s *string, p *int) int { + return __SkipOneFast(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func GetByPath(s *string, p *int, path *[]interface{}, m *types.StateMachine) int +func GetByPath(s *string, p *int, path *[]interface{}, m *types.StateMachine) int { + return __GetByPath(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(path)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func ValidateOne(s *string, p *int, m *types.StateMachine) int +func ValidateOne(s *string, p *int, m *types.StateMachine) int { + return __ValidateOne(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func I64toa(out *byte, val int64) (ret int) +func I64toa(out *byte, val int64) (ret int) { + return __I64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func U64toa(out *byte, val uint64) (ret int) +func U64toa(out *byte, val uint64) (ret int) { + return __U64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func F64toa(out *byte, val float64) (ret int) +func F64toa(out *byte, val float64) (ret int) { + return __F64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func ValidateUTF8(s *string, p *int, m *types.StateMachine) (ret int) +func ValidateUTF8(s *string, p *int, m *types.StateMachine) (ret int) { + return __ValidateUTF8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func ValidateUTF8Fast(s *string) (ret int) +func ValidateUTF8Fast(s *string) (ret int) { + return __ValidateUTF8Fast(rt.NoEscape(unsafe.Pointer(s))) +} + +var stubs = []loader.GoC{ + {"_f64toa", &S_f64toa, &__F64toa}, + {"_f32toa", &S_f32toa, nil}, + {"_i64toa", &S_i64toa, &__I64toa}, + {"_u64toa", &S_u64toa, &__U64toa}, + {"_lspace", &S_lspace, nil}, + {"_quote", &S_quote, &__Quote}, + {"_unquote", &S_unquote, &__Unquote}, + {"_html_escape", &S_html_escape, &__HTMLEscape}, + {"_value", &S_value, &__Value}, + {"_vstring", &S_vstring, nil}, + {"_vnumber", &S_vnumber, nil}, + {"_vsigned", &S_vsigned, nil}, + {"_vunsigned", &S_vunsigned, nil}, + {"_skip_one", &S_skip_one, &__SkipOne}, + {"_skip_one_fast", &S_skip_one_fast, &__SkipOneFast}, + {"_get_by_path", &S_get_by_path, &__GetByPath}, + {"_skip_array", &S_skip_array, nil}, + {"_skip_object", &S_skip_object, nil}, + {"_skip_number", &S_skip_number, nil}, + {"_validate_one", &S_validate_one, &__ValidateOne}, + {"_validate_utf8", &S_validate_utf8, &__ValidateUTF8}, + {"_validate_utf8_fast", &S_validate_utf8_fast, &__ValidateUTF8Fast}, +} func useAVX() { - S_f64toa = avx.S_f64toa - S_f32toa = avx.S_f32toa - S_i64toa = avx.S_i64toa - S_u64toa = avx.S_u64toa - S_lspace = avx.S_lspace - S_quote = avx.S_quote - S_unquote = avx.S_unquote - S_value = avx.S_value - S_vstring = avx.S_vstring - S_vnumber = avx.S_vnumber - S_vsigned = avx.S_vsigned - S_vunsigned = avx.S_vunsigned - S_skip_one = avx.S_skip_one - S_skip_one_fast = avx.S_skip_one_fast - S_skip_array = avx.S_skip_array - S_skip_object = avx.S_skip_object - S_skip_number = avx.S_skip_number - S_get_by_path = avx.S_get_by_path + loader.WrapGoC(avx.Text__native_entry__, avx.Funcs, stubs, "avx", "avx/native.c") } func useAVX2() { - S_f64toa = avx2.S_f64toa - S_f32toa = avx2.S_f32toa - S_i64toa = avx2.S_i64toa - S_u64toa = avx2.S_u64toa - S_lspace = avx2.S_lspace - S_quote = avx2.S_quote - S_unquote = avx2.S_unquote - S_value = avx2.S_value - S_vstring = avx2.S_vstring - S_vnumber = avx2.S_vnumber - S_vsigned = avx2.S_vsigned - S_vunsigned = avx2.S_vunsigned - S_skip_one = avx2.S_skip_one - S_skip_one_fast = avx2.S_skip_one_fast - S_skip_array = avx2.S_skip_array - S_skip_object = avx2.S_skip_object - S_skip_number = avx2.S_skip_number - S_get_by_path = avx2.S_get_by_path + loader.WrapGoC(avx2.Text__native_entry__, avx2.Funcs, stubs, "avx2", "avx2/native.c") } func useSSE() { - S_f64toa = sse.S_f64toa - S_f32toa = sse.S_f32toa - S_i64toa = sse.S_i64toa - S_u64toa = sse.S_u64toa - S_lspace = sse.S_lspace - S_quote = sse.S_quote - S_unquote = sse.S_unquote - S_value = sse.S_value - S_vstring = sse.S_vstring - S_vnumber = sse.S_vnumber - S_vsigned = sse.S_vsigned - S_vunsigned = sse.S_vunsigned - S_skip_one = sse.S_skip_one - S_skip_one_fast = sse.S_skip_one_fast - S_skip_array = sse.S_skip_array - S_skip_object = sse.S_skip_object - S_skip_number = sse.S_skip_number - S_get_by_path = sse.S_get_by_path + loader.WrapGoC(sse.Text__native_entry__, sse.Funcs, stubs, "sse", "sse/native.c") } func init() { diff --git a/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.s b/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.s deleted file mode 100644 index bfd2f52d..00000000 --- a/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.s +++ /dev/null @@ -1,137 +0,0 @@ -// -// Copyright 2021 ByteDance Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#include "go_asm.h" -#include "funcdata.h" -#include "textflag.h" - -TEXT ·Quote(SB), NOSPLIT, $0 - 48 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__quote(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__quote(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__quote(SB) - -TEXT ·Unquote(SB), NOSPLIT, $0 - 48 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__unquote(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__unquote(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__unquote(SB) - -TEXT ·HTMLEscape(SB), NOSPLIT, $0 - 40 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__html_escape(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__html_escape(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__html_escape(SB) - -TEXT ·Value(SB), NOSPLIT, $0 - 48 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__value(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__value(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__value(SB) - -TEXT ·SkipOne(SB), NOSPLIT, $0 - 40 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__skip_one(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__skip_one(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__skip_one(SB) - -TEXT ·SkipOneFast(SB), NOSPLIT, $0 - 24 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__skip_one_fast(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__skip_one_fast(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__skip_one_fast(SB) - -TEXT ·GetByPath(SB), NOSPLIT, $0 - 40 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__get_by_path(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__get_by_path(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__get_by_path(SB) - -TEXT ·ValidateOne(SB), NOSPLIT, $0 - 32 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__validate_one(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__validate_one(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__validate_one(SB) - -TEXT ·ValidateUTF8(SB), NOSPLIT, $0 - 40 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__validate_utf8(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__validate_utf8(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__validate_utf8(SB) - -TEXT ·ValidateUTF8Fast(SB), NOSPLIT, $0 - 16 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__validate_utf8_fast(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__validate_utf8_fast(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__validate_utf8_fast(SB) - -TEXT ·I64toa(SB), NOSPLIT, $0 - 32 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__i64toa(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__i64toa(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__i64toa(SB) - -TEXT ·U64toa(SB), NOSPLIT, $0 - 32 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__u64toa(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__u64toa(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__u64toa(SB) - -TEXT ·F64toa(SB), NOSPLIT, $0 - 32 - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX2(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx2·__f64toa(SB) - CMPB github·com∕bytedance∕sonic∕internal∕cpu·HasAVX(SB), $0 - JE 2(PC) - JMP github·com∕bytedance∕sonic∕internal∕native∕avx·__f64toa(SB) - JMP github·com∕bytedance∕sonic∕internal∕native∕sse·__f64toa(SB) - diff --git a/vendor/github.com/bytedance/sonic/internal/native/fastfloat_amd64_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/fastfloat_amd64_test.tmpl index 7ed9e470..c619d8af 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/fastfloat_amd64_test.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/fastfloat_amd64_test.tmpl @@ -1,3 +1,5 @@ +// Code generated by Makefile, DO NOT EDIT. + /* * Copyright 2021 ByteDance Inc. * @@ -17,35 +19,35 @@ package {{PACKAGE}} import ( + `encoding/json` `math` + `math/rand` `strconv` `testing` - `math/rand` - `encoding/json` `github.com/stretchr/testify/assert` ) func TestFastFloat_Encode(t *testing.T) { var buf [64]byte - assert.Equal(t, "0" , string(buf[:__f64toa(&buf[0], 0)])) - assert.Equal(t, "-0" , string(buf[:__f64toa(&buf[0], math.Float64frombits(0x8000000000000000))])) - assert.Equal(t, "12340000000" , string(buf[:__f64toa(&buf[0], 1234e7)])) - assert.Equal(t, "12.34" , string(buf[:__f64toa(&buf[0], 1234e-2)])) - assert.Equal(t, "0.001234" , string(buf[:__f64toa(&buf[0], 1234e-6)])) - assert.Equal(t, "1e+30" , string(buf[:__f64toa(&buf[0], 1e30)])) - assert.Equal(t, "1.234e+33" , string(buf[:__f64toa(&buf[0], 1234e30)])) - assert.Equal(t, "1.234e+308" , string(buf[:__f64toa(&buf[0], 1234e305)])) - assert.Equal(t, "1.234e-317" , string(buf[:__f64toa(&buf[0], 1234e-320)])) - assert.Equal(t, "1.7976931348623157e+308" , string(buf[:__f64toa(&buf[0], 1.7976931348623157e308)])) - assert.Equal(t, "-12340000000" , string(buf[:__f64toa(&buf[0], -1234e7)])) - assert.Equal(t, "-12.34" , string(buf[:__f64toa(&buf[0], -1234e-2)])) - assert.Equal(t, "-0.001234" , string(buf[:__f64toa(&buf[0], -1234e-6)])) - assert.Equal(t, "-1e+30" , string(buf[:__f64toa(&buf[0], -1e30)])) - assert.Equal(t, "-1.234e+33" , string(buf[:__f64toa(&buf[0], -1234e30)])) - assert.Equal(t, "-1.234e+308" , string(buf[:__f64toa(&buf[0], -1234e305)])) - assert.Equal(t, "-1.234e-317" , string(buf[:__f64toa(&buf[0], -1234e-320)])) - assert.Equal(t, "-2.2250738585072014e-308" , string(buf[:__f64toa(&buf[0], -2.2250738585072014e-308)])) + assert.Equal(t, "0" , string(buf[:f64toa(&buf[0], 0)])) + assert.Equal(t, "-0" , string(buf[:f64toa(&buf[0], math.Float64frombits(0x8000000000000000))])) + assert.Equal(t, "12340000000" , string(buf[:f64toa(&buf[0], 1234e7)])) + assert.Equal(t, "12.34" , string(buf[:f64toa(&buf[0], 1234e-2)])) + assert.Equal(t, "0.001234" , string(buf[:f64toa(&buf[0], 1234e-6)])) + assert.Equal(t, "1e+30" , string(buf[:f64toa(&buf[0], 1e30)])) + assert.Equal(t, "1.234e+33" , string(buf[:f64toa(&buf[0], 1234e30)])) + assert.Equal(t, "1.234e+308" , string(buf[:f64toa(&buf[0], 1234e305)])) + assert.Equal(t, "1.234e-317" , string(buf[:f64toa(&buf[0], 1234e-320)])) + assert.Equal(t, "1.7976931348623157e+308" , string(buf[:f64toa(&buf[0], 1.7976931348623157e308)])) + assert.Equal(t, "-12340000000" , string(buf[:f64toa(&buf[0], -1234e7)])) + assert.Equal(t, "-12.34" , string(buf[:f64toa(&buf[0], -1234e-2)])) + assert.Equal(t, "-0.001234" , string(buf[:f64toa(&buf[0], -1234e-6)])) + assert.Equal(t, "-1e+30" , string(buf[:f64toa(&buf[0], -1e30)])) + assert.Equal(t, "-1.234e+33" , string(buf[:f64toa(&buf[0], -1234e30)])) + assert.Equal(t, "-1.234e+308" , string(buf[:f64toa(&buf[0], -1234e305)])) + assert.Equal(t, "-1.234e-317" , string(buf[:f64toa(&buf[0], -1234e-320)])) + assert.Equal(t, "-2.2250738585072014e-308" , string(buf[:f64toa(&buf[0], -2.2250738585072014e-308)])) } func TestFastFloat_Random(t *testing.T) { @@ -56,7 +58,7 @@ func TestFastFloat_Random(t *testing.T) { f64 := math.Float64frombits(b64) jout, jerr := json.Marshal(f64) - n := __f64toa(&buf[0], f64) + n := f64toa(&buf[0], f64) if jerr == nil { assert.Equal(t, jout, buf[:n]) } else { @@ -65,7 +67,7 @@ func TestFastFloat_Random(t *testing.T) { f32 := math.Float32frombits(rand.Uint32()) jout, jerr = json.Marshal(f32) - n = __f32toa(&buf[0], f32) + n = f32toa(&buf[0], f32) if jerr == nil { assert.Equal(t, jout, buf[:n]) } else { @@ -97,7 +99,7 @@ func BenchmarkParseFloat64(b *testing.B) { test: func(b *testing.B) { var buf [64]byte; for i := 0; i < b.N; i++ { strconv.AppendFloat(buf[:0], c.float, 'g', -1, 64) }}, }, { name: "FastFloat", - test: func(b *testing.B) { var buf [64]byte; for i := 0; i < b.N; i++ { __f64toa(&buf[0], c.float) }}, + test: func(b *testing.B) { var buf [64]byte; for i := 0; i < b.N; i++ { f64toa(&buf[0], c.float) }}, }} for _, bm := range f64bench { name := bm.name + "_" + c.name @@ -128,11 +130,11 @@ func BenchmarkParseFloat32(b *testing.B) { test: func(b *testing.B) { var buf [64]byte; for i := 0; i < b.N; i++ { strconv.AppendFloat(buf[:0], float64(c.float), 'g', -1, 32) }}, }, { name: "FastFloat32", - test: func(b *testing.B) { var buf [64]byte; for i := 0; i < b.N; i++ { __f32toa(&buf[0], c.float) }}, + test: func(b *testing.B) { var buf [64]byte; for i := 0; i < b.N; i++ { f32toa(&buf[0], c.float) }}, }} for _, bm := range bench { name := bm.name + "_" + c.name b.Run(name, bm.test) } } -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/fastint_amd64_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/fastint_amd64_test.tmpl index cb060909..c4acc752 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/fastint_amd64_test.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/fastint_amd64_test.tmpl @@ -1,3 +1,5 @@ +// Code generated by Makefile, DO NOT EDIT. + /* * Copyright 2021 ByteDance Inc. * @@ -26,126 +28,126 @@ import ( func TestFastInt_IntToString(t *testing.T) { var buf [32]byte - assert.Equal(t, "0" , string(buf[:__i64toa(&buf[0], 0)])) - assert.Equal(t, "1" , string(buf[:__i64toa(&buf[0], 1)])) - assert.Equal(t, "12" , string(buf[:__i64toa(&buf[0], 12)])) - assert.Equal(t, "123" , string(buf[:__i64toa(&buf[0], 123)])) - assert.Equal(t, "1234" , string(buf[:__i64toa(&buf[0], 1234)])) - assert.Equal(t, "12345" , string(buf[:__i64toa(&buf[0], 12345)])) - assert.Equal(t, "123456" , string(buf[:__i64toa(&buf[0], 123456)])) - assert.Equal(t, "1234567" , string(buf[:__i64toa(&buf[0], 1234567)])) - assert.Equal(t, "12345678" , string(buf[:__i64toa(&buf[0], 12345678)])) - assert.Equal(t, "123456789" , string(buf[:__i64toa(&buf[0], 123456789)])) - assert.Equal(t, "1234567890" , string(buf[:__i64toa(&buf[0], 1234567890)])) - assert.Equal(t, "12345678901" , string(buf[:__i64toa(&buf[0], 12345678901)])) - assert.Equal(t, "123456789012" , string(buf[:__i64toa(&buf[0], 123456789012)])) - assert.Equal(t, "1234567890123" , string(buf[:__i64toa(&buf[0], 1234567890123)])) - assert.Equal(t, "12345678901234" , string(buf[:__i64toa(&buf[0], 12345678901234)])) - assert.Equal(t, "123456789012345" , string(buf[:__i64toa(&buf[0], 123456789012345)])) - assert.Equal(t, "1234567890123456" , string(buf[:__i64toa(&buf[0], 1234567890123456)])) - assert.Equal(t, "12345678901234567" , string(buf[:__i64toa(&buf[0], 12345678901234567)])) - assert.Equal(t, "123456789012345678" , string(buf[:__i64toa(&buf[0], 123456789012345678)])) - assert.Equal(t, "1234567890123456789" , string(buf[:__i64toa(&buf[0], 1234567890123456789)])) - assert.Equal(t, "9223372036854775807" , string(buf[:__i64toa(&buf[0], 9223372036854775807)])) - assert.Equal(t, "-1" , string(buf[:__i64toa(&buf[0], -1)])) - assert.Equal(t, "-12" , string(buf[:__i64toa(&buf[0], -12)])) - assert.Equal(t, "-123" , string(buf[:__i64toa(&buf[0], -123)])) - assert.Equal(t, "-1234" , string(buf[:__i64toa(&buf[0], -1234)])) - assert.Equal(t, "-12345" , string(buf[:__i64toa(&buf[0], -12345)])) - assert.Equal(t, "-123456" , string(buf[:__i64toa(&buf[0], -123456)])) - assert.Equal(t, "-1234567" , string(buf[:__i64toa(&buf[0], -1234567)])) - assert.Equal(t, "-12345678" , string(buf[:__i64toa(&buf[0], -12345678)])) - assert.Equal(t, "-123456789" , string(buf[:__i64toa(&buf[0], -123456789)])) - assert.Equal(t, "-1234567890" , string(buf[:__i64toa(&buf[0], -1234567890)])) - assert.Equal(t, "-12345678901" , string(buf[:__i64toa(&buf[0], -12345678901)])) - assert.Equal(t, "-123456789012" , string(buf[:__i64toa(&buf[0], -123456789012)])) - assert.Equal(t, "-1234567890123" , string(buf[:__i64toa(&buf[0], -1234567890123)])) - assert.Equal(t, "-12345678901234" , string(buf[:__i64toa(&buf[0], -12345678901234)])) - assert.Equal(t, "-123456789012345" , string(buf[:__i64toa(&buf[0], -123456789012345)])) - assert.Equal(t, "-1234567890123456" , string(buf[:__i64toa(&buf[0], -1234567890123456)])) - assert.Equal(t, "-12345678901234567" , string(buf[:__i64toa(&buf[0], -12345678901234567)])) - assert.Equal(t, "-123456789012345678" , string(buf[:__i64toa(&buf[0], -123456789012345678)])) - assert.Equal(t, "-1234567890123456789" , string(buf[:__i64toa(&buf[0], -1234567890123456789)])) - assert.Equal(t, "-9223372036854775808" , string(buf[:__i64toa(&buf[0], -9223372036854775808)])) + assert.Equal(t, "0" , string(buf[:i64toa(&buf[0], 0)])) + assert.Equal(t, "1" , string(buf[:i64toa(&buf[0], 1)])) + assert.Equal(t, "12" , string(buf[:i64toa(&buf[0], 12)])) + assert.Equal(t, "123" , string(buf[:i64toa(&buf[0], 123)])) + assert.Equal(t, "1234" , string(buf[:i64toa(&buf[0], 1234)])) + assert.Equal(t, "12345" , string(buf[:i64toa(&buf[0], 12345)])) + assert.Equal(t, "123456" , string(buf[:i64toa(&buf[0], 123456)])) + assert.Equal(t, "1234567" , string(buf[:i64toa(&buf[0], 1234567)])) + assert.Equal(t, "12345678" , string(buf[:i64toa(&buf[0], 12345678)])) + assert.Equal(t, "123456789" , string(buf[:i64toa(&buf[0], 123456789)])) + assert.Equal(t, "1234567890" , string(buf[:i64toa(&buf[0], 1234567890)])) + assert.Equal(t, "12345678901" , string(buf[:i64toa(&buf[0], 12345678901)])) + assert.Equal(t, "123456789012" , string(buf[:i64toa(&buf[0], 123456789012)])) + assert.Equal(t, "1234567890123" , string(buf[:i64toa(&buf[0], 1234567890123)])) + assert.Equal(t, "12345678901234" , string(buf[:i64toa(&buf[0], 12345678901234)])) + assert.Equal(t, "123456789012345" , string(buf[:i64toa(&buf[0], 123456789012345)])) + assert.Equal(t, "1234567890123456" , string(buf[:i64toa(&buf[0], 1234567890123456)])) + assert.Equal(t, "12345678901234567" , string(buf[:i64toa(&buf[0], 12345678901234567)])) + assert.Equal(t, "123456789012345678" , string(buf[:i64toa(&buf[0], 123456789012345678)])) + assert.Equal(t, "1234567890123456789" , string(buf[:i64toa(&buf[0], 1234567890123456789)])) + assert.Equal(t, "9223372036854775807" , string(buf[:i64toa(&buf[0], 9223372036854775807)])) + assert.Equal(t, "-1" , string(buf[:i64toa(&buf[0], -1)])) + assert.Equal(t, "-12" , string(buf[:i64toa(&buf[0], -12)])) + assert.Equal(t, "-123" , string(buf[:i64toa(&buf[0], -123)])) + assert.Equal(t, "-1234" , string(buf[:i64toa(&buf[0], -1234)])) + assert.Equal(t, "-12345" , string(buf[:i64toa(&buf[0], -12345)])) + assert.Equal(t, "-123456" , string(buf[:i64toa(&buf[0], -123456)])) + assert.Equal(t, "-1234567" , string(buf[:i64toa(&buf[0], -1234567)])) + assert.Equal(t, "-12345678" , string(buf[:i64toa(&buf[0], -12345678)])) + assert.Equal(t, "-123456789" , string(buf[:i64toa(&buf[0], -123456789)])) + assert.Equal(t, "-1234567890" , string(buf[:i64toa(&buf[0], -1234567890)])) + assert.Equal(t, "-12345678901" , string(buf[:i64toa(&buf[0], -12345678901)])) + assert.Equal(t, "-123456789012" , string(buf[:i64toa(&buf[0], -123456789012)])) + assert.Equal(t, "-1234567890123" , string(buf[:i64toa(&buf[0], -1234567890123)])) + assert.Equal(t, "-12345678901234" , string(buf[:i64toa(&buf[0], -12345678901234)])) + assert.Equal(t, "-123456789012345" , string(buf[:i64toa(&buf[0], -123456789012345)])) + assert.Equal(t, "-1234567890123456" , string(buf[:i64toa(&buf[0], -1234567890123456)])) + assert.Equal(t, "-12345678901234567" , string(buf[:i64toa(&buf[0], -12345678901234567)])) + assert.Equal(t, "-123456789012345678" , string(buf[:i64toa(&buf[0], -123456789012345678)])) + assert.Equal(t, "-1234567890123456789" , string(buf[:i64toa(&buf[0], -1234567890123456789)])) + assert.Equal(t, "-9223372036854775808" , string(buf[:i64toa(&buf[0], -9223372036854775808)])) } func TestFastInt_UintToString(t *testing.T) { var buf [32]byte - assert.Equal(t, "0" , string(buf[:__u64toa(&buf[0], 0)])) - assert.Equal(t, "1" , string(buf[:__u64toa(&buf[0], 1)])) - assert.Equal(t, "12" , string(buf[:__u64toa(&buf[0], 12)])) - assert.Equal(t, "123" , string(buf[:__u64toa(&buf[0], 123)])) - assert.Equal(t, "1234" , string(buf[:__u64toa(&buf[0], 1234)])) - assert.Equal(t, "12345" , string(buf[:__u64toa(&buf[0], 12345)])) - assert.Equal(t, "123456" , string(buf[:__u64toa(&buf[0], 123456)])) - assert.Equal(t, "1234567" , string(buf[:__u64toa(&buf[0], 1234567)])) - assert.Equal(t, "12345678" , string(buf[:__u64toa(&buf[0], 12345678)])) - assert.Equal(t, "123456789" , string(buf[:__u64toa(&buf[0], 123456789)])) - assert.Equal(t, "1234567890" , string(buf[:__u64toa(&buf[0], 1234567890)])) - assert.Equal(t, "12345678901" , string(buf[:__u64toa(&buf[0], 12345678901)])) - assert.Equal(t, "123456789012" , string(buf[:__u64toa(&buf[0], 123456789012)])) - assert.Equal(t, "1234567890123" , string(buf[:__u64toa(&buf[0], 1234567890123)])) - assert.Equal(t, "12345678901234" , string(buf[:__u64toa(&buf[0], 12345678901234)])) - assert.Equal(t, "123456789012345" , string(buf[:__u64toa(&buf[0], 123456789012345)])) - assert.Equal(t, "1234567890123456" , string(buf[:__u64toa(&buf[0], 1234567890123456)])) - assert.Equal(t, "12345678901234567" , string(buf[:__u64toa(&buf[0], 12345678901234567)])) - assert.Equal(t, "123456789012345678" , string(buf[:__u64toa(&buf[0], 123456789012345678)])) - assert.Equal(t, "1234567890123456789" , string(buf[:__u64toa(&buf[0], 1234567890123456789)])) - assert.Equal(t, "12345678901234567890" , string(buf[:__u64toa(&buf[0], 12345678901234567890)])) - assert.Equal(t, "18446744073709551615" , string(buf[:__u64toa(&buf[0], 18446744073709551615)])) + assert.Equal(t, "0" , string(buf[:u64toa(&buf[0], 0)])) + assert.Equal(t, "1" , string(buf[:u64toa(&buf[0], 1)])) + assert.Equal(t, "12" , string(buf[:u64toa(&buf[0], 12)])) + assert.Equal(t, "123" , string(buf[:u64toa(&buf[0], 123)])) + assert.Equal(t, "1234" , string(buf[:u64toa(&buf[0], 1234)])) + assert.Equal(t, "12345" , string(buf[:u64toa(&buf[0], 12345)])) + assert.Equal(t, "123456" , string(buf[:u64toa(&buf[0], 123456)])) + assert.Equal(t, "1234567" , string(buf[:u64toa(&buf[0], 1234567)])) + assert.Equal(t, "12345678" , string(buf[:u64toa(&buf[0], 12345678)])) + assert.Equal(t, "123456789" , string(buf[:u64toa(&buf[0], 123456789)])) + assert.Equal(t, "1234567890" , string(buf[:u64toa(&buf[0], 1234567890)])) + assert.Equal(t, "12345678901" , string(buf[:u64toa(&buf[0], 12345678901)])) + assert.Equal(t, "123456789012" , string(buf[:u64toa(&buf[0], 123456789012)])) + assert.Equal(t, "1234567890123" , string(buf[:u64toa(&buf[0], 1234567890123)])) + assert.Equal(t, "12345678901234" , string(buf[:u64toa(&buf[0], 12345678901234)])) + assert.Equal(t, "123456789012345" , string(buf[:u64toa(&buf[0], 123456789012345)])) + assert.Equal(t, "1234567890123456" , string(buf[:u64toa(&buf[0], 1234567890123456)])) + assert.Equal(t, "12345678901234567" , string(buf[:u64toa(&buf[0], 12345678901234567)])) + assert.Equal(t, "123456789012345678" , string(buf[:u64toa(&buf[0], 123456789012345678)])) + assert.Equal(t, "1234567890123456789" , string(buf[:u64toa(&buf[0], 1234567890123456789)])) + assert.Equal(t, "12345678901234567890" , string(buf[:u64toa(&buf[0], 12345678901234567890)])) + assert.Equal(t, "18446744073709551615" , string(buf[:u64toa(&buf[0], 18446744073709551615)])) +} + +func BenchmarkFastInt_IntToString(b *testing.B) { + benchmarks := []struct { + name string + test func(*testing.B) + }{{ + name: "StdLib-Positive", + test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { strconv.AppendInt(buf[:0], int64(i), 10) }}, + }, { + name: "StdLib-Negative", + test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { strconv.AppendInt(buf[:0], -int64(i), 10) }}, + }, { + name: "FastInt-Positive", + test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { i64toa(&buf[0], int64(i)) }}, + }, { + name: "FastInt-Negative", + test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { i64toa(&buf[0], -int64(i)) }}, + }} + for _, bm := range benchmarks { + b.Run(bm.name, bm.test) + } } - func BenchmarkFastInt_IntToString(b *testing.B) { - benchmarks := []struct { - name string - test func(*testing.B) - }{{ - name: "StdLib-Positive", - test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { strconv.AppendInt(buf[:0], int64(i), 10) }}, - }, { - name: "StdLib-Negative", - test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { strconv.AppendInt(buf[:0], -int64(i), 10) }}, - }, { - name: "FastInt-Positive", - test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { __i64toa(&buf[0], int64(i)) }}, - }, { - name: "FastInt-Negative", - test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { __i64toa(&buf[0], -int64(i)) }}, - }} - for _, bm := range benchmarks { - b.Run(bm.name, bm.test) - } - } - - type utoaBench struct { - name string - num uint64 - } - - func BenchmarkFastInt_UintToString(b *testing.B) { - maxUint := "18446744073709551615" - benchs := make([]utoaBench, len(maxUint) + 1) - benchs[0].name = "Zero" - benchs[0].num = 0 - for i := 1; i <= len(maxUint); i++ { - benchs[i].name = strconv.FormatInt(int64(i), 10) + "-Digs" - benchs[i].num, _ = strconv.ParseUint(string(maxUint[:i]), 10, 64) - } - - for _, t := range(benchs) { - benchmarks := []struct { - name string - test func(*testing.B) - }{{ - name: "StdLib", - test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { strconv.AppendUint(buf[:0], t.num, 10) }}, - }, { - name: "FastInt", - test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { __u64toa(&buf[0], t.num) }}, - }} - for _, bm := range benchmarks { - name := fmt.Sprintf("%s_%s", bm.name, t.name) - b.Run(name, bm.test) - } - } - } \ No newline at end of file +type utoaBench struct { + name string + num uint64 +} + +func BenchmarkFastInt_UintToString(b *testing.B) { + maxUint := "18446744073709551615" + benchs := make([]utoaBench, len(maxUint) + 1) + benchs[0].name = "Zero" + benchs[0].num = 0 + for i := 1; i <= len(maxUint); i++ { + benchs[i].name = strconv.FormatInt(int64(i), 10) + "-Digs" + benchs[i].num, _ = strconv.ParseUint(string(maxUint[:i]), 10, 64) + } + + for _, t := range(benchs) { + benchmarks := []struct { + name string + test func(*testing.B) + }{{ + name: "StdLib", + test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { strconv.AppendUint(buf[:0], t.num, 10) }}, + }, { + name: "FastInt", + test: func(b *testing.B) { var buf [32]byte; for i := 0; i < b.N; i++ { u64toa(&buf[0], t.num) }}, + }} + for _, bm := range benchmarks { + name := fmt.Sprintf("%s_%s", bm.name, t.name) + b.Run(name, bm.test) + } + } +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl index 2ade18f8..1a556409 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl @@ -1,3 +1,5 @@ +// Code generated by Makefile, DO NOT EDIT. + /* * Copyright 2021 ByteDance Inc. * @@ -20,114 +22,168 @@ import ( `unsafe` `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` ) +var ( + __i64toa func(out unsafe.Pointer, val int64) (ret int) + + __u64toa func(out unsafe.Pointer, val uint64) (ret int) + + __f64toa func(out unsafe.Pointer, val float64) (ret int) + + __f32toa func(out unsafe.Pointer, val float32) (ret int) + + __lspace func(sp unsafe.Pointer, nb int, off int) (ret int) + + __quote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer, flags uint64) (ret int) + + __html_escape func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer) (ret int) + + __unquote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep unsafe.Pointer, flags uint64) (ret int) + + __value func(s unsafe.Pointer, n int, p int, v unsafe.Pointer, flags uint64) (ret int) + + __vstring func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer, flags uint64) + + __vnumber func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + + __vsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + + __vunsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + + __skip_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + + __skip_one_fast func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + + __skip_array func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + + __skip_object func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + + __skip_number func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + + __validate_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + + __get_by_path func(s unsafe.Pointer, p unsafe.Pointer, path unsafe.Pointer, m unsafe.Pointer) (ret int) + + __validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + + __validate_utf8_fast func(s unsafe.Pointer) (ret int) + + __fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int) +) + +//go:nosplit +func i64toa(out *byte, val int64) (ret int) { + return __i64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} + //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __i64toa(out *byte, val int64) (ret int) +func u64toa(out *byte, val uint64) (ret int) { + return __u64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __u64toa(out *byte, val uint64) (ret int) +func f64toa(out *byte, val float64) (ret int) { + return __f64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __f64toa(out *byte, val float64) (ret int) +func f32toa(out *byte, val float32) (ret int) { + return __f32toa(rt.NoEscape(unsafe.Pointer(out)), val) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __f32toa(out *byte, val float32) (ret int) +func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { + return __lspace(rt.NoEscape(sp), nb, off) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __lspace(sp unsafe.Pointer, nb int, off int) (ret int) +func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { + return __quote(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(dn)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) +func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { + return __html_escape(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(dn))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) +func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { + return __unquote(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(ep)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) +func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { + return __value(rt.NoEscape(unsafe.Pointer(s)), n, p, rt.NoEscape(unsafe.Pointer(v)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) +func vstring(s *string, p *int, v *types.JsonState, flags uint64) { + __vstring(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vstring(s *string, p *int, v *types.JsonState, flags uint64) +func vnumber(s *string, p *int, v *types.JsonState) { + __vnumber(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vnumber(s *string, p *int, v *types.JsonState) +func vsigned(s *string, p *int, v *types.JsonState) { + __vsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vsigned(s *string, p *int, v *types.JsonState) +func vunsigned(s *string, p *int, v *types.JsonState) { + __vunsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vunsigned(s *string, p *int, v *types.JsonState) +func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +func skip_one_fast(s *string, p *int) (ret int) { + return __skip_one_fast(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_one_fast(s *string, p *int) (ret int) +func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_array(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_object(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +func skip_number(s *string, p *int) (ret int) { + return __skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_number(s *string, p *int) (ret int) +func validate_one(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_one(s *string, p *int, m *types.StateMachine) (ret int) +func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { + return __get_by_path(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(path)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) +func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_utf8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) +func validate_utf8_fast(s *string) (ret int) { + return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_utf8_fast(s *string) (ret int) +func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) { + return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl index bd9ce0c7..7c35f20b 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl @@ -1,3 +1,5 @@ +// Code generated by Makefile, DO NOT EDIT. + /* * Copyright 2021 ByteDance Inc. * @@ -20,6 +22,7 @@ import ( `encoding/hex` `fmt` `math` + `strings` `testing` `unsafe` @@ -34,7 +37,7 @@ func TestNative_Value(t *testing.T) { var v types.JsonState s := ` -12345` p := (*rt.GoString)(unsafe.Pointer(&s)) - x := __value(p.Ptr, p.Len, 0, &v, 0) + x := value(p.Ptr, p.Len, 0, &v, 0) assert.Equal(t, 9, x) assert.Equal(t, types.V_INTEGER, v.Vt) assert.Equal(t, int64(-12345), v.Iv) @@ -46,7 +49,7 @@ func TestNative_Value_OutOfBound(t *testing.T) { mem := []byte{'"', '"'} s := rt.Mem2Str(mem[:1]) p := (*rt.GoString)(unsafe.Pointer(&s)) - x := __value(p.Ptr, p.Len, 0, &v, 0) + x := value(p.Ptr, p.Len, 0, &v, 0) assert.Equal(t, 1, x) assert.Equal(t, -int(types.ERR_EOF), int(v.Vt)) } @@ -56,7 +59,7 @@ func TestNative_Quote(t *testing.T) { d := make([]byte, 256) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, 0) + rv := quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, 0) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -70,7 +73,7 @@ func TestNative_QuoteNoMem(t *testing.T) { d := make([]byte, 10) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, 0) + rv := quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, 0) assert.Equal(t, -6, rv) assert.Equal(t, 5, len(d)) assert.Equal(t, `hello`, string(d)) @@ -81,7 +84,7 @@ func TestNative_DoubleQuote(t *testing.T) { d := make([]byte, 256) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, types.F_DOUBLE_UNQUOTE) + rv := quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, types.F_DOUBLE_UNQUOTE) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -96,7 +99,7 @@ func TestNative_Unquote(t *testing.T) { ep := -1 dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv := unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -111,7 +114,7 @@ func TestNative_UnquoteError(t *testing.T) { ep := -1 dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv := unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_EOF), rv) assert.Equal(t, 5, ep) s = `asdf\gqwer` @@ -119,7 +122,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_INVALID_ESCAPE), rv) assert.Equal(t, 5, ep) s = `asdf\u1gggqwer` @@ -127,7 +130,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_INVALID_CHAR), rv) assert.Equal(t, 7, ep) s = `asdf\ud800qwer` @@ -135,7 +138,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_INVALID_UNICODE), rv) assert.Equal(t, 6, ep) s = `asdf\\ud800qwer` @@ -143,7 +146,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) assert.Equal(t, -int(types.ERR_INVALID_UNICODE), rv) assert.Equal(t, 7, ep) s = `asdf\ud800\ud800qwer` @@ -151,7 +154,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_INVALID_UNICODE), rv) assert.Equal(t, 12, ep) s = `asdf\\ud800\\ud800qwer` @@ -159,7 +162,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) assert.Equal(t, -int(types.ERR_INVALID_UNICODE), rv) assert.Equal(t, 14, ep) } @@ -170,7 +173,7 @@ func TestNative_DoubleUnquote(t *testing.T) { ep := -1 dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) + rv := unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -185,7 +188,7 @@ func TestNative_UnquoteUnicodeReplacement(t *testing.T) { ep := -1 dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_UNICODE_REPLACE) + rv := unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_UNICODE_REPLACE) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -197,7 +200,7 @@ func TestNative_UnquoteUnicodeReplacement(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_UNICODE_REPLACE) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_UNICODE_REPLACE) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -211,7 +214,7 @@ func TestNative_HTMLEscape(t *testing.T) { d := make([]byte, 256) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __html_escape(sp.Ptr, sp.Len, dp.Ptr, &dp.Len) + rv := html_escape(sp.Ptr, sp.Len, dp.Ptr, &dp.Len) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -225,7 +228,7 @@ func TestNative_HTMLEscapeNoMem(t *testing.T) { d := make([]byte, 10) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __html_escape(sp.Ptr, sp.Len, dp.Ptr, &dp.Len) + rv := html_escape(sp.Ptr, sp.Len, dp.Ptr, &dp.Len) assert.Equal(t, -6, rv) assert.Equal(t, 5, len(d)) assert.Equal(t, `hello`, string(d)) @@ -235,11 +238,11 @@ func TestNative_Vstring(t *testing.T) { var v types.JsonState i := 0 s := `test"test\n2"` - __vstring(&s, &i, &v, 0) + vstring(&s, &i, &v, 0) assert.Equal(t, 5, i) assert.Equal(t, -1, v.Ep) assert.Equal(t, int64(0), v.Iv) - __vstring(&s, &i, &v, 0) + vstring(&s, &i, &v, 0) assert.Equal(t, 13, i) assert.Equal(t, 9, v.Ep) assert.Equal(t, int64(5), v.Iv) @@ -250,7 +253,7 @@ func TestNative_Vstring_ValidUnescapedChars(t *testing.T) { valid := uint64(types.F_VALIDATE_STRING) i := 0 s := "test\x1f\"" - __vstring(&s, &i, &v, valid) + vstring(&s, &i, &v, valid) assert.Equal(t, -int(types.ERR_INVALID_CHAR), int(v.Vt)) } @@ -258,7 +261,7 @@ func TestNative_VstringEscapeEOF(t *testing.T) { var v types.JsonState i := 0 s := `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"x` - __vstring(&s, &i, &v, 0) + vstring(&s, &i, &v, 0) assert.Equal(t, 95, i) assert.Equal(t, 63, v.Ep) assert.Equal(t, int64(0), v.Iv) @@ -274,7 +277,7 @@ func TestNative_VstringHangUpOnRandomData(t *testing.T) { p := 1 s := rt.Mem2Str(v) var js types.JsonState - __vstring(&s, &p, &js, 0) + vstring(&s, &p, &js, 0) fmt.Printf("js: %s\n", spew.Sdump(js)) } @@ -282,49 +285,49 @@ func TestNative_Vnumber(t *testing.T) { var v types.JsonState i := 0 s := "1234" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 4, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(1234), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "1.234" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 5, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 1.234, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "1.234e5" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 7, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 1.234e5, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "0.0125" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 6, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 0.0125, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "100000000000000000000" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 21, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 100000000000000000000.0, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "999999999999999900000" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 21, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 999999999999999900000.0, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "-1.234" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 6, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, -1.234, v.Dv) @@ -335,65 +338,65 @@ func TestNative_Vsigned(t *testing.T) { var v types.JsonState i := 0 s := "1234" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 4, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(1234), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "-1234" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 5, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(-1234), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "9223372036854775807" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 19, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(math.MaxInt64), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "-9223372036854775808" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 20, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(math.MinInt64), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "9223372036854775808" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 18, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INTEGER_OVERFLOW)), v.Vt) i = 0 s = "-9223372036854775809" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 19, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INTEGER_OVERFLOW)), v.Vt) i = 0 s = "1.234" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 1, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "0.0125" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 1, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1234e5" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 5, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1234e-5" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 5, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) @@ -403,63 +406,63 @@ func TestNative_Vunsigned(t *testing.T) { var v types.JsonState i := 0 s := "1234" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 4, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(1234), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "18446744073709551615" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 20, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, ^int64(0), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "18446744073709551616" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 19, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INTEGER_OVERFLOW)), v.Vt) i = 0 s = "-1234" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 0, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "1.234" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 1, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "0.0125" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 1, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "1234e5" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 4, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1234e5" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 0, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1.234e5" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 0, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1.234e-5" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 0, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) @@ -468,36 +471,36 @@ func TestNative_Vunsigned(t *testing.T) { func TestNative_SkipOne(t *testing.T) { p := 0 s := ` {"asdf": [null, true, false, 1, 2.0, -3]}, 1234.5` - q := __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q := skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 42, p) assert.Equal(t, 1, q) p = 0 s = `1 2.5 -3 "asdf\nqwer" true false null {} []` - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 1, p) assert.Equal(t, 0, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 5, p) assert.Equal(t, 2, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 8, p) assert.Equal(t, 6, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 21, p) assert.Equal(t, 9, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 26, p) assert.Equal(t, 22, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 32, p) assert.Equal(t, 27, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 37, p) assert.Equal(t, 33, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 40, p) assert.Equal(t, 38, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 43, p) assert.Equal(t, 41, q) } @@ -509,7 +512,7 @@ func TestNative_SkipOne_Error(t *testing.T) { `"asdf`, `"\\\"`, }) { p := 0 - q := __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q := skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.True(t, q < 0) } } @@ -517,21 +520,21 @@ func TestNative_SkipOne_Error(t *testing.T) { func TestNative_SkipArray(t *testing.T) { p := 0 s := `null, true, false, 1, 2.0, -3, {"asdf": "wqer"}],` - __skip_array(&s, &p, &types.StateMachine{}, uint64(0)) + skip_array(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, p, 48) } func TestNative_SkipObject(t *testing.T) { p := 0 s := `"asdf": "wqer"},` - __skip_object(&s, &p, &types.StateMachine{}, uint64(0)) + skip_object(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, p, 15) } func TestNative_SkipNumber(t *testing.T) { p := 0 s := `-1.23e+12` - q := __skip_number(&s, &p) + q := skip_number(&s, &p) assert.Equal(t, 9, p) assert.Equal(t, 0, q) } @@ -539,44 +542,44 @@ func TestNative_SkipNumber(t *testing.T) { func TestNative_SkipOneFast(t *testing.T) { p := 0 s := ` {"asdf": [null, true, false, 1, 2.0, -3]}, 1234.5` - q := __skip_one_fast(&s, &p) + q := skip_one_fast(&s, &p) assert.Equal(t, 42, p) assert.Equal(t, 1, q) p = 0 s = `1, 2.5, -3, "asdf\nqwer", true, false, null, {}, [],` - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 1, p) assert.Equal(t, 0, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 6, p) assert.Equal(t, 3, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 10, p) assert.Equal(t, 8, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 24, p) assert.Equal(t, 12, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 30, p) assert.Equal(t, 26, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 37, p) assert.Equal(t, 32, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 43, p) assert.Equal(t, 39, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 47, p) assert.Equal(t, 45, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 51, p) assert.Equal(t, 49, q) } @@ -587,7 +590,36 @@ func TestNative_SkipOneFast_Error(t *testing.T) { `"asdf`, `"\\\"`, }) { p := 0 - q := __skip_one_fast(&s, &p) + q := skip_one_fast(&s, &p) assert.True(t, q < 0) } +} + +func TestNative_GetByPath(t *testing.T) { + s := `{"asdf": [null, true, false, 1, 2.0, -3]}, 1234.5` + p := 0 + path := []interface{}{"asdf", 4} + ret := get_by_path(&s, &p, &path, types.NewStateMachine()) + assert.Equal(t, strings.Index(s, "2.0"), ret) +} + +func BenchmarkNative_SkipOneFast(b *testing.B) { + b.ResetTimer() + for i:=0; i(SB) - JMP _entry - -TEXT ·__f64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -80(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_f64toa: - MOVQ out+0(FP), DI - MOVSD val+8(FP), X0 - CALL ·__native_entry__+160(SB) // _f64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__get_by_path(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -240(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_get_by_path: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ path+16(FP), DX - MOVQ m+24(FP), CX - CALL ·__native_entry__+26384(SB) // _get_by_path - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__html_escape(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -64(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_html_escape: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ dn+24(FP), CX - CALL ·__native_entry__+9072(SB) // _html_escape - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__i64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_i64toa: - MOVQ out+0(FP), DI - MOVQ val+8(FP), SI - CALL ·__native_entry__+3424(SB) // _i64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__lspace(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -8(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_lspace: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ off+16(FP), DX - CALL ·__native_entry__+16(SB) // _lspace - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__quote(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -64(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_quote: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ dn+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+4864(SB) // _quote - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_array(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_array: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+18112(SB) // _skip_array - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_number(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -72(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_number: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - CALL ·__native_entry__+22128(SB) // _skip_number - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_object(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_object: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+20512(SB) // _skip_object - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_one(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_one: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+22288(SB) // _skip_one - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_one_fast(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -136(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_one_fast: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - CALL ·__native_entry__+22512(SB) // _skip_one_fast - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__u64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -8(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_u64toa: - MOVQ out+0(FP), DI - MOVQ val+8(FP), SI - CALL ·__native_entry__+3552(SB) // _u64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__unquote(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -88(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_unquote: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ ep+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+6704(SB) // _unquote - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_one(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_one: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - CALL ·__native_entry__+22336(SB) // _validate_one - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_utf8(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -48(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_utf8: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - CALL ·__native_entry__+30528(SB) // _validate_utf8 - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_utf8_fast(SB), NOSPLIT | NOFRAME, $0 - 16 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -24(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_utf8_fast: - MOVQ s+0(FP), DI - CALL ·__native_entry__+31200(SB) // _validate_utf8_fast - MOVQ AX, ret+8(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__value(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -328(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_value: - MOVQ s+0(FP), DI - MOVQ n+8(FP), SI - MOVQ p+16(FP), DX - MOVQ v+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+12272(SB) // _value - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vnumber(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -240(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vnumber: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+15728(SB), AX // _vnumber - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vsigned(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vsigned: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+17376(SB), AX // _vsigned - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vstring(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -136(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vstring: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - MOVQ flags+24(FP), CX - LEAQ ·__native_entry__+14112(SB), AX // _vstring - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vunsigned(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vunsigned: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+17760(SB), AX // _vunsigned - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_export_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_export_amd64.go deleted file mode 100644 index 898bad43..00000000 --- a/vendor/github.com/bytedance/sonic/internal/native/sse/native_export_amd64.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by Makefile, DO NOT EDIT. - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package sse - -var ( - S_f64toa = _subr__f64toa - S_f32toa = _subr__f32toa - S_i64toa = _subr__i64toa - S_u64toa = _subr__u64toa - S_lspace = _subr__lspace -) - -var ( - S_quote = _subr__quote - S_unquote = _subr__unquote -) - -var ( - S_value = _subr__value - S_vstring = _subr__vstring - S_vnumber = _subr__vnumber - S_vsigned = _subr__vsigned - S_vunsigned = _subr__vunsigned -) - -var ( - S_skip_one = _subr__skip_one - S_skip_one_fast = _subr__skip_one_fast - S_skip_array = _subr__skip_array - S_skip_object = _subr__skip_object - S_skip_number = _subr__skip_number - S_get_by_path = _subr__get_by_path -) diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go index 2682825e..7d71e205 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go @@ -3,107 +3,602 @@ package sse -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr +import ( + `github.com/bytedance/sonic/loader` +) -var ( - _subr__f32toa = __native_entry__() + 31760 - _subr__f64toa = __native_entry__() + 160 - _subr__get_by_path = __native_entry__() + 26384 - _subr__html_escape = __native_entry__() + 9072 - _subr__i64toa = __native_entry__() + 3424 - _subr__lspace = __native_entry__() + 16 - _subr__quote = __native_entry__() + 4864 - _subr__skip_array = __native_entry__() + 18112 - _subr__skip_number = __native_entry__() + 22128 - _subr__skip_object = __native_entry__() + 20512 - _subr__skip_one = __native_entry__() + 22288 - _subr__skip_one_fast = __native_entry__() + 22512 - _subr__u64toa = __native_entry__() + 3552 - _subr__unquote = __native_entry__() + 6704 - _subr__validate_one = __native_entry__() + 22336 - _subr__validate_utf8 = __native_entry__() + 30528 - _subr__validate_utf8_fast = __native_entry__() + 31200 - _subr__value = __native_entry__() + 12272 - _subr__vnumber = __native_entry__() + 15728 - _subr__vsigned = __native_entry__() + 17376 - _subr__vstring = __native_entry__() + 14112 - _subr__vunsigned = __native_entry__() + 17760 +const ( + _entry__f32toa = 31616 + _entry__f64toa = 160 + _entry__format_significand = 35888 + _entry__format_integer = 2960 + _entry__fsm_exec = 18016 + _entry__advance_string = 14352 + _entry__advance_string_default = 37280 + _entry__do_skip_number = 20608 + _entry__get_by_path = 26176 + _entry__skip_one_fast = 22272 + _entry__html_escape = 8912 + _entry__i64toa = 3392 + _entry__u64toa = 3520 + _entry__lspace = 16 + _entry__quote = 4832 + _entry__skip_array = 17984 + _entry__skip_number = 21904 + _entry__skip_object = 20256 + _entry__skip_one = 22048 + _entry__unquote = 6576 + _entry__validate_one = 22096 + _entry__validate_utf8 = 30384 + _entry__validate_utf8_fast = 31056 + _entry__value = 12352 + _entry__vnumber = 15744 + _entry__atof_eisel_lemire64 = 10192 + _entry__atof_native = 11744 + _entry__decimal_to_f64 = 10560 + _entry__right_shift = 36848 + _entry__left_shift = 36352 + _entry__vsigned = 17296 + _entry__vstring = 14176 + _entry__vunsigned = 17632 ) const ( _stack__f32toa = 48 _stack__f64toa = 80 - _stack__get_by_path = 240 - _stack__html_escape = 64 + _stack__format_significand = 24 + _stack__format_integer = 16 + _stack__fsm_exec = 168 + _stack__advance_string = 64 + _stack__advance_string_default = 64 + _stack__do_skip_number = 48 + _stack__get_by_path = 272 + _stack__skip_one_fast = 136 + _stack__html_escape = 72 _stack__i64toa = 16 + _stack__u64toa = 8 _stack__lspace = 8 _stack__quote = 64 - _stack__skip_array = 128 - _stack__skip_number = 72 - _stack__skip_object = 128 - _stack__skip_one = 128 - _stack__skip_one_fast = 136 - _stack__u64toa = 8 + _stack__skip_array = 176 + _stack__skip_number = 88 + _stack__skip_object = 176 + _stack__skip_one = 176 _stack__unquote = 88 - _stack__validate_one = 128 + _stack__validate_one = 176 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 24 _stack__value = 328 _stack__vnumber = 240 + _stack__atof_eisel_lemire64 = 32 + _stack__atof_native = 136 + _stack__decimal_to_f64 = 80 + _stack__right_shift = 8 + _stack__left_shift = 24 _stack__vsigned = 16 - _stack__vstring = 136 - _stack__vunsigned = 16 + _stack__vstring = 120 + _stack__vunsigned = 8 ) -var ( - _ = _subr__f32toa - _ = _subr__f64toa - _ = _subr__get_by_path - _ = _subr__html_escape - _ = _subr__i64toa - _ = _subr__lspace - _ = _subr__quote - _ = _subr__skip_array - _ = _subr__skip_number - _ = _subr__skip_object - _ = _subr__skip_one - _ = _subr__skip_one_fast - _ = _subr__u64toa - _ = _subr__unquote - _ = _subr__validate_one - _ = _subr__validate_utf8 - _ = _subr__validate_utf8_fast - _ = _subr__value - _ = _subr__vnumber - _ = _subr__vsigned - _ = _subr__vstring - _ = _subr__vunsigned +const ( + _size__f32toa = 3328 + _size__f64toa = 2800 + _size__format_significand = 464 + _size__format_integer = 432 + _size__fsm_exec = 1692 + _size__advance_string = 1344 + _size__advance_string_default = 960 + _size__do_skip_number = 956 + _size__get_by_path = 4208 + _size__skip_one_fast = 3404 + _size__html_escape = 1280 + _size__i64toa = 48 + _size__u64toa = 1264 + _size__lspace = 128 + _size__quote = 1728 + _size__skip_array = 32 + _size__skip_number = 144 + _size__skip_object = 32 + _size__skip_one = 48 + _size__unquote = 2272 + _size__validate_one = 48 + _size__validate_utf8 = 672 + _size__validate_utf8_fast = 544 + _size__value = 1316 + _size__vnumber = 1552 + _size__atof_eisel_lemire64 = 368 + _size__atof_native = 608 + _size__decimal_to_f64 = 1184 + _size__right_shift = 400 + _size__left_shift = 496 + _size__vsigned = 336 + _size__vstring = 128 + _size__vunsigned = 336 ) -const ( - _ = _stack__f32toa - _ = _stack__f64toa - _ = _stack__get_by_path - _ = _stack__html_escape - _ = _stack__i64toa - _ = _stack__lspace - _ = _stack__quote - _ = _stack__skip_array - _ = _stack__skip_number - _ = _stack__skip_object - _ = _stack__skip_one - _ = _stack__skip_one_fast - _ = _stack__u64toa - _ = _stack__unquote - _ = _stack__validate_one - _ = _stack__validate_utf8 - _ = _stack__validate_utf8_fast - _ = _stack__value - _ = _stack__vnumber - _ = _stack__vsigned - _ = _stack__vstring - _ = _stack__vunsigned +var ( + _pcsp__f32toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {3286, 48}, + {3287, 40}, + {3289, 32}, + {3291, 24}, + {3293, 16}, + {3295, 8}, + {3296, 0}, + {3318, 48}, + } + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2740, 56}, + {2744, 48}, + {2745, 40}, + {2747, 32}, + {2749, 24}, + {2751, 16}, + {2753, 8}, + {2754, 0}, + {2792, 56}, + } + _pcsp__format_significand = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {452, 24}, + {453, 16}, + {455, 8}, + {457, 0}, + } + _pcsp__format_integer = [][2]uint32{ + {1, 0}, + {4, 8}, + {412, 16}, + {413, 8}, + {414, 0}, + {423, 16}, + {424, 8}, + {426, 0}, + } + _pcsp__fsm_exec = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1342, 104}, + {1346, 48}, + {1347, 40}, + {1349, 32}, + {1351, 24}, + {1353, 16}, + {1355, 8}, + {1356, 0}, + {1692, 104}, + } + _pcsp__advance_string = [][2]uint32{ + {14, 0}, + {18, 8}, + {20, 16}, + {22, 24}, + {24, 32}, + {26, 40}, + {27, 48}, + {614, 56}, + {618, 48}, + {619, 40}, + {621, 32}, + {623, 24}, + {625, 16}, + {627, 8}, + {628, 0}, + {1339, 56}, + } + _pcsp__advance_string_default = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {576, 64}, + {580, 48}, + {581, 40}, + {583, 32}, + {585, 24}, + {587, 16}, + {589, 8}, + {590, 0}, + {955, 64}, + } + _pcsp__do_skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {881, 48}, + {882, 40}, + {884, 32}, + {886, 24}, + {888, 16}, + {890, 8}, + {891, 0}, + {956, 48}, + } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {4012, 104}, + {4016, 48}, + {4017, 40}, + {4019, 32}, + {4021, 24}, + {4023, 16}, + {4025, 8}, + {4026, 0}, + {4194, 104}, + } + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {658, 136}, + {662, 48}, + {663, 40}, + {665, 32}, + {667, 24}, + {669, 16}, + {671, 8}, + {672, 0}, + {3404, 136}, + } + _pcsp__html_escape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1256, 72}, + {1260, 48}, + {1261, 40}, + {1263, 32}, + {1265, 24}, + {1267, 16}, + {1269, 8}, + {1271, 0}, + } + _pcsp__i64toa = [][2]uint32{ + {14, 0}, + {34, 8}, + {36, 0}, + } + _pcsp__u64toa = [][2]uint32{ + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {772, 8}, + {773, 0}, + {1249, 8}, + {1251, 0}, + } + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {89, 8}, + {90, 0}, + {103, 8}, + {104, 0}, + {111, 8}, + {113, 0}, + } + _pcsp__quote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1681, 64}, + {1685, 48}, + {1686, 40}, + {1688, 32}, + {1690, 24}, + {1692, 16}, + {1694, 8}, + {1695, 0}, + {1722, 64}, + } + _pcsp__skip_array = [][2]uint32{ + {1, 0}, + {26, 8}, + {32, 0}, + } + _pcsp__skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {100, 40}, + {101, 32}, + {103, 24}, + {105, 16}, + {107, 8}, + {108, 0}, + {139, 40}, + } + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {26, 8}, + {32, 0}, + } + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {30, 8}, + {36, 0}, + } + _pcsp__unquote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1684, 88}, + {1688, 48}, + {1689, 40}, + {1691, 32}, + {1693, 24}, + {1695, 16}, + {1697, 8}, + {1698, 0}, + {2270, 88}, + } + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {35, 8}, + {41, 0}, + } + _pcsp__validate_utf8 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {623, 48}, + {627, 40}, + {628, 32}, + {630, 24}, + {632, 16}, + {634, 8}, + {635, 0}, + {666, 48}, + } + _pcsp__validate_utf8_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {5, 16}, + {247, 24}, + {251, 16}, + {252, 8}, + {253, 0}, + {527, 24}, + {531, 16}, + {532, 8}, + {534, 0}, + } + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {495, 88}, + {499, 48}, + {500, 40}, + {502, 32}, + {504, 24}, + {506, 16}, + {508, 8}, + {509, 0}, + {1316, 88}, + } + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {803, 104}, + {807, 48}, + {808, 40}, + {810, 32}, + {812, 24}, + {814, 16}, + {816, 8}, + {817, 0}, + {1551, 104}, + } + _pcsp__atof_eisel_lemire64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {292, 32}, + {293, 24}, + {295, 16}, + {297, 8}, + {298, 0}, + {362, 32}, + } + _pcsp__atof_native = [][2]uint32{ + {1, 0}, + {4, 8}, + {587, 56}, + {591, 8}, + {593, 0}, + } + _pcsp__decimal_to_f64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1144, 56}, + {1148, 48}, + {1149, 40}, + {1151, 32}, + {1153, 24}, + {1155, 16}, + {1157, 8}, + {1158, 0}, + {1169, 56}, + } + _pcsp__right_shift = [][2]uint32{ + {1, 0}, + {318, 8}, + {319, 0}, + {387, 8}, + {388, 0}, + {396, 8}, + {398, 0}, + } + _pcsp__left_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {363, 24}, + {364, 16}, + {366, 8}, + {367, 0}, + {470, 24}, + {471, 16}, + {473, 8}, + {474, 0}, + {486, 24}, + } + _pcsp__vsigned = [][2]uint32{ + {1, 0}, + {4, 8}, + {119, 16}, + {120, 8}, + {121, 0}, + {132, 16}, + {133, 8}, + {134, 0}, + {276, 16}, + {277, 8}, + {278, 0}, + {282, 16}, + {283, 8}, + {284, 0}, + {322, 16}, + {323, 8}, + {324, 0}, + {332, 16}, + {333, 8}, + {335, 0}, + } + _pcsp__vstring = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {105, 56}, + {109, 40}, + {110, 32}, + {112, 24}, + {114, 16}, + {116, 8}, + {118, 0}, + } + _pcsp__vunsigned = [][2]uint32{ + {1, 0}, + {78, 8}, + {79, 0}, + {90, 8}, + {91, 0}, + {114, 8}, + {115, 0}, + {273, 8}, + {274, 0}, + {312, 8}, + {313, 0}, + {320, 8}, + {322, 0}, + } ) + +var Funcs = []loader.CFunc{ + {"__native_entry__", 0, 67, 0, nil}, + {"_f32toa", _entry__f32toa, _size__f32toa, _stack__f32toa, _pcsp__f32toa}, + {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, + {"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand}, + {"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer}, + {"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec}, + {"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string}, + {"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default}, + {"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, + {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, + {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, + {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, + {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, + {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, + {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, + {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, + {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, + {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, + {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, + {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, + {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, + {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, + {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, + {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, + {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, + {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, + {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, + {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, + {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, + {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, + {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, + {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go new file mode 100644 index 00000000..f264063f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go @@ -0,0 +1,14266 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var Text__native_entry__ = []byte{ + 0x48, 0x8d, 0x05, 0xf9, 0xff, 0xff, 0xff, // leaq $-7(%rip), %rax + 0x48, 0x89, 0x44, 0x24, 0x08, //0x00000007 movq %rax, $8(%rsp) + 0xc3, //0x0000000c retq + 0x90, 0x90, 0x90, //0x0000000d .p2align 4, 0x90 + //0x00000010 _lspace + 0x55, //0x00000010 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp + 0x48, 0x39, 0xd6, //0x00000014 cmpq %rdx, %rsi + 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000017 je LBB0_1 + 0x4c, 0x8d, 0x04, 0x37, //0x0000001d leaq (%rdi,%rsi), %r8 + 0x48, 0x8d, 0x44, 0x3a, 0x01, //0x00000021 leaq $1(%rdx,%rdi), %rax + 0x48, 0x29, 0xf2, //0x00000026 subq %rsi, %rdx + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000029 movabsq $4294977024, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000033 .p2align 4, 0x90 + //0x00000040 LBB0_3 + 0x0f, 0xbe, 0x48, 0xff, //0x00000040 movsbl $-1(%rax), %ecx + 0x83, 0xf9, 0x20, //0x00000044 cmpl $32, %ecx + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00000047 ja LBB0_5 + 0x48, 0x0f, 0xa3, 0xce, //0x0000004d btq %rcx, %rsi + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000051 jae LBB0_5 + 0x48, 0xff, 0xc0, //0x00000057 incq %rax + 0x48, 0xff, 0xc2, //0x0000005a incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000005d jne LBB0_3 + 0x49, 0x29, 0xf8, //0x00000063 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000066 movq %r8, %rax + 0x5d, //0x00000069 popq %rbp + 0xc3, //0x0000006a retq + //0x0000006b LBB0_1 + 0x48, 0x01, 0xfa, //0x0000006b addq %rdi, %rdx + 0x49, 0x89, 0xd0, //0x0000006e movq %rdx, %r8 + 0x49, 0x29, 0xf8, //0x00000071 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000074 movq %r8, %rax + 0x5d, //0x00000077 popq %rbp + 0xc3, //0x00000078 retq + //0x00000079 LBB0_5 + 0x48, 0xf7, 0xd7, //0x00000079 notq %rdi + 0x48, 0x01, 0xf8, //0x0000007c addq %rdi, %rax + 0x5d, //0x0000007f popq %rbp + 0xc3, //0x00000080 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000081 .p2align 4, 0x00 + //0x00000090 LCPI1_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000090 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x000000a0 .p2align 4, 0x90 + //0x000000a0 _f64toa + 0x55, //0x000000a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000a1 movq %rsp, %rbp + 0x41, 0x57, //0x000000a4 pushq %r15 + 0x41, 0x56, //0x000000a6 pushq %r14 + 0x41, 0x55, //0x000000a8 pushq %r13 + 0x41, 0x54, //0x000000aa pushq %r12 + 0x53, //0x000000ac pushq %rbx + 0x50, //0x000000ad pushq %rax + 0x66, 0x48, 0x0f, 0x7e, 0xc2, //0x000000ae movq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x000000b3 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000000b6 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x000000ba andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x000000bf cmpl $2047, %eax + 0x0f, 0x84, 0x99, 0x0a, 0x00, 0x00, //0x000000c4 je LBB1_114 + 0x49, 0x89, 0xfe, //0x000000ca movq %rdi, %r14 + 0xc6, 0x07, 0x2d, //0x000000cd movb $45, (%rdi) + 0x49, 0x89, 0xd4, //0x000000d0 movq %rdx, %r12 + 0x49, 0xc1, 0xec, 0x3f, //0x000000d3 shrq $63, %r12 + 0x4e, 0x8d, 0x3c, 0x27, //0x000000d7 leaq (%rdi,%r12), %r15 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000db leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x000000e3 testq %rcx, %rcx + 0x0f, 0x84, 0x75, 0x02, 0x00, 0x00, //0x000000e6 je LBB1_19 + 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000000ec movabsq $4503599627370495, %rdi + 0x48, 0x21, 0xfa, //0x000000f6 andq %rdi, %rdx + 0x85, 0xc0, //0x000000f9 testl %eax, %eax + 0x0f, 0x84, 0x69, 0x0a, 0x00, 0x00, //0x000000fb je LBB1_115 + 0x48, 0xff, 0xc7, //0x00000101 incq %rdi + 0x48, 0x09, 0xd7, //0x00000104 orq %rdx, %rdi + 0x8d, 0x98, 0xcd, 0xfb, 0xff, 0xff, //0x00000107 leal $-1075(%rax), %ebx + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000010d leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x00000113 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000116 ja LBB1_5 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000011c movl $1075, %ecx + 0x29, 0xc1, //0x00000121 subl %eax, %ecx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000123 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x0000012a shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x0000012d notq %rsi + 0x48, 0x85, 0xf7, //0x00000130 testq %rsi, %rdi + 0x0f, 0x84, 0x0d, 0x04, 0x00, 0x00, //0x00000133 je LBB1_43 + //0x00000139 LBB1_5 + 0x48, 0x85, 0xd2, //0x00000139 testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x0000013c sete %cl + 0x83, 0xf8, 0x01, //0x0000013f cmpl $1, %eax + 0x0f, 0x97, 0xc0, //0x00000142 seta %al + 0x20, 0xc8, //0x00000145 andb %cl, %al + 0x0f, 0xb6, 0xc0, //0x00000147 movzbl %al, %eax + 0x48, 0x8d, 0x74, 0xb8, 0xfe, //0x0000014a leaq $-2(%rax,%rdi,4), %rsi + 0x44, 0x69, 0xcb, 0x13, 0x44, 0x13, 0x00, //0x0000014f imull $1262611, %ebx, %r9d + 0x31, 0xc9, //0x00000156 xorl %ecx, %ecx + 0x84, 0xc0, //0x00000158 testb %al, %al + 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x0000015a movl $524031, %eax + 0x0f, 0x44, 0xc1, //0x0000015f cmovel %ecx, %eax + 0x41, 0x29, 0xc1, //0x00000162 subl %eax, %r9d + 0x41, 0xc1, 0xf9, 0x16, //0x00000165 sarl $22, %r9d + 0x41, 0x69, 0xc9, 0xb1, 0x6c, 0xe5, 0xff, //0x00000169 imull $-1741647, %r9d, %ecx + 0xc1, 0xe9, 0x13, //0x00000170 shrl $19, %ecx + 0x01, 0xd9, //0x00000173 addl %ebx, %ecx + 0xb8, 0x24, 0x01, 0x00, 0x00, //0x00000175 movl $292, %eax + 0x44, 0x29, 0xc8, //0x0000017a subl %r9d, %eax + 0x48, 0x98, //0x0000017d cltq + 0x48, 0xc1, 0xe0, 0x04, //0x0000017f shlq $4, %rax + 0x48, 0x8d, 0x15, 0x66, 0xc0, 0x00, 0x00, //0x00000183 leaq $49254(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ + 0x4c, 0x8b, 0x1c, 0x10, //0x0000018a movq (%rax,%rdx), %r11 + 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x0000018e movq $8(%rax,%rdx), %r13 + 0xfe, 0xc1, //0x00000193 incb %cl + 0x48, 0xd3, 0xe6, //0x00000195 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000198 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000019b mulq %r13 + 0x48, 0x89, 0xd3, //0x0000019e movq %rdx, %rbx + 0x48, 0x89, 0xf0, //0x000001a1 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000001a4 mulq %r11 + 0x48, 0x8d, 0x34, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x000001a7 leaq (,%rdi,4), %rsi + 0x48, 0x01, 0xd8, //0x000001af addq %rbx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x000001b2 adcq $0, %rdx + 0x31, 0xdb, //0x000001b6 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x01, //0x000001b8 cmpq $1, %rax + 0x0f, 0x97, 0xc3, //0x000001bc seta %bl + 0x48, 0x09, 0xd3, //0x000001bf orq %rdx, %rbx + 0x48, 0xd3, 0xe6, //0x000001c2 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000001c5 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x000001c8 mulq %r13 + 0x49, 0x89, 0xd2, //0x000001cb movq %rdx, %r10 + 0x48, 0x89, 0xf0, //0x000001ce movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000001d1 mulq %r11 + 0x49, 0x89, 0xd0, //0x000001d4 movq %rdx, %r8 + 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001d7 leaq $2(,%rdi,4), %rsi + 0x4c, 0x01, 0xd0, //0x000001df addq %r10, %rax + 0x49, 0x83, 0xd0, 0x00, //0x000001e2 adcq $0, %r8 + 0x45, 0x31, 0xd2, //0x000001e6 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x01, //0x000001e9 cmpq $1, %rax + 0x41, 0x0f, 0x97, 0xc2, //0x000001ed seta %r10b + 0x4d, 0x09, 0xc2, //0x000001f1 orq %r8, %r10 + 0x48, 0xd3, 0xe6, //0x000001f4 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000001f7 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x000001fa mulq %r13 + 0x48, 0x89, 0xd1, //0x000001fd movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x00000200 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00000203 mulq %r11 + 0x48, 0x01, 0xc8, //0x00000206 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000209 adcq $0, %rdx + 0x31, 0xc9, //0x0000020d xorl %ecx, %ecx + 0x48, 0x83, 0xf8, 0x01, //0x0000020f cmpq $1, %rax + 0x0f, 0x97, 0xc1, //0x00000213 seta %cl + 0x48, 0x09, 0xd1, //0x00000216 orq %rdx, %rcx + 0x83, 0xe7, 0x01, //0x00000219 andl $1, %edi + 0x48, 0x01, 0xfb, //0x0000021c addq %rdi, %rbx + 0x48, 0x29, 0xf9, //0x0000021f subq %rdi, %rcx + 0x49, 0x83, 0xfa, 0x28, //0x00000222 cmpq $40, %r10 + 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x00000226 jb LBB1_17 + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000022c movabsq $-3689348814741910323, %rdx + 0x4c, 0x89, 0xc0, //0x00000236 movq %r8, %rax + 0x48, 0xf7, 0xe2, //0x00000239 mulq %rdx + 0x48, 0x89, 0xd7, //0x0000023c movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x0000023f shrq $5, %rdi + 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x00000243 leaq (,%rdi,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x0000024b leaq (%rax,%rax,4), %rdx + 0x48, 0x39, 0xd3, //0x0000024f cmpq %rdx, %rbx + 0x40, 0x0f, 0x96, 0xc6, //0x00000252 setbe %sil + 0x48, 0x8d, 0x44, 0x80, 0x28, //0x00000256 leaq $40(%rax,%rax,4), %rax + 0x48, 0x39, 0xc8, //0x0000025b cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000025e setbe %dl + 0x40, 0x38, 0xd6, //0x00000261 cmpb %dl, %sil + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000264 je LBB1_17 + 0x31, 0xd2, //0x0000026a xorl %edx, %edx + 0x48, 0x39, 0xc8, //0x0000026c cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000026f setbe %dl + 0x48, 0x01, 0xd7, //0x00000272 addq %rdx, %rdi + 0x41, 0xff, 0xc1, //0x00000275 incl %r9d + 0x48, 0xbb, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000278 movabsq $8589934560, %rbx + 0x48, 0x8d, 0x83, 0x1f, 0xe4, 0x0b, 0x54, //0x00000282 leaq $1410065439(%rbx), %rax + 0x48, 0x39, 0xc7, //0x00000289 cmpq %rax, %rdi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x0000028c ja LBB1_23 + //0x00000292 LBB1_8 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000292 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x00000297 cmpq $10, %rdi + 0x0f, 0x82, 0x9c, 0x01, 0x00, 0x00, //0x0000029b jb LBB1_30 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000002a1 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000002a6 cmpq $100, %rdi + 0x0f, 0x82, 0x8d, 0x01, 0x00, 0x00, //0x000002aa jb LBB1_30 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000002b0 movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000002b5 cmpq $1000, %rdi + 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x000002bc jb LBB1_30 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000002c2 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000002c7 cmpq $10000, %rdi + 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x000002ce jb LBB1_30 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000002d4 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000002d9 cmpq $100000, %rdi + 0x0f, 0x82, 0x57, 0x01, 0x00, 0x00, //0x000002e0 jb LBB1_30 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x000002e6 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000002eb cmpq $1000000, %rdi + 0x0f, 0x82, 0x45, 0x01, 0x00, 0x00, //0x000002f2 jb LBB1_30 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x000002f8 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000002fd cmpq $10000000, %rdi + 0x0f, 0x82, 0x33, 0x01, 0x00, 0x00, //0x00000304 jb LBB1_30 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x0000030a movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000030f cmpq $100000000, %rdi + 0x0f, 0x82, 0x21, 0x01, 0x00, 0x00, //0x00000316 jb LBB1_30 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x0000031c cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000323 movl $10, %edx + 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00000328 jmp LBB1_29 + //0x0000032d LBB1_17 + 0x4d, 0x89, 0xc3, //0x0000032d movq %r8, %r11 + 0x49, 0xc1, 0xeb, 0x02, //0x00000330 shrq $2, %r11 + 0x4c, 0x89, 0xc2, //0x00000334 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x00000337 andq $-4, %rdx + 0x48, 0x39, 0xd3, //0x0000033b cmpq %rdx, %rbx + 0x0f, 0x96, 0xc3, //0x0000033e setbe %bl + 0x48, 0x8d, 0x72, 0x04, //0x00000341 leaq $4(%rdx), %rsi + 0x48, 0x39, 0xce, //0x00000345 cmpq %rcx, %rsi + 0x0f, 0x96, 0xc0, //0x00000348 setbe %al + 0x38, 0xc3, //0x0000034b cmpb %al, %bl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000034d je LBB1_20 + 0x31, 0xff, //0x00000353 xorl %edi, %edi + 0x48, 0x39, 0xce, //0x00000355 cmpq %rcx, %rsi + 0x40, 0x0f, 0x96, 0xc7, //0x00000358 setbe %dil + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x0000035c jmp LBB1_22 + //0x00000361 LBB1_19 + 0x41, 0xc6, 0x07, 0x30, //0x00000361 movb $48, (%r15) + 0x45, 0x29, 0xf7, //0x00000365 subl %r14d, %r15d + 0x41, 0xff, 0xc7, //0x00000368 incl %r15d + 0x44, 0x89, 0xfb, //0x0000036b movl %r15d, %ebx + 0xe9, 0xdf, 0x07, 0x00, 0x00, //0x0000036e jmp LBB1_113 + //0x00000373 LBB1_20 + 0x48, 0x83, 0xca, 0x02, //0x00000373 orq $2, %rdx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000377 movl $1, %edi + 0x49, 0x39, 0xd2, //0x0000037c cmpq %rdx, %r10 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000037f ja LBB1_22 + 0x0f, 0x94, 0xc0, //0x00000385 sete %al + 0x41, 0xc0, 0xe8, 0x02, //0x00000388 shrb $2, %r8b + 0x41, 0x20, 0xc0, //0x0000038c andb %al, %r8b + 0x41, 0x0f, 0xb6, 0xf8, //0x0000038f movzbl %r8b, %edi + //0x00000393 LBB1_22 + 0x4c, 0x01, 0xdf, //0x00000393 addq %r11, %rdi + 0x48, 0xbb, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000396 movabsq $8589934560, %rbx + 0x48, 0x8d, 0x83, 0x1f, 0xe4, 0x0b, 0x54, //0x000003a0 leaq $1410065439(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000003a7 cmpq %rax, %rdi + 0x0f, 0x86, 0xe2, 0xfe, 0xff, 0xff, //0x000003aa jbe LBB1_8 + //0x000003b0 LBB1_23 + 0x48, 0x89, 0xf8, //0x000003b0 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x000003b3 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000003b7 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000003bc cmpq $48828125, %rax + 0x0f, 0x82, 0x75, 0x00, 0x00, 0x00, //0x000003c2 jb LBB1_30 + 0x48, 0x89, 0xf8, //0x000003c8 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x000003cb shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000003cf movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000003d4 cmpq $244140625, %rax + 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x000003da jb LBB1_30 + 0x48, 0x89, 0xf8, //0x000003e0 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x000003e3 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000003e7 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000003ec cmpq $1220703125, %rax + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x000003f2 jb LBB1_30 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000003f8 movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000003fd movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000407 cmpq %rax, %rdi + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x0000040a jb LBB1_30 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000410 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000415 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000041f cmpq %rax, %rdi + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00000422 jb LBB1_30 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000428 movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000432 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000435 movl $17, %edx + //0x0000043a LBB1_29 + 0x83, 0xda, 0x00, //0x0000043a sbbl $0, %edx + //0x0000043d LBB1_30 + 0x46, 0x8d, 0x2c, 0x0a, //0x0000043d leal (%rdx,%r9), %r13d + 0x42, 0x8d, 0x44, 0x0a, 0x05, //0x00000441 leal $5(%rdx,%r9), %eax + 0x83, 0xf8, 0x1b, //0x00000446 cmpl $27, %eax + 0x0f, 0x82, 0x95, 0x00, 0x00, 0x00, //0x00000449 jb LBB1_38 + 0x4d, 0x8d, 0x67, 0x01, //0x0000044f leaq $1(%r15), %r12 + 0x4c, 0x89, 0xe6, //0x00000453 movq %r12, %rsi + 0xe8, 0xd5, 0x87, 0x00, 0x00, //0x00000456 callq _format_significand + 0x48, 0x89, 0xc3, //0x0000045b movq %rax, %rbx + 0x90, 0x90, //0x0000045e .p2align 4, 0x90 + //0x00000460 LBB1_32 + 0x80, 0x7b, 0xff, 0x30, //0x00000460 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000464 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000468 je LBB1_32 + 0x41, 0x8a, 0x47, 0x01, //0x0000046e movb $1(%r15), %al + 0x41, 0x88, 0x07, //0x00000472 movb %al, (%r15) + 0x48, 0x8d, 0x43, 0x01, //0x00000475 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00000479 movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x0000047c subq %r12, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000047f cmpq $2, %rcx + 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x00000483 jl LBB1_35 + 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000489 movb $46, (%r12) + 0x48, 0x89, 0xc3, //0x0000048e movq %rax, %rbx + //0x00000491 LBB1_35 + 0xc6, 0x03, 0x65, //0x00000491 movb $101, (%rbx) + 0x45, 0x85, 0xed, //0x00000494 testl %r13d, %r13d + 0x0f, 0x8e, 0x57, 0x01, 0x00, 0x00, //0x00000497 jle LBB1_51 + 0x41, 0xff, 0xcd, //0x0000049d decl %r13d + 0xc6, 0x43, 0x01, 0x2b, //0x000004a0 movb $43, $1(%rbx) + 0x44, 0x89, 0xe8, //0x000004a4 movl %r13d, %eax + 0x83, 0xf8, 0x64, //0x000004a7 cmpl $100, %eax + 0x0f, 0x8c, 0x59, 0x01, 0x00, 0x00, //0x000004aa jl LBB1_52 + //0x000004b0 LBB1_37 + 0x89, 0xc1, //0x000004b0 movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000004b2 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000004b7 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x000004bb shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x000004bf leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x000004c2 leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x000004c5 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x52, 0xbc, 0x00, 0x00, //0x000004c7 leaq $48210(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x000004ce movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x000004d2 movw %cx, $2(%rbx) + 0x0c, 0x30, //0x000004d6 orb $48, %al + 0x88, 0x43, 0x04, //0x000004d8 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x000004db addq $5, %rbx + 0xe9, 0x6b, 0x06, 0x00, 0x00, //0x000004df jmp LBB1_112 + //0x000004e4 LBB1_38 + 0x45, 0x85, 0xc9, //0x000004e4 testl %r9d, %r9d + 0x0f, 0x88, 0x3f, 0x01, 0x00, 0x00, //0x000004e7 js LBB1_54 + 0x4d, 0x63, 0xed, //0x000004ed movslq %r13d, %r13 + 0x4b, 0x8d, 0x1c, 0x2f, //0x000004f0 leaq (%r15,%r13), %rbx + 0x4c, 0x89, 0xfe, //0x000004f4 movq %r15, %rsi + 0xe8, 0x94, 0x06, 0x00, 0x00, //0x000004f7 callq _format_integer + 0x48, 0x39, 0xd8, //0x000004fc cmpq %rbx, %rax + 0x0f, 0x83, 0x4a, 0x06, 0x00, 0x00, //0x000004ff jae LBB1_112 + 0x4d, 0x01, 0xec, //0x00000505 addq %r13, %r12 + 0x49, 0x29, 0xc4, //0x00000508 subq %rax, %r12 + 0x4d, 0x01, 0xf4, //0x0000050b addq %r14, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x0000050e cmpq $32, %r12 + 0x0f, 0x82, 0x18, 0x03, 0x00, 0x00, //0x00000512 jb LBB1_76 + 0x4c, 0x89, 0xe1, //0x00000518 movq %r12, %rcx + 0x48, 0x83, 0xe1, 0xe0, //0x0000051b andq $-32, %rcx + 0x48, 0x8d, 0x79, 0xe0, //0x0000051f leaq $-32(%rcx), %rdi + 0x48, 0x89, 0xfe, //0x00000523 movq %rdi, %rsi + 0x48, 0xc1, 0xee, 0x05, //0x00000526 shrq $5, %rsi + 0x48, 0xff, 0xc6, //0x0000052a incq %rsi + 0x89, 0xf2, //0x0000052d movl %esi, %edx + 0x83, 0xe2, 0x07, //0x0000052f andl $7, %edx + 0x48, 0x81, 0xff, 0xe0, 0x00, 0x00, 0x00, //0x00000532 cmpq $224, %rdi + 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x00000539 jae LBB1_69 + 0x31, 0xff, //0x0000053f xorl %edi, %edi + 0xe9, 0x92, 0x02, 0x00, 0x00, //0x00000541 jmp LBB1_71 + //0x00000546 LBB1_43 + 0x48, 0xd3, 0xef, //0x00000546 shrq %cl, %rdi + 0x48, 0xb8, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000549 movabsq $8589934560, %rax + 0x48, 0x05, 0x1f, 0xe4, 0x0b, 0x54, //0x00000553 addq $1410065439, %rax + 0x48, 0x39, 0xc7, //0x00000559 cmpq %rax, %rdi + 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x0000055c jbe LBB1_60 + 0x48, 0x89, 0xf8, //0x00000562 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000565 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x00000569 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x0000056e cmpq $48828125, %rax + 0x0f, 0x82, 0xad, 0x01, 0x00, 0x00, //0x00000574 jb LBB1_68 + 0x48, 0x89, 0xf8, //0x0000057a movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x0000057d shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000581 movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000586 cmpq $244140625, %rax + 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x0000058c jb LBB1_68 + 0x48, 0x89, 0xf8, //0x00000592 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000595 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000599 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000059e cmpq $1220703125, %rax + 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x000005a4 jb LBB1_68 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000005aa movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000005af movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005b9 cmpq %rax, %rdi + 0x0f, 0x82, 0x65, 0x01, 0x00, 0x00, //0x000005bc jb LBB1_68 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005c2 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005c7 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005d1 cmpq %rax, %rdi + 0x0f, 0x82, 0x4d, 0x01, 0x00, 0x00, //0x000005d4 jb LBB1_68 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005da movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005e4 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x000005e7 movl $17, %edx + //0x000005ec LBB1_50 + 0x83, 0xda, 0x00, //0x000005ec sbbl $0, %edx + 0xe9, 0x33, 0x01, 0x00, 0x00, //0x000005ef jmp LBB1_68 + //0x000005f4 LBB1_51 + 0xc6, 0x43, 0x01, 0x2d, //0x000005f4 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000005f8 movl $1, %eax + 0x44, 0x29, 0xe8, //0x000005fd subl %r13d, %eax + 0x83, 0xf8, 0x64, //0x00000600 cmpl $100, %eax + 0x0f, 0x8d, 0xa7, 0xfe, 0xff, 0xff, //0x00000603 jge LBB1_37 + //0x00000609 LBB1_52 + 0x83, 0xf8, 0x0a, //0x00000609 cmpl $10, %eax + 0x0f, 0x8c, 0x7d, 0x00, 0x00, 0x00, //0x0000060c jl LBB1_59 + 0x48, 0x98, //0x00000612 cltq + 0x48, 0x8d, 0x0d, 0x05, 0xbb, 0x00, 0x00, //0x00000614 leaq $47877(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x0000061b movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x0000061f movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00000623 addq $4, %rbx + 0xe9, 0x23, 0x05, 0x00, 0x00, //0x00000627 jmp LBB1_112 + //0x0000062c LBB1_54 + 0x45, 0x85, 0xed, //0x0000062c testl %r13d, %r13d + 0x0f, 0x8f, 0x0c, 0x03, 0x00, 0x00, //0x0000062f jg LBB1_85 + 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000635 movw $11824, (%r15) + 0x49, 0x83, 0xc7, 0x02, //0x0000063b addq $2, %r15 + 0x45, 0x85, 0xed, //0x0000063f testl %r13d, %r13d + 0x0f, 0x89, 0xf9, 0x02, 0x00, 0x00, //0x00000642 jns LBB1_85 + 0x31, 0xc0, //0x00000648 xorl %eax, %eax + 0x41, 0x83, 0xfd, 0xe0, //0x0000064a cmpl $-32, %r13d + 0x0f, 0x87, 0xce, 0x02, 0x00, 0x00, //0x0000064e ja LBB1_83 + 0x45, 0x89, 0xe8, //0x00000654 movl %r13d, %r8d + 0x41, 0xf7, 0xd0, //0x00000657 notl %r8d + 0x49, 0xff, 0xc0, //0x0000065a incq %r8 + 0x4c, 0x89, 0xc0, //0x0000065d movq %r8, %rax + 0x49, 0x89, 0xda, //0x00000660 movq %rbx, %r10 + 0x48, 0x21, 0xd8, //0x00000663 andq %rbx, %rax + 0x48, 0x8d, 0x48, 0xe0, //0x00000666 leaq $-32(%rax), %rcx + 0x48, 0x89, 0xcb, //0x0000066a movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x05, //0x0000066d shrq $5, %rbx + 0x48, 0xff, 0xc3, //0x00000671 incq %rbx + 0x41, 0x89, 0xd9, //0x00000674 movl %ebx, %r9d + 0x41, 0x83, 0xe1, 0x07, //0x00000677 andl $7, %r9d + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x0000067b cmpq $224, %rcx + 0x0f, 0x83, 0xbc, 0x01, 0x00, 0x00, //0x00000682 jae LBB1_77 + 0x31, 0xdb, //0x00000688 xorl %ebx, %ebx + 0xe9, 0x52, 0x02, 0x00, 0x00, //0x0000068a jmp LBB1_79 + //0x0000068f LBB1_59 + 0x04, 0x30, //0x0000068f addb $48, %al + 0x88, 0x43, 0x02, //0x00000691 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x00000694 addq $3, %rbx + 0xe9, 0xb2, 0x04, 0x00, 0x00, //0x00000698 jmp LBB1_112 + //0x0000069d LBB1_60 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000069d movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x000006a2 cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000006a6 jb LBB1_68 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000006ac movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000006b1 cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000006b5 jb LBB1_68 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000006bb movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006c0 cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006c7 jb LBB1_68 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006cd movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006d2 cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006d9 jb LBB1_68 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000006df movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000006e4 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000006eb jb LBB1_68 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x000006f1 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000006f6 cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000006fd jb LBB1_68 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000703 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x00000708 cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000070f jb LBB1_68 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000715 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000071a cmpq $100000000, %rdi + 0x0f, 0x83, 0x50, 0x04, 0x00, 0x00, //0x00000721 jae LBB1_116 + //0x00000727 LBB1_68 + 0x4c, 0x89, 0xfe, //0x00000727 movq %r15, %rsi + 0xe8, 0x61, 0x04, 0x00, 0x00, //0x0000072a callq _format_integer + 0x48, 0x89, 0xc3, //0x0000072f movq %rax, %rbx + 0xe9, 0x18, 0x04, 0x00, 0x00, //0x00000732 jmp LBB1_112 + //0x00000737 LBB1_69 + 0x48, 0x29, 0xd6, //0x00000737 subq %rdx, %rsi + 0x31, 0xff, //0x0000073a xorl %edi, %edi + 0x66, 0x0f, 0x6f, 0x05, 0x4c, 0xf9, 0xff, 0xff, //0x0000073c movdqa $-1716(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000744 .p2align 4, 0x90 + //0x00000750 LBB1_70 + 0xf3, 0x0f, 0x7f, 0x04, 0x38, //0x00000750 movdqu %xmm0, (%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x10, //0x00000755 movdqu %xmm0, $16(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x20, //0x0000075b movdqu %xmm0, $32(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x30, //0x00000761 movdqu %xmm0, $48(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x40, //0x00000767 movdqu %xmm0, $64(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x50, //0x0000076d movdqu %xmm0, $80(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x60, //0x00000773 movdqu %xmm0, $96(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x70, //0x00000779 movdqu %xmm0, $112(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x80, 0x00, 0x00, 0x00, //0x0000077f movdqu %xmm0, $128(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x90, 0x00, 0x00, 0x00, //0x00000788 movdqu %xmm0, $144(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xa0, 0x00, 0x00, 0x00, //0x00000791 movdqu %xmm0, $160(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xb0, 0x00, 0x00, 0x00, //0x0000079a movdqu %xmm0, $176(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xc0, 0x00, 0x00, 0x00, //0x000007a3 movdqu %xmm0, $192(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xd0, 0x00, 0x00, 0x00, //0x000007ac movdqu %xmm0, $208(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xe0, 0x00, 0x00, 0x00, //0x000007b5 movdqu %xmm0, $224(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xf0, 0x00, 0x00, 0x00, //0x000007be movdqu %xmm0, $240(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x000007c7 addq $256, %rdi + 0x48, 0x83, 0xc6, 0xf8, //0x000007ce addq $-8, %rsi + 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000007d2 jne LBB1_70 + //0x000007d8 LBB1_71 + 0x48, 0x85, 0xd2, //0x000007d8 testq %rdx, %rdx + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000007db je LBB1_74 + 0x48, 0x8d, 0x74, 0x07, 0x10, //0x000007e1 leaq $16(%rdi,%rax), %rsi + 0x48, 0xf7, 0xda, //0x000007e6 negq %rdx + 0x66, 0x0f, 0x6f, 0x05, 0x9f, 0xf8, 0xff, 0xff, //0x000007e9 movdqa $-1889(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007f1 .p2align 4, 0x90 + //0x00000800 LBB1_73 + 0xf3, 0x0f, 0x7f, 0x46, 0xf0, //0x00000800 movdqu %xmm0, $-16(%rsi) + 0xf3, 0x0f, 0x7f, 0x06, //0x00000805 movdqu %xmm0, (%rsi) + 0x48, 0x83, 0xc6, 0x20, //0x00000809 addq $32, %rsi + 0x48, 0xff, 0xc2, //0x0000080d incq %rdx + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000810 jne LBB1_73 + //0x00000816 LBB1_74 + 0x4c, 0x39, 0xe1, //0x00000816 cmpq %r12, %rcx + 0x0f, 0x84, 0x30, 0x03, 0x00, 0x00, //0x00000819 je LBB1_112 + 0x48, 0x01, 0xc8, //0x0000081f addq %rcx, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000822 .p2align 4, 0x90 + //0x00000830 LBB1_76 + 0xc6, 0x00, 0x30, //0x00000830 movb $48, (%rax) + 0x48, 0xff, 0xc0, //0x00000833 incq %rax + 0x48, 0x39, 0xc3, //0x00000836 cmpq %rax, %rbx + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000839 jne LBB1_76 + 0xe9, 0x0b, 0x03, 0x00, 0x00, //0x0000083f jmp LBB1_112 + //0x00000844 LBB1_77 + 0x4b, 0x8d, 0x8c, 0x34, 0xf2, 0x00, 0x00, 0x00, //0x00000844 leaq $242(%r12,%r14), %rcx + 0x4c, 0x89, 0xce, //0x0000084c movq %r9, %rsi + 0x48, 0x29, 0xde, //0x0000084f subq %rbx, %rsi + 0x31, 0xdb, //0x00000852 xorl %ebx, %ebx + 0x66, 0x0f, 0x6f, 0x05, 0x34, 0xf8, 0xff, 0xff, //0x00000854 movdqa $-1996(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x0000085c LBB1_78 + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x10, 0xff, 0xff, 0xff, //0x0000085c movdqu %xmm0, $-240(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x20, 0xff, 0xff, 0xff, //0x00000865 movdqu %xmm0, $-224(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x30, 0xff, 0xff, 0xff, //0x0000086e movdqu %xmm0, $-208(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x40, 0xff, 0xff, 0xff, //0x00000877 movdqu %xmm0, $-192(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x50, 0xff, 0xff, 0xff, //0x00000880 movdqu %xmm0, $-176(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x60, 0xff, 0xff, 0xff, //0x00000889 movdqu %xmm0, $-160(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x70, 0xff, 0xff, 0xff, //0x00000892 movdqu %xmm0, $-144(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0x80, //0x0000089b movdqu %xmm0, $-128(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0x90, //0x000008a1 movdqu %xmm0, $-112(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xa0, //0x000008a7 movdqu %xmm0, $-96(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xb0, //0x000008ad movdqu %xmm0, $-80(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xc0, //0x000008b3 movdqu %xmm0, $-64(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xd0, //0x000008b9 movdqu %xmm0, $-48(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xe0, //0x000008bf movdqu %xmm0, $-32(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xf0, //0x000008c5 movdqu %xmm0, $-16(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x04, 0x19, //0x000008cb movdqu %xmm0, (%rcx,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, //0x000008d0 addq $256, %rbx + 0x48, 0x83, 0xc6, 0x08, //0x000008d7 addq $8, %rsi + 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x000008db jne LBB1_78 + //0x000008e1 LBB1_79 + 0x4d, 0x85, 0xc9, //0x000008e1 testq %r9, %r9 + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000008e4 je LBB1_82 + 0x4c, 0x01, 0xe3, //0x000008ea addq %r12, %rbx + 0x49, 0x8d, 0x4c, 0x1e, 0x12, //0x000008ed leaq $18(%r14,%rbx), %rcx + 0x49, 0xf7, 0xd9, //0x000008f2 negq %r9 + 0x66, 0x0f, 0x6f, 0x05, 0x93, 0xf7, 0xff, 0xff, //0x000008f5 movdqa $-2157(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x000008fd LBB1_81 + 0xf3, 0x0f, 0x7f, 0x41, 0xf0, //0x000008fd movdqu %xmm0, $-16(%rcx) + 0xf3, 0x0f, 0x7f, 0x01, //0x00000902 movdqu %xmm0, (%rcx) + 0x48, 0x83, 0xc1, 0x20, //0x00000906 addq $32, %rcx + 0x49, 0xff, 0xc1, //0x0000090a incq %r9 + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x0000090d jne LBB1_81 + //0x00000913 LBB1_82 + 0x49, 0x01, 0xc7, //0x00000913 addq %rax, %r15 + 0x49, 0x39, 0xc0, //0x00000916 cmpq %rax, %r8 + 0x4c, 0x89, 0xd3, //0x00000919 movq %r10, %rbx + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000091c je LBB1_85 + //0x00000922 LBB1_83 + 0x44, 0x89, 0xe9, //0x00000922 movl %r13d, %ecx + 0xf7, 0xd9, //0x00000925 negl %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000927 .p2align 4, 0x90 + //0x00000930 LBB1_84 + 0x41, 0xc6, 0x07, 0x30, //0x00000930 movb $48, (%r15) + 0x49, 0xff, 0xc7, //0x00000934 incq %r15 + 0xff, 0xc0, //0x00000937 incl %eax + 0x39, 0xc8, //0x00000939 cmpl %ecx, %eax + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000093b jl LBB1_84 + //0x00000941 LBB1_85 + 0x4c, 0x89, 0xfe, //0x00000941 movq %r15, %rsi + 0xe8, 0xe7, 0x82, 0x00, 0x00, //0x00000944 callq _format_significand + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000949 .p2align 4, 0x90 + //0x00000950 LBB1_86 + 0x80, 0x78, 0xff, 0x30, //0x00000950 cmpb $48, $-1(%rax) + 0x48, 0x8d, 0x40, 0xff, //0x00000954 leaq $-1(%rax), %rax + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000958 je LBB1_86 + 0x48, 0x8d, 0x48, 0x01, //0x0000095e leaq $1(%rax), %rcx + 0x45, 0x85, 0xed, //0x00000962 testl %r13d, %r13d + 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, //0x00000965 jle LBB1_91 + 0x89, 0xca, //0x0000096b movl %ecx, %edx + 0x44, 0x29, 0xfa, //0x0000096d subl %r15d, %edx + 0x41, 0x39, 0xd5, //0x00000970 cmpl %edx, %r13d + 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x00000973 jge LBB1_92 + 0x43, 0x8d, 0x54, 0x3d, 0x00, //0x00000979 leal (%r13,%r15), %edx + 0x29, 0xd1, //0x0000097e subl %edx, %ecx + 0x48, 0x8d, 0x71, 0xff, //0x00000980 leaq $-1(%rcx), %rsi + 0x89, 0xca, //0x00000984 movl %ecx, %edx + 0x83, 0xe2, 0x03, //0x00000986 andl $3, %edx + 0x48, 0x83, 0xfe, 0x03, //0x00000989 cmpq $3, %rsi + 0x0f, 0x83, 0x63, 0x00, 0x00, 0x00, //0x0000098d jae LBB1_96 + 0x31, 0xc9, //0x00000993 xorl %ecx, %ecx + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x00000995 jmp LBB1_99 + //0x0000099a LBB1_92 + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x0000099a jle LBB1_91 + 0x48, 0x89, 0xde, //0x000009a0 movq %rbx, %rsi + 0x45, 0x01, 0xfd, //0x000009a3 addl %r15d, %r13d + 0x41, 0x89, 0xc8, //0x000009a6 movl %ecx, %r8d + 0x41, 0xf7, 0xd0, //0x000009a9 notl %r8d + 0x45, 0x01, 0xe8, //0x000009ac addl %r13d, %r8d + 0x31, 0xd2, //0x000009af xorl %edx, %edx + 0x48, 0x89, 0xcb, //0x000009b1 movq %rcx, %rbx + 0x41, 0x83, 0xf8, 0x1e, //0x000009b4 cmpl $30, %r8d + 0x0f, 0x86, 0x79, 0x01, 0x00, 0x00, //0x000009b8 jbe LBB1_110 + 0x49, 0xff, 0xc0, //0x000009be incq %r8 + 0x48, 0x89, 0xf3, //0x000009c1 movq %rsi, %rbx + 0x4c, 0x21, 0xc3, //0x000009c4 andq %r8, %rbx + 0x48, 0x8d, 0x73, 0xe0, //0x000009c7 leaq $-32(%rbx), %rsi + 0x48, 0x89, 0xf7, //0x000009cb movq %rsi, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x000009ce shrq $5, %rdi + 0x48, 0xff, 0xc7, //0x000009d2 incq %rdi + 0x89, 0xfa, //0x000009d5 movl %edi, %edx + 0x83, 0xe2, 0x07, //0x000009d7 andl $7, %edx + 0x48, 0x81, 0xfe, 0xe0, 0x00, 0x00, 0x00, //0x000009da cmpq $224, %rsi + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x000009e1 jae LBB1_104 + 0x31, 0xff, //0x000009e7 xorl %edi, %edi + 0xe9, 0x07, 0x01, 0x00, 0x00, //0x000009e9 jmp LBB1_106 + //0x000009ee LBB1_91 + 0x48, 0x89, 0xcb, //0x000009ee movq %rcx, %rbx + 0xe9, 0x59, 0x01, 0x00, 0x00, //0x000009f1 jmp LBB1_112 + //0x000009f6 LBB1_96 + 0x48, 0x89, 0xd6, //0x000009f6 movq %rdx, %rsi + 0x48, 0x29, 0xce, //0x000009f9 subq %rcx, %rsi + 0x31, 0xc9, //0x000009fc xorl %ecx, %ecx + 0x90, 0x90, //0x000009fe .p2align 4, 0x90 + //0x00000a00 LBB1_97 + 0x8b, 0x7c, 0x08, 0xfd, //0x00000a00 movl $-3(%rax,%rcx), %edi + 0x89, 0x7c, 0x08, 0xfe, //0x00000a04 movl %edi, $-2(%rax,%rcx) + 0x48, 0x83, 0xc1, 0xfc, //0x00000a08 addq $-4, %rcx + 0x48, 0x39, 0xce, //0x00000a0c cmpq %rcx, %rsi + 0x0f, 0x85, 0xeb, 0xff, 0xff, 0xff, //0x00000a0f jne LBB1_97 + 0x48, 0xf7, 0xd9, //0x00000a15 negq %rcx + //0x00000a18 LBB1_99 + 0x48, 0x85, 0xd2, //0x00000a18 testq %rdx, %rdx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000a1b je LBB1_102 + 0x48, 0xf7, 0xd9, //0x00000a21 negq %rcx + 0x48, 0xf7, 0xda, //0x00000a24 negq %rdx + 0x31, 0xf6, //0x00000a27 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a29 .p2align 4, 0x90 + //0x00000a30 LBB1_101 + 0x48, 0x8d, 0x3c, 0x31, //0x00000a30 leaq (%rcx,%rsi), %rdi + 0x0f, 0xb6, 0x1c, 0x38, //0x00000a34 movzbl (%rax,%rdi), %ebx + 0x88, 0x5c, 0x38, 0x01, //0x00000a38 movb %bl, $1(%rax,%rdi) + 0x48, 0xff, 0xce, //0x00000a3c decq %rsi + 0x48, 0x39, 0xf2, //0x00000a3f cmpq %rsi, %rdx + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000a42 jne LBB1_101 + //0x00000a48 LBB1_102 + 0x49, 0x63, 0xcd, //0x00000a48 movslq %r13d, %rcx + 0x41, 0xc6, 0x04, 0x0f, 0x2e, //0x00000a4b movb $46, (%r15,%rcx) + 0x48, 0x83, 0xc0, 0x02, //0x00000a50 addq $2, %rax + 0x48, 0x89, 0xc3, //0x00000a54 movq %rax, %rbx + 0xe9, 0xf3, 0x00, 0x00, 0x00, //0x00000a57 jmp LBB1_112 + //0x00000a5c LBB1_104 + 0x48, 0x89, 0xd6, //0x00000a5c movq %rdx, %rsi + 0x48, 0x29, 0xfe, //0x00000a5f subq %rdi, %rsi + 0x31, 0xff, //0x00000a62 xorl %edi, %edi + 0x66, 0x0f, 0x6f, 0x05, 0x24, 0xf6, 0xff, 0xff, //0x00000a64 movdqa $-2524(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x00000a6c LBB1_105 + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x01, //0x00000a6c movdqu %xmm0, $1(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x11, //0x00000a72 movdqu %xmm0, $17(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x21, //0x00000a78 movdqu %xmm0, $33(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x31, //0x00000a7e movdqu %xmm0, $49(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x41, //0x00000a84 movdqu %xmm0, $65(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x51, //0x00000a8a movdqu %xmm0, $81(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x61, //0x00000a90 movdqu %xmm0, $97(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x71, //0x00000a96 movdqu %xmm0, $113(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x81, 0x00, 0x00, 0x00, //0x00000a9c movdqu %xmm0, $129(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x91, 0x00, 0x00, 0x00, //0x00000aa5 movdqu %xmm0, $145(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xa1, 0x00, 0x00, 0x00, //0x00000aae movdqu %xmm0, $161(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xb1, 0x00, 0x00, 0x00, //0x00000ab7 movdqu %xmm0, $177(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xc1, 0x00, 0x00, 0x00, //0x00000ac0 movdqu %xmm0, $193(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xd1, 0x00, 0x00, 0x00, //0x00000ac9 movdqu %xmm0, $209(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xe1, 0x00, 0x00, 0x00, //0x00000ad2 movdqu %xmm0, $225(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xf1, 0x00, 0x00, 0x00, //0x00000adb movdqu %xmm0, $241(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x00000ae4 addq $256, %rdi + 0x48, 0x83, 0xc6, 0x08, //0x00000aeb addq $8, %rsi + 0x0f, 0x85, 0x77, 0xff, 0xff, 0xff, //0x00000aef jne LBB1_105 + //0x00000af5 LBB1_106 + 0x48, 0x89, 0xde, //0x00000af5 movq %rbx, %rsi + 0x48, 0x8d, 0x5c, 0x18, 0x01, //0x00000af8 leaq $1(%rax,%rbx), %rbx + 0x48, 0x85, 0xd2, //0x00000afd testq %rdx, %rdx + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00000b00 je LBB1_109 + 0x48, 0x8d, 0x44, 0x38, 0x11, //0x00000b06 leaq $17(%rax,%rdi), %rax + 0x48, 0xf7, 0xda, //0x00000b0b negq %rdx + 0x66, 0x0f, 0x6f, 0x05, 0x7a, 0xf5, 0xff, 0xff, //0x00000b0e movdqa $-2694(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x00000b16 LBB1_108 + 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x00000b16 movdqu %xmm0, $-16(%rax) + 0xf3, 0x0f, 0x7f, 0x00, //0x00000b1b movdqu %xmm0, (%rax) + 0x48, 0x83, 0xc0, 0x20, //0x00000b1f addq $32, %rax + 0x48, 0xff, 0xc2, //0x00000b23 incq %rdx + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000b26 jne LBB1_108 + //0x00000b2c LBB1_109 + 0x89, 0xf2, //0x00000b2c movl %esi, %edx + 0x49, 0x39, 0xf0, //0x00000b2e cmpq %rsi, %r8 + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00000b31 je LBB1_112 + //0x00000b37 LBB1_110 + 0x41, 0x29, 0xd5, //0x00000b37 subl %edx, %r13d + 0x41, 0x29, 0xcd, //0x00000b3a subl %ecx, %r13d + 0x90, 0x90, 0x90, //0x00000b3d .p2align 4, 0x90 + //0x00000b40 LBB1_111 + 0xc6, 0x03, 0x30, //0x00000b40 movb $48, (%rbx) + 0x48, 0xff, 0xc3, //0x00000b43 incq %rbx + 0x41, 0xff, 0xcd, //0x00000b46 decl %r13d + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000b49 jne LBB1_111 + //0x00000b4f LBB1_112 + 0x44, 0x29, 0xf3, //0x00000b4f subl %r14d, %ebx + //0x00000b52 LBB1_113 + 0x89, 0xd8, //0x00000b52 movl %ebx, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00000b54 addq $8, %rsp + 0x5b, //0x00000b58 popq %rbx + 0x41, 0x5c, //0x00000b59 popq %r12 + 0x41, 0x5d, //0x00000b5b popq %r13 + 0x41, 0x5e, //0x00000b5d popq %r14 + 0x41, 0x5f, //0x00000b5f popq %r15 + 0x5d, //0x00000b61 popq %rbp + 0xc3, //0x00000b62 retq + //0x00000b63 LBB1_114 + 0x31, 0xdb, //0x00000b63 xorl %ebx, %ebx + 0xe9, 0xe8, 0xff, 0xff, 0xff, //0x00000b65 jmp LBB1_113 + //0x00000b6a LBB1_115 + 0xbb, 0xce, 0xfb, 0xff, 0xff, //0x00000b6a movl $-1074, %ebx + 0x48, 0x89, 0xd7, //0x00000b6f movq %rdx, %rdi + 0xe9, 0xc2, 0xf5, 0xff, 0xff, //0x00000b72 jmp LBB1_5 + //0x00000b77 LBB1_116 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000b77 cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000b7e movl $10, %edx + 0xe9, 0x64, 0xfa, 0xff, 0xff, //0x00000b83 jmp LBB1_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b88 .p2align 4, 0x90 + //0x00000b90 _format_integer + 0x55, //0x00000b90 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000b91 movq %rsp, %rbp + 0x53, //0x00000b94 pushq %rbx + 0x41, 0x89, 0xd0, //0x00000b95 movl %edx, %r8d + 0x49, 0x01, 0xf0, //0x00000b98 addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00000b9b movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000b9e shrq $32, %rax + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000ba2 je LBB2_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000ba8 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00000bb2 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00000bb5 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000bb8 shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000bbc imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00000bc2 addl %edi, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000bc4 movl $3518437209, %r9d + 0x48, 0x89, 0xc8, //0x00000bca movq %rcx, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x00000bcd imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000bd1 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000bd5 imull $10000, %eax, %edi + 0x29, 0xf9, //0x00000bdb subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00000bdd movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00000be0 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00000be4 shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000be8 imull $10000, %edi, %edi + 0x29, 0xf8, //0x00000bee subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00000bf0 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00000bf3 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000bf6 imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00000bfd shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00000c01 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00000c05 subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00000c07 movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00000c0b movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00000c0e shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000c11 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00000c17 shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00000c1a imull $100, %edi, %ecx + 0x29, 0xc8, //0x00000c1d subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00000c1f movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0xf6, 0xb4, 0x00, 0x00, //0x00000c23 leaq $46326(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000c2a movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000c2f movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000c34 movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000c39 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000c3e movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000c43 movw %ax, $-6(%r8) + 0x4d, 0x8d, 0x58, 0xf8, //0x00000c48 leaq $-8(%r8), %r11 + 0x0f, 0xb7, 0x0c, 0x79, //0x00000c4c movzwl (%rcx,%rdi,2), %ecx + 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000c50 movw %cx, $-8(%r8) + 0x48, 0x89, 0xd7, //0x00000c55 movq %rdx, %rdi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000c58 cmpl $10000, %edi + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000c5e jae LBB2_5 + //0x00000c64 LBB2_4 + 0x89, 0xfa, //0x00000c64 movl %edi, %edx + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000c66 jmp LBB2_7 + //0x00000c6b LBB2_1 + 0x4d, 0x89, 0xc3, //0x00000c6b movq %r8, %r11 + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000c6e cmpl $10000, %edi + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000c74 jb LBB2_4 + //0x00000c7a LBB2_5 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000c7a movl $3518437209, %r9d + 0x4c, 0x8d, 0x15, 0x99, 0xb4, 0x00, 0x00, //0x00000c80 leaq $46233(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c87 .p2align 4, 0x90 + //0x00000c90 LBB2_6 + 0x89, 0xfa, //0x00000c90 movl %edi, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000c92 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000c96 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000c9a imull $-10000, %edx, %ecx + 0x01, 0xf9, //0x00000ca0 addl %edi, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000ca2 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000ca9 shrq $37, %rax + 0x6b, 0xd8, 0x64, //0x00000cad imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000cb0 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000cb2 movzwl (%r10,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000cb7 movw %cx, $-2(%r11) + 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000cbc movzwl (%r10,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000cc1 movw %ax, $-4(%r11) + 0x49, 0x83, 0xc3, 0xfc, //0x00000cc6 addq $-4, %r11 + 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000cca cmpl $99999999, %edi + 0x89, 0xd7, //0x00000cd0 movl %edx, %edi + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000cd2 ja LBB2_6 + //0x00000cd8 LBB2_7 + 0x83, 0xfa, 0x64, //0x00000cd8 cmpl $100, %edx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000cdb jb LBB2_9 + 0x0f, 0xb7, 0xc2, //0x00000ce1 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000ce4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ce7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ced shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000cf0 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000cf3 subl %ecx, %edx + 0x0f, 0xb7, 0xca, //0x00000cf5 movzwl %dx, %ecx + 0x48, 0x8d, 0x15, 0x21, 0xb4, 0x00, 0x00, //0x00000cf8 leaq $46113(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000cff movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d03 movw %cx, $-2(%r11) + 0x49, 0x83, 0xc3, 0xfe, //0x00000d08 addq $-2, %r11 + 0x89, 0xc2, //0x00000d0c movl %eax, %edx + //0x00000d0e LBB2_9 + 0x83, 0xfa, 0x0a, //0x00000d0e cmpl $10, %edx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000d11 jb LBB2_11 + 0x89, 0xd0, //0x00000d17 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x00, 0xb4, 0x00, 0x00, //0x00000d19 leaq $46080(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000d20 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000d24 movw %ax, $-2(%r11) + 0x4c, 0x89, 0xc0, //0x00000d29 movq %r8, %rax + 0x5b, //0x00000d2c popq %rbx + 0x5d, //0x00000d2d popq %rbp + 0xc3, //0x00000d2e retq + //0x00000d2f LBB2_11 + 0x80, 0xc2, 0x30, //0x00000d2f addb $48, %dl + 0x88, 0x16, //0x00000d32 movb %dl, (%rsi) + 0x4c, 0x89, 0xc0, //0x00000d34 movq %r8, %rax + 0x5b, //0x00000d37 popq %rbx + 0x5d, //0x00000d38 popq %rbp + 0xc3, //0x00000d39 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d3a .p2align 4, 0x90 + //0x00000d40 _i64toa + 0x48, 0x85, 0xf6, //0x00000d40 testq %rsi, %rsi + 0x0f, 0x88, 0x05, 0x00, 0x00, 0x00, //0x00000d43 js LBB3_1 + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00000d49 jmp _u64toa + //0x00000d4e LBB3_1 + 0x55, //0x00000d4e pushq %rbp + 0x48, 0x89, 0xe5, //0x00000d4f movq %rsp, %rbp + 0xc6, 0x07, 0x2d, //0x00000d52 movb $45, (%rdi) + 0x48, 0xff, 0xc7, //0x00000d55 incq %rdi + 0x48, 0xf7, 0xde, //0x00000d58 negq %rsi + 0xe8, 0x60, 0x00, 0x00, 0x00, //0x00000d5b callq _u64toa + 0xff, 0xc0, //0x00000d60 incl %eax + 0x5d, //0x00000d62 popq %rbp + 0xc3, //0x00000d63 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d64 .p2align 4, 0x00 + //0x00000d70 LCPI4_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000d70 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000d78 .quad 3518437209 + //0x00000d80 LCPI4_1 + 0xc5, 0x20, //0x00000d80 .word 8389 + 0x7b, 0x14, //0x00000d82 .word 5243 + 0x34, 0x33, //0x00000d84 .word 13108 + 0x00, 0x80, //0x00000d86 .word 32768 + 0xc5, 0x20, //0x00000d88 .word 8389 + 0x7b, 0x14, //0x00000d8a .word 5243 + 0x34, 0x33, //0x00000d8c .word 13108 + 0x00, 0x80, //0x00000d8e .word 32768 + //0x00000d90 LCPI4_2 + 0x80, 0x00, //0x00000d90 .word 128 + 0x00, 0x08, //0x00000d92 .word 2048 + 0x00, 0x20, //0x00000d94 .word 8192 + 0x00, 0x80, //0x00000d96 .word 32768 + 0x80, 0x00, //0x00000d98 .word 128 + 0x00, 0x08, //0x00000d9a .word 2048 + 0x00, 0x20, //0x00000d9c .word 8192 + 0x00, 0x80, //0x00000d9e .word 32768 + //0x00000da0 LCPI4_3 + 0x0a, 0x00, //0x00000da0 .word 10 + 0x0a, 0x00, //0x00000da2 .word 10 + 0x0a, 0x00, //0x00000da4 .word 10 + 0x0a, 0x00, //0x00000da6 .word 10 + 0x0a, 0x00, //0x00000da8 .word 10 + 0x0a, 0x00, //0x00000daa .word 10 + 0x0a, 0x00, //0x00000dac .word 10 + 0x0a, 0x00, //0x00000dae .word 10 + //0x00000db0 LCPI4_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000db0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000dc0 .p2align 4, 0x90 + //0x00000dc0 _u64toa + 0x55, //0x00000dc0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000dc1 movq %rsp, %rbp + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000dc4 cmpq $9999, %rsi + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000dcb ja LBB4_8 + 0x0f, 0xb7, 0xc6, //0x00000dd1 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000dd4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000dd7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ddd shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000de0 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000de4 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000de7 movl %esi, %ecx + 0x29, 0xc1, //0x00000de9 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000deb movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x00000dee addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000df1 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000df7 jb LBB4_3 + 0x48, 0x8d, 0x0d, 0x1c, 0xb3, 0x00, 0x00, //0x00000dfd leaq $45852(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000e04 movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000e07 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000e09 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000e0e jmp LBB4_4 + //0x00000e13 LBB4_3 + 0x31, 0xc9, //0x00000e13 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x00000e15 cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000e18 jb LBB4_5 + //0x00000e1e LBB4_4 + 0x0f, 0xb7, 0xd2, //0x00000e1e movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000e21 orq $1, %rdx + 0x48, 0x8d, 0x35, 0xf4, 0xb2, 0x00, 0x00, //0x00000e25 leaq $45812(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00000e2c movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x00000e2f movl %ecx, %esi + 0xff, 0xc1, //0x00000e31 incl %ecx + 0x88, 0x14, 0x37, //0x00000e33 movb %dl, (%rdi,%rsi) + //0x00000e36 LBB4_6 + 0x48, 0x8d, 0x15, 0xe3, 0xb2, 0x00, 0x00, //0x00000e36 leaq $45795(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x00000e3d movb (%rax,%rdx), %dl + 0x89, 0xce, //0x00000e40 movl %ecx, %esi + 0xff, 0xc1, //0x00000e42 incl %ecx + 0x88, 0x14, 0x37, //0x00000e44 movb %dl, (%rdi,%rsi) + //0x00000e47 LBB4_7 + 0x0f, 0xb7, 0xc0, //0x00000e47 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000e4a orq $1, %rax + 0x48, 0x8d, 0x15, 0xcb, 0xb2, 0x00, 0x00, //0x00000e4e leaq $45771(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x00000e55 movb (%rax,%rdx), %al + 0x89, 0xca, //0x00000e58 movl %ecx, %edx + 0xff, 0xc1, //0x00000e5a incl %ecx + 0x88, 0x04, 0x17, //0x00000e5c movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x00000e5f movl %ecx, %eax + 0x5d, //0x00000e61 popq %rbp + 0xc3, //0x00000e62 retq + //0x00000e63 LBB4_5 + 0x31, 0xc9, //0x00000e63 xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x00000e65 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000e68 jae LBB4_6 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000e6e jmp LBB4_7 + //0x00000e73 LBB4_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000e73 cmpq $99999999, %rsi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x00000e7a ja LBB4_16 + 0x89, 0xf0, //0x00000e80 movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000e82 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000e87 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000e8b shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000e8f imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000e96 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000e98 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x00000e9b imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000ea2 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000ea6 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000eaa movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000ead shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000eb0 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000eb6 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000eb9 imull $100, %eax, %eax + 0x29, 0xc2, //0x00000ebc subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x00000ebe movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000ec2 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000ec5 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000ec8 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ecb imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ed1 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000ed4 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000ed8 imull $100, %eax, %eax + 0x29, 0xc1, //0x00000edb subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x00000edd movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000ee1 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000ee4 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000eea jb LBB4_11 + 0x48, 0x8d, 0x05, 0x29, 0xb2, 0x00, 0x00, //0x00000ef0 leaq $45609(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000ef7 movb (%r10,%rax), %al + 0x88, 0x07, //0x00000efb movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000efd movl $1, %ecx + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000f02 jmp LBB4_12 + //0x00000f07 LBB4_11 + 0x31, 0xc9, //0x00000f07 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000f09 cmpl $1000000, %esi + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x00000f0f jb LBB4_13 + //0x00000f15 LBB4_12 + 0x44, 0x89, 0xd0, //0x00000f15 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f18 orq $1, %rax + 0x48, 0x8d, 0x35, 0xfd, 0xb1, 0x00, 0x00, //0x00000f1c leaq $45565(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000f23 movb (%rax,%rsi), %al + 0x89, 0xce, //0x00000f26 movl %ecx, %esi + 0xff, 0xc1, //0x00000f28 incl %ecx + 0x88, 0x04, 0x37, //0x00000f2a movb %al, (%rdi,%rsi) + //0x00000f2d LBB4_14 + 0x48, 0x8d, 0x05, 0xec, 0xb1, 0x00, 0x00, //0x00000f2d leaq $45548(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x00000f34 movb (%r9,%rax), %al + 0x89, 0xce, //0x00000f38 movl %ecx, %esi + 0xff, 0xc1, //0x00000f3a incl %ecx + 0x88, 0x04, 0x37, //0x00000f3c movb %al, (%rdi,%rsi) + //0x00000f3f LBB4_15 + 0x41, 0x0f, 0xb7, 0xc1, //0x00000f3f movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f43 orq $1, %rax + 0x48, 0x8d, 0x35, 0xd2, 0xb1, 0x00, 0x00, //0x00000f47 leaq $45522(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000f4e movb (%rax,%rsi), %al + 0x89, 0xca, //0x00000f51 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x00000f53 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x00000f56 movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x00000f5a movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x00000f5e movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f62 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000f66 movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x00000f69 movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x00000f6d movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x00000f71 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x00000f75 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f79 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000f7d movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x00000f80 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x00000f83 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x00000f87 movl %ecx, %eax + 0x5d, //0x00000f89 popq %rbp + 0xc3, //0x00000f8a retq + //0x00000f8b LBB4_13 + 0x31, 0xc9, //0x00000f8b xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00000f8d cmpl $100000, %esi + 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000f93 jae LBB4_14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000f99 jmp LBB4_15 + //0x00000f9e LBB4_16 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000f9e movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00000fa8 cmpq %rax, %rsi + 0x0f, 0x87, 0x15, 0x01, 0x00, 0x00, //0x00000fab ja LBB4_18 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000fb1 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x00000fbb movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00000fbe mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000fc1 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000fc5 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x00000fcb subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xc2, //0x00000fcd movd %edx, %xmm0 + 0x66, 0x0f, 0x6f, 0x0d, 0x97, 0xfd, 0xff, 0xff, //0x00000fd1 movdqa $-617(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd0, //0x00000fd9 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0xf4, 0xd1, //0x00000fdd pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0x73, 0xd2, 0x2d, //0x00000fe1 psrlq $45, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000fe6 movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x00000feb movq %rax, %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x00000ff0 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0xf4, 0xe3, //0x00000ff4 pmuludq %xmm3, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x00000ff8 psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd0, //0x00000ffc punpcklwd %xmm0, %xmm2 + 0x66, 0x0f, 0x73, 0xf2, 0x02, //0x00001000 psllq $2, %xmm2 + 0xf2, 0x0f, 0x70, 0xc2, 0x50, //0x00001005 pshuflw $80, %xmm2, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000100a pshufd $80, %xmm0, %xmm0 + 0x66, 0x0f, 0x6f, 0x15, 0x69, 0xfd, 0xff, 0xff, //0x0000100f movdqa $-663(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc2, //0x00001017 pmulhuw %xmm2, %xmm0 + 0x66, 0x0f, 0x6f, 0x25, 0x6d, 0xfd, 0xff, 0xff, //0x0000101b movdqa $-659(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x00001023 pmulhuw %xmm4, %xmm0 + 0x66, 0x0f, 0x6f, 0x2d, 0x71, 0xfd, 0xff, 0xff, //0x00001027 movdqa $-655(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x0000102f movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf5, //0x00001033 pmullw %xmm5, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x00001037 psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x0000103c psubw %xmm6, %xmm0 + 0x66, 0x0f, 0x6e, 0xf6, //0x00001040 movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x00001044 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x00001048 psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd9, //0x0000104d pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0xfa, 0xf3, //0x00001051 psubd %xmm3, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x00001055 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x00001059 psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x0000105e pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x00001063 pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xca, //0x00001068 pmulhuw %xmm2, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x0000106c pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xd5, 0xe9, //0x00001070 pmullw %xmm1, %xmm5 + 0x66, 0x0f, 0x73, 0xf5, 0x10, //0x00001074 psllq $16, %xmm5 + 0x66, 0x0f, 0xf9, 0xcd, //0x00001079 psubw %xmm5, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x0000107d packuswb %xmm1, %xmm0 + 0x66, 0x0f, 0x6f, 0x0d, 0x27, 0xfd, 0xff, 0xff, //0x00001081 movdqa $-729(%rip), %xmm1 /* LCPI4_4+0(%rip) */ + 0x66, 0x0f, 0xfc, 0xc8, //0x00001089 paddb %xmm0, %xmm1 + 0x66, 0x0f, 0xef, 0xd2, //0x0000108d pxor %xmm2, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x00001091 pcmpeqb %xmm0, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00001095 pmovmskb %xmm2, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00001099 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x0000109e xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x000010a3 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x000010a6 movl $16, %ecx + 0x29, 0xc1, //0x000010ab subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x000010ad shlq $4, %rax + 0x48, 0x8d, 0x15, 0xc8, 0xd7, 0x00, 0x00, //0x000010b1 leaq $55240(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0x66, 0x0f, 0x38, 0x00, 0x0c, 0x10, //0x000010b8 pshufb (%rax,%rdx), %xmm1 + 0xf3, 0x0f, 0x7f, 0x0f, //0x000010be movdqu %xmm1, (%rdi) + 0x89, 0xc8, //0x000010c2 movl %ecx, %eax + 0x5d, //0x000010c4 popq %rbp + 0xc3, //0x000010c5 retq + //0x000010c6 LBB4_18 + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000010c6 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x000010d0 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x000010d3 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x000010d6 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000010da movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x000010e4 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x000010e8 subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x000010eb cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000010ee ja LBB4_20 + 0x80, 0xc2, 0x30, //0x000010f4 addb $48, %dl + 0x88, 0x17, //0x000010f7 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000010f9 movl $1, %ecx + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x000010fe jmp LBB4_25 + //0x00001103 LBB4_20 + 0x83, 0xfa, 0x63, //0x00001103 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00001106 ja LBB4_22 + 0x89, 0xd0, //0x0000110c movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x0b, 0xb0, 0x00, 0x00, //0x0000110e leaq $45067(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00001115 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00001118 movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x0000111c movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x0000111e movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00001121 movl $2, %ecx + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x00001126 jmp LBB4_25 + //0x0000112b LBB4_22 + 0x89, 0xd0, //0x0000112b movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x0000112d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001130 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00001136 shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x00001139 cmpl $999, %edx + 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x0000113f ja LBB4_24 + 0x83, 0xc0, 0x30, //0x00001145 addl $48, %eax + 0x88, 0x07, //0x00001148 movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x0000114a movzwl %dx, %eax + 0x89, 0xc1, //0x0000114d movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x0000114f shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00001152 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x00001158 shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x0000115b imull $100, %ecx, %ecx + 0x29, 0xc8, //0x0000115e subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x00001160 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0xb6, 0xaf, 0x00, 0x00, //0x00001163 leaq $44982(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000116a movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000116d movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x00001171 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x00001174 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00001177 movl $3, %ecx + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000117c jmp LBB4_25 + //0x00001181 LBB4_24 + 0x6b, 0xc8, 0x64, //0x00001181 imull $100, %eax, %ecx + 0x29, 0xca, //0x00001184 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x00001186 movzwl %ax, %eax + 0x4c, 0x8d, 0x05, 0x90, 0xaf, 0x00, 0x00, //0x00001189 leaq $44944(%rip), %r8 /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x0c, 0x40, //0x00001190 movb (%r8,%rax,2), %cl + 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00001194 movb $1(%r8,%rax,2), %al + 0x88, 0x0f, //0x00001199 movb %cl, (%rdi) + 0x88, 0x47, 0x01, //0x0000119b movb %al, $1(%rdi) + 0x0f, 0xb7, 0xc2, //0x0000119e movzwl %dx, %eax + 0x41, 0x8a, 0x0c, 0x40, //0x000011a1 movb (%r8,%rax,2), %cl + 0x48, 0x01, 0xc0, //0x000011a5 addq %rax, %rax + 0x88, 0x4f, 0x02, //0x000011a8 movb %cl, $2(%rdi) + 0x83, 0xc8, 0x01, //0x000011ab orl $1, %eax + 0x0f, 0xb7, 0xc0, //0x000011ae movzwl %ax, %eax + 0x42, 0x8a, 0x04, 0x00, //0x000011b1 movb (%rax,%r8), %al + 0x88, 0x47, 0x03, //0x000011b5 movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000011b8 movl $4, %ecx + //0x000011bd LBB4_25 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000011bd movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x000011c7 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000011ca mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000011cd shrq $26, %rdx + 0x66, 0x0f, 0x6e, 0xc2, //0x000011d1 movd %edx, %xmm0 + 0x66, 0x0f, 0x6f, 0x0d, 0x93, 0xfb, 0xff, 0xff, //0x000011d5 movdqa $-1133(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x000011dd movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0xf4, 0xd9, //0x000011e1 pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xd3, 0x2d, //0x000011e5 psrlq $45, %xmm3 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000011ea movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd0, //0x000011ef movq %rax, %xmm2 + 0x66, 0x0f, 0x6f, 0xe3, //0x000011f4 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xf4, 0xe2, //0x000011f8 pmuludq %xmm2, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x000011fc psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd8, //0x00001200 punpcklwd %xmm0, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x02, //0x00001204 psllq $2, %xmm3 + 0xf2, 0x0f, 0x70, 0xc3, 0x50, //0x00001209 pshuflw $80, %xmm3, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000120e pshufd $80, %xmm0, %xmm0 + 0x66, 0x0f, 0x6f, 0x25, 0x65, 0xfb, 0xff, 0xff, //0x00001213 movdqa $-1179(%rip), %xmm4 /* LCPI4_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x0000121b pmulhuw %xmm4, %xmm0 + 0x66, 0x0f, 0x6f, 0x2d, 0x69, 0xfb, 0xff, 0xff, //0x0000121f movdqa $-1175(%rip), %xmm5 /* LCPI4_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc5, //0x00001227 pmulhuw %xmm5, %xmm0 + 0x66, 0x0f, 0x6f, 0x1d, 0x6d, 0xfb, 0xff, 0xff, //0x0000122b movdqa $-1171(%rip), %xmm3 /* LCPI4_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x00001233 movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf3, //0x00001237 pmullw %xmm3, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x0000123b psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x00001240 psubw %xmm6, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001244 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000124a subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xf6, //0x0000124c movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x00001250 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x00001254 psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd1, //0x00001259 pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0xfa, 0xf2, //0x0000125d psubd %xmm2, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x00001261 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x00001265 psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x0000126a pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x0000126f pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x00001274 pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xe4, 0xcd, //0x00001278 pmulhuw %xmm5, %xmm1 + 0x66, 0x0f, 0xd5, 0xd9, //0x0000127c pmullw %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x10, //0x00001280 psllq $16, %xmm3 + 0x66, 0x0f, 0xf9, 0xcb, //0x00001285 psubw %xmm3, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x00001289 packuswb %xmm1, %xmm0 + 0x66, 0x0f, 0xfc, 0x05, 0x1b, 0xfb, 0xff, 0xff, //0x0000128d paddb $-1253(%rip), %xmm0 /* LCPI4_4+0(%rip) */ + 0x89, 0xc8, //0x00001295 movl %ecx, %eax + 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x00001297 movdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x0000129c orl $16, %ecx + 0x89, 0xc8, //0x0000129f movl %ecx, %eax + 0x5d, //0x000012a1 popq %rbp + 0xc3, //0x000012a2 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012a3 .p2align 4, 0x00 + //0x000012b0 LCPI5_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000012b0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000012c0 LCPI5_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000012c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000012d0 LCPI5_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000012d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000012e0 .p2align 4, 0x90 + //0x000012e0 _quote + 0x55, //0x000012e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000012e1 movq %rsp, %rbp + 0x41, 0x57, //0x000012e4 pushq %r15 + 0x41, 0x56, //0x000012e6 pushq %r14 + 0x41, 0x55, //0x000012e8 pushq %r13 + 0x41, 0x54, //0x000012ea pushq %r12 + 0x53, //0x000012ec pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x000012ed subq $16, %rsp + 0x49, 0x89, 0xcb, //0x000012f1 movq %rcx, %r11 + 0x49, 0x89, 0xd4, //0x000012f4 movq %rdx, %r12 + 0x48, 0x89, 0xf0, //0x000012f7 movq %rsi, %rax + 0x4c, 0x8b, 0x31, //0x000012fa movq (%rcx), %r14 + 0x41, 0xf6, 0xc0, 0x01, //0x000012fd testb $1, %r8b + 0x48, 0x8d, 0x0d, 0x08, 0xd6, 0x00, 0x00, //0x00001301 leaq $54792(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0x01, 0xe6, 0x00, 0x00, //0x00001308 leaq $58881(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc1, //0x0000130f cmoveq %rcx, %r8 + 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001313 leaq (,%rsi,8), %rcx + 0x49, 0x39, 0xce, //0x0000131b cmpq %rcx, %r14 + 0x0f, 0x8d, 0xee, 0x03, 0x00, 0x00, //0x0000131e jge LBB5_51 + 0x4d, 0x89, 0xe7, //0x00001324 movq %r12, %r15 + 0x49, 0x89, 0xfa, //0x00001327 movq %rdi, %r10 + 0x48, 0x85, 0xc0, //0x0000132a testq %rax, %rax + 0x0f, 0x84, 0xd1, 0x03, 0x00, 0x00, //0x0000132d je LBB5_74 + 0x66, 0x0f, 0x6f, 0x05, 0x75, 0xff, 0xff, 0xff, //0x00001333 movdqa $-139(%rip), %xmm0 /* LCPI5_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x7d, 0xff, 0xff, 0xff, //0x0000133b movdqa $-131(%rip), %xmm1 /* LCPI5_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x85, 0xff, 0xff, 0xff, //0x00001343 movdqa $-123(%rip), %xmm2 /* LCPI5_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x0000134b pcmpeqd %xmm3, %xmm3 + 0x49, 0x89, 0xfa, //0x0000134f movq %rdi, %r10 + 0x4d, 0x89, 0xe7, //0x00001352 movq %r12, %r15 + 0x4c, 0x89, 0x65, 0xc8, //0x00001355 movq %r12, $-56(%rbp) + //0x00001359 LBB5_3 + 0x48, 0x83, 0xf8, 0x0f, //0x00001359 cmpq $15, %rax + 0x0f, 0x9f, 0xc3, //0x0000135d setg %bl + 0x4d, 0x89, 0xf1, //0x00001360 movq %r14, %r9 + 0x4d, 0x89, 0xfd, //0x00001363 movq %r15, %r13 + 0x48, 0x89, 0xc6, //0x00001366 movq %rax, %rsi + 0x4d, 0x89, 0xd4, //0x00001369 movq %r10, %r12 + 0x49, 0x83, 0xfe, 0x10, //0x0000136c cmpq $16, %r14 + 0x0f, 0x8c, 0x8a, 0x00, 0x00, 0x00, //0x00001370 jl LBB5_9 + 0x48, 0x83, 0xf8, 0x10, //0x00001376 cmpq $16, %rax + 0x0f, 0x8c, 0x80, 0x00, 0x00, 0x00, //0x0000137a jl LBB5_9 + 0x4d, 0x89, 0xd4, //0x00001380 movq %r10, %r12 + 0x48, 0x89, 0xc6, //0x00001383 movq %rax, %rsi + 0x4d, 0x89, 0xfd, //0x00001386 movq %r15, %r13 + 0x4c, 0x89, 0xf1, //0x00001389 movq %r14, %rcx + 0x90, 0x90, 0x90, 0x90, //0x0000138c .p2align 4, 0x90 + //0x00001390 LBB5_6 + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x00001390 movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x00001396 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x0000139a pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000139e movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x000013a2 pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x000013a6 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x000013aa pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x000013ae por %xmm6, %xmm7 + 0xf3, 0x41, 0x0f, 0x7f, 0x65, 0x00, //0x000013b2 movdqu %xmm4, (%r13) + 0x66, 0x0f, 0x64, 0xe3, //0x000013b8 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x000013bc pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x000013c0 por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x000013c4 pmovmskb %xmm4, %ebx + 0x66, 0x85, 0xdb, //0x000013c8 testw %bx, %bx + 0x0f, 0x85, 0x24, 0x01, 0x00, 0x00, //0x000013cb jne LBB5_19 + 0x49, 0x83, 0xc4, 0x10, //0x000013d1 addq $16, %r12 + 0x49, 0x83, 0xc5, 0x10, //0x000013d5 addq $16, %r13 + 0x4c, 0x8d, 0x49, 0xf0, //0x000013d9 leaq $-16(%rcx), %r9 + 0x48, 0x83, 0xfe, 0x1f, //0x000013dd cmpq $31, %rsi + 0x0f, 0x9f, 0xc3, //0x000013e1 setg %bl + 0x48, 0x83, 0xfe, 0x20, //0x000013e4 cmpq $32, %rsi + 0x48, 0x8d, 0x76, 0xf0, //0x000013e8 leaq $-16(%rsi), %rsi + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x000013ec jl LBB5_9 + 0x48, 0x83, 0xf9, 0x1f, //0x000013f2 cmpq $31, %rcx + 0x4c, 0x89, 0xc9, //0x000013f6 movq %r9, %rcx + 0x0f, 0x8f, 0x91, 0xff, 0xff, 0xff, //0x000013f9 jg LBB5_6 + 0x90, //0x000013ff .p2align 4, 0x90 + //0x00001400 LBB5_9 + 0x84, 0xdb, //0x00001400 testb %bl, %bl + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x00001402 je LBB5_13 + 0x4c, 0x89, 0x5d, 0xd0, //0x00001408 movq %r11, $-48(%rbp) + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x0000140c movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x00001412 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x00001416 pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000141a movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x0000141e pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x00001422 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x00001426 pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x0000142a por %xmm6, %xmm7 + 0x66, 0x48, 0x0f, 0x7e, 0xe1, //0x0000142e movq %xmm4, %rcx + 0x66, 0x0f, 0x64, 0xe3, //0x00001433 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00001437 pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x0000143b por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xf4, //0x0000143f pmovmskb %xmm4, %esi + 0x81, 0xce, 0x00, 0x00, 0x01, 0x00, //0x00001443 orl $65536, %esi + 0x44, 0x0f, 0xbc, 0xde, //0x00001449 bsfl %esi, %r11d + 0x4d, 0x39, 0xd9, //0x0000144d cmpq %r11, %r9 + 0x0f, 0x8d, 0xb1, 0x00, 0x00, 0x00, //0x00001450 jge LBB5_20 + 0x49, 0x83, 0xf9, 0x08, //0x00001456 cmpq $8, %r9 + 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x0000145a jb LBB5_23 + 0x49, 0x89, 0x4d, 0x00, //0x00001460 movq %rcx, (%r13) + 0x4d, 0x8d, 0x5c, 0x24, 0x08, //0x00001464 leaq $8(%r12), %r11 + 0x49, 0x83, 0xc5, 0x08, //0x00001469 addq $8, %r13 + 0x49, 0x8d, 0x71, 0xf8, //0x0000146d leaq $-8(%r9), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001471 cmpq $4, %rsi + 0x0f, 0x8d, 0xd1, 0x00, 0x00, 0x00, //0x00001475 jge LBB5_24 + 0xe9, 0xdf, 0x00, 0x00, 0x00, //0x0000147b jmp LBB5_25 + //0x00001480 LBB5_13 + 0x4d, 0x85, 0xc9, //0x00001480 testq %r9, %r9 + 0x0f, 0x8e, 0x5b, 0x00, 0x00, 0x00, //0x00001483 jle LBB5_18 + 0x48, 0x85, 0xf6, //0x00001489 testq %rsi, %rsi + 0x0f, 0x8e, 0x52, 0x00, 0x00, 0x00, //0x0000148c jle LBB5_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001492 .p2align 4, 0x90 + //0x000014a0 LBB5_15 + 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x000014a0 movzbl (%r12), %ebx + 0x48, 0x89, 0xd9, //0x000014a5 movq %rbx, %rcx + 0x48, 0xc1, 0xe1, 0x04, //0x000014a8 shlq $4, %rcx + 0x48, 0x8d, 0x15, 0x5d, 0xd4, 0x00, 0x00, //0x000014ac leaq $54365(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ + 0x48, 0x83, 0x3c, 0x11, 0x00, //0x000014b3 cmpq $0, (%rcx,%rdx) + 0x0f, 0x85, 0x73, 0x00, 0x00, 0x00, //0x000014b8 jne LBB5_22 + 0x49, 0xff, 0xc4, //0x000014be incq %r12 + 0x41, 0x88, 0x5d, 0x00, //0x000014c1 movb %bl, (%r13) + 0x48, 0x83, 0xfe, 0x02, //0x000014c5 cmpq $2, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x000014c9 leaq $-1(%rsi), %rsi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x000014cd jl LBB5_18 + 0x49, 0xff, 0xc5, //0x000014d3 incq %r13 + 0x49, 0x83, 0xf9, 0x01, //0x000014d6 cmpq $1, %r9 + 0x4d, 0x8d, 0x49, 0xff, //0x000014da leaq $-1(%r9), %r9 + 0x0f, 0x8f, 0xbc, 0xff, 0xff, 0xff, //0x000014de jg LBB5_15 + //0x000014e4 LBB5_18 + 0x4d, 0x29, 0xd4, //0x000014e4 subq %r10, %r12 + 0x48, 0xf7, 0xde, //0x000014e7 negq %rsi + 0x4d, 0x19, 0xc9, //0x000014ea sbbq %r9, %r9 + 0x4d, 0x31, 0xe1, //0x000014ed xorq %r12, %r9 + 0xe9, 0x1f, 0x01, 0x00, 0x00, //0x000014f0 jmp LBB5_36 + //0x000014f5 LBB5_19 + 0x0f, 0xb7, 0xcb, //0x000014f5 movzwl %bx, %ecx + 0x4d, 0x29, 0xd4, //0x000014f8 subq %r10, %r12 + 0x44, 0x0f, 0xbc, 0xc9, //0x000014fb bsfl %ecx, %r9d + 0x4d, 0x01, 0xe1, //0x000014ff addq %r12, %r9 + 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00001502 jmp LBB5_36 + //0x00001507 LBB5_20 + 0x41, 0x83, 0xfb, 0x08, //0x00001507 cmpl $8, %r11d + 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x0000150b jb LBB5_29 + 0x49, 0x89, 0x4d, 0x00, //0x00001511 movq %rcx, (%r13) + 0x49, 0x8d, 0x5c, 0x24, 0x08, //0x00001515 leaq $8(%r12), %rbx + 0x49, 0x83, 0xc5, 0x08, //0x0000151a addq $8, %r13 + 0x49, 0x8d, 0x73, 0xf8, //0x0000151e leaq $-8(%r11), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001522 cmpq $4, %rsi + 0x0f, 0x8d, 0x8e, 0x00, 0x00, 0x00, //0x00001526 jge LBB5_30 + 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x0000152c jmp LBB5_31 + //0x00001531 LBB5_22 + 0x4d, 0x29, 0xd4, //0x00001531 subq %r10, %r12 + 0x4d, 0x89, 0xe1, //0x00001534 movq %r12, %r9 + 0xe9, 0xd8, 0x00, 0x00, 0x00, //0x00001537 jmp LBB5_36 + //0x0000153c LBB5_23 + 0x4d, 0x89, 0xe3, //0x0000153c movq %r12, %r11 + 0x4c, 0x89, 0xce, //0x0000153f movq %r9, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001542 cmpq $4, %rsi + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001546 jl LBB5_25 + //0x0000154c LBB5_24 + 0x41, 0x8b, 0x0b, //0x0000154c movl (%r11), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x0000154f movl %ecx, (%r13) + 0x49, 0x83, 0xc3, 0x04, //0x00001553 addq $4, %r11 + 0x49, 0x83, 0xc5, 0x04, //0x00001557 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x0000155b addq $-4, %rsi + //0x0000155f LBB5_25 + 0x48, 0x83, 0xfe, 0x02, //0x0000155f cmpq $2, %rsi + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00001563 jb LBB5_26 + 0x41, 0x0f, 0xb7, 0x0b, //0x00001569 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x0000156d movw %cx, (%r13) + 0x49, 0x83, 0xc3, 0x02, //0x00001572 addq $2, %r11 + 0x49, 0x83, 0xc5, 0x02, //0x00001576 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x0000157a addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x0000157e testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001581 jne LBB5_27 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001587 jmp LBB5_28 + //0x0000158c LBB5_26 + 0x48, 0x85, 0xf6, //0x0000158c testq %rsi, %rsi + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x0000158f je LBB5_28 + //0x00001595 LBB5_27 + 0x41, 0x8a, 0x0b, //0x00001595 movb (%r11), %cl + 0x41, 0x88, 0x4d, 0x00, //0x00001598 movb %cl, (%r13) + //0x0000159c LBB5_28 + 0x4d, 0x29, 0xd1, //0x0000159c subq %r10, %r9 + 0x4d, 0x01, 0xe1, //0x0000159f addq %r12, %r9 + 0x49, 0xf7, 0xd1, //0x000015a2 notq %r9 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x000015a5 jmp LBB5_35 + //0x000015aa LBB5_29 + 0x4c, 0x89, 0xe3, //0x000015aa movq %r12, %rbx + 0x4c, 0x89, 0xde, //0x000015ad movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x000015b0 cmpq $4, %rsi + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000015b4 jl LBB5_31 + //0x000015ba LBB5_30 + 0x8b, 0x0b, //0x000015ba movl (%rbx), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x000015bc movl %ecx, (%r13) + 0x48, 0x83, 0xc3, 0x04, //0x000015c0 addq $4, %rbx + 0x49, 0x83, 0xc5, 0x04, //0x000015c4 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x000015c8 addq $-4, %rsi + //0x000015cc LBB5_31 + 0x48, 0x83, 0xfe, 0x02, //0x000015cc cmpq $2, %rsi + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000015d0 jb LBB5_32 + 0x0f, 0xb7, 0x0b, //0x000015d6 movzwl (%rbx), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x000015d9 movw %cx, (%r13) + 0x48, 0x83, 0xc3, 0x02, //0x000015de addq $2, %rbx + 0x49, 0x83, 0xc5, 0x02, //0x000015e2 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x000015e6 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x000015ea testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000015ed jne LBB5_33 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000015f3 jmp LBB5_34 + //0x000015f8 LBB5_32 + 0x48, 0x85, 0xf6, //0x000015f8 testq %rsi, %rsi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000015fb je LBB5_34 + //0x00001601 LBB5_33 + 0x8a, 0x0b, //0x00001601 movb (%rbx), %cl + 0x41, 0x88, 0x4d, 0x00, //0x00001603 movb %cl, (%r13) + //0x00001607 LBB5_34 + 0x4d, 0x29, 0xd4, //0x00001607 subq %r10, %r12 + 0x4d, 0x01, 0xdc, //0x0000160a addq %r11, %r12 + 0x4d, 0x89, 0xe1, //0x0000160d movq %r12, %r9 + //0x00001610 LBB5_35 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00001610 movq $-48(%rbp), %r11 + //0x00001614 LBB5_36 + 0x4d, 0x85, 0xc9, //0x00001614 testq %r9, %r9 + 0x4c, 0x8b, 0x65, 0xc8, //0x00001617 movq $-56(%rbp), %r12 + 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000161b movabsq $12884901889, %r13 + 0x0f, 0x88, 0x55, 0x03, 0x00, 0x00, //0x00001625 js LBB5_78 + 0x4d, 0x01, 0xca, //0x0000162b addq %r9, %r10 + 0x4d, 0x01, 0xcf, //0x0000162e addq %r9, %r15 + 0x4c, 0x39, 0xc8, //0x00001631 cmpq %r9, %rax + 0x0f, 0x84, 0xca, 0x00, 0x00, 0x00, //0x00001634 je LBB5_74 + 0x4d, 0x29, 0xce, //0x0000163a subq %r9, %r14 + 0x49, 0x29, 0xc1, //0x0000163d subq %rax, %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00001640 jmp LBB5_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001645 .p2align 4, 0x90 + //0x00001650 LBB5_39 + 0x49, 0xff, 0xc2, //0x00001650 incq %r10 + 0x49, 0x01, 0xc7, //0x00001653 addq %rax, %r15 + 0x49, 0xff, 0xc1, //0x00001656 incq %r9 + 0x0f, 0x84, 0xa5, 0x00, 0x00, 0x00, //0x00001659 je LBB5_74 + //0x0000165f LBB5_40 + 0x41, 0x0f, 0xb6, 0x32, //0x0000165f movzbl (%r10), %esi + 0x48, 0xc1, 0xe6, 0x04, //0x00001663 shlq $4, %rsi + 0x49, 0x8b, 0x1c, 0x30, //0x00001667 movq (%r8,%rsi), %rbx + 0x85, 0xdb, //0x0000166b testl %ebx, %ebx + 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000166d je LBB5_48 + 0x48, 0x63, 0xc3, //0x00001673 movslq %ebx, %rax + 0x49, 0x29, 0xc6, //0x00001676 subq %rax, %r14 + 0x0f, 0x8c, 0xe3, 0x02, 0x00, 0x00, //0x00001679 jl LBB5_75 + 0x48, 0xc1, 0xe3, 0x20, //0x0000167f shlq $32, %rbx + 0x49, 0x8d, 0x4c, 0x30, 0x08, //0x00001683 leaq $8(%r8,%rsi), %rcx + 0x4c, 0x39, 0xeb, //0x00001688 cmpq %r13, %rbx + 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x0000168b jl LBB5_44 + 0x8b, 0x09, //0x00001691 movl (%rcx), %ecx + 0x41, 0x89, 0x0f, //0x00001693 movl %ecx, (%r15) + 0x49, 0x8d, 0x4c, 0x30, 0x0c, //0x00001696 leaq $12(%r8,%rsi), %rcx + 0x49, 0x8d, 0x77, 0x04, //0x0000169b leaq $4(%r15), %rsi + 0x48, 0x8d, 0x58, 0xfc, //0x0000169f leaq $-4(%rax), %rbx + 0x48, 0x83, 0xfb, 0x02, //0x000016a3 cmpq $2, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000016a7 jae LBB5_45 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000016ad jmp LBB5_46 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000016b2 .p2align 4, 0x90 + //0x000016c0 LBB5_44 + 0x4c, 0x89, 0xfe, //0x000016c0 movq %r15, %rsi + 0x48, 0x89, 0xc3, //0x000016c3 movq %rax, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x000016c6 cmpq $2, %rbx + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000016ca jb LBB5_46 + //0x000016d0 LBB5_45 + 0x0f, 0xb7, 0x11, //0x000016d0 movzwl (%rcx), %edx + 0x66, 0x89, 0x16, //0x000016d3 movw %dx, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x000016d6 addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x000016da addq $2, %rsi + 0x48, 0x83, 0xc3, 0xfe, //0x000016de addq $-2, %rbx + //0x000016e2 LBB5_46 + 0x48, 0x85, 0xdb, //0x000016e2 testq %rbx, %rbx + 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x000016e5 je LBB5_39 + 0x0f, 0xb6, 0x09, //0x000016eb movzbl (%rcx), %ecx + 0x88, 0x0e, //0x000016ee movb %cl, (%rsi) + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x000016f0 jmp LBB5_39 + //0x000016f5 LBB5_48 + 0x4c, 0x89, 0xc8, //0x000016f5 movq %r9, %rax + 0x48, 0xf7, 0xd8, //0x000016f8 negq %rax + 0x4d, 0x85, 0xc9, //0x000016fb testq %r9, %r9 + 0x0f, 0x85, 0x55, 0xfc, 0xff, 0xff, //0x000016fe jne LBB5_3 + //0x00001704 LBB5_74 + 0x4d, 0x29, 0xe7, //0x00001704 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00001707 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000170a subq %rdi, %r10 + 0xe9, 0x5c, 0x02, 0x00, 0x00, //0x0000170d jmp LBB5_76 + //0x00001712 LBB5_51 + 0x4c, 0x8d, 0x0d, 0xf7, 0xf1, 0x00, 0x00, //0x00001712 leaq $61943(%rip), %r9 /* __EscTab+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x05, 0x8f, 0xfb, 0xff, 0xff, //0x00001719 movdqa $-1137(%rip), %xmm0 /* LCPI5_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x97, 0xfb, 0xff, 0xff, //0x00001721 movdqa $-1129(%rip), %xmm1 /* LCPI5_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x9f, 0xfb, 0xff, 0xff, //0x00001729 movdqa $-1121(%rip), %xmm2 /* LCPI5_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x00001731 pcmpeqd %xmm3, %xmm3 + 0x4c, 0x89, 0xe3, //0x00001735 movq %r12, %rbx + 0x49, 0x89, 0xc2, //0x00001738 movq %rax, %r10 + //0x0000173b LBB5_52 + 0x49, 0x83, 0xfa, 0x10, //0x0000173b cmpq $16, %r10 + 0x0f, 0x8c, 0x6a, 0x00, 0x00, 0x00, //0x0000173f jl LBB5_57 + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001745 movl $16, %ecx + 0x31, 0xf6, //0x0000174a xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, //0x0000174c .p2align 4, 0x90 + //0x00001750 LBB5_54 + 0xf3, 0x0f, 0x6f, 0x24, 0x37, //0x00001750 movdqu (%rdi,%rsi), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x00001755 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x00001759 pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000175d movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x00001761 pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x00001765 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x00001769 pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x0000176d por %xmm6, %xmm7 + 0xf3, 0x0f, 0x7f, 0x24, 0x33, //0x00001771 movdqu %xmm4, (%rbx,%rsi) + 0x66, 0x0f, 0x64, 0xe3, //0x00001776 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x0000177a pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x0000177e por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xd4, //0x00001782 pmovmskb %xmm4, %edx + 0x66, 0x85, 0xd2, //0x00001786 testw %dx, %dx + 0x0f, 0x85, 0x3a, 0x01, 0x00, 0x00, //0x00001789 jne LBB5_67 + 0x48, 0x83, 0xc6, 0x10, //0x0000178f addq $16, %rsi + 0x49, 0x8d, 0x54, 0x0a, 0xf0, //0x00001793 leaq $-16(%r10,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xf0, //0x00001798 addq $-16, %rcx + 0x48, 0x83, 0xfa, 0x1f, //0x0000179c cmpq $31, %rdx + 0x0f, 0x8f, 0xaa, 0xff, 0xff, 0xff, //0x000017a0 jg LBB5_54 + 0x48, 0x01, 0xf7, //0x000017a6 addq %rsi, %rdi + 0x49, 0x29, 0xf2, //0x000017a9 subq %rsi, %r10 + 0x48, 0x01, 0xf3, //0x000017ac addq %rsi, %rbx + //0x000017af LBB5_57 + 0x49, 0x83, 0xfa, 0x08, //0x000017af cmpq $8, %r10 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x000017b3 jl LBB5_61 + 0x0f, 0xb6, 0x0f, //0x000017b9 movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017bc movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x000017c1 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x000017c5 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x000017ca addl %edx, %edx + 0x09, 0xca, //0x000017cc orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x000017ce movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x000017d2 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x000017d7 shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x000017da movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017de movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x000017e3 shll $3, %ecx + 0x09, 0xf1, //0x000017e6 orl %esi, %ecx + 0x09, 0xd1, //0x000017e8 orl %edx, %ecx + 0x48, 0x8b, 0x17, //0x000017ea movq (%rdi), %rdx + 0x48, 0x89, 0x13, //0x000017ed movq %rdx, (%rbx) + 0x84, 0xc9, //0x000017f0 testb %cl, %cl + 0x0f, 0x85, 0x35, 0x01, 0x00, 0x00, //0x000017f2 jne LBB5_71 + 0x0f, 0xb6, 0x4f, 0x04, //0x000017f8 movzbl $4(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017fc movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x05, //0x00001801 movzbl $5(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001805 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000180a addl %edx, %edx + 0x09, 0xca, //0x0000180c orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x06, //0x0000180e movzbl $6(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001812 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001817 shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x07, //0x0000181a movzbl $7(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000181e movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00001823 shll $3, %ecx + 0x09, 0xf1, //0x00001826 orl %esi, %ecx + 0x09, 0xd1, //0x00001828 orl %edx, %ecx + 0x84, 0xc9, //0x0000182a testb %cl, %cl + 0x0f, 0x85, 0x0c, 0x01, 0x00, 0x00, //0x0000182c jne LBB5_72 + 0x48, 0x83, 0xc3, 0x08, //0x00001832 addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x00001836 addq $8, %rdi + 0x49, 0x83, 0xc2, 0xf8, //0x0000183a addq $-8, %r10 + //0x0000183e LBB5_61 + 0x49, 0x83, 0xfa, 0x04, //0x0000183e cmpq $4, %r10 + 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00001842 jl LBB5_64 + 0x0f, 0xb6, 0x0f, //0x00001848 movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000184b movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00001850 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001854 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x00001859 addl %edx, %edx + 0x09, 0xca, //0x0000185b orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x0000185d movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001861 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001866 shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x00001869 movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000186d movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00001872 shll $3, %ecx + 0x09, 0xf1, //0x00001875 orl %esi, %ecx + 0x09, 0xd1, //0x00001877 orl %edx, %ecx + 0x8b, 0x17, //0x00001879 movl (%rdi), %edx + 0x89, 0x13, //0x0000187b movl %edx, (%rbx) + 0x84, 0xc9, //0x0000187d testb %cl, %cl + 0x0f, 0x85, 0xa8, 0x00, 0x00, 0x00, //0x0000187f jne LBB5_71 + 0x48, 0x83, 0xc3, 0x04, //0x00001885 addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x00001889 addq $4, %rdi + 0x49, 0x83, 0xc2, 0xfc, //0x0000188d addq $-4, %r10 + //0x00001891 LBB5_64 + 0x4d, 0x85, 0xd2, //0x00001891 testq %r10, %r10 + 0x0f, 0x8e, 0xbd, 0x00, 0x00, 0x00, //0x00001894 jle LBB5_73 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000189a .p2align 4, 0x90 + //0x000018a0 LBB5_65 + 0x0f, 0xb6, 0x0f, //0x000018a0 movzbl (%rdi), %ecx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x000018a3 cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000018a8 jne LBB5_68 + 0x48, 0xff, 0xc7, //0x000018ae incq %rdi + 0x88, 0x0b, //0x000018b1 movb %cl, (%rbx) + 0x48, 0xff, 0xc3, //0x000018b3 incq %rbx + 0x49, 0x83, 0xfa, 0x01, //0x000018b6 cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x000018ba leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x000018be jg LBB5_65 + 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x000018c4 jmp LBB5_73 + //0x000018c9 LBB5_67 + 0x0f, 0xb7, 0xca, //0x000018c9 movzwl %dx, %ecx + 0x0f, 0xbc, 0xc9, //0x000018cc bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x000018cf addq %rcx, %rdi + 0x48, 0x01, 0xf7, //0x000018d2 addq %rsi, %rdi + 0x49, 0x29, 0xca, //0x000018d5 subq %rcx, %r10 + 0x49, 0x29, 0xf2, //0x000018d8 subq %rsi, %r10 + 0x48, 0x01, 0xcb, //0x000018db addq %rcx, %rbx + 0x48, 0x01, 0xf3, //0x000018de addq %rsi, %rbx + //0x000018e1 LBB5_68 + 0x8a, 0x0f, //0x000018e1 movb (%rdi), %cl + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018e3 .p2align 4, 0x90 + //0x000018f0 LBB5_69 + 0x48, 0x89, 0xda, //0x000018f0 movq %rbx, %rdx + 0x0f, 0xb6, 0xc9, //0x000018f3 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x000018f6 shlq $4, %rcx + 0x49, 0x63, 0x1c, 0x08, //0x000018fa movslq (%r8,%rcx), %rbx + 0x49, 0x8b, 0x4c, 0x08, 0x08, //0x000018fe movq $8(%r8,%rcx), %rcx + 0x48, 0x89, 0x0a, //0x00001903 movq %rcx, (%rdx) + 0x48, 0x01, 0xd3, //0x00001906 addq %rdx, %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00001909 cmpq $2, %r10 + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x0000190d jl LBB5_73 + 0x49, 0xff, 0xca, //0x00001913 decq %r10 + 0x0f, 0xb6, 0x4f, 0x01, //0x00001916 movzbl $1(%rdi), %ecx + 0x48, 0xff, 0xc7, //0x0000191a incq %rdi + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x0000191d cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00001922 jne LBB5_69 + 0xe9, 0x0e, 0xfe, 0xff, 0xff, //0x00001928 jmp LBB5_52 + //0x0000192d LBB5_71 + 0x0f, 0xbc, 0xc9, //0x0000192d bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x00001930 addq %rcx, %rdi + 0x49, 0x29, 0xca, //0x00001933 subq %rcx, %r10 + 0x48, 0x01, 0xcb, //0x00001936 addq %rcx, %rbx + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00001939 jmp LBB5_68 + //0x0000193e LBB5_72 + 0x0f, 0xbc, 0xc9, //0x0000193e bsfl %ecx, %ecx + 0x48, 0x8d, 0x51, 0x04, //0x00001941 leaq $4(%rcx), %rdx + 0x48, 0x8d, 0x7c, 0x0f, 0x04, //0x00001945 leaq $4(%rdi,%rcx), %rdi + 0x49, 0x29, 0xd2, //0x0000194a subq %rdx, %r10 + 0x48, 0x8d, 0x5c, 0x0b, 0x04, //0x0000194d leaq $4(%rbx,%rcx), %rbx + 0xe9, 0x8a, 0xff, 0xff, 0xff, //0x00001952 jmp LBB5_68 + //0x00001957 LBB5_73 + 0x4c, 0x29, 0xe3, //0x00001957 subq %r12, %rbx + 0x49, 0x89, 0x1b, //0x0000195a movq %rbx, (%r11) + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000195d jmp LBB5_77 + //0x00001962 LBB5_75 + 0x4d, 0x29, 0xe7, //0x00001962 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00001965 movq %r15, (%r11) + 0x49, 0xf7, 0xd2, //0x00001968 notq %r10 + 0x49, 0x01, 0xfa, //0x0000196b addq %rdi, %r10 + //0x0000196e LBB5_76 + 0x4c, 0x89, 0xd0, //0x0000196e movq %r10, %rax + //0x00001971 LBB5_77 + 0x48, 0x83, 0xc4, 0x10, //0x00001971 addq $16, %rsp + 0x5b, //0x00001975 popq %rbx + 0x41, 0x5c, //0x00001976 popq %r12 + 0x41, 0x5d, //0x00001978 popq %r13 + 0x41, 0x5e, //0x0000197a popq %r14 + 0x41, 0x5f, //0x0000197c popq %r15 + 0x5d, //0x0000197e popq %rbp + 0xc3, //0x0000197f retq + //0x00001980 LBB5_78 + 0x4d, 0x29, 0xe7, //0x00001980 subq %r12, %r15 + 0x49, 0xf7, 0xd1, //0x00001983 notq %r9 + 0x4d, 0x01, 0xcf, //0x00001986 addq %r9, %r15 + 0x4d, 0x89, 0x3b, //0x00001989 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000198c subq %rdi, %r10 + 0x4d, 0x01, 0xca, //0x0000198f addq %r9, %r10 + 0x49, 0xf7, 0xd2, //0x00001992 notq %r10 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00001995 jmp LBB5_76 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000199a .p2align 4, 0x00 + //0x000019a0 LCPI6_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000019a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000019b0 .p2align 4, 0x90 + //0x000019b0 _unquote + 0x55, //0x000019b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000019b1 movq %rsp, %rbp + 0x41, 0x57, //0x000019b4 pushq %r15 + 0x41, 0x56, //0x000019b6 pushq %r14 + 0x41, 0x55, //0x000019b8 pushq %r13 + 0x41, 0x54, //0x000019ba pushq %r12 + 0x53, //0x000019bc pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x000019bd subq $40, %rsp + 0x48, 0x85, 0xf6, //0x000019c1 testq %rsi, %rsi + 0x0f, 0x84, 0x6e, 0x06, 0x00, 0x00, //0x000019c4 je LBB6_82 + 0x49, 0x89, 0xf3, //0x000019ca movq %rsi, %r11 + 0x48, 0x89, 0x4d, 0xc8, //0x000019cd movq %rcx, $-56(%rbp) + 0x4c, 0x89, 0xc0, //0x000019d1 movq %r8, %rax + 0x4c, 0x89, 0x45, 0xb8, //0x000019d4 movq %r8, $-72(%rbp) + 0x45, 0x89, 0xc2, //0x000019d8 movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x000019db andl $1, %r10d + 0x4c, 0x8d, 0x05, 0x2a, 0xf0, 0x00, 0x00, //0x000019df leaq $61482(%rip), %r8 /* __UnquoteTab+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x05, 0xb2, 0xff, 0xff, 0xff, //0x000019e6 movdqa $-78(%rip), %xmm0 /* LCPI6_0+0(%rip) */ + 0x49, 0x89, 0xf9, //0x000019ee movq %rdi, %r9 + 0x49, 0x89, 0xf5, //0x000019f1 movq %rsi, %r13 + 0x48, 0x89, 0xd0, //0x000019f4 movq %rdx, %rax + //0x000019f7 LBB6_2 + 0x41, 0x80, 0x39, 0x5c, //0x000019f7 cmpb $92, (%r9) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000019fb jne LBB6_4 + 0x31, 0xf6, //0x00001a01 xorl %esi, %esi + 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00001a03 jmp LBB6_13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a08 .p2align 4, 0x90 + //0x00001a10 LBB6_4 + 0x4d, 0x89, 0xef, //0x00001a10 movq %r13, %r15 + 0x48, 0x89, 0xc6, //0x00001a13 movq %rax, %rsi + 0x4d, 0x89, 0xce, //0x00001a16 movq %r9, %r14 + 0x49, 0x83, 0xfd, 0x10, //0x00001a19 cmpq $16, %r13 + 0x0f, 0x8c, 0x3d, 0x00, 0x00, 0x00, //0x00001a1d jl LBB6_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a23 .p2align 4, 0x90 + //0x00001a30 LBB6_5 + 0xf3, 0x41, 0x0f, 0x6f, 0x0e, //0x00001a30 movdqu (%r14), %xmm1 + 0xf3, 0x0f, 0x7f, 0x0e, //0x00001a35 movdqu %xmm1, (%rsi) + 0x66, 0x0f, 0x74, 0xc8, //0x00001a39 pcmpeqb %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xd9, //0x00001a3d pmovmskb %xmm1, %ebx + 0x66, 0x85, 0xdb, //0x00001a41 testw %bx, %bx + 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x00001a44 jne LBB6_12 + 0x49, 0x83, 0xc6, 0x10, //0x00001a4a addq $16, %r14 + 0x48, 0x83, 0xc6, 0x10, //0x00001a4e addq $16, %rsi + 0x49, 0x83, 0xff, 0x1f, //0x00001a52 cmpq $31, %r15 + 0x4d, 0x8d, 0x7f, 0xf0, //0x00001a56 leaq $-16(%r15), %r15 + 0x0f, 0x8f, 0xd0, 0xff, 0xff, 0xff, //0x00001a5a jg LBB6_5 + //0x00001a60 LBB6_7 + 0x4d, 0x85, 0xff, //0x00001a60 testq %r15, %r15 + 0x0f, 0x84, 0xd5, 0x05, 0x00, 0x00, //0x00001a63 je LBB6_83 + 0x31, 0xdb, //0x00001a69 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a6b .p2align 4, 0x90 + //0x00001a70 LBB6_9 + 0x41, 0x0f, 0xb6, 0x0c, 0x1e, //0x00001a70 movzbl (%r14,%rbx), %ecx + 0x80, 0xf9, 0x5c, //0x00001a75 cmpb $92, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001a78 je LBB6_11 + 0x88, 0x0c, 0x1e, //0x00001a7e movb %cl, (%rsi,%rbx) + 0x48, 0xff, 0xc3, //0x00001a81 incq %rbx + 0x49, 0x39, 0xdf, //0x00001a84 cmpq %rbx, %r15 + 0x0f, 0x85, 0xe3, 0xff, 0xff, 0xff, //0x00001a87 jne LBB6_9 + 0xe9, 0xac, 0x05, 0x00, 0x00, //0x00001a8d jmp LBB6_83 + //0x00001a92 LBB6_11 + 0x49, 0x01, 0xde, //0x00001a92 addq %rbx, %r14 + 0x4d, 0x29, 0xce, //0x00001a95 subq %r9, %r14 + 0x4c, 0x89, 0xf6, //0x00001a98 movq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00001a9b cmpq $-1, %rsi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00001a9f jne LBB6_13 + 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00001aa5 jmp LBB6_83 + //0x00001aaa LBB6_12 + 0x0f, 0xb7, 0xcb, //0x00001aaa movzwl %bx, %ecx + 0x4d, 0x29, 0xce, //0x00001aad subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xf1, //0x00001ab0 bsfq %rcx, %rsi + 0x4c, 0x01, 0xf6, //0x00001ab4 addq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00001ab7 cmpq $-1, %rsi + 0x0f, 0x84, 0x7d, 0x05, 0x00, 0x00, //0x00001abb je LBB6_83 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ac1 .p2align 4, 0x90 + //0x00001ad0 LBB6_13 + 0x48, 0x8d, 0x4e, 0x02, //0x00001ad0 leaq $2(%rsi), %rcx + 0x49, 0x29, 0xcd, //0x00001ad4 subq %rcx, %r13 + 0x0f, 0x88, 0x2a, 0x06, 0x00, 0x00, //0x00001ad7 js LBB6_94 + 0x4d, 0x8d, 0x4c, 0x31, 0x02, //0x00001add leaq $2(%r9,%rsi), %r9 + 0x4d, 0x85, 0xd2, //0x00001ae2 testq %r10, %r10 + 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00001ae5 jne LBB6_58 + //0x00001aeb LBB6_15 + 0x48, 0x01, 0xf0, //0x00001aeb addq %rsi, %rax + 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x00001aee movzbl $-1(%r9), %ecx + 0x42, 0x8a, 0x0c, 0x01, //0x00001af3 movb (%rcx,%r8), %cl + 0x80, 0xf9, 0xff, //0x00001af7 cmpb $-1, %cl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00001afa je LBB6_18 + 0x84, 0xc9, //0x00001b00 testb %cl, %cl + 0x0f, 0x84, 0x12, 0x06, 0x00, 0x00, //0x00001b02 je LBB6_95 + 0x88, 0x08, //0x00001b08 movb %cl, (%rax) + 0x48, 0xff, 0xc0, //0x00001b0a incq %rax + 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x00001b0d jmp LBB6_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b12 .p2align 4, 0x90 + //0x00001b20 LBB6_18 + 0x49, 0x83, 0xfd, 0x03, //0x00001b20 cmpq $3, %r13 + 0x0f, 0x8e, 0xdd, 0x05, 0x00, 0x00, //0x00001b24 jle LBB6_94 + 0x41, 0x8b, 0x31, //0x00001b2a movl (%r9), %esi + 0x89, 0xf1, //0x00001b2d movl %esi, %ecx + 0xf7, 0xd1, //0x00001b2f notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001b31 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001b37 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001b3d testl %ebx, %ecx + 0x0f, 0x85, 0x0e, 0x05, 0x00, 0x00, //0x00001b3f jne LBB6_85 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001b45 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001b4b orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001b4d testl $-2139062144, %ebx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001b53 jne LBB6_85 + 0x89, 0xf3, //0x00001b59 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001b5b andl $2139062143, %ebx + 0x41, 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001b61 movl $-1061109568, %r14d + 0x41, 0x29, 0xde, //0x00001b67 subl %ebx, %r14d + 0x44, 0x8d, 0xbb, 0x46, 0x46, 0x46, 0x46, //0x00001b6a leal $1179010630(%rbx), %r15d + 0x41, 0x21, 0xce, //0x00001b71 andl %ecx, %r14d + 0x45, 0x85, 0xfe, //0x00001b74 testl %r15d, %r14d + 0x0f, 0x85, 0xd6, 0x04, 0x00, 0x00, //0x00001b77 jne LBB6_85 + 0x41, 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001b7d movl $-522133280, %r14d + 0x41, 0x29, 0xde, //0x00001b83 subl %ebx, %r14d + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001b86 addl $960051513, %ebx + 0x44, 0x21, 0xf1, //0x00001b8c andl %r14d, %ecx + 0x85, 0xd9, //0x00001b8f testl %ebx, %ecx + 0x0f, 0x85, 0xbc, 0x04, 0x00, 0x00, //0x00001b91 jne LBB6_85 + 0x0f, 0xce, //0x00001b97 bswapl %esi + 0x89, 0xf1, //0x00001b99 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001b9b shrl $4, %ecx + 0xf7, 0xd1, //0x00001b9e notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001ba0 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001ba6 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001ba9 andl $252645135, %esi + 0x01, 0xce, //0x00001baf addl %ecx, %esi + 0x89, 0xf1, //0x00001bb1 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001bb3 shrl $4, %ecx + 0x09, 0xf1, //0x00001bb6 orl %esi, %ecx + 0x44, 0x0f, 0xb6, 0xf9, //0x00001bb8 movzbl %cl, %r15d + 0xc1, 0xe9, 0x08, //0x00001bbc shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001bbf andl $65280, %ecx + 0x41, 0x09, 0xcf, //0x00001bc5 orl %ecx, %r15d + 0x4d, 0x8d, 0x75, 0xfc, //0x00001bc8 leaq $-4(%r13), %r14 + 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00001bcc cmpl $128, %r15d + 0x0f, 0x82, 0x46, 0x03, 0x00, 0x00, //0x00001bd3 jb LBB6_66 + 0x45, 0x31, 0xe4, //0x00001bd9 xorl %r12d, %r12d + 0x4d, 0x85, 0xd2, //0x00001bdc testq %r10, %r10 + 0x0f, 0x84, 0x5b, 0x01, 0x00, 0x00, //0x00001bdf je LBB6_40 + //0x00001be5 LBB6_25 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001be5 cmpl $2048, %r15d + 0x0f, 0x82, 0x3c, 0x03, 0x00, 0x00, //0x00001bec jb LBB6_68 + 0x44, 0x89, 0xf9, //0x00001bf2 movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001bf5 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001bfb cmpl $55296, %ecx + 0x0f, 0x85, 0x89, 0x02, 0x00, 0x00, //0x00001c01 jne LBB6_54 + 0x4d, 0x85, 0xf6, //0x00001c07 testq %r14, %r14 + 0x0f, 0x8e, 0x6b, 0x03, 0x00, 0x00, //0x00001c0a jle LBB6_72 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001c10 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00001c16 jne LBB6_73 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001c1c cmpl $56319, %r15d + 0x0f, 0x87, 0x34, 0x03, 0x00, 0x00, //0x00001c23 ja LBB6_70 + 0x49, 0x83, 0xfe, 0x07, //0x00001c29 cmpq $7, %r14 + 0x0f, 0x8c, 0x2a, 0x03, 0x00, 0x00, //0x00001c2d jl LBB6_70 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x00001c33 cmpb $92, $5(%r9,%r12) + 0x0f, 0x85, 0x1e, 0x03, 0x00, 0x00, //0x00001c39 jne LBB6_70 + 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x00001c3f cmpb $117, $6(%r9,%r12) + 0x0f, 0x85, 0x12, 0x03, 0x00, 0x00, //0x00001c45 jne LBB6_70 + 0x43, 0x8b, 0x74, 0x21, 0x07, //0x00001c4b movl $7(%r9,%r12), %esi + 0x89, 0xf1, //0x00001c50 movl %esi, %ecx + 0xf7, 0xd1, //0x00001c52 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001c54 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001c5a andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001c60 testl %ebx, %ecx + 0x0f, 0x85, 0xe8, 0x04, 0x00, 0x00, //0x00001c62 jne LBB6_99 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001c68 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001c6e orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001c70 testl $-2139062144, %ebx + 0x0f, 0x85, 0xd4, 0x04, 0x00, 0x00, //0x00001c76 jne LBB6_99 + 0x89, 0xf3, //0x00001c7c movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001c7e andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c84 movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001c8b subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00001c8e movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001c92 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x00001c98 movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00001c9b andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00001c9e movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00001ca1 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00001ca4 movq $-80(%rbp), %rsi + 0x0f, 0x85, 0xa2, 0x04, 0x00, 0x00, //0x00001ca8 jne LBB6_99 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001cae movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001cb5 subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001cb8 addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00001cbe andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00001cc1 testl %ebx, %ecx + 0x0f, 0x85, 0x87, 0x04, 0x00, 0x00, //0x00001cc3 jne LBB6_99 + 0x0f, 0xce, //0x00001cc9 bswapl %esi + 0x89, 0xf1, //0x00001ccb movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001ccd shrl $4, %ecx + 0xf7, 0xd1, //0x00001cd0 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001cd2 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001cd8 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001cdb andl $252645135, %esi + 0x01, 0xce, //0x00001ce1 addl %ecx, %esi + 0x89, 0xf1, //0x00001ce3 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001ce5 shrl $4, %ecx + 0x09, 0xf1, //0x00001ce8 orl %esi, %ecx + 0x89, 0xce, //0x00001cea movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00001cec shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001cef andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00001cf5 movzbl %cl, %ebx + 0x09, 0xf3, //0x00001cf8 orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001cfa andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001d00 cmpl $14417920, %ecx + 0x0f, 0x84, 0xac, 0x02, 0x00, 0x00, //0x00001d06 je LBB6_77 + 0xf6, 0x45, 0xb8, 0x02, //0x00001d0c testb $2, $-72(%rbp) + 0x0f, 0x84, 0x41, 0x05, 0x00, 0x00, //0x00001d10 je LBB6_114 + 0x49, 0x83, 0xc6, 0xf9, //0x00001d16 addq $-7, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001d1a movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001d1f movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001d23 addq $3, %rax + 0x49, 0x83, 0xc4, 0x07, //0x00001d27 addq $7, %r12 + 0x41, 0x89, 0xdf, //0x00001d2b movl %ebx, %r15d + 0x83, 0xfb, 0x7f, //0x00001d2e cmpl $127, %ebx + 0x0f, 0x87, 0xae, 0xfe, 0xff, 0xff, //0x00001d31 ja LBB6_25 + 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00001d37 jmp LBB6_53 + 0x90, 0x90, 0x90, 0x90, //0x00001d3c .p2align 4, 0x90 + //0x00001d40 LBB6_40 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001d40 cmpl $2048, %r15d + 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x00001d47 jb LBB6_68 + 0x44, 0x89, 0xf9, //0x00001d4d movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001d50 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001d56 cmpl $55296, %ecx + 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001d5c jne LBB6_54 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001d62 cmpl $56319, %r15d + 0x0f, 0x87, 0xe4, 0x01, 0x00, 0x00, //0x00001d69 ja LBB6_69 + 0x49, 0x83, 0xfe, 0x06, //0x00001d6f cmpq $6, %r14 + 0x0f, 0x8c, 0xda, 0x01, 0x00, 0x00, //0x00001d73 jl LBB6_69 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001d79 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0xce, 0x01, 0x00, 0x00, //0x00001d7f jne LBB6_69 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x00001d85 cmpb $117, $5(%r9,%r12) + 0x0f, 0x85, 0xc2, 0x01, 0x00, 0x00, //0x00001d8b jne LBB6_69 + 0x43, 0x8b, 0x74, 0x21, 0x06, //0x00001d91 movl $6(%r9,%r12), %esi + 0x89, 0xf1, //0x00001d96 movl %esi, %ecx + 0xf7, 0xd1, //0x00001d98 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001d9a leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001da0 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001da6 testl %ebx, %ecx + 0x0f, 0x85, 0x98, 0x03, 0x00, 0x00, //0x00001da8 jne LBB6_98 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001dae leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001db4 orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001db6 testl $-2139062144, %ebx + 0x0f, 0x85, 0x84, 0x03, 0x00, 0x00, //0x00001dbc jne LBB6_98 + 0x89, 0xf3, //0x00001dc2 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dc4 andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dca movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001dd1 subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00001dd4 movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001dd8 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x00001dde movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00001de1 andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00001de4 movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00001de7 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00001dea movq $-80(%rbp), %rsi + 0x0f, 0x85, 0x52, 0x03, 0x00, 0x00, //0x00001dee jne LBB6_98 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001df4 movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001dfb subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001dfe addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00001e04 andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00001e07 testl %ebx, %ecx + 0x0f, 0x85, 0x37, 0x03, 0x00, 0x00, //0x00001e09 jne LBB6_98 + 0x0f, 0xce, //0x00001e0f bswapl %esi + 0x89, 0xf1, //0x00001e11 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001e13 shrl $4, %ecx + 0xf7, 0xd1, //0x00001e16 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e18 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001e1e leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e21 andl $252645135, %esi + 0x01, 0xce, //0x00001e27 addl %ecx, %esi + 0x89, 0xf1, //0x00001e29 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001e2b shrl $4, %ecx + 0x09, 0xf1, //0x00001e2e orl %esi, %ecx + 0x89, 0xce, //0x00001e30 movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00001e32 shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001e35 andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00001e3b movzbl %cl, %ebx + 0x09, 0xf3, //0x00001e3e orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001e40 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001e46 cmpl $14417920, %ecx + 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x00001e4c je LBB6_76 + 0xf6, 0x45, 0xb8, 0x02, //0x00001e52 testb $2, $-72(%rbp) + 0x0f, 0x84, 0xf1, 0x03, 0x00, 0x00, //0x00001e56 je LBB6_113 + 0x49, 0x83, 0xc6, 0xfa, //0x00001e5c addq $-6, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001e60 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001e65 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001e69 addq $3, %rax + 0x49, 0x83, 0xc4, 0x06, //0x00001e6d addq $6, %r12 + 0x41, 0x89, 0xdf, //0x00001e71 movl %ebx, %r15d + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e74 cmpl $128, %ebx + 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x00001e7a jae LBB6_40 + //0x00001e80 LBB6_53 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e80 leaq $4(%r9,%r12), %r9 + 0x41, 0x89, 0xdf, //0x00001e85 movl %ebx, %r15d + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x00001e88 jmp LBB6_67 + 0x90, 0x90, 0x90, //0x00001e8d .p2align 4, 0x90 + //0x00001e90 LBB6_54 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e90 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001e95 movl %r15d, %ecx + 0xc1, 0xe9, 0x0c, //0x00001e98 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x00001e9b orb $-32, %cl + 0x88, 0x08, //0x00001e9e movb %cl, (%rax) + 0x44, 0x89, 0xf9, //0x00001ea0 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001ea3 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00001ea6 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00001ea9 orb $-128, %cl + 0x88, 0x48, 0x01, //0x00001eac movb %cl, $1(%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001eaf andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001eb3 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x02, //0x00001eb7 movb %r15b, $2(%rax) + //0x00001ebb LBB6_55 + 0x48, 0x83, 0xc0, 0x03, //0x00001ebb addq $3, %rax + //0x00001ebf LBB6_56 + 0x4d, 0x89, 0xf5, //0x00001ebf movq %r14, %r13 + //0x00001ec2 LBB6_57 + 0x4d, 0x85, 0xed, //0x00001ec2 testq %r13, %r13 + 0x0f, 0x85, 0x2c, 0xfb, 0xff, 0xff, //0x00001ec5 jne LBB6_2 + 0xe9, 0x63, 0x02, 0x00, 0x00, //0x00001ecb jmp LBB6_96 + //0x00001ed0 LBB6_58 + 0x45, 0x85, 0xed, //0x00001ed0 testl %r13d, %r13d + 0x0f, 0x84, 0x2e, 0x02, 0x00, 0x00, //0x00001ed3 je LBB6_94 + 0x41, 0x80, 0x79, 0xff, 0x5c, //0x00001ed9 cmpb $92, $-1(%r9) + 0x0f, 0x85, 0x57, 0x02, 0x00, 0x00, //0x00001ede jne LBB6_97 + 0x41, 0x80, 0x39, 0x5c, //0x00001ee4 cmpb $92, (%r9) + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00001ee8 jne LBB6_65 + 0x41, 0x83, 0xfd, 0x01, //0x00001eee cmpl $1, %r13d + 0x0f, 0x8e, 0x0f, 0x02, 0x00, 0x00, //0x00001ef2 jle LBB6_94 + 0x41, 0x8a, 0x49, 0x01, //0x00001ef8 movb $1(%r9), %cl + 0x80, 0xf9, 0x22, //0x00001efc cmpb $34, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00001eff je LBB6_64 + 0x80, 0xf9, 0x5c, //0x00001f05 cmpb $92, %cl + 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00001f08 jne LBB6_109 + //0x00001f0e LBB6_64 + 0x49, 0xff, 0xc1, //0x00001f0e incq %r9 + 0x49, 0xff, 0xcd, //0x00001f11 decq %r13 + //0x00001f14 LBB6_65 + 0x49, 0xff, 0xc1, //0x00001f14 incq %r9 + 0x49, 0xff, 0xcd, //0x00001f17 decq %r13 + 0xe9, 0xcc, 0xfb, 0xff, 0xff, //0x00001f1a jmp LBB6_15 + //0x00001f1f LBB6_66 + 0x49, 0x83, 0xc1, 0x04, //0x00001f1f addq $4, %r9 + //0x00001f23 LBB6_67 + 0x44, 0x88, 0x38, //0x00001f23 movb %r15b, (%rax) + 0x48, 0xff, 0xc0, //0x00001f26 incq %rax + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00001f29 jmp LBB6_56 + //0x00001f2e LBB6_68 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f2e leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001f33 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001f36 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00001f39 orb $-64, %cl + 0x88, 0x08, //0x00001f3c movb %cl, (%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001f3e andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001f42 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x01, //0x00001f46 movb %r15b, $1(%rax) + 0x48, 0x83, 0xc0, 0x02, //0x00001f4a addq $2, %rax + 0xe9, 0x6c, 0xff, 0xff, 0xff, //0x00001f4e jmp LBB6_56 + //0x00001f53 LBB6_69 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f53 leaq $4(%r9,%r12), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001f58 jmp LBB6_71 + //0x00001f5d LBB6_70 + 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x00001f5d leaq $5(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001f62 subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xfb, //0x00001f65 addq $-5, %r13 + 0x4d, 0x89, 0xee, //0x00001f69 movq %r13, %r14 + //0x00001f6c LBB6_71 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f6c testb $2, $-72(%rbp) + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00001f70 jne LBB6_75 + 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x00001f76 jmp LBB6_116 + //0x00001f7b LBB6_72 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f7b testb $2, $-72(%rbp) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00001f7f jne LBB6_74 + 0xe9, 0x7d, 0x01, 0x00, 0x00, //0x00001f85 jmp LBB6_94 + //0x00001f8a LBB6_73 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f8a testb $2, $-72(%rbp) + 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x00001f8e je LBB6_117 + //0x00001f94 LBB6_74 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f94 leaq $4(%r9,%r12), %r9 + //0x00001f99 LBB6_75 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001f99 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001f9e movb $-67, $2(%rax) + 0xe9, 0x14, 0xff, 0xff, 0xff, //0x00001fa2 jmp LBB6_55 + //0x00001fa7 LBB6_76 + 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00001fa7 leaq $10(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001fac subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf6, //0x00001faf addq $-10, %r13 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00001fb3 jmp LBB6_78 + //0x00001fb8 LBB6_77 + 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x00001fb8 leaq $11(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001fbd subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf5, //0x00001fc0 addq $-11, %r13 + //0x00001fc4 LBB6_78 + 0x41, 0xc1, 0xe7, 0x0a, //0x00001fc4 shll $10, %r15d + 0x41, 0x8d, 0x8c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x00001fc8 leal $-56613888(%r15,%rbx), %ecx + 0x81, 0xf9, 0x00, 0x00, 0x11, 0x00, //0x00001fd0 cmpl $1114112, %ecx + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00001fd6 jb LBB6_81 + 0xf6, 0x45, 0xb8, 0x02, //0x00001fdc testb $2, $-72(%rbp) + 0x0f, 0x84, 0x4d, 0x02, 0x00, 0x00, //0x00001fe0 je LBB6_111 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001fe6 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001feb movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001fef addq $3, %rax + 0xe9, 0xca, 0xfe, 0xff, 0xff, //0x00001ff3 jmp LBB6_57 + //0x00001ff8 LBB6_81 + 0x89, 0xce, //0x00001ff8 movl %ecx, %esi + 0xc1, 0xee, 0x12, //0x00001ffa shrl $18, %esi + 0x40, 0x80, 0xce, 0xf0, //0x00001ffd orb $-16, %sil + 0x40, 0x88, 0x30, //0x00002001 movb %sil, (%rax) + 0x89, 0xce, //0x00002004 movl %ecx, %esi + 0xc1, 0xee, 0x0c, //0x00002006 shrl $12, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x00002009 andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000200d orb $-128, %sil + 0x40, 0x88, 0x70, 0x01, //0x00002011 movb %sil, $1(%rax) + 0x89, 0xce, //0x00002015 movl %ecx, %esi + 0xc1, 0xee, 0x06, //0x00002017 shrl $6, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x0000201a andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000201e orb $-128, %sil + 0x40, 0x88, 0x70, 0x02, //0x00002022 movb %sil, $2(%rax) + 0x80, 0xe1, 0x3f, //0x00002026 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00002029 orb $-128, %cl + 0x88, 0x48, 0x03, //0x0000202c movb %cl, $3(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x0000202f addq $4, %rax + 0xe9, 0x8a, 0xfe, 0xff, 0xff, //0x00002033 jmp LBB6_57 + //0x00002038 LBB6_82 + 0x45, 0x31, 0xed, //0x00002038 xorl %r13d, %r13d + 0x48, 0x89, 0xd0, //0x0000203b movq %rdx, %rax + //0x0000203e LBB6_83 + 0x4c, 0x01, 0xe8, //0x0000203e addq %r13, %rax + 0x48, 0x29, 0xd0, //0x00002041 subq %rdx, %rax + //0x00002044 LBB6_84 + 0x48, 0x83, 0xc4, 0x28, //0x00002044 addq $40, %rsp + 0x5b, //0x00002048 popq %rbx + 0x41, 0x5c, //0x00002049 popq %r12 + 0x41, 0x5d, //0x0000204b popq %r13 + 0x41, 0x5e, //0x0000204d popq %r14 + 0x41, 0x5f, //0x0000204f popq %r15 + 0x5d, //0x00002051 popq %rbp + 0xc3, //0x00002052 retq + //0x00002053 LBB6_85 + 0x4c, 0x89, 0xca, //0x00002053 movq %r9, %rdx + 0x48, 0x29, 0xfa, //0x00002056 subq %rdi, %rdx + 0x48, 0x8b, 0x7d, 0xc8, //0x00002059 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x17, //0x0000205d movq %rdx, (%rdi) + 0x41, 0x8a, 0x09, //0x00002060 movb (%r9), %cl + 0x8d, 0x71, 0xd0, //0x00002063 leal $-48(%rcx), %esi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002066 movq $-2, %rax + 0x40, 0x80, 0xfe, 0x0a, //0x0000206d cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002071 jb LBB6_87 + 0x80, 0xe1, 0xdf, //0x00002077 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000207a addb $-65, %cl + 0x80, 0xf9, 0x05, //0x0000207d cmpb $5, %cl + 0x0f, 0x87, 0xbe, 0xff, 0xff, 0xff, //0x00002080 ja LBB6_84 + //0x00002086 LBB6_87 + 0x48, 0x8d, 0x4a, 0x01, //0x00002086 leaq $1(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x0000208a movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x01, //0x0000208d movb $1(%r9), %cl + 0x8d, 0x71, 0xd0, //0x00002091 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x00002094 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002098 jb LBB6_89 + 0x80, 0xe1, 0xdf, //0x0000209e andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020a1 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020a4 cmpb $5, %cl + 0x0f, 0x87, 0x97, 0xff, 0xff, 0xff, //0x000020a7 ja LBB6_84 + //0x000020ad LBB6_89 + 0x48, 0x8d, 0x4a, 0x02, //0x000020ad leaq $2(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000020b1 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x02, //0x000020b4 movb $2(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000020b8 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000020bb cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020bf jb LBB6_91 + 0x80, 0xe1, 0xdf, //0x000020c5 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020c8 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020cb cmpb $5, %cl + 0x0f, 0x87, 0x70, 0xff, 0xff, 0xff, //0x000020ce ja LBB6_84 + //0x000020d4 LBB6_91 + 0x48, 0x8d, 0x4a, 0x03, //0x000020d4 leaq $3(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000020d8 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x03, //0x000020db movb $3(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000020df leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000020e2 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020e6 jb LBB6_93 + 0x80, 0xe1, 0xdf, //0x000020ec andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020ef addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020f2 cmpb $5, %cl + 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x000020f5 ja LBB6_84 + //0x000020fb LBB6_93 + 0x48, 0x83, 0xc2, 0x04, //0x000020fb addq $4, %rdx + 0x48, 0x89, 0x17, //0x000020ff movq %rdx, (%rdi) + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002102 jmp LBB6_84 + //0x00002107 LBB6_94 + 0x48, 0x8b, 0x45, 0xc8, //0x00002107 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x18, //0x0000210b movq %r11, (%rax) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000210e movq $-1, %rax + 0xe9, 0x2a, 0xff, 0xff, 0xff, //0x00002115 jmp LBB6_84 + //0x0000211a LBB6_95 + 0x48, 0xf7, 0xd7, //0x0000211a notq %rdi + 0x49, 0x01, 0xf9, //0x0000211d addq %rdi, %r9 + 0x48, 0x8b, 0x45, 0xc8, //0x00002120 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002124 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00002127 movq $-3, %rax + 0xe9, 0x11, 0xff, 0xff, 0xff, //0x0000212e jmp LBB6_84 + //0x00002133 LBB6_96 + 0x45, 0x31, 0xed, //0x00002133 xorl %r13d, %r13d + 0xe9, 0x03, 0xff, 0xff, 0xff, //0x00002136 jmp LBB6_83 + //0x0000213b LBB6_97 + 0x48, 0xf7, 0xd7, //0x0000213b notq %rdi + 0x49, 0x01, 0xf9, //0x0000213e addq %rdi, %r9 + 0xe9, 0xda, 0x00, 0x00, 0x00, //0x00002141 jmp LBB6_110 + //0x00002146 LBB6_98 + 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x00002146 leaq $4(%r9,%r12), %rsi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x0000214b jmp LBB6_100 + //0x00002150 LBB6_99 + 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00002150 leaq $5(%r9,%r12), %rsi + //0x00002155 LBB6_100 + 0x48, 0x89, 0xf2, //0x00002155 movq %rsi, %rdx + 0x48, 0x29, 0xfa, //0x00002158 subq %rdi, %rdx + 0x48, 0x83, 0xc2, 0x02, //0x0000215b addq $2, %rdx + 0x48, 0x8b, 0x45, 0xc8, //0x0000215f movq $-56(%rbp), %rax + 0x48, 0x89, 0x10, //0x00002163 movq %rdx, (%rax) + 0x8a, 0x4e, 0x02, //0x00002166 movb $2(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x00002169 leal $-48(%rcx), %edi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000216c movq $-2, %rax + 0x40, 0x80, 0xff, 0x0a, //0x00002173 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002177 jb LBB6_102 + 0x80, 0xe1, 0xdf, //0x0000217d andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00002180 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00002183 cmpb $5, %cl + 0x0f, 0x87, 0xb8, 0xfe, 0xff, 0xff, //0x00002186 ja LBB6_84 + //0x0000218c LBB6_102 + 0x48, 0x8d, 0x4a, 0x01, //0x0000218c leaq $1(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x00002190 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x00002194 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x03, //0x00002197 movb $3(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x0000219a leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x0000219d cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021a1 jb LBB6_104 + 0x80, 0xe1, 0xdf, //0x000021a7 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021aa addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000021ad cmpb $5, %cl + 0x0f, 0x87, 0x8e, 0xfe, 0xff, 0xff, //0x000021b0 ja LBB6_84 + //0x000021b6 LBB6_104 + 0x48, 0x8d, 0x4a, 0x02, //0x000021b6 leaq $2(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000021ba movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000021be movq %rcx, (%rdi) + 0x8a, 0x4e, 0x04, //0x000021c1 movb $4(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x000021c4 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000021c7 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021cb jb LBB6_106 + 0x80, 0xe1, 0xdf, //0x000021d1 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021d4 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000021d7 cmpb $5, %cl + 0x0f, 0x87, 0x64, 0xfe, 0xff, 0xff, //0x000021da ja LBB6_84 + //0x000021e0 LBB6_106 + 0x48, 0x8d, 0x4a, 0x03, //0x000021e0 leaq $3(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000021e4 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000021e8 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x05, //0x000021eb movb $5(%rsi), %cl + 0x8d, 0x71, 0xd0, //0x000021ee leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000021f1 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021f5 jb LBB6_108 + 0x80, 0xe1, 0xdf, //0x000021fb andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021fe addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00002201 cmpb $5, %cl + 0x0f, 0x87, 0x3a, 0xfe, 0xff, 0xff, //0x00002204 ja LBB6_84 + //0x0000220a LBB6_108 + 0x48, 0x83, 0xc2, 0x04, //0x0000220a addq $4, %rdx + 0x48, 0x8b, 0x4d, 0xc8, //0x0000220e movq $-56(%rbp), %rcx + 0x48, 0x89, 0x11, //0x00002212 movq %rdx, (%rcx) + 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00002215 jmp LBB6_84 + //0x0000221a LBB6_109 + 0x49, 0x29, 0xf9, //0x0000221a subq %rdi, %r9 + 0x49, 0xff, 0xc1, //0x0000221d incq %r9 + //0x00002220 LBB6_110 + 0x48, 0x8b, 0x45, 0xc8, //0x00002220 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002224 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002227 movq $-2, %rax + 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x0000222e jmp LBB6_84 + //0x00002233 LBB6_111 + 0x49, 0x29, 0xf9, //0x00002233 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0xfc, //0x00002236 addq $-4, %r9 + //0x0000223a LBB6_112 + 0x48, 0x8b, 0x45, 0xc8, //0x0000223a movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x0000223e movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00002241 movq $-4, %rax + 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x00002248 jmp LBB6_84 + //0x0000224d LBB6_113 + 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000224d leaq $10(%r9,%r12), %rax + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002252 jmp LBB6_115 + //0x00002257 LBB6_114 + 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00002257 leaq $11(%r9,%r12), %rax + //0x0000225c LBB6_115 + 0x48, 0x29, 0xf8, //0x0000225c subq %rdi, %rax + 0x48, 0x83, 0xc0, 0xfc, //0x0000225f addq $-4, %rax + 0x48, 0x8b, 0x4d, 0xc8, //0x00002263 movq $-56(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00002267 movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000226a movq $-4, %rax + 0xe9, 0xce, 0xfd, 0xff, 0xff, //0x00002271 jmp LBB6_84 + //0x00002276 LBB6_116 + 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x00002276 leaq $4(%r10,%rdi), %rax + 0x49, 0x29, 0xc1, //0x0000227b subq %rax, %r9 + 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x0000227e jmp LBB6_112 + //0x00002283 LBB6_117 + 0x4d, 0x01, 0xe1, //0x00002283 addq %r12, %r9 + 0x49, 0x29, 0xf9, //0x00002286 subq %rdi, %r9 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002289 jmp LBB6_112 + 0x00, 0x00, //0x0000228e .p2align 4, 0x00 + //0x00002290 LCPI7_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002290 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x000022a0 LCPI7_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000022a0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x000022b0 LCPI7_2 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000022b0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x000022c0 LCPI7_3 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000022c0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x000022d0 .p2align 4, 0x90 + //0x000022d0 _html_escape + 0x55, //0x000022d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000022d1 movq %rsp, %rbp + 0x41, 0x57, //0x000022d4 pushq %r15 + 0x41, 0x56, //0x000022d6 pushq %r14 + 0x41, 0x55, //0x000022d8 pushq %r13 + 0x41, 0x54, //0x000022da pushq %r12 + 0x53, //0x000022dc pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x000022dd subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x000022e1 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd2, //0x000022e5 movq %rdx, %r10 + 0x48, 0x89, 0x55, 0xc8, //0x000022e8 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x000022ec movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x000022f0 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x000022f3 testq %rsi, %rsi + 0x0f, 0x8e, 0x93, 0x04, 0x00, 0x00, //0x000022f6 jle LBB7_59 + 0x48, 0x8b, 0x45, 0xc0, //0x000022fc movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x00002300 movq (%rax), %r9 + 0x66, 0x0f, 0x6f, 0x05, 0x85, 0xff, 0xff, 0xff, //0x00002303 movdqa $-123(%rip), %xmm0 /* LCPI7_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x8d, 0xff, 0xff, 0xff, //0x0000230b movdqa $-115(%rip), %xmm1 /* LCPI7_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x95, 0xff, 0xff, 0xff, //0x00002313 movdqa $-107(%rip), %xmm2 /* LCPI7_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x1d, 0x9d, 0xff, 0xff, 0xff, //0x0000231b movdqa $-99(%rip), %xmm3 /* LCPI7_3+0(%rip) */ + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00002323 movabsq $5764607797912141824, %r14 + 0x4c, 0x8d, 0x1d, 0xdc, 0xe7, 0x00, 0x00, //0x0000232d leaq $59356(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x4c, 0x8b, 0x7d, 0xd0, //0x00002334 movq $-48(%rbp), %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00002338 movq $-56(%rbp), %r10 + 0x90, 0x90, 0x90, 0x90, //0x0000233c .p2align 4, 0x90 + //0x00002340 LBB7_2 + 0x4d, 0x85, 0xc9, //0x00002340 testq %r9, %r9 + 0x0f, 0x8e, 0x65, 0x04, 0x00, 0x00, //0x00002343 jle LBB7_61 + 0x48, 0x83, 0xfe, 0x0f, //0x00002349 cmpq $15, %rsi + 0x0f, 0x9f, 0xc3, //0x0000234d setg %bl + 0x4d, 0x89, 0xcd, //0x00002350 movq %r9, %r13 + 0x4d, 0x89, 0xd0, //0x00002353 movq %r10, %r8 + 0x48, 0x89, 0xf0, //0x00002356 movq %rsi, %rax + 0x4d, 0x89, 0xfc, //0x00002359 movq %r15, %r12 + 0x49, 0x83, 0xf9, 0x10, //0x0000235c cmpq $16, %r9 + 0x0f, 0x8c, 0x8a, 0x00, 0x00, 0x00, //0x00002360 jl LBB7_9 + 0x48, 0x83, 0xfe, 0x10, //0x00002366 cmpq $16, %rsi + 0x0f, 0x8c, 0x80, 0x00, 0x00, 0x00, //0x0000236a jl LBB7_9 + 0x4d, 0x89, 0xfc, //0x00002370 movq %r15, %r12 + 0x48, 0x89, 0xf0, //0x00002373 movq %rsi, %rax + 0x4d, 0x89, 0xd0, //0x00002376 movq %r10, %r8 + 0x4c, 0x89, 0xc9, //0x00002379 movq %r9, %rcx + 0x90, 0x90, 0x90, 0x90, //0x0000237c .p2align 4, 0x90 + //0x00002380 LBB7_6 + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x00002380 movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xec, //0x00002386 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000238a movdqa %xmm4, %xmm6 + 0xf3, 0x41, 0x0f, 0x7f, 0x20, //0x0000238e movdqu %xmm4, (%r8) + 0x66, 0x0f, 0x74, 0xe0, //0x00002393 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe9, //0x00002397 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x0000239b por %xmm4, %xmm5 + 0x66, 0x0f, 0xeb, 0xf2, //0x0000239f por %xmm2, %xmm6 + 0x66, 0x0f, 0x74, 0xf3, //0x000023a3 pcmpeqb %xmm3, %xmm6 + 0x66, 0x0f, 0xeb, 0xf5, //0x000023a7 por %xmm5, %xmm6 + 0x66, 0x0f, 0xd7, 0xd6, //0x000023ab pmovmskb %xmm6, %edx + 0x66, 0x85, 0xd2, //0x000023af testw %dx, %dx + 0x0f, 0x85, 0x48, 0x01, 0x00, 0x00, //0x000023b2 jne LBB7_21 + 0x49, 0x83, 0xc4, 0x10, //0x000023b8 addq $16, %r12 + 0x49, 0x83, 0xc0, 0x10, //0x000023bc addq $16, %r8 + 0x4c, 0x8d, 0x69, 0xf0, //0x000023c0 leaq $-16(%rcx), %r13 + 0x48, 0x83, 0xf8, 0x1f, //0x000023c4 cmpq $31, %rax + 0x0f, 0x9f, 0xc3, //0x000023c8 setg %bl + 0x48, 0x83, 0xf8, 0x20, //0x000023cb cmpq $32, %rax + 0x48, 0x8d, 0x40, 0xf0, //0x000023cf leaq $-16(%rax), %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000023d3 jl LBB7_9 + 0x48, 0x83, 0xf9, 0x1f, //0x000023d9 cmpq $31, %rcx + 0x4c, 0x89, 0xe9, //0x000023dd movq %r13, %rcx + 0x0f, 0x8f, 0x9a, 0xff, 0xff, 0xff, //0x000023e0 jg LBB7_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000023e6 .p2align 4, 0x90 + //0x000023f0 LBB7_9 + 0x84, 0xdb, //0x000023f0 testb %bl, %bl + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x000023f2 je LBB7_13 + 0x4c, 0x89, 0xf2, //0x000023f8 movq %r14, %rdx + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x000023fb movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xec, //0x00002401 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00002405 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00002409 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x0000240d pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0xeb, 0xf5, //0x00002411 por %xmm5, %xmm6 + 0x66, 0x48, 0x0f, 0x7e, 0xe0, //0x00002415 movq %xmm4, %rax + 0x66, 0x0f, 0xeb, 0xe2, //0x0000241a por %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe3, //0x0000241e pcmpeqb %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00002422 por %xmm6, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00002426 pmovmskb %xmm4, %ecx + 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000242a orl $65536, %ecx + 0x44, 0x0f, 0xbc, 0xf1, //0x00002430 bsfl %ecx, %r14d + 0x4d, 0x39, 0xf5, //0x00002434 cmpq %r14, %r13 + 0x0f, 0x8d, 0xde, 0x00, 0x00, 0x00, //0x00002437 jge LBB7_22 + 0x49, 0x83, 0xfd, 0x08, //0x0000243d cmpq $8, %r13 + 0x0f, 0x82, 0x11, 0x01, 0x00, 0x00, //0x00002441 jb LBB7_25 + 0x49, 0x89, 0x00, //0x00002447 movq %rax, (%r8) + 0x4d, 0x8d, 0x74, 0x24, 0x08, //0x0000244a leaq $8(%r12), %r14 + 0x49, 0x83, 0xc0, 0x08, //0x0000244f addq $8, %r8 + 0x49, 0x8d, 0x45, 0xf8, //0x00002453 leaq $-8(%r13), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002457 cmpq $4, %rax + 0x0f, 0x8d, 0x07, 0x01, 0x00, 0x00, //0x0000245b jge LBB7_26 + 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00002461 jmp LBB7_27 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002466 .p2align 4, 0x90 + //0x00002470 LBB7_13 + 0x4d, 0x85, 0xed, //0x00002470 testq %r13, %r13 + 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x00002473 jle LBB7_20 + 0x48, 0x85, 0xc0, //0x00002479 testq %rax, %rax + 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x0000247c jle LBB7_20 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002482 .p2align 4, 0x90 + //0x00002490 LBB7_15 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x00002490 movzbl (%r12), %ecx + 0x48, 0x83, 0xf9, 0x3e, //0x00002495 cmpq $62, %rcx + 0x0f, 0x87, 0x0a, 0x00, 0x00, 0x00, //0x00002499 ja LBB7_17 + 0x49, 0x0f, 0xa3, 0xce, //0x0000249f btq %rcx, %r14 + 0x0f, 0x82, 0x9b, 0x00, 0x00, 0x00, //0x000024a3 jb LBB7_24 + //0x000024a9 LBB7_17 + 0x80, 0xf9, 0xe2, //0x000024a9 cmpb $-30, %cl + 0x0f, 0x84, 0x92, 0x00, 0x00, 0x00, //0x000024ac je LBB7_24 + 0x49, 0xff, 0xc4, //0x000024b2 incq %r12 + 0x41, 0x88, 0x08, //0x000024b5 movb %cl, (%r8) + 0x48, 0x83, 0xf8, 0x02, //0x000024b8 cmpq $2, %rax + 0x48, 0x8d, 0x40, 0xff, //0x000024bc leaq $-1(%rax), %rax + 0x0f, 0x8c, 0x1a, 0x00, 0x00, 0x00, //0x000024c0 jl LBB7_20 + 0x49, 0xff, 0xc0, //0x000024c6 incq %r8 + 0x49, 0x83, 0xfd, 0x01, //0x000024c9 cmpq $1, %r13 + 0x4d, 0x8d, 0x6d, 0xff, //0x000024cd leaq $-1(%r13), %r13 + 0x0f, 0x8f, 0xb9, 0xff, 0xff, 0xff, //0x000024d1 jg LBB7_15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024d7 .p2align 4, 0x90 + //0x000024e0 LBB7_20 + 0x4d, 0x29, 0xfc, //0x000024e0 subq %r15, %r12 + 0x48, 0xf7, 0xd8, //0x000024e3 negq %rax + 0x4d, 0x19, 0xed, //0x000024e6 sbbq %r13, %r13 + 0x4d, 0x31, 0xe5, //0x000024e9 xorq %r12, %r13 + 0x4d, 0x85, 0xed, //0x000024ec testq %r13, %r13 + 0x0f, 0x89, 0x5b, 0x01, 0x00, 0x00, //0x000024ef jns LBB7_37 + 0xe9, 0x72, 0x02, 0x00, 0x00, //0x000024f5 jmp LBB7_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024fa .p2align 4, 0x90 + //0x00002500 LBB7_21 + 0x0f, 0xb7, 0xc2, //0x00002500 movzwl %dx, %eax + 0x4d, 0x29, 0xfc, //0x00002503 subq %r15, %r12 + 0x44, 0x0f, 0xbc, 0xe8, //0x00002506 bsfl %eax, %r13d + 0x4d, 0x01, 0xe5, //0x0000250a addq %r12, %r13 + 0x4d, 0x85, 0xed, //0x0000250d testq %r13, %r13 + 0x0f, 0x89, 0x3a, 0x01, 0x00, 0x00, //0x00002510 jns LBB7_37 + 0xe9, 0x51, 0x02, 0x00, 0x00, //0x00002516 jmp LBB7_57 + //0x0000251b LBB7_22 + 0x41, 0x83, 0xfe, 0x08, //0x0000251b cmpl $8, %r14d + 0x0f, 0x82, 0xaa, 0x00, 0x00, 0x00, //0x0000251f jb LBB7_31 + 0x49, 0x89, 0x00, //0x00002525 movq %rax, (%r8) + 0x4d, 0x8d, 0x6c, 0x24, 0x08, //0x00002528 leaq $8(%r12), %r13 + 0x49, 0x83, 0xc0, 0x08, //0x0000252d addq $8, %r8 + 0x49, 0x8d, 0x46, 0xf8, //0x00002531 leaq $-8(%r14), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002535 cmpq $4, %rax + 0x0f, 0x8d, 0xa0, 0x00, 0x00, 0x00, //0x00002539 jge LBB7_32 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000253f jmp LBB7_33 + //0x00002544 LBB7_24 + 0x4d, 0x29, 0xfc, //0x00002544 subq %r15, %r12 + 0x4d, 0x89, 0xe5, //0x00002547 movq %r12, %r13 + 0x4d, 0x85, 0xed, //0x0000254a testq %r13, %r13 + 0x0f, 0x89, 0xfd, 0x00, 0x00, 0x00, //0x0000254d jns LBB7_37 + 0xe9, 0x14, 0x02, 0x00, 0x00, //0x00002553 jmp LBB7_57 + //0x00002558 LBB7_25 + 0x4d, 0x89, 0xe6, //0x00002558 movq %r12, %r14 + 0x4c, 0x89, 0xe8, //0x0000255b movq %r13, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000255e cmpq $4, %rax + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x00002562 jl LBB7_27 + //0x00002568 LBB7_26 + 0x41, 0x8b, 0x0e, //0x00002568 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x0000256b movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x0000256e addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x00002572 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x00002576 addq $-4, %rax + //0x0000257a LBB7_27 + 0x48, 0x83, 0xf8, 0x02, //0x0000257a cmpq $2, %rax + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x0000257e jb LBB7_28 + 0x41, 0x0f, 0xb7, 0x0e, //0x00002584 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002588 movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x0000258c addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x00002590 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x00002594 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00002598 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000259b jne LBB7_29 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000025a1 jmp LBB7_30 + //0x000025a6 LBB7_28 + 0x48, 0x85, 0xc0, //0x000025a6 testq %rax, %rax + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000025a9 je LBB7_30 + //0x000025af LBB7_29 + 0x41, 0x8a, 0x06, //0x000025af movb (%r14), %al + 0x41, 0x88, 0x00, //0x000025b2 movb %al, (%r8) + //0x000025b5 LBB7_30 + 0x4d, 0x29, 0xfd, //0x000025b5 subq %r15, %r13 + 0x4d, 0x01, 0xe5, //0x000025b8 addq %r12, %r13 + 0x49, 0xf7, 0xd5, //0x000025bb notq %r13 + 0x49, 0x89, 0xd6, //0x000025be movq %rdx, %r14 + 0x4d, 0x85, 0xed, //0x000025c1 testq %r13, %r13 + 0x0f, 0x89, 0x86, 0x00, 0x00, 0x00, //0x000025c4 jns LBB7_37 + 0xe9, 0x9d, 0x01, 0x00, 0x00, //0x000025ca jmp LBB7_57 + //0x000025cf LBB7_31 + 0x4d, 0x89, 0xe5, //0x000025cf movq %r12, %r13 + 0x4c, 0x89, 0xf0, //0x000025d2 movq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000025d5 cmpq $4, %rax + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x000025d9 jl LBB7_33 + //0x000025df LBB7_32 + 0x41, 0x8b, 0x4d, 0x00, //0x000025df movl (%r13), %ecx + 0x41, 0x89, 0x08, //0x000025e3 movl %ecx, (%r8) + 0x49, 0x83, 0xc5, 0x04, //0x000025e6 addq $4, %r13 + 0x49, 0x83, 0xc0, 0x04, //0x000025ea addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x000025ee addq $-4, %rax + //0x000025f2 LBB7_33 + 0x48, 0x83, 0xf8, 0x02, //0x000025f2 cmpq $2, %rax + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000025f6 jb LBB7_34 + 0x41, 0x0f, 0xb7, 0x4d, 0x00, //0x000025fc movzwl (%r13), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002601 movw %cx, (%r8) + 0x49, 0x83, 0xc5, 0x02, //0x00002605 addq $2, %r13 + 0x49, 0x83, 0xc0, 0x02, //0x00002609 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x0000260d addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00002611 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002614 jne LBB7_35 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000261a jmp LBB7_36 + //0x0000261f LBB7_34 + 0x48, 0x85, 0xc0, //0x0000261f testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002622 je LBB7_36 + //0x00002628 LBB7_35 + 0x41, 0x8a, 0x45, 0x00, //0x00002628 movb (%r13), %al + 0x41, 0x88, 0x00, //0x0000262c movb %al, (%r8) + //0x0000262f LBB7_36 + 0x4d, 0x29, 0xfc, //0x0000262f subq %r15, %r12 + 0x4d, 0x01, 0xf4, //0x00002632 addq %r14, %r12 + 0x4d, 0x89, 0xe5, //0x00002635 movq %r12, %r13 + 0x49, 0x89, 0xd6, //0x00002638 movq %rdx, %r14 + 0x4d, 0x85, 0xed, //0x0000263b testq %r13, %r13 + 0x0f, 0x88, 0x28, 0x01, 0x00, 0x00, //0x0000263e js LBB7_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002644 .p2align 4, 0x90 + //0x00002650 LBB7_37 + 0x4d, 0x01, 0xef, //0x00002650 addq %r13, %r15 + 0x4d, 0x01, 0xea, //0x00002653 addq %r13, %r10 + 0x4c, 0x29, 0xee, //0x00002656 subq %r13, %rsi + 0x0f, 0x8e, 0x2d, 0x01, 0x00, 0x00, //0x00002659 jle LBB7_58 + 0x4d, 0x29, 0xe9, //0x0000265f subq %r13, %r9 + 0x41, 0x8a, 0x0f, //0x00002662 movb (%r15), %cl + 0x80, 0xf9, 0xe2, //0x00002665 cmpb $-30, %cl + 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x00002668 je LBB7_51 + 0x4c, 0x89, 0xf8, //0x0000266e movq %r15, %rax + //0x00002671 LBB7_40 + 0x0f, 0xb6, 0xd1, //0x00002671 movzbl %cl, %edx + 0x48, 0xc1, 0xe2, 0x04, //0x00002674 shlq $4, %rdx + 0x4a, 0x8b, 0x3c, 0x1a, //0x00002678 movq (%rdx,%r11), %rdi + 0x48, 0x63, 0xdf, //0x0000267c movslq %edi, %rbx + 0x49, 0x29, 0xd9, //0x0000267f subq %rbx, %r9 + 0x0f, 0x8c, 0x1b, 0x01, 0x00, 0x00, //0x00002682 jl LBB7_60 + 0x48, 0xc1, 0xe7, 0x20, //0x00002688 shlq $32, %rdi + 0x4e, 0x8d, 0x7c, 0x1a, 0x08, //0x0000268c leaq $8(%rdx,%r11), %r15 + 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002691 movabsq $12884901889, %rcx + 0x48, 0x39, 0xcf, //0x0000269b cmpq %rcx, %rdi + 0x0f, 0x8c, 0x2c, 0x00, 0x00, 0x00, //0x0000269e jl LBB7_43 + 0x41, 0x8b, 0x0f, //0x000026a4 movl (%r15), %ecx + 0x41, 0x89, 0x0a, //0x000026a7 movl %ecx, (%r10) + 0x4e, 0x8d, 0x7c, 0x1a, 0x0c, //0x000026aa leaq $12(%rdx,%r11), %r15 + 0x4d, 0x8d, 0x42, 0x04, //0x000026af leaq $4(%r10), %r8 + 0x48, 0x8d, 0x7b, 0xfc, //0x000026b3 leaq $-4(%rbx), %rdi + 0x48, 0x83, 0xff, 0x02, //0x000026b7 cmpq $2, %rdi + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x000026bb jae LBB7_44 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x000026c1 jmp LBB7_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026c6 .p2align 4, 0x90 + //0x000026d0 LBB7_43 + 0x4d, 0x89, 0xd0, //0x000026d0 movq %r10, %r8 + 0x48, 0x89, 0xdf, //0x000026d3 movq %rbx, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000026d6 cmpq $2, %rdi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000026da jb LBB7_45 + //0x000026e0 LBB7_44 + 0x41, 0x0f, 0xb7, 0x17, //0x000026e0 movzwl (%r15), %edx + 0x66, 0x41, 0x89, 0x10, //0x000026e4 movw %dx, (%r8) + 0x49, 0x83, 0xc7, 0x02, //0x000026e8 addq $2, %r15 + 0x49, 0x83, 0xc0, 0x02, //0x000026ec addq $2, %r8 + 0x48, 0x83, 0xc7, 0xfe, //0x000026f0 addq $-2, %rdi + //0x000026f4 LBB7_45 + 0x48, 0x85, 0xff, //0x000026f4 testq %rdi, %rdi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000026f7 je LBB7_47 + 0x41, 0x8a, 0x0f, //0x000026fd movb (%r15), %cl + 0x41, 0x88, 0x08, //0x00002700 movb %cl, (%r8) + //0x00002703 LBB7_47 + 0x49, 0x01, 0xda, //0x00002703 addq %rbx, %r10 + //0x00002706 LBB7_48 + 0x48, 0xff, 0xc0, //0x00002706 incq %rax + 0x49, 0x89, 0xc7, //0x00002709 movq %rax, %r15 + 0x48, 0x83, 0xfe, 0x01, //0x0000270c cmpq $1, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x00002710 leaq $-1(%rsi), %rsi + 0x0f, 0x8f, 0x26, 0xfc, 0xff, 0xff, //0x00002714 jg LBB7_2 + 0xe9, 0x70, 0x00, 0x00, 0x00, //0x0000271a jmp LBB7_59 + //0x0000271f LBB7_51 + 0x48, 0x83, 0xfe, 0x03, //0x0000271f cmpq $3, %rsi + 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002723 jl LBB7_55 + 0x41, 0x80, 0x7f, 0x01, 0x80, //0x00002729 cmpb $-128, $1(%r15) + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x0000272e jne LBB7_55 + 0x41, 0x8a, 0x4f, 0x02, //0x00002734 movb $2(%r15), %cl + 0x89, 0xc8, //0x00002738 movl %ecx, %eax + 0x24, 0xfe, //0x0000273a andb $-2, %al + 0x3c, 0xa8, //0x0000273c cmpb $-88, %al + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x0000273e jne LBB7_55 + 0x49, 0x8d, 0x47, 0x02, //0x00002744 leaq $2(%r15), %rax + 0x48, 0x83, 0xc6, 0xfe, //0x00002748 addq $-2, %rsi + 0xe9, 0x20, 0xff, 0xff, 0xff, //0x0000274c jmp LBB7_40 + //0x00002751 LBB7_55 + 0x4d, 0x85, 0xc9, //0x00002751 testq %r9, %r9 + 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x00002754 jle LBB7_61 + 0x41, 0xc6, 0x02, 0xe2, //0x0000275a movb $-30, (%r10) + 0x49, 0xff, 0xc2, //0x0000275e incq %r10 + 0x49, 0xff, 0xc9, //0x00002761 decq %r9 + 0x4c, 0x89, 0xf8, //0x00002764 movq %r15, %rax + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00002767 jmp LBB7_48 + //0x0000276c LBB7_57 + 0x4c, 0x2b, 0x55, 0xc8, //0x0000276c subq $-56(%rbp), %r10 + 0x49, 0xf7, 0xd5, //0x00002770 notq %r13 + 0x4d, 0x01, 0xea, //0x00002773 addq %r13, %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x00002776 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x0000277a movq %r10, (%rax) + 0x4c, 0x2b, 0x7d, 0xd0, //0x0000277d subq $-48(%rbp), %r15 + 0x4d, 0x01, 0xef, //0x00002781 addq %r13, %r15 + 0x49, 0xf7, 0xd7, //0x00002784 notq %r15 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00002787 jmp LBB7_62 + //0x0000278c LBB7_58 + 0x4c, 0x89, 0xf8, //0x0000278c movq %r15, %rax + //0x0000278f LBB7_59 + 0x4c, 0x2b, 0x55, 0xc8, //0x0000278f subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x4d, 0xc0, //0x00002793 movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x11, //0x00002797 movq %r10, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x0000279a subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000279e jmp LBB7_63 + //0x000027a3 LBB7_60 + 0x4c, 0x2b, 0x55, 0xc8, //0x000027a3 subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x000027a7 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x000027ab movq %r10, (%rax) + //0x000027ae LBB7_61 + 0x49, 0xf7, 0xd7, //0x000027ae notq %r15 + 0x4c, 0x03, 0x7d, 0xd0, //0x000027b1 addq $-48(%rbp), %r15 + //0x000027b5 LBB7_62 + 0x4c, 0x89, 0xf8, //0x000027b5 movq %r15, %rax + //0x000027b8 LBB7_63 + 0x48, 0x83, 0xc4, 0x18, //0x000027b8 addq $24, %rsp + 0x5b, //0x000027bc popq %rbx + 0x41, 0x5c, //0x000027bd popq %r12 + 0x41, 0x5d, //0x000027bf popq %r13 + 0x41, 0x5e, //0x000027c1 popq %r14 + 0x41, 0x5f, //0x000027c3 popq %r15 + 0x5d, //0x000027c5 popq %rbp + 0xc3, //0x000027c6 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027c7 .p2align 4, 0x90 + //0x000027d0 _atof_eisel_lemire64 + 0x55, //0x000027d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000027d1 movq %rsp, %rbp + 0x41, 0x57, //0x000027d4 pushq %r15 + 0x41, 0x56, //0x000027d6 pushq %r14 + 0x53, //0x000027d8 pushq %rbx + 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000027d9 leal $348(%rsi), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000027df cmpl $695, %eax + 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x000027e4 ja LBB8_1 + 0x49, 0x89, 0xc8, //0x000027ea movq %rcx, %r8 + 0x41, 0x89, 0xd1, //0x000027ed movl %edx, %r9d + 0x48, 0x85, 0xff, //0x000027f0 testq %rdi, %rdi + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000027f3 je LBB8_4 + 0x4c, 0x0f, 0xbd, 0xd7, //0x000027f9 bsrq %rdi, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x000027fd xorq $63, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002801 jmp LBB8_5 + //0x00002806 LBB8_4 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00002806 movl $64, %r10d + //0x0000280c LBB8_5 + 0x44, 0x89, 0xd1, //0x0000280c movl %r10d, %ecx + 0x48, 0xd3, 0xe7, //0x0000280f shlq %cl, %rdi + 0x89, 0xc1, //0x00002812 movl %eax, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00002814 shlq $4, %rcx + 0x4c, 0x8d, 0x3d, 0x41, 0x6d, 0x00, 0x00, //0x00002818 leaq $27969(%rip), %r15 /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0xf8, //0x0000281f movq %rdi, %rax + 0x4a, 0xf7, 0x64, 0x39, 0x08, //0x00002822 mulq $8(%rcx,%r15) + 0x49, 0x89, 0xc3, //0x00002827 movq %rax, %r11 + 0x49, 0x89, 0xd6, //0x0000282a movq %rdx, %r14 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000282d andl $511, %edx + 0x48, 0x89, 0xfb, //0x00002833 movq %rdi, %rbx + 0x48, 0xf7, 0xd3, //0x00002836 notq %rbx + 0x48, 0x39, 0xd8, //0x00002839 cmpq %rbx, %rax + 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x0000283c jbe LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002842 cmpl $511, %edx + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00002848 jne LBB8_11 + 0x48, 0x89, 0xf8, //0x0000284e movq %rdi, %rax + 0x4a, 0xf7, 0x24, 0x39, //0x00002851 mulq (%rcx,%r15) + 0x49, 0x01, 0xd3, //0x00002855 addq %rdx, %r11 + 0x49, 0x83, 0xd6, 0x00, //0x00002858 adcq $0, %r14 + 0x44, 0x89, 0xf2, //0x0000285c movl %r14d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000285f andl $511, %edx + 0x48, 0x39, 0xd8, //0x00002865 cmpq %rbx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00002868 jbe LBB8_11 + 0x49, 0x83, 0xfb, 0xff, //0x0000286e cmpq $-1, %r11 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00002872 jne LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002878 cmpl $511, %edx + 0x0f, 0x84, 0x6e, 0x00, 0x00, 0x00, //0x0000287e je LBB8_1 + //0x00002884 LBB8_11 + 0x4c, 0x89, 0xf7, //0x00002884 movq %r14, %rdi + 0x48, 0xc1, 0xef, 0x3f, //0x00002887 shrq $63, %rdi + 0x8d, 0x4f, 0x09, //0x0000288b leal $9(%rdi), %ecx + 0x49, 0xd3, 0xee, //0x0000288e shrq %cl, %r14 + 0x4c, 0x09, 0xda, //0x00002891 orq %r11, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002894 jne LBB8_14 + 0x44, 0x89, 0xf0, //0x0000289a movl %r14d, %eax + 0x83, 0xe0, 0x03, //0x0000289d andl $3, %eax + 0x83, 0xf8, 0x01, //0x000028a0 cmpl $1, %eax + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x000028a3 je LBB8_1 + //0x000028a9 LBB8_14 + 0x69, 0xc6, 0x6a, 0x52, 0x03, 0x00, //0x000028a9 imull $217706, %esi, %eax + 0xc1, 0xf8, 0x10, //0x000028af sarl $16, %eax + 0x05, 0x3f, 0x04, 0x00, 0x00, //0x000028b2 addl $1087, %eax + 0x48, 0x98, //0x000028b7 cltq + 0x4c, 0x29, 0xd0, //0x000028b9 subq %r10, %rax + 0x48, 0x83, 0xf7, 0x01, //0x000028bc xorq $1, %rdi + 0x48, 0x29, 0xf8, //0x000028c0 subq %rdi, %rax + 0x44, 0x89, 0xf2, //0x000028c3 movl %r14d, %edx + 0x83, 0xe2, 0x01, //0x000028c6 andl $1, %edx + 0x4c, 0x01, 0xf2, //0x000028c9 addq %r14, %rdx + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000028cc movabsq $126100789566373888, %rcx + 0x48, 0x21, 0xd1, //0x000028d6 andq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x000028d9 cmpq $1, %rcx + 0x48, 0x83, 0xd8, 0xff, //0x000028dd sbbq $-1, %rax + 0x48, 0x8d, 0x70, 0xff, //0x000028e1 leaq $-1(%rax), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x000028e5 cmpq $2045, %rsi + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x000028ec jbe LBB8_16 + //0x000028f2 LBB8_1 + 0x31, 0xc0, //0x000028f2 xorl %eax, %eax + //0x000028f4 LBB8_17 + 0x5b, //0x000028f4 popq %rbx + 0x41, 0x5e, //0x000028f5 popq %r14 + 0x41, 0x5f, //0x000028f7 popq %r15 + 0x5d, //0x000028f9 popq %rbp + 0xc3, //0x000028fa retq + //0x000028fb LBB8_16 + 0x48, 0x83, 0xf9, 0x01, //0x000028fb cmpq $1, %rcx + 0xb1, 0x02, //0x000028ff movb $2, %cl + 0x80, 0xd9, 0x00, //0x00002901 sbbb $0, %cl + 0x48, 0xd3, 0xea, //0x00002904 shrq %cl, %rdx + 0x48, 0xc1, 0xe0, 0x34, //0x00002907 shlq $52, %rax + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000290b movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xd1, //0x00002915 andq %rdx, %rcx + 0x48, 0x09, 0xc1, //0x00002918 orq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000291b movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc8, //0x00002925 orq %rcx, %rax + 0x41, 0x83, 0xf9, 0xff, //0x00002928 cmpl $-1, %r9d + 0x48, 0x0f, 0x45, 0xc1, //0x0000292c cmovneq %rcx, %rax + 0x49, 0x89, 0x00, //0x00002930 movq %rax, (%r8) + 0xb0, 0x01, //0x00002933 movb $1, %al + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x00002935 jmp LBB8_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000293a .p2align 4, 0x90 + //0x00002940 _decimal_to_f64 + 0x55, //0x00002940 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002941 movq %rsp, %rbp + 0x41, 0x57, //0x00002944 pushq %r15 + 0x41, 0x56, //0x00002946 pushq %r14 + 0x41, 0x55, //0x00002948 pushq %r13 + 0x41, 0x54, //0x0000294a pushq %r12 + 0x53, //0x0000294c pushq %rbx + 0x50, //0x0000294d pushq %rax + 0x48, 0x89, 0xf3, //0x0000294e movq %rsi, %rbx + 0x49, 0x89, 0xfc, //0x00002951 movq %rdi, %r12 + 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002954 movabsq $4503599627370496, %r13 + 0x83, 0x7f, 0x10, 0x00, //0x0000295e cmpl $0, $16(%rdi) + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00002962 je LBB9_4 + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002968 movabsq $9218868437227405312, %r14 + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002972 movl $20(%r12), %eax + 0x45, 0x31, 0xff, //0x00002977 xorl %r15d, %r15d + 0x3d, 0x36, 0x01, 0x00, 0x00, //0x0000297a cmpl $310, %eax + 0x0f, 0x8f, 0x0e, 0x04, 0x00, 0x00, //0x0000297f jg LBB9_78 + 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002985 cmpl $-330, %eax + 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x0000298a jge LBB9_5 + 0x45, 0x31, 0xf6, //0x00002990 xorl %r14d, %r14d + 0xe9, 0xfb, 0x03, 0x00, 0x00, //0x00002993 jmp LBB9_78 + //0x00002998 LBB9_4 + 0x45, 0x31, 0xf6, //0x00002998 xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x0000299b xorl %r15d, %r15d + 0xe9, 0xf0, 0x03, 0x00, 0x00, //0x0000299e jmp LBB9_78 + //0x000029a3 LBB9_5 + 0x85, 0xc0, //0x000029a3 testl %eax, %eax + 0x48, 0x89, 0x5d, 0xd0, //0x000029a5 movq %rbx, $-48(%rbp) + 0x0f, 0x8e, 0xf1, 0x00, 0x00, 0x00, //0x000029a9 jle LBB9_22 + 0x45, 0x31, 0xff, //0x000029af xorl %r15d, %r15d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x000029b2 jmp LBB9_9 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029b7 .p2align 4, 0x90 + //0x000029c0 LBB9_7 + 0xf7, 0xdb, //0x000029c0 negl %ebx + 0x4c, 0x89, 0xe7, //0x000029c2 movq %r12, %rdi + 0x89, 0xde, //0x000029c5 movl %ebx, %esi + 0xe8, 0x24, 0x66, 0x00, 0x00, //0x000029c7 callq _right_shift + //0x000029cc LBB9_8 + 0x45, 0x01, 0xf7, //0x000029cc addl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x000029cf movl $20(%r12), %eax + 0x85, 0xc0, //0x000029d4 testl %eax, %eax + 0x0f, 0x8e, 0xc4, 0x00, 0x00, 0x00, //0x000029d6 jle LBB9_22 + //0x000029dc LBB9_9 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x000029dc movl $27, %r14d + 0x83, 0xf8, 0x08, //0x000029e2 cmpl $8, %eax + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x000029e5 jg LBB9_11 + 0x89, 0xc0, //0x000029eb movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xfc, 0x96, 0x00, 0x00, //0x000029ed leaq $38652(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x44, 0x8b, 0x34, 0x81, //0x000029f4 movl (%rcx,%rax,4), %r14d + //0x000029f8 LBB9_11 + 0x45, 0x85, 0xf6, //0x000029f8 testl %r14d, %r14d + 0x0f, 0x84, 0xcb, 0xff, 0xff, 0xff, //0x000029fb je LBB9_8 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002a01 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x00002a07 je LBB9_8 + 0x44, 0x89, 0xf3, //0x00002a0d movl %r14d, %ebx + 0xf7, 0xdb, //0x00002a10 negl %ebx + 0x45, 0x85, 0xf6, //0x00002a12 testl %r14d, %r14d + 0x0f, 0x88, 0x35, 0x00, 0x00, 0x00, //0x00002a15 js LBB9_16 + 0x41, 0x83, 0xfe, 0x3d, //0x00002a1b cmpl $61, %r14d + 0x0f, 0x8c, 0x9b, 0xff, 0xff, 0xff, //0x00002a1f jl LBB9_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a25 .p2align 4, 0x90 + //0x00002a30 LBB9_15 + 0x4c, 0x89, 0xe7, //0x00002a30 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a33 movl $60, %esi + 0xe8, 0xb3, 0x65, 0x00, 0x00, //0x00002a38 callq _right_shift + 0x8d, 0x43, 0x3c, //0x00002a3d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00002a40 cmpl $-120, %ebx + 0x89, 0xc3, //0x00002a43 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002a45 jl LBB9_15 + 0xe9, 0x70, 0xff, 0xff, 0xff, //0x00002a4b jmp LBB9_7 + //0x00002a50 LBB9_16 + 0x41, 0x83, 0xfe, 0xc3, //0x00002a50 cmpl $-61, %r14d + 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00002a54 jg LBB9_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a5a .p2align 4, 0x90 + //0x00002a60 LBB9_17 + 0x4c, 0x89, 0xe7, //0x00002a60 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a63 movl $60, %esi + 0xe8, 0x93, 0x63, 0x00, 0x00, //0x00002a68 callq _left_shift + 0x8d, 0x73, 0xc4, //0x00002a6d leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00002a70 cmpl $120, %ebx + 0x89, 0xf3, //0x00002a73 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002a75 jg LBB9_17 + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002a7b jmp LBB9_19 + //0x00002a80 LBB9_18 + 0x89, 0xde, //0x00002a80 movl %ebx, %esi + //0x00002a82 LBB9_19 + 0x4c, 0x89, 0xe7, //0x00002a82 movq %r12, %rdi + 0xe8, 0x76, 0x63, 0x00, 0x00, //0x00002a85 callq _left_shift + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002a8a jmp LBB9_8 + 0x90, //0x00002a8f .p2align 4, 0x90 + //0x00002a90 LBB9_20 + 0x4c, 0x89, 0xe7, //0x00002a90 movq %r12, %rdi + 0xe8, 0x68, 0x63, 0x00, 0x00, //0x00002a93 callq _left_shift + //0x00002a98 LBB9_21 + 0x45, 0x29, 0xf7, //0x00002a98 subl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002a9b movl $20(%r12), %eax + //0x00002aa0 LBB9_22 + 0x85, 0xc0, //0x00002aa0 testl %eax, %eax + 0x0f, 0x88, 0x18, 0x00, 0x00, 0x00, //0x00002aa2 js LBB9_25 + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00002aa8 jne LBB9_36 + 0x49, 0x8b, 0x0c, 0x24, //0x00002aae movq (%r12), %rcx + 0x80, 0x39, 0x35, //0x00002ab2 cmpb $53, (%rcx) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00002ab5 jl LBB9_26 + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00002abb jmp LBB9_36 + //0x00002ac0 .p2align 4, 0x90 + //0x00002ac0 LBB9_25 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x00002ac0 movl $27, %r14d + 0x83, 0xf8, 0xf8, //0x00002ac6 cmpl $-8, %eax + 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x00002ac9 jl LBB9_27 + //0x00002acf LBB9_26 + 0xf7, 0xd8, //0x00002acf negl %eax + 0x48, 0x98, //0x00002ad1 cltq + 0x48, 0x8d, 0x0d, 0x16, 0x96, 0x00, 0x00, //0x00002ad3 leaq $38422(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x44, 0x8b, 0x34, 0x81, //0x00002ada movl (%rcx,%rax,4), %r14d + //0x00002ade LBB9_27 + 0x45, 0x85, 0xf6, //0x00002ade testl %r14d, %r14d + 0x0f, 0x84, 0xb1, 0xff, 0xff, 0xff, //0x00002ae1 je LBB9_21 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002ae7 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xa5, 0xff, 0xff, 0xff, //0x00002aed je LBB9_21 + 0x45, 0x85, 0xf6, //0x00002af3 testl %r14d, %r14d + 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00002af6 jle LBB9_33 + 0x44, 0x89, 0xf6, //0x00002afc movl %r14d, %esi + 0x41, 0x83, 0xfe, 0x3d, //0x00002aff cmpl $61, %r14d + 0x0f, 0x8c, 0x87, 0xff, 0xff, 0xff, //0x00002b03 jl LBB9_20 + 0x44, 0x89, 0xf3, //0x00002b09 movl %r14d, %ebx + 0x90, 0x90, 0x90, 0x90, //0x00002b0c .p2align 4, 0x90 + //0x00002b10 LBB9_32 + 0x4c, 0x89, 0xe7, //0x00002b10 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b13 movl $60, %esi + 0xe8, 0xe3, 0x62, 0x00, 0x00, //0x00002b18 callq _left_shift + 0x8d, 0x73, 0xc4, //0x00002b1d leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00002b20 cmpl $120, %ebx + 0x89, 0xf3, //0x00002b23 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002b25 jg LBB9_32 + 0xe9, 0x60, 0xff, 0xff, 0xff, //0x00002b2b jmp LBB9_20 + //0x00002b30 LBB9_33 + 0x44, 0x89, 0xf3, //0x00002b30 movl %r14d, %ebx + 0x41, 0x83, 0xfe, 0xc3, //0x00002b33 cmpl $-61, %r14d + 0x0f, 0x8f, 0x1e, 0x00, 0x00, 0x00, //0x00002b37 jg LBB9_35 + 0x90, 0x90, 0x90, //0x00002b3d .p2align 4, 0x90 + //0x00002b40 LBB9_34 + 0x4c, 0x89, 0xe7, //0x00002b40 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b43 movl $60, %esi + 0xe8, 0xa3, 0x64, 0x00, 0x00, //0x00002b48 callq _right_shift + 0x8d, 0x43, 0x3c, //0x00002b4d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00002b50 cmpl $-120, %ebx + 0x89, 0xc3, //0x00002b53 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002b55 jl LBB9_34 + //0x00002b5b LBB9_35 + 0xf7, 0xdb, //0x00002b5b negl %ebx + 0x4c, 0x89, 0xe7, //0x00002b5d movq %r12, %rdi + 0x89, 0xde, //0x00002b60 movl %ebx, %esi + 0xe8, 0x89, 0x64, 0x00, 0x00, //0x00002b62 callq _right_shift + 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00002b67 jmp LBB9_21 + //0x00002b6c LBB9_36 + 0x41, 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x00002b6c cmpl $-1022, %r15d + 0x0f, 0x8f, 0x4b, 0x00, 0x00, 0x00, //0x00002b73 jg LBB9_42 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002b79 cmpl $0, $16(%r12) + 0x48, 0x8b, 0x5d, 0xd0, //0x00002b7f movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002b83 je LBB9_44 + 0x41, 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x00002b89 cmpl $-1082, %r15d + 0x0f, 0x8f, 0x55, 0x00, 0x00, 0x00, //0x00002b90 jg LBB9_45 + 0x41, 0x81, 0xc7, 0xc1, 0x03, 0x00, 0x00, //0x00002b96 addl $961, %r15d + 0x90, 0x90, 0x90, //0x00002b9d .p2align 4, 0x90 + //0x00002ba0 LBB9_40 + 0x4c, 0x89, 0xe7, //0x00002ba0 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002ba3 movl $60, %esi + 0xe8, 0x43, 0x64, 0x00, 0x00, //0x00002ba8 callq _right_shift + 0x41, 0x83, 0xc7, 0x3c, //0x00002bad addl $60, %r15d + 0x41, 0x83, 0xff, 0x88, //0x00002bb1 cmpl $-120, %r15d + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002bb5 jl LBB9_40 + 0x41, 0x83, 0xc7, 0x3c, //0x00002bbb addl $60, %r15d + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00002bbf jmp LBB9_46 + //0x00002bc4 LBB9_42 + 0x41, 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00002bc4 cmpl $1024, %r15d + 0x48, 0x8b, 0x5d, 0xd0, //0x00002bcb movq $-48(%rbp), %rbx + 0x0f, 0x8f, 0x87, 0x01, 0x00, 0x00, //0x00002bcf jg LBB9_75 + 0x41, 0xff, 0xcf, //0x00002bd5 decl %r15d + 0x45, 0x89, 0xfe, //0x00002bd8 movl %r15d, %r14d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002bdb jmp LBB9_47 + //0x00002be0 LBB9_44 + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002be0 movl $-1022, %r14d + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00002be6 jmp LBB9_49 + //0x00002beb LBB9_45 + 0x41, 0x81, 0xc7, 0xfd, 0x03, 0x00, 0x00, //0x00002beb addl $1021, %r15d + //0x00002bf2 LBB9_46 + 0x41, 0xf7, 0xdf, //0x00002bf2 negl %r15d + 0x4c, 0x89, 0xe7, //0x00002bf5 movq %r12, %rdi + 0x44, 0x89, 0xfe, //0x00002bf8 movl %r15d, %esi + 0xe8, 0xf0, 0x63, 0x00, 0x00, //0x00002bfb callq _right_shift + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002c00 movl $-1022, %r14d + //0x00002c06 LBB9_47 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002c06 cmpl $0, $16(%r12) + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002c0c je LBB9_49 + 0x4c, 0x89, 0xe7, //0x00002c12 movq %r12, %rdi + 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002c15 movl $53, %esi + 0xe8, 0xe1, 0x61, 0x00, 0x00, //0x00002c1a callq _left_shift + //0x00002c1f LBB9_49 + 0x4d, 0x63, 0x44, 0x24, 0x14, //0x00002c1f movslq $20(%r12), %r8 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002c24 movq $-1, %r15 + 0x49, 0x83, 0xf8, 0x14, //0x00002c2b cmpq $20, %r8 + 0x0f, 0x8f, 0x3f, 0x01, 0x00, 0x00, //0x00002c2f jg LBB9_77 + 0x44, 0x89, 0xc1, //0x00002c35 movl %r8d, %ecx + 0x85, 0xc9, //0x00002c38 testl %ecx, %ecx + 0x0f, 0x8e, 0x3c, 0x00, 0x00, 0x00, //0x00002c3a jle LBB9_54 + 0x49, 0x63, 0x74, 0x24, 0x10, //0x00002c40 movslq $16(%r12), %rsi + 0x31, 0xd2, //0x00002c45 xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00002c47 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c4a .p2align 4, 0x90 + //0x00002c50 LBB9_52 + 0x48, 0x39, 0xf2, //0x00002c50 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00002c53 jge LBB9_55 + 0x4b, 0x8d, 0x04, 0xbf, //0x00002c59 leaq (%r15,%r15,4), %rax + 0x49, 0x8b, 0x3c, 0x24, //0x00002c5d movq (%r12), %rdi + 0x48, 0x0f, 0xbe, 0x3c, 0x17, //0x00002c61 movsbq (%rdi,%rdx), %rdi + 0x4c, 0x8d, 0x7c, 0x47, 0xd0, //0x00002c66 leaq $-48(%rdi,%rax,2), %r15 + 0x48, 0xff, 0xc2, //0x00002c6b incq %rdx + 0x48, 0x39, 0xd1, //0x00002c6e cmpq %rdx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00002c71 jne LBB9_52 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002c77 jmp LBB9_55 + //0x00002c7c LBB9_54 + 0x31, 0xd2, //0x00002c7c xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00002c7e xorl %r15d, %r15d + //0x00002c81 LBB9_55 + 0x41, 0x39, 0xd0, //0x00002c81 cmpl %edx, %r8d + 0x0f, 0x8e, 0x56, 0x00, 0x00, 0x00, //0x00002c84 jle LBB9_63 + 0x89, 0xcf, //0x00002c8a movl %ecx, %edi + 0x29, 0xd7, //0x00002c8c subl %edx, %edi + 0x89, 0xd6, //0x00002c8e movl %edx, %esi + 0xf7, 0xd6, //0x00002c90 notl %esi + 0x44, 0x01, 0xc6, //0x00002c92 addl %r8d, %esi + 0x83, 0xe7, 0x07, //0x00002c95 andl $7, %edi + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00002c98 je LBB9_60 + 0xf7, 0xdf, //0x00002c9e negl %edi + 0x31, 0xc0, //0x00002ca0 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ca2 .p2align 4, 0x90 + //0x00002cb0 LBB9_58 + 0x4d, 0x01, 0xff, //0x00002cb0 addq %r15, %r15 + 0x4f, 0x8d, 0x3c, 0xbf, //0x00002cb3 leaq (%r15,%r15,4), %r15 + 0xff, 0xc8, //0x00002cb7 decl %eax + 0x39, 0xc7, //0x00002cb9 cmpl %eax, %edi + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00002cbb jne LBB9_58 + 0x29, 0xc2, //0x00002cc1 subl %eax, %edx + //0x00002cc3 LBB9_60 + 0x83, 0xfe, 0x07, //0x00002cc3 cmpl $7, %esi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002cc6 jb LBB9_63 + 0x89, 0xc8, //0x00002ccc movl %ecx, %eax + 0x29, 0xd0, //0x00002cce subl %edx, %eax + //0x00002cd0 .p2align 4, 0x90 + //0x00002cd0 LBB9_62 + 0x4d, 0x69, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00002cd0 imulq $100000000, %r15, %r15 + 0x83, 0xc0, 0xf8, //0x00002cd7 addl $-8, %eax + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002cda jne LBB9_62 + //0x00002ce0 LBB9_63 + 0x85, 0xc9, //0x00002ce0 testl %ecx, %ecx + 0x0f, 0x88, 0x4c, 0x00, 0x00, 0x00, //0x00002ce2 js LBB9_71 + 0x41, 0x8b, 0x54, 0x24, 0x10, //0x00002ce8 movl $16(%r12), %edx + 0x44, 0x39, 0xc2, //0x00002ced cmpl %r8d, %edx + 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002cf0 jle LBB9_71 + 0x49, 0x8b, 0x34, 0x24, //0x00002cf6 movq (%r12), %rsi + 0x8a, 0x04, 0x0e, //0x00002cfa movb (%rsi,%rcx), %al + 0x8d, 0x79, 0x01, //0x00002cfd leal $1(%rcx), %edi + 0x39, 0xd7, //0x00002d00 cmpl %edx, %edi + 0x0f, 0x85, 0xbf, 0x00, 0x00, 0x00, //0x00002d02 jne LBB9_72 + 0x3c, 0x35, //0x00002d08 cmpb $53, %al + 0x0f, 0x85, 0xb7, 0x00, 0x00, 0x00, //0x00002d0a jne LBB9_72 + 0x41, 0x83, 0x7c, 0x24, 0x1c, 0x00, //0x00002d10 cmpl $0, $28(%r12) + 0x0f, 0x95, 0xc2, //0x00002d16 setne %dl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00002d19 jne LBB9_73 + 0x85, 0xc9, //0x00002d1f testl %ecx, %ecx + 0x0f, 0x8e, 0x0f, 0x00, 0x00, 0x00, //0x00002d21 jle LBB9_73 + 0x41, 0x8a, 0x54, 0x30, 0xff, //0x00002d27 movb $-1(%r8,%rsi), %dl + 0x80, 0xe2, 0x01, //0x00002d2c andb $1, %dl + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002d2f jmp LBB9_73 + //0x00002d34 LBB9_71 + 0x31, 0xd2, //0x00002d34 xorl %edx, %edx + //0x00002d36 LBB9_73 + 0x0f, 0xb6, 0xc2, //0x00002d36 movzbl %dl, %eax + 0x49, 0x01, 0xc7, //0x00002d39 addq %rax, %r15 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00002d3c movabsq $9007199254740992, %rax + 0x49, 0x39, 0xc7, //0x00002d46 cmpq %rax, %r15 + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00002d49 jne LBB9_77 + 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x00002d4f cmpl $1022, %r14d + 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00002d56 jle LBB9_76 + //0x00002d5c LBB9_75 + 0x45, 0x31, 0xff, //0x00002d5c xorl %r15d, %r15d + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002d5f movabsq $9218868437227405312, %r14 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002d69 jmp LBB9_78 + //0x00002d6e LBB9_76 + 0x41, 0xff, 0xc6, //0x00002d6e incl %r14d + 0x4d, 0x89, 0xef, //0x00002d71 movq %r13, %r15 + //0x00002d74 LBB9_77 + 0x4c, 0x89, 0xf8, //0x00002d74 movq %r15, %rax + 0x4c, 0x21, 0xe8, //0x00002d77 andq %r13, %rax + 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00002d7a addl $1023, %r14d + 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00002d81 andl $2047, %r14d + 0x49, 0xc1, 0xe6, 0x34, //0x00002d88 shlq $52, %r14 + 0x48, 0x85, 0xc0, //0x00002d8c testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf0, //0x00002d8f cmoveq %rax, %r14 + //0x00002d93 LBB9_78 + 0x49, 0xff, 0xcd, //0x00002d93 decq %r13 + 0x4d, 0x21, 0xfd, //0x00002d96 andq %r15, %r13 + 0x4d, 0x09, 0xf5, //0x00002d99 orq %r14, %r13 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002d9c movabsq $-9223372036854775808, %rax + 0x4c, 0x09, 0xe8, //0x00002da6 orq %r13, %rax + 0x41, 0x83, 0x7c, 0x24, 0x18, 0x00, //0x00002da9 cmpl $0, $24(%r12) + 0x49, 0x0f, 0x44, 0xc5, //0x00002daf cmoveq %r13, %rax + 0x48, 0x89, 0x03, //0x00002db3 movq %rax, (%rbx) + 0x31, 0xc0, //0x00002db6 xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00002db8 addq $8, %rsp + 0x5b, //0x00002dbc popq %rbx + 0x41, 0x5c, //0x00002dbd popq %r12 + 0x41, 0x5d, //0x00002dbf popq %r13 + 0x41, 0x5e, //0x00002dc1 popq %r14 + 0x41, 0x5f, //0x00002dc3 popq %r15 + 0x5d, //0x00002dc5 popq %rbp + 0xc3, //0x00002dc6 retq + //0x00002dc7 LBB9_72 + 0x3c, 0x34, //0x00002dc7 cmpb $52, %al + 0x0f, 0x9f, 0xc2, //0x00002dc9 setg %dl + 0xe9, 0x65, 0xff, 0xff, 0xff, //0x00002dcc jmp LBB9_73 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002dd1 .p2align 4, 0x90 + //0x00002de0 _atof_native + 0x55, //0x00002de0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002de1 movq %rsp, %rbp + 0x48, 0x83, 0xec, 0x30, //0x00002de4 subq $48, %rsp + 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x00002de8 movq $0, $-40(%rbp) + 0x48, 0x89, 0x55, 0xe0, //0x00002df0 movq %rdx, $-32(%rbp) + 0x48, 0x89, 0x4d, 0xe8, //0x00002df4 movq %rcx, $-24(%rbp) + 0x48, 0x85, 0xc9, //0x00002df8 testq %rcx, %rcx + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00002dfb je LBB10_5 + 0xc6, 0x02, 0x00, //0x00002e01 movb $0, (%rdx) + 0x48, 0x83, 0xf9, 0x01, //0x00002e04 cmpq $1, %rcx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00002e08 je LBB10_5 + 0xc6, 0x42, 0x01, 0x00, //0x00002e0e movb $0, $1(%rdx) + 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00002e12 cmpq $3, $-24(%rbp) + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00002e17 jb LBB10_5 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00002e1d movl $2, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e22 .p2align 4, 0x90 + //0x00002e30 LBB10_4 + 0x48, 0x8b, 0x4d, 0xe0, //0x00002e30 movq $-32(%rbp), %rcx + 0xc6, 0x04, 0x01, 0x00, //0x00002e34 movb $0, (%rcx,%rax) + 0x48, 0xff, 0xc0, //0x00002e38 incq %rax + 0x48, 0x39, 0x45, 0xe8, //0x00002e3b cmpq %rax, $-24(%rbp) + 0x0f, 0x87, 0xeb, 0xff, 0xff, 0xff, //0x00002e3f ja LBB10_4 + //0x00002e45 LBB10_5 + 0x0f, 0x57, 0xc0, //0x00002e45 xorps %xmm0, %xmm0 + 0x0f, 0x11, 0x45, 0xf0, //0x00002e48 movups %xmm0, $-16(%rbp) + 0x80, 0x3f, 0x2d, //0x00002e4c cmpb $45, (%rdi) + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00002e4f jne LBB10_6 + 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00002e55 movl $1, $-8(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002e5c movl $1, %eax + 0x48, 0x39, 0xf0, //0x00002e61 cmpq %rsi, %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002e64 jl LBB10_9 + //0x00002e6a LBB10_41 + 0xc7, 0x45, 0xf4, 0x00, 0x00, 0x00, 0x00, //0x00002e6a movl $0, $-12(%rbp) + 0xe9, 0xa3, 0x01, 0x00, 0x00, //0x00002e71 jmp LBB10_40 + //0x00002e76 LBB10_6 + 0x31, 0xc0, //0x00002e76 xorl %eax, %eax + 0x48, 0x39, 0xf0, //0x00002e78 cmpq %rsi, %rax + 0x0f, 0x8d, 0xe9, 0xff, 0xff, 0xff, //0x00002e7b jge LBB10_41 + //0x00002e81 LBB10_9 + 0x41, 0xb3, 0x01, //0x00002e81 movb $1, %r11b + 0x45, 0x31, 0xc9, //0x00002e84 xorl %r9d, %r9d + 0x45, 0x31, 0xd2, //0x00002e87 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00002e8a xorl %r8d, %r8d + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x00002e8d jmp LBB10_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e92 .p2align 4, 0x90 + //0x00002ea0 LBB10_13 + 0xff, 0x4d, 0xf4, //0x00002ea0 decl $-12(%rbp) + 0x45, 0x31, 0xd2, //0x00002ea3 xorl %r10d, %r10d + //0x00002ea6 LBB10_22 + 0x48, 0xff, 0xc0, //0x00002ea6 incq %rax + 0x48, 0x39, 0xf0, //0x00002ea9 cmpq %rsi, %rax + 0x41, 0x0f, 0x9c, 0xc3, //0x00002eac setl %r11b + 0x48, 0x39, 0xc6, //0x00002eb0 cmpq %rax, %rsi + 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x00002eb3 je LBB10_23 + //0x00002eb9 LBB10_10 + 0x0f, 0xb6, 0x0c, 0x07, //0x00002eb9 movzbl (%rdi,%rax), %ecx + 0x8d, 0x51, 0xd0, //0x00002ebd leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00002ec0 cmpb $9, %dl + 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00002ec3 ja LBB10_19 + 0x45, 0x85, 0xd2, //0x00002ec9 testl %r10d, %r10d + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002ecc jne LBB10_14 + 0x80, 0xf9, 0x30, //0x00002ed2 cmpb $48, %cl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00002ed5 je LBB10_13 + //0x00002edb LBB10_14 + 0x4d, 0x63, 0xd1, //0x00002edb movslq %r9d, %r10 + 0x4c, 0x39, 0x55, 0xe8, //0x00002ede cmpq %r10, $-24(%rbp) + 0x0f, 0x86, 0x40, 0x00, 0x00, 0x00, //0x00002ee2 jbe LBB10_16 + 0x48, 0x8b, 0x55, 0xe0, //0x00002ee8 movq $-32(%rbp), %rdx + 0x42, 0x88, 0x0c, 0x12, //0x00002eec movb %cl, (%rdx,%r10) + 0x44, 0x8b, 0x4d, 0xf0, //0x00002ef0 movl $-16(%rbp), %r9d + 0x41, 0xff, 0xc1, //0x00002ef4 incl %r9d + 0x44, 0x89, 0x4d, 0xf0, //0x00002ef7 movl %r9d, $-16(%rbp) + 0x45, 0x89, 0xca, //0x00002efb movl %r9d, %r10d + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00002efe jmp LBB10_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f03 .p2align 4, 0x90 + //0x00002f10 LBB10_19 + 0x80, 0xf9, 0x2e, //0x00002f10 cmpb $46, %cl + 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, //0x00002f13 jne LBB10_20 + 0x44, 0x89, 0x55, 0xf4, //0x00002f19 movl %r10d, $-12(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002f1d movl $1, %r8d + 0xe9, 0x7e, 0xff, 0xff, 0xff, //0x00002f23 jmp LBB10_22 + //0x00002f28 LBB10_16 + 0x80, 0xf9, 0x30, //0x00002f28 cmpb $48, %cl + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00002f2b jne LBB10_18 + 0x45, 0x89, 0xca, //0x00002f31 movl %r9d, %r10d + 0xe9, 0x6d, 0xff, 0xff, 0xff, //0x00002f34 jmp LBB10_22 + //0x00002f39 LBB10_18 + 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00002f39 movl $1, $-4(%rbp) + 0x45, 0x89, 0xca, //0x00002f40 movl %r9d, %r10d + 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00002f43 jmp LBB10_22 + //0x00002f48 LBB10_23 + 0x89, 0xf1, //0x00002f48 movl %esi, %ecx + 0x48, 0x89, 0xf0, //0x00002f4a movq %rsi, %rax + 0x45, 0x85, 0xc0, //0x00002f4d testl %r8d, %r8d + 0x0f, 0x85, 0x04, 0x00, 0x00, 0x00, //0x00002f50 jne LBB10_26 + //0x00002f56 LBB10_25 + 0x44, 0x89, 0x4d, 0xf4, //0x00002f56 movl %r9d, $-12(%rbp) + //0x00002f5a LBB10_26 + 0x41, 0xf6, 0xc3, 0x01, //0x00002f5a testb $1, %r11b + 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00002f5e je LBB10_40 + 0x8a, 0x0c, 0x0f, //0x00002f64 movb (%rdi,%rcx), %cl + 0x80, 0xc9, 0x20, //0x00002f67 orb $32, %cl + 0x80, 0xf9, 0x65, //0x00002f6a cmpb $101, %cl + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00002f6d jne LBB10_40 + 0x89, 0xc2, //0x00002f73 movl %eax, %edx + 0x8a, 0x4c, 0x17, 0x01, //0x00002f75 movb $1(%rdi,%rdx), %cl + 0x80, 0xf9, 0x2d, //0x00002f79 cmpb $45, %cl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00002f7c je LBB10_32 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002f82 movl $1, %r8d + 0x80, 0xf9, 0x2b, //0x00002f88 cmpb $43, %cl + 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00002f8b jne LBB10_30 + 0x83, 0xc0, 0x02, //0x00002f91 addl $2, %eax + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00002f94 jmp LBB10_33 + //0x00002f99 LBB10_20 + 0x48, 0x89, 0xc1, //0x00002f99 movq %rax, %rcx + 0x45, 0x85, 0xc0, //0x00002f9c testl %r8d, %r8d + 0x0f, 0x85, 0xb5, 0xff, 0xff, 0xff, //0x00002f9f jne LBB10_26 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002fa5 jmp LBB10_25 + //0x00002faa LBB10_32 + 0x83, 0xc0, 0x02, //0x00002faa addl $2, %eax + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00002fad movl $-1, %r8d + //0x00002fb3 LBB10_33 + 0x89, 0xc2, //0x00002fb3 movl %eax, %edx + 0x48, 0x63, 0xd2, //0x00002fb5 movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00002fb8 xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00002fbb cmpq %rsi, %rdx + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002fbe jl LBB10_35 + 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00002fc4 jmp LBB10_39 + //0x00002fc9 LBB10_30 + 0x48, 0xff, 0xc2, //0x00002fc9 incq %rdx + 0x48, 0x63, 0xd2, //0x00002fcc movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00002fcf xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00002fd2 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x36, 0x00, 0x00, 0x00, //0x00002fd5 jge LBB10_39 + //0x00002fdb LBB10_35 + 0x45, 0x31, 0xc9, //0x00002fdb xorl %r9d, %r9d + 0x90, 0x90, //0x00002fde .p2align 4, 0x90 + //0x00002fe0 LBB10_36 + 0x41, 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00002fe0 cmpl $9999, %r9d + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00002fe7 jg LBB10_39 + 0x0f, 0xb6, 0x0c, 0x17, //0x00002fed movzbl (%rdi,%rdx), %ecx + 0x8d, 0x41, 0xd0, //0x00002ff1 leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00002ff4 cmpb $9, %al + 0x0f, 0x87, 0x15, 0x00, 0x00, 0x00, //0x00002ff6 ja LBB10_39 + 0x43, 0x8d, 0x04, 0x89, //0x00002ffc leal (%r9,%r9,4), %eax + 0x44, 0x8d, 0x4c, 0x41, 0xd0, //0x00003000 leal $-48(%rcx,%rax,2), %r9d + 0x48, 0xff, 0xc2, //0x00003005 incq %rdx + 0x48, 0x39, 0xd6, //0x00003008 cmpq %rdx, %rsi + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x0000300b jne LBB10_36 + //0x00003011 LBB10_39 + 0x45, 0x0f, 0xaf, 0xc8, //0x00003011 imull %r8d, %r9d + 0x44, 0x01, 0x4d, 0xf4, //0x00003015 addl %r9d, $-12(%rbp) + //0x00003019 LBB10_40 + 0x48, 0x8d, 0x7d, 0xe0, //0x00003019 leaq $-32(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd8, //0x0000301d leaq $-40(%rbp), %rsi + 0xe8, 0x1a, 0xf9, 0xff, 0xff, //0x00003021 callq _decimal_to_f64 + 0xf2, 0x0f, 0x10, 0x45, 0xd8, //0x00003026 movsd $-40(%rbp), %xmm0 + 0x48, 0x83, 0xc4, 0x30, //0x0000302b addq $48, %rsp + 0x5d, //0x0000302f popq %rbp + 0xc3, //0x00003030 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003031 .p2align 4, 0x90 + //0x00003040 _value + 0x55, //0x00003040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003041 movq %rsp, %rbp + 0x41, 0x57, //0x00003044 pushq %r15 + 0x41, 0x56, //0x00003046 pushq %r14 + 0x41, 0x55, //0x00003048 pushq %r13 + 0x41, 0x54, //0x0000304a pushq %r12 + 0x53, //0x0000304c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000304d subq $40, %rsp + 0x49, 0x89, 0xc9, //0x00003051 movq %rcx, %r9 + 0x49, 0x89, 0xd4, //0x00003054 movq %rdx, %r12 + 0x49, 0x89, 0xf7, //0x00003057 movq %rsi, %r15 + 0x49, 0x89, 0xfd, //0x0000305a movq %rdi, %r13 + 0x48, 0x89, 0x55, 0xd0, //0x0000305d movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x7d, 0xb0, //0x00003061 movq %rdi, $-80(%rbp) + 0x48, 0x89, 0x75, 0xb8, //0x00003065 movq %rsi, $-72(%rbp) + 0x48, 0x89, 0xd0, //0x00003069 movq %rdx, %rax + 0x48, 0x29, 0xf0, //0x0000306c subq %rsi, %rax + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000306f jae LBB11_5 + 0x43, 0x8a, 0x4c, 0x25, 0x00, //0x00003075 movb (%r13,%r12), %cl + 0x80, 0xf9, 0x0d, //0x0000307a cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000307d je LBB11_5 + 0x80, 0xf9, 0x20, //0x00003083 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00003086 je LBB11_5 + 0x8d, 0x51, 0xf7, //0x0000308c leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x0000308f cmpb $1, %dl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003092 jbe LBB11_5 + 0x4c, 0x89, 0xe3, //0x00003098 movq %r12, %rbx + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x0000309b jmp LBB11_28 + //0x000030a0 LBB11_5 + 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x000030a0 leaq $1(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x000030a5 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030a8 jae LBB11_9 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030ae movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x000030b3 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030b6 je LBB11_9 + 0x80, 0xf9, 0x20, //0x000030bc cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000030bf je LBB11_9 + 0x8d, 0x51, 0xf7, //0x000030c5 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x000030c8 cmpb $1, %dl + 0x0f, 0x87, 0x01, 0x01, 0x00, 0x00, //0x000030cb ja LBB11_28 + //0x000030d1 LBB11_9 + 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x000030d1 leaq $2(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x000030d6 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030d9 jae LBB11_13 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030df movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x000030e4 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030e7 je LBB11_13 + 0x80, 0xf9, 0x20, //0x000030ed cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000030f0 je LBB11_13 + 0x8d, 0x51, 0xf7, //0x000030f6 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x000030f9 cmpb $1, %dl + 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x000030fc ja LBB11_28 + //0x00003102 LBB11_13 + 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x00003102 leaq $3(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x00003107 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x0000310a jae LBB11_17 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x00003110 movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x00003115 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00003118 je LBB11_17 + 0x80, 0xf9, 0x20, //0x0000311e cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00003121 je LBB11_17 + 0x8d, 0x51, 0xf7, //0x00003127 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x0000312a cmpb $1, %dl + 0x0f, 0x87, 0x9f, 0x00, 0x00, 0x00, //0x0000312d ja LBB11_28 + //0x00003133 LBB11_17 + 0x49, 0x8d, 0x4c, 0x24, 0x04, //0x00003133 leaq $4(%r12), %rcx + 0x4c, 0x39, 0xf9, //0x00003138 cmpq %r15, %rcx + 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x0000313b jae LBB11_23 + 0x49, 0x39, 0xcf, //0x00003141 cmpq %rcx, %r15 + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00003144 je LBB11_24 + 0x4b, 0x8d, 0x4c, 0x3d, 0x00, //0x0000314a leaq (%r13,%r15), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x0000314f addq $4, %rax + 0x4b, 0x8d, 0x5c, 0x2c, 0x05, //0x00003153 leaq $5(%r12,%r13), %rbx + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00003158 movabsq $4294977024, %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003162 .p2align 4, 0x90 + //0x00003170 LBB11_20 + 0x0f, 0xbe, 0x73, 0xff, //0x00003170 movsbl $-1(%rbx), %esi + 0x83, 0xfe, 0x20, //0x00003174 cmpl $32, %esi + 0x0f, 0x87, 0x3e, 0x00, 0x00, 0x00, //0x00003177 ja LBB11_26 + 0x48, 0x0f, 0xa3, 0xf2, //0x0000317d btq %rsi, %rdx + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00003181 jae LBB11_26 + 0x48, 0xff, 0xc3, //0x00003187 incq %rbx + 0x48, 0xff, 0xc0, //0x0000318a incq %rax + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000318d jne LBB11_20 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00003193 jmp LBB11_25 + //0x00003198 LBB11_23 + 0x48, 0x89, 0x4d, 0xd0, //0x00003198 movq %rcx, $-48(%rbp) + 0x49, 0x89, 0xcc, //0x0000319c movq %rcx, %r12 + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x0000319f jmp LBB11_32 + //0x000031a4 LBB11_24 + 0x4c, 0x01, 0xe9, //0x000031a4 addq %r13, %rcx + //0x000031a7 LBB11_25 + 0x4c, 0x29, 0xe9, //0x000031a7 subq %r13, %rcx + 0x48, 0x89, 0xcb, //0x000031aa movq %rcx, %rbx + 0x4c, 0x39, 0xfb, //0x000031ad cmpq %r15, %rbx + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000031b0 jb LBB11_27 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x000031b6 jmp LBB11_32 + //0x000031bb LBB11_26 + 0x4c, 0x89, 0xe8, //0x000031bb movq %r13, %rax + 0x48, 0xf7, 0xd0, //0x000031be notq %rax + 0x48, 0x01, 0xc3, //0x000031c1 addq %rax, %rbx + 0x4c, 0x39, 0xfb, //0x000031c4 cmpq %r15, %rbx + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x000031c7 jae LBB11_32 + //0x000031cd LBB11_27 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000031cd movb (%r13,%rbx), %cl + //0x000031d2 LBB11_28 + 0x4c, 0x8d, 0x63, 0x01, //0x000031d2 leaq $1(%rbx), %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x000031d6 movq %r12, $-48(%rbp) + 0x0f, 0xbe, 0xc1, //0x000031da movsbl %cl, %eax + 0x83, 0xf8, 0x7d, //0x000031dd cmpl $125, %eax + 0x0f, 0x87, 0xc4, 0x00, 0x00, 0x00, //0x000031e0 ja LBB11_41 + 0x4d, 0x8d, 0x74, 0x1d, 0x00, //0x000031e6 leaq (%r13,%rbx), %r14 + 0x48, 0x8d, 0x15, 0x72, 0x03, 0x00, 0x00, //0x000031eb leaq $882(%rip), %rdx /* LJTI11_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000031f2 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000031f6 addq %rdx, %rax + 0xff, 0xe0, //0x000031f9 jmpq *%rax + //0x000031fb LBB11_30 + 0x48, 0x89, 0x5d, 0xd0, //0x000031fb movq %rbx, $-48(%rbp) + 0x41, 0xf6, 0xc0, 0x02, //0x000031ff testb $2, %r8b + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00003203 jne LBB11_35 + 0x48, 0x8d, 0x7d, 0xb0, //0x00003209 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd0, //0x0000320d leaq $-48(%rbp), %rsi + 0x4c, 0x89, 0xca, //0x00003211 movq %r9, %rdx + 0xe8, 0x67, 0x0b, 0x00, 0x00, //0x00003214 callq _vnumber + 0x48, 0x8b, 0x5d, 0xd0, //0x00003219 movq $-48(%rbp), %rbx + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000321d jmp LBB11_34 + //0x00003222 LBB11_32 + 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x00003222 movq $1, (%r9) + //0x00003229 LBB11_33 + 0x4c, 0x89, 0xe3, //0x00003229 movq %r12, %rbx + //0x0000322c LBB11_34 + 0x48, 0x89, 0xd8, //0x0000322c movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x28, //0x0000322f addq $40, %rsp + 0x5b, //0x00003233 popq %rbx + 0x41, 0x5c, //0x00003234 popq %r12 + 0x41, 0x5d, //0x00003236 popq %r13 + 0x41, 0x5e, //0x00003238 popq %r14 + 0x41, 0x5f, //0x0000323a popq %r15 + 0x5d, //0x0000323c popq %rbp + 0xc3, //0x0000323d retq + //0x0000323e LBB11_35 + 0x31, 0xc0, //0x0000323e xorl %eax, %eax + 0x80, 0xf9, 0x2d, //0x00003240 cmpb $45, %cl + 0x0f, 0x94, 0xc0, //0x00003243 sete %al + 0x49, 0x01, 0xc6, //0x00003246 addq %rax, %r14 + 0x49, 0x29, 0xc7, //0x00003249 subq %rax, %r15 + 0x0f, 0x84, 0xda, 0x02, 0x00, 0x00, //0x0000324c je LBB11_85 + 0x4c, 0x89, 0x4d, 0xc8, //0x00003252 movq %r9, $-56(%rbp) + 0x4c, 0x39, 0xfb, //0x00003256 cmpq %r15, %rbx + 0x0f, 0x83, 0x0d, 0x00, 0x00, 0x00, //0x00003259 jae LBB11_38 + 0x41, 0x8a, 0x06, //0x0000325f movb (%r14), %al + 0x04, 0xd0, //0x00003262 addb $-48, %al + 0x3c, 0x0a, //0x00003264 cmpb $10, %al + 0x0f, 0x83, 0xd9, 0x02, 0x00, 0x00, //0x00003266 jae LBB11_87 + //0x0000326c LBB11_38 + 0x4c, 0x89, 0xf7, //0x0000326c movq %r14, %rdi + 0x4c, 0x89, 0xfe, //0x0000326f movq %r15, %rsi + 0xe8, 0x09, 0x1e, 0x00, 0x00, //0x00003272 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00003277 testq %rax, %rax + 0x0f, 0x88, 0xbf, 0x02, 0x00, 0x00, //0x0000327a js LBB11_86 + 0x49, 0x01, 0xc6, //0x00003280 addq %rax, %r14 + 0x4d, 0x29, 0xee, //0x00003283 subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003286 movq %r14, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x0000328a testq %r12, %r12 + 0x4c, 0x8b, 0x4d, 0xc8, //0x0000328d movq $-56(%rbp), %r9 + 0x0f, 0x8e, 0xc0, 0x02, 0x00, 0x00, //0x00003291 jle LBB11_88 + 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003297 movq $8, (%r9) + 0x49, 0x89, 0x59, 0x18, //0x0000329e movq %rbx, $24(%r9) + 0x4c, 0x89, 0xf3, //0x000032a2 movq %r14, %rbx + 0xe9, 0x82, 0xff, 0xff, 0xff, //0x000032a5 jmp LBB11_34 + //0x000032aa LBB11_41 + 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x000032aa movq $-2, (%r9) + 0xe9, 0x76, 0xff, 0xff, 0xff, //0x000032b1 jmp LBB11_34 + //0x000032b6 LBB11_42 + 0x4d, 0x89, 0xce, //0x000032b6 movq %r9, %r14 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000032b9 movq $-1, $-64(%rbp) + 0x48, 0x8d, 0x7d, 0xb0, //0x000032c1 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc0, //0x000032c5 leaq $-64(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x000032c9 movq %r12, %rsi + 0x4c, 0x89, 0xc1, //0x000032cc movq %r8, %rcx + 0xe8, 0x3c, 0x05, 0x00, 0x00, //0x000032cf callq _advance_string + 0x48, 0x89, 0xc3, //0x000032d4 movq %rax, %rbx + 0x48, 0x85, 0xc0, //0x000032d7 testq %rax, %rax + 0x0f, 0x88, 0x41, 0x01, 0x00, 0x00, //0x000032da js LBB11_61 + 0x48, 0x89, 0x5d, 0xd0, //0x000032e0 movq %rbx, $-48(%rbp) + 0x4d, 0x89, 0x66, 0x10, //0x000032e4 movq %r12, $16(%r14) + 0x48, 0x8b, 0x45, 0xc0, //0x000032e8 movq $-64(%rbp), %rax + 0x48, 0x39, 0xd8, //0x000032ec cmpq %rbx, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000032ef movq $-1, %rcx + 0x48, 0x0f, 0x4c, 0xc8, //0x000032f6 cmovlq %rax, %rcx + 0x49, 0x89, 0x4e, 0x18, //0x000032fa movq %rcx, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000032fe movl $7, %eax + 0x49, 0x89, 0x06, //0x00003303 movq %rax, (%r14) + 0xe9, 0x21, 0xff, 0xff, 0xff, //0x00003306 jmp LBB11_34 + //0x0000330b LBB11_44 + 0x31, 0xc0, //0x0000330b xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x0000330d testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00003310 setns %al + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x00003313 movl $11, %ecx + 0xe9, 0xee, 0x00, 0x00, 0x00, //0x00003318 jmp LBB11_60 + //0x0000331d LBB11_45 + 0x31, 0xc0, //0x0000331d xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x0000331f testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00003322 setns %al + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x00003325 movl $10, %ecx + 0xe9, 0xdc, 0x00, 0x00, 0x00, //0x0000332a jmp LBB11_60 + //0x0000332f LBB11_46 + 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x0000332f movq $5, (%r9) + 0xe9, 0xee, 0xfe, 0xff, 0xff, //0x00003336 jmp LBB11_33 + //0x0000333b LBB11_47 + 0x31, 0xc0, //0x0000333b xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x0000333d testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00003340 setns %al + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00003343 movl $12, %ecx + 0xe9, 0xbe, 0x00, 0x00, 0x00, //0x00003348 jmp LBB11_60 + //0x0000334d LBB11_48 + 0x49, 0x8d, 0x47, 0xfc, //0x0000334d leaq $-4(%r15), %rax + 0x48, 0x39, 0xc3, //0x00003351 cmpq %rax, %rbx + 0x0f, 0x83, 0x88, 0x00, 0x00, 0x00, //0x00003354 jae LBB11_57 + 0x43, 0x8b, 0x4c, 0x25, 0x00, //0x0000335a movl (%r13,%r12), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x0000335f cmpl $1702063201, %ecx + 0x0f, 0x85, 0xc5, 0x00, 0x00, 0x00, //0x00003365 jne LBB11_62 + 0x48, 0x83, 0xc3, 0x05, //0x0000336b addq $5, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x0000336f movq %rbx, $-48(%rbp) + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00003373 movl $4, %eax + 0x49, 0x89, 0xdf, //0x00003378 movq %rbx, %r15 + 0xe9, 0xa1, 0x01, 0x00, 0x00, //0x0000337b jmp LBB11_84 + //0x00003380 LBB11_51 + 0x49, 0x8d, 0x47, 0xfd, //0x00003380 leaq $-3(%r15), %rax + 0x48, 0x39, 0xc3, //0x00003384 cmpq %rax, %rbx + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x00003387 jae LBB11_57 + 0x41, 0x8b, 0x0e, //0x0000338d movl (%r14), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x00003390 cmpl $1819047278, %ecx + 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x00003396 jne LBB11_66 + 0x48, 0x83, 0xc3, 0x04, //0x0000339c addq $4, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000033a0 movq %rbx, $-48(%rbp) + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000033a4 movl $2, %eax + 0x49, 0x89, 0xdf, //0x000033a9 movq %rbx, %r15 + 0xe9, 0x70, 0x01, 0x00, 0x00, //0x000033ac jmp LBB11_84 + //0x000033b1 LBB11_54 + 0x49, 0x8d, 0x47, 0xfd, //0x000033b1 leaq $-3(%r15), %rax + 0x48, 0x39, 0xc3, //0x000033b5 cmpq %rax, %rbx + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x000033b8 jae LBB11_57 + 0x41, 0x8b, 0x0e, //0x000033be movl (%r14), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x000033c1 cmpl $1702195828, %ecx + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x000033c7 jne LBB11_70 + 0x48, 0x83, 0xc3, 0x04, //0x000033cd addq $4, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000033d1 movq %rbx, $-48(%rbp) + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000033d5 movl $3, %eax + 0x49, 0x89, 0xdf, //0x000033da movq %rbx, %r15 + 0xe9, 0x3f, 0x01, 0x00, 0x00, //0x000033dd jmp LBB11_84 + //0x000033e2 LBB11_57 + 0x4c, 0x89, 0x7d, 0xd0, //0x000033e2 movq %r15, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000033e6 movq $-1, %rax + 0xe9, 0x2f, 0x01, 0x00, 0x00, //0x000033ed jmp LBB11_84 + //0x000033f2 LBB11_58 + 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000033f2 movq $6, (%r9) + 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x000033f9 jmp LBB11_33 + //0x000033fe LBB11_59 + 0x31, 0xc0, //0x000033fe xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00003400 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00003403 setns %al + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x00003406 movl $13, %ecx + //0x0000340b LBB11_60 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x0000340b movq $-2, %rdx + 0x48, 0x0f, 0x48, 0xd1, //0x00003412 cmovsq %rcx, %rdx + 0x49, 0x89, 0x11, //0x00003416 movq %rdx, (%r9) + 0x49, 0x29, 0xc4, //0x00003419 subq %rax, %r12 + 0xe9, 0x08, 0xfe, 0xff, 0xff, //0x0000341c jmp LBB11_33 + //0x00003421 LBB11_61 + 0x4c, 0x89, 0x7d, 0xd0, //0x00003421 movq %r15, $-48(%rbp) + 0x49, 0x89, 0x1e, //0x00003425 movq %rbx, (%r14) + 0x4c, 0x89, 0xfb, //0x00003428 movq %r15, %rbx + 0xe9, 0xfc, 0xfd, 0xff, 0xff, //0x0000342b jmp LBB11_34 + //0x00003430 LBB11_62 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003430 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00003437 cmpb $97, %cl + 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x0000343a jne LBB11_74 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x00003440 cmpb $108, $2(%r13,%rbx) + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x00003446 jne LBB11_81 + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x73, //0x0000344c cmpb $115, $3(%r13,%rbx) + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003452 jne LBB11_79 + 0x4c, 0x8d, 0x7b, 0x04, //0x00003458 leaq $4(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x05, //0x0000345c leaq $5(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x04, 0x65, //0x00003460 cmpb $101, $4(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x00003466 cmoveq %rcx, %r15 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000346a jmp LBB11_83 + //0x0000346f LBB11_66 + 0x48, 0x89, 0x5d, 0xd0, //0x0000346f movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003473 movq $-2, %rax + 0x80, 0xf9, 0x6e, //0x0000347a cmpb $110, %cl + 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x0000347d jne LBB11_76 + 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x75, //0x00003483 cmpb $117, $1(%r13,%rbx) + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00003489 jne LBB11_77 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x0000348f cmpb $108, $2(%r13,%rbx) + 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x00003495 jne LBB11_81 + 0x4c, 0x8d, 0x7b, 0x03, //0x0000349b leaq $3(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x04, //0x0000349f leaq $4(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x6c, //0x000034a3 cmpb $108, $3(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x000034a9 cmoveq %rcx, %r15 + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x000034ad jmp LBB11_83 + //0x000034b2 LBB11_70 + 0x48, 0x89, 0x5d, 0xd0, //0x000034b2 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000034b6 movq $-2, %rax + 0x80, 0xf9, 0x74, //0x000034bd cmpb $116, %cl + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034c0 jne LBB11_76 + 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x72, //0x000034c6 cmpb $114, $1(%r13,%rbx) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000034cc jne LBB11_77 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x75, //0x000034d2 cmpb $117, $2(%r13,%rbx) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034d8 jne LBB11_81 + 0x4c, 0x8d, 0x7b, 0x03, //0x000034de leaq $3(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x04, //0x000034e2 leaq $4(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x65, //0x000034e6 cmpb $101, $3(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x000034ec cmoveq %rcx, %r15 + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000034f0 jmp LBB11_83 + //0x000034f5 LBB11_76 + 0x49, 0x89, 0xdf, //0x000034f5 movq %rbx, %r15 + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000034f8 jmp LBB11_84 + //0x000034fd LBB11_74 + 0x4d, 0x89, 0xe7, //0x000034fd movq %r12, %r15 + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00003500 jmp LBB11_84 + //0x00003505 LBB11_77 + 0x48, 0xff, 0xc3, //0x00003505 incq %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00003508 jmp LBB11_82 + //0x0000350d LBB11_81 + 0x48, 0x83, 0xc3, 0x02, //0x0000350d addq $2, %rbx + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00003511 jmp LBB11_82 + //0x00003516 LBB11_79 + 0x48, 0x83, 0xc3, 0x03, //0x00003516 addq $3, %rbx + //0x0000351a LBB11_82 + 0x49, 0x89, 0xdf, //0x0000351a movq %rbx, %r15 + //0x0000351d LBB11_83 + 0x4c, 0x89, 0x7d, 0xd0, //0x0000351d movq %r15, $-48(%rbp) + //0x00003521 LBB11_84 + 0x49, 0x89, 0x01, //0x00003521 movq %rax, (%r9) + 0x4c, 0x89, 0xfb, //0x00003524 movq %r15, %rbx + 0xe9, 0x00, 0xfd, 0xff, 0xff, //0x00003527 jmp LBB11_34 + //0x0000352c LBB11_85 + 0x4d, 0x29, 0xee, //0x0000352c subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x0000352f movq %r14, $-48(%rbp) + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00003533 movq $-1, %rbx + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x0000353a jmp LBB11_88 + //0x0000353f LBB11_86 + 0x48, 0xf7, 0xd0, //0x0000353f notq %rax + 0x49, 0x01, 0xc6, //0x00003542 addq %rax, %r14 + //0x00003545 LBB11_87 + 0x4d, 0x29, 0xee, //0x00003545 subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003548 movq %r14, $-48(%rbp) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000354c movq $-2, %rbx + 0x4c, 0x8b, 0x4d, 0xc8, //0x00003553 movq $-56(%rbp), %r9 + //0x00003557 LBB11_88 + 0x49, 0x89, 0x19, //0x00003557 movq %rbx, (%r9) + 0x4c, 0x89, 0xf3, //0x0000355a movq %r14, %rbx + 0xe9, 0xca, 0xfc, 0xff, 0xff, //0x0000355d jmp LBB11_34 + 0x90, 0x90, //0x00003562 .p2align 2, 0x90 + // // .set L11_0_set_32, LBB11_32-LJTI11_0 + // // .set L11_0_set_41, LBB11_41-LJTI11_0 + // // .set L11_0_set_42, LBB11_42-LJTI11_0 + // // .set L11_0_set_44, LBB11_44-LJTI11_0 + // // .set L11_0_set_30, LBB11_30-LJTI11_0 + // // .set L11_0_set_45, LBB11_45-LJTI11_0 + // // .set L11_0_set_46, LBB11_46-LJTI11_0 + // // .set L11_0_set_47, LBB11_47-LJTI11_0 + // // .set L11_0_set_48, LBB11_48-LJTI11_0 + // // .set L11_0_set_51, LBB11_51-LJTI11_0 + // // .set L11_0_set_54, LBB11_54-LJTI11_0 + // // .set L11_0_set_58, LBB11_58-LJTI11_0 + // // .set L11_0_set_59, LBB11_59-LJTI11_0 + //0x00003564 LJTI11_0 + 0xbe, 0xfc, 0xff, 0xff, //0x00003564 .long L11_0_set_32 + 0x46, 0xfd, 0xff, 0xff, //0x00003568 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000356c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003570 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003574 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003578 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000357c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003580 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003584 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003588 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000358c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003590 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003594 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003598 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000359c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035a0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035a4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035a8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035ac .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035b0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035b4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035b8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035bc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035c0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035c4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035c8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035cc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035d0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035d4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035d8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035dc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035e0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035e4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035e8 .long L11_0_set_41 + 0x52, 0xfd, 0xff, 0xff, //0x000035ec .long L11_0_set_42 + 0x46, 0xfd, 0xff, 0xff, //0x000035f0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035f4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035f8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000035fc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003600 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003604 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003608 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000360c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003610 .long L11_0_set_41 + 0xa7, 0xfd, 0xff, 0xff, //0x00003614 .long L11_0_set_44 + 0x97, 0xfc, 0xff, 0xff, //0x00003618 .long L11_0_set_30 + 0x46, 0xfd, 0xff, 0xff, //0x0000361c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003620 .long L11_0_set_41 + 0x97, 0xfc, 0xff, 0xff, //0x00003624 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003628 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x0000362c .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003630 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003634 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003638 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x0000363c .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003640 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003644 .long L11_0_set_30 + 0x97, 0xfc, 0xff, 0xff, //0x00003648 .long L11_0_set_30 + 0xb9, 0xfd, 0xff, 0xff, //0x0000364c .long L11_0_set_45 + 0x46, 0xfd, 0xff, 0xff, //0x00003650 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003654 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003658 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000365c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003660 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003664 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003668 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000366c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003670 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003674 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003678 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000367c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003680 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003684 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003688 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000368c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003690 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003694 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003698 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000369c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036a0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036a4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036a8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036ac .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036b0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036b4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036b8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036bc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036c0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036c4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036c8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036cc .long L11_0_set_41 + 0xcb, 0xfd, 0xff, 0xff, //0x000036d0 .long L11_0_set_46 + 0x46, 0xfd, 0xff, 0xff, //0x000036d4 .long L11_0_set_41 + 0xd7, 0xfd, 0xff, 0xff, //0x000036d8 .long L11_0_set_47 + 0x46, 0xfd, 0xff, 0xff, //0x000036dc .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036e0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036e4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036e8 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036ec .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036f0 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036f4 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000036f8 .long L11_0_set_41 + 0xe9, 0xfd, 0xff, 0xff, //0x000036fc .long L11_0_set_48 + 0x46, 0xfd, 0xff, 0xff, //0x00003700 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003704 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003708 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000370c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003710 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003714 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003718 .long L11_0_set_41 + 0x1c, 0xfe, 0xff, 0xff, //0x0000371c .long L11_0_set_51 + 0x46, 0xfd, 0xff, 0xff, //0x00003720 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003724 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003728 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000372c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003730 .long L11_0_set_41 + 0x4d, 0xfe, 0xff, 0xff, //0x00003734 .long L11_0_set_54 + 0x46, 0xfd, 0xff, 0xff, //0x00003738 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000373c .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003740 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003744 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003748 .long L11_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000374c .long L11_0_set_41 + 0x8e, 0xfe, 0xff, 0xff, //0x00003750 .long L11_0_set_58 + 0x46, 0xfd, 0xff, 0xff, //0x00003754 .long L11_0_set_41 + 0x9a, 0xfe, 0xff, 0xff, //0x00003758 .long L11_0_set_59 + 0x90, 0x90, 0x90, 0x90, //0x0000375c .p2align 4, 0x90 + //0x00003760 _vstring + 0x55, //0x00003760 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003761 movq %rsp, %rbp + 0x41, 0x57, //0x00003764 pushq %r15 + 0x41, 0x56, //0x00003766 pushq %r14 + 0x41, 0x54, //0x00003768 pushq %r12 + 0x53, //0x0000376a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000376b subq $16, %rsp + 0x49, 0x89, 0xd6, //0x0000376f movq %rdx, %r14 + 0x48, 0x89, 0xf3, //0x00003772 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00003775 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003778 movq $-1, $-40(%rbp) + 0x4c, 0x8b, 0x26, //0x00003780 movq (%rsi), %r12 + 0x48, 0x8d, 0x55, 0xd8, //0x00003783 leaq $-40(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00003787 movq %r12, %rsi + 0xe8, 0x81, 0x00, 0x00, 0x00, //0x0000378a callq _advance_string + 0x48, 0x85, 0xc0, //0x0000378f testq %rax, %rax + 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003792 js LBB12_1 + 0x48, 0x89, 0x03, //0x00003798 movq %rax, (%rbx) + 0x4d, 0x89, 0x66, 0x10, //0x0000379b movq %r12, $16(%r14) + 0x48, 0x8b, 0x4d, 0xd8, //0x0000379f movq $-40(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x000037a3 cmpq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000037a6 movq $-1, %rax + 0x48, 0x0f, 0x4c, 0xc1, //0x000037ad cmovlq %rcx, %rax + 0x49, 0x89, 0x46, 0x18, //0x000037b1 movq %rax, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000037b5 movl $7, %eax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000037ba jmp LBB12_3 + //0x000037bf LBB12_1 + 0x49, 0x8b, 0x4f, 0x08, //0x000037bf movq $8(%r15), %rcx + 0x48, 0x89, 0x0b, //0x000037c3 movq %rcx, (%rbx) + //0x000037c6 LBB12_3 + 0x49, 0x89, 0x06, //0x000037c6 movq %rax, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x000037c9 addq $16, %rsp + 0x5b, //0x000037cd popq %rbx + 0x41, 0x5c, //0x000037ce popq %r12 + 0x41, 0x5e, //0x000037d0 popq %r14 + 0x41, 0x5f, //0x000037d2 popq %r15 + 0x5d, //0x000037d4 popq %rbp + 0xc3, //0x000037d5 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000037d6 .p2align 4, 0x00 + //0x000037e0 LCPI13_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000037e0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000037f0 LCPI13_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000037f0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00003800 LCPI13_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00003800 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00003810 .p2align 4, 0x90 + //0x00003810 _advance_string + 0xf6, 0xc1, 0x20, //0x00003810 testb $32, %cl + 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00003813 jne LBB13_2 + 0xe9, 0x82, 0x59, 0x00, 0x00, //0x00003819 jmp _advance_string_default + //0x0000381e LBB13_2 + 0x55, //0x0000381e pushq %rbp + 0x48, 0x89, 0xe5, //0x0000381f movq %rsp, %rbp + 0x41, 0x57, //0x00003822 pushq %r15 + 0x41, 0x56, //0x00003824 pushq %r14 + 0x41, 0x55, //0x00003826 pushq %r13 + 0x41, 0x54, //0x00003828 pushq %r12 + 0x53, //0x0000382a pushq %rbx + 0x50, //0x0000382b pushq %rax + 0x4c, 0x8b, 0x67, 0x08, //0x0000382c movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x00003830 subq %rsi, %r12 + 0x0f, 0x84, 0xf3, 0x04, 0x00, 0x00, //0x00003833 je LBB13_45 + 0x48, 0x8b, 0x07, //0x00003839 movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x0000383c movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc6, //0x00003840 addq %rax, %rsi + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003843 movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x0000384a cmpq $64, %r12 + 0x0f, 0x82, 0x17, 0x04, 0x00, 0x00, //0x0000384e jb LBB13_46 + 0x45, 0x89, 0xe1, //0x00003854 movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00003857 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000385b movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00003862 xorl %r15d, %r15d + 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x72, 0xff, 0xff, 0xff, //0x00003865 movdqa $-142(%rip), %xmm8 /* LCPI13_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x7a, 0xff, 0xff, 0xff, //0x0000386e movdqa $-134(%rip), %xmm1 /* LCPI13_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x82, 0xff, 0xff, 0xff, //0x00003876 movdqa $-126(%rip), %xmm2 /* LCPI13_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x0000387e pcmpeqd %xmm3, %xmm3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003882 .p2align 4, 0x90 + //0x00003890 LBB13_5 + 0xf3, 0x0f, 0x6f, 0x3e, //0x00003890 movdqu (%rsi), %xmm7 + 0xf3, 0x0f, 0x6f, 0x76, 0x10, //0x00003894 movdqu $16(%rsi), %xmm6 + 0xf3, 0x0f, 0x6f, 0x6e, 0x20, //0x00003899 movdqu $32(%rsi), %xmm5 + 0xf3, 0x0f, 0x6f, 0x66, 0x30, //0x0000389e movdqu $48(%rsi), %xmm4 + 0x66, 0x0f, 0x6f, 0xc7, //0x000038a3 movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038a7 pcmpeqb %xmm8, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xd8, //0x000038ac pmovmskb %xmm0, %r11d + 0x66, 0x0f, 0x6f, 0xc6, //0x000038b1 movdqa %xmm6, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038b5 pcmpeqb %xmm8, %xmm0 + 0x66, 0x0f, 0xd7, 0xc8, //0x000038ba pmovmskb %xmm0, %ecx + 0x66, 0x0f, 0x6f, 0xc5, //0x000038be movdqa %xmm5, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038c2 pcmpeqb %xmm8, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xd0, //0x000038c7 pmovmskb %xmm0, %r10d + 0x66, 0x0f, 0x6f, 0xc4, //0x000038cc movdqa %xmm4, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038d0 pcmpeqb %xmm8, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xe8, //0x000038d5 pmovmskb %xmm0, %r13d + 0x66, 0x0f, 0x6f, 0xc7, //0x000038da movdqa %xmm7, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x000038de pcmpeqb %xmm1, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xc0, //0x000038e2 pmovmskb %xmm0, %r8d + 0x66, 0x0f, 0x6f, 0xc6, //0x000038e7 movdqa %xmm6, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x000038eb pcmpeqb %xmm1, %xmm0 + 0x66, 0x0f, 0xd7, 0xc0, //0x000038ef pmovmskb %xmm0, %eax + 0x66, 0x0f, 0x6f, 0xc5, //0x000038f3 movdqa %xmm5, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x000038f7 pcmpeqb %xmm1, %xmm0 + 0x48, 0xc1, 0xe1, 0x10, //0x000038fb shlq $16, %rcx + 0x49, 0x09, 0xcb, //0x000038ff orq %rcx, %r11 + 0x66, 0x0f, 0xd7, 0xd8, //0x00003902 pmovmskb %xmm0, %ebx + 0x66, 0x0f, 0x6f, 0xc4, //0x00003906 movdqa %xmm4, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x0000390a pcmpeqb %xmm1, %xmm0 + 0x49, 0xc1, 0xe2, 0x20, //0x0000390e shlq $32, %r10 + 0x4d, 0x09, 0xd3, //0x00003912 orq %r10, %r11 + 0x66, 0x0f, 0xd7, 0xf8, //0x00003915 pmovmskb %xmm0, %edi + 0x66, 0x0f, 0x6f, 0xc2, //0x00003919 movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc7, //0x0000391d pcmpgtb %xmm7, %xmm0 + 0x66, 0x0f, 0x64, 0xfb, //0x00003921 pcmpgtb %xmm3, %xmm7 + 0x66, 0x0f, 0xdb, 0xf8, //0x00003925 pand %xmm0, %xmm7 + 0x48, 0xc1, 0xe0, 0x10, //0x00003929 shlq $16, %rax + 0x49, 0x09, 0xc0, //0x0000392d orq %rax, %r8 + 0x66, 0x0f, 0xd7, 0xcf, //0x00003930 pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xc2, //0x00003934 movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc6, //0x00003938 pcmpgtb %xmm6, %xmm0 + 0x66, 0x0f, 0x64, 0xf3, //0x0000393c pcmpgtb %xmm3, %xmm6 + 0x66, 0x0f, 0xdb, 0xf0, //0x00003940 pand %xmm0, %xmm6 + 0x48, 0xc1, 0xe3, 0x20, //0x00003944 shlq $32, %rbx + 0x49, 0x09, 0xd8, //0x00003948 orq %rbx, %r8 + 0x66, 0x0f, 0xd7, 0xc6, //0x0000394b pmovmskb %xmm6, %eax + 0x66, 0x0f, 0x6f, 0xc2, //0x0000394f movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc5, //0x00003953 pcmpgtb %xmm5, %xmm0 + 0x66, 0x0f, 0x64, 0xeb, //0x00003957 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xe8, //0x0000395b pand %xmm0, %xmm5 + 0x48, 0xc1, 0xe7, 0x30, //0x0000395f shlq $48, %rdi + 0x49, 0x09, 0xf8, //0x00003963 orq %rdi, %r8 + 0x66, 0x0f, 0xd7, 0xdd, //0x00003966 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x6f, 0xc2, //0x0000396a movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc4, //0x0000396e pcmpgtb %xmm4, %xmm0 + 0x66, 0x0f, 0x64, 0xe3, //0x00003972 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe0, //0x00003976 pand %xmm0, %xmm4 + 0x48, 0xc1, 0xe0, 0x10, //0x0000397a shlq $16, %rax + 0x48, 0x09, 0xc1, //0x0000397e orq %rax, %rcx + 0x66, 0x0f, 0xd7, 0xc4, //0x00003981 pmovmskb %xmm4, %eax + 0x49, 0xc1, 0xe5, 0x30, //0x00003985 shlq $48, %r13 + 0x48, 0xc1, 0xe3, 0x20, //0x00003989 shlq $32, %rbx + 0x49, 0x83, 0xfe, 0xff, //0x0000398d cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003991 jne LBB13_7 + 0x4d, 0x85, 0xc0, //0x00003997 testq %r8, %r8 + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x0000399a jne LBB13_12 + //0x000039a0 LBB13_7 + 0x48, 0xc1, 0xe0, 0x30, //0x000039a0 shlq $48, %rax + 0x48, 0x09, 0xd9, //0x000039a4 orq %rbx, %rcx + 0x4d, 0x09, 0xeb, //0x000039a7 orq %r13, %r11 + 0x4c, 0x89, 0xc7, //0x000039aa movq %r8, %rdi + 0x4c, 0x09, 0xff, //0x000039ad orq %r15, %rdi + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000039b0 jne LBB13_11 + 0x48, 0x09, 0xc1, //0x000039b6 orq %rax, %rcx + 0x4d, 0x85, 0xdb, //0x000039b9 testq %r11, %r11 + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x000039bc jne LBB13_13 + //0x000039c2 LBB13_9 + 0x48, 0x85, 0xc9, //0x000039c2 testq %rcx, %rcx + 0x0f, 0x85, 0xde, 0x00, 0x00, 0x00, //0x000039c5 jne LBB13_19 + 0x48, 0x83, 0xc6, 0x40, //0x000039cb addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x000039cf addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x000039d3 cmpq $63, %r12 + 0x0f, 0x87, 0xb3, 0xfe, 0xff, 0xff, //0x000039d7 ja LBB13_5 + 0xe9, 0xeb, 0x00, 0x00, 0x00, //0x000039dd jmp LBB13_21 + //0x000039e2 LBB13_11 + 0x4d, 0x89, 0xfd, //0x000039e2 movq %r15, %r13 + 0x49, 0xf7, 0xd5, //0x000039e5 notq %r13 + 0x4d, 0x21, 0xc5, //0x000039e8 andq %r8, %r13 + 0x4f, 0x8d, 0x54, 0x2d, 0x00, //0x000039eb leaq (%r13,%r13), %r10 + 0x4d, 0x09, 0xfa, //0x000039f0 orq %r15, %r10 + 0x4c, 0x89, 0xd3, //0x000039f3 movq %r10, %rbx + 0x48, 0xf7, 0xd3, //0x000039f6 notq %rbx + 0x4c, 0x21, 0xc3, //0x000039f9 andq %r8, %rbx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000039fc movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfb, //0x00003a06 andq %rdi, %rbx + 0x45, 0x31, 0xff, //0x00003a09 xorl %r15d, %r15d + 0x4c, 0x01, 0xeb, //0x00003a0c addq %r13, %rbx + 0x41, 0x0f, 0x92, 0xc7, //0x00003a0f setb %r15b + 0x48, 0x01, 0xdb, //0x00003a13 addq %rbx, %rbx + 0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003a16 movabsq $6148914691236517205, %rdi + 0x48, 0x31, 0xfb, //0x00003a20 xorq %rdi, %rbx + 0x4c, 0x21, 0xd3, //0x00003a23 andq %r10, %rbx + 0x48, 0xf7, 0xd3, //0x00003a26 notq %rbx + 0x49, 0x21, 0xdb, //0x00003a29 andq %rbx, %r11 + 0x48, 0x09, 0xc1, //0x00003a2c orq %rax, %rcx + 0x4d, 0x85, 0xdb, //0x00003a2f testq %r11, %r11 + 0x0f, 0x84, 0x8a, 0xff, 0xff, 0xff, //0x00003a32 je LBB13_9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00003a38 jmp LBB13_13 + //0x00003a3d LBB13_12 + 0x48, 0x89, 0xf7, //0x00003a3d movq %rsi, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x00003a40 subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xf0, //0x00003a44 bsfq %r8, %r14 + 0x49, 0x01, 0xfe, //0x00003a48 addq %rdi, %r14 + 0x4c, 0x89, 0x32, //0x00003a4b movq %r14, (%rdx) + 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x00003a4e jmp LBB13_7 + //0x00003a53 LBB13_13 + 0x49, 0x0f, 0xbc, 0xc3, //0x00003a53 bsfq %r11, %rax + 0x48, 0x85, 0xc9, //0x00003a57 testq %rcx, %rcx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00003a5a je LBB13_17 + 0x48, 0x0f, 0xbc, 0xc9, //0x00003a60 bsfq %rcx, %rcx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a64 subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc1, //0x00003a68 cmpq %rax, %rcx + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00003a6b jb LBB13_18 + //0x00003a71 LBB13_15 + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00003a71 leaq $1(%rsi,%rax), %rax + //0x00003a76 LBB13_16 + 0x48, 0x83, 0xc4, 0x08, //0x00003a76 addq $8, %rsp + 0x5b, //0x00003a7a popq %rbx + 0x41, 0x5c, //0x00003a7b popq %r12 + 0x41, 0x5d, //0x00003a7d popq %r13 + 0x41, 0x5e, //0x00003a7f popq %r14 + 0x41, 0x5f, //0x00003a81 popq %r15 + 0x5d, //0x00003a83 popq %rbp + 0xc3, //0x00003a84 retq + //0x00003a85 LBB13_17 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003a85 movl $64, %ecx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a8a subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc1, //0x00003a8e cmpq %rax, %rcx + 0x0f, 0x83, 0xda, 0xff, 0xff, 0xff, //0x00003a91 jae LBB13_15 + //0x00003a97 LBB13_18 + 0x48, 0x01, 0xf1, //0x00003a97 addq %rsi, %rcx + 0x48, 0x89, 0x0a, //0x00003a9a movq %rcx, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003a9d movq $-2, %rax + 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003aa4 jmp LBB13_16 + //0x00003aa9 LBB13_19 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003aa9 movq $-2, %rax + 0x49, 0x83, 0xfe, 0xff, //0x00003ab0 cmpq $-1, %r14 + 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x00003ab4 jne LBB13_16 + 0x48, 0x0f, 0xbc, 0xc9, //0x00003aba bsfq %rcx, %rcx + 0x48, 0x2b, 0x75, 0xd0, //0x00003abe subq $-48(%rbp), %rsi + 0x48, 0x01, 0xce, //0x00003ac2 addq %rcx, %rsi + 0x48, 0x89, 0x32, //0x00003ac5 movq %rsi, (%rdx) + 0xe9, 0xa9, 0xff, 0xff, 0xff, //0x00003ac8 jmp LBB13_16 + //0x00003acd LBB13_21 + 0x4d, 0x89, 0xcc, //0x00003acd movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00003ad0 cmpq $32, %r12 + 0x0f, 0x82, 0xff, 0x00, 0x00, 0x00, //0x00003ad4 jb LBB13_34 + //0x00003ada LBB13_22 + 0xf3, 0x0f, 0x6f, 0x06, //0x00003ada movdqu (%rsi), %xmm0 + 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x00003ade movdqu $16(%rsi), %xmm1 + 0x66, 0x0f, 0x6f, 0x15, 0xf5, 0xfc, 0xff, 0xff, //0x00003ae3 movdqa $-779(%rip), %xmm2 /* LCPI13_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00003aeb movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00003aef pcmpeqb %xmm2, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xc3, //0x00003af3 pmovmskb %xmm3, %r8d + 0x66, 0x0f, 0x74, 0xd1, //0x00003af8 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00003afc pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0x15, 0xe8, 0xfc, 0xff, 0xff, //0x00003b00 movdqa $-792(%rip), %xmm2 /* LCPI13_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00003b08 movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00003b0c pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00003b10 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xd1, //0x00003b14 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00003b18 pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0x15, 0xdc, 0xfc, 0xff, 0xff, //0x00003b1c movdqa $-804(%rip), %xmm2 /* LCPI13_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xda, //0x00003b24 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xd8, //0x00003b28 pcmpgtb %xmm0, %xmm3 + 0x66, 0x0f, 0x76, 0xe4, //0x00003b2c pcmpeqd %xmm4, %xmm4 + 0x66, 0x0f, 0x64, 0xc4, //0x00003b30 pcmpgtb %xmm4, %xmm0 + 0x66, 0x0f, 0xdb, 0xc3, //0x00003b34 pand %xmm3, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xc8, //0x00003b38 pmovmskb %xmm0, %r9d + 0x66, 0x0f, 0x64, 0xd1, //0x00003b3d pcmpgtb %xmm1, %xmm2 + 0x66, 0x0f, 0x64, 0xcc, //0x00003b41 pcmpgtb %xmm4, %xmm1 + 0x66, 0x0f, 0xdb, 0xca, //0x00003b45 pand %xmm2, %xmm1 + 0x66, 0x0f, 0xd7, 0xf9, //0x00003b49 pmovmskb %xmm1, %edi + 0x48, 0xc1, 0xe3, 0x10, //0x00003b4d shlq $16, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00003b51 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00003b55 orq %rax, %rcx + 0x49, 0x83, 0xfe, 0xff, //0x00003b58 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003b5c jne LBB13_24 + 0x48, 0x85, 0xc9, //0x00003b62 testq %rcx, %rcx + 0x0f, 0x85, 0x64, 0x01, 0x00, 0x00, //0x00003b65 jne LBB13_49 + //0x00003b6b LBB13_24 + 0x48, 0xc1, 0xe7, 0x10, //0x00003b6b shlq $16, %rdi + 0x4c, 0x09, 0xc3, //0x00003b6f orq %r8, %rbx + 0x48, 0x89, 0xc8, //0x00003b72 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00003b75 orq %r15, %rax + 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x00003b78 jne LBB13_47 + //0x00003b7e LBB13_25 + 0x4c, 0x09, 0xcf, //0x00003b7e orq %r9, %rdi + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00003b81 movl $64, %eax + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003b86 movl $64, %ecx + 0x48, 0x85, 0xdb, //0x00003b8b testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003b8e je LBB13_27 + 0x48, 0x0f, 0xbc, 0xcb, //0x00003b94 bsfq %rbx, %rcx + //0x00003b98 LBB13_27 + 0x4c, 0x0f, 0xbc, 0xcf, //0x00003b98 bsfq %rdi, %r9 + 0x48, 0x85, 0xff, //0x00003b9c testq %rdi, %rdi + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00003b9f je LBB13_29 + 0x4c, 0x89, 0xc8, //0x00003ba5 movq %r9, %rax + //0x00003ba8 LBB13_29 + 0x48, 0x85, 0xdb, //0x00003ba8 testq %rbx, %rbx + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003bab je LBB13_32 + 0x48, 0x2b, 0x75, 0xd0, //0x00003bb1 subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc8, //0x00003bb5 cmpq %rcx, %rax + 0x0f, 0x82, 0xff, 0x00, 0x00, 0x00, //0x00003bb8 jb LBB13_48 + 0x48, 0x8d, 0x44, 0x0e, 0x01, //0x00003bbe leaq $1(%rsi,%rcx), %rax + 0xe9, 0xae, 0xfe, 0xff, 0xff, //0x00003bc3 jmp LBB13_16 + //0x00003bc8 LBB13_32 + 0x48, 0x85, 0xff, //0x00003bc8 testq %rdi, %rdi + 0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x00003bcb jne LBB13_50 + 0x48, 0x83, 0xc6, 0x20, //0x00003bd1 addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x00003bd5 addq $-32, %r12 + //0x00003bd9 LBB13_34 + 0x4d, 0x85, 0xff, //0x00003bd9 testq %r15, %r15 + 0x0f, 0x85, 0x0f, 0x01, 0x00, 0x00, //0x00003bdc jne LBB13_51 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003be2 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00003be9 testq %r12, %r12 + 0x0f, 0x84, 0x84, 0xfe, 0xff, 0xff, //0x00003bec je LBB13_16 + //0x00003bf2 LBB13_36 + 0x0f, 0xb6, 0x0e, //0x00003bf2 movzbl (%rsi), %ecx + 0x80, 0xf9, 0x22, //0x00003bf5 cmpb $34, %cl + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00003bf8 je LBB13_44 + 0x80, 0xf9, 0x5c, //0x00003bfe cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003c01 je LBB13_41 + 0x80, 0xf9, 0x1f, //0x00003c07 cmpb $31, %cl + 0x0f, 0x86, 0x28, 0x01, 0x00, 0x00, //0x00003c0a jbe LBB13_55 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003c10 movq $-1, %rcx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00003c17 movl $1, %edi + //0x00003c1c LBB13_40 + 0x48, 0x01, 0xfe, //0x00003c1c addq %rdi, %rsi + 0x49, 0x01, 0xcc, //0x00003c1f addq %rcx, %r12 + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003c22 jne LBB13_36 + 0xe9, 0x49, 0xfe, 0xff, 0xff, //0x00003c28 jmp LBB13_16 + //0x00003c2d LBB13_41 + 0x49, 0x83, 0xfc, 0x01, //0x00003c2d cmpq $1, %r12 + 0x0f, 0x84, 0x3f, 0xfe, 0xff, 0xff, //0x00003c31 je LBB13_16 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003c37 movq $-2, %rcx + 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00003c3e movl $2, %edi + 0x49, 0x83, 0xfe, 0xff, //0x00003c43 cmpq $-1, %r14 + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00003c47 jne LBB13_40 + 0x49, 0x89, 0xf6, //0x00003c4d movq %rsi, %r14 + 0x4c, 0x2b, 0x75, 0xd0, //0x00003c50 subq $-48(%rbp), %r14 + 0x4c, 0x89, 0x32, //0x00003c54 movq %r14, (%rdx) + 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x00003c57 jmp LBB13_40 + //0x00003c5c LBB13_44 + 0x48, 0x2b, 0x75, 0xd0, //0x00003c5c subq $-48(%rbp), %rsi + 0x48, 0xff, 0xc6, //0x00003c60 incq %rsi + 0x48, 0x89, 0xf0, //0x00003c63 movq %rsi, %rax + 0xe9, 0x0b, 0xfe, 0xff, 0xff, //0x00003c66 jmp LBB13_16 + //0x00003c6b LBB13_46 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00003c6b movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00003c72 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x00003c75 cmpq $32, %r12 + 0x0f, 0x83, 0x5b, 0xfe, 0xff, 0xff, //0x00003c79 jae LBB13_22 + 0xe9, 0x55, 0xff, 0xff, 0xff, //0x00003c7f jmp LBB13_34 + //0x00003c84 LBB13_47 + 0x45, 0x89, 0xfa, //0x00003c84 movl %r15d, %r10d + 0x41, 0xf7, 0xd2, //0x00003c87 notl %r10d + 0x41, 0x21, 0xca, //0x00003c8a andl %ecx, %r10d + 0x47, 0x8d, 0x04, 0x12, //0x00003c8d leal (%r10,%r10), %r8d + 0x45, 0x09, 0xf8, //0x00003c91 orl %r15d, %r8d + 0x44, 0x89, 0xc0, //0x00003c94 movl %r8d, %eax + 0xf7, 0xd0, //0x00003c97 notl %eax + 0x21, 0xc8, //0x00003c99 andl %ecx, %eax + 0x25, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003c9b andl $-1431655766, %eax + 0x45, 0x31, 0xff, //0x00003ca0 xorl %r15d, %r15d + 0x44, 0x01, 0xd0, //0x00003ca3 addl %r10d, %eax + 0x41, 0x0f, 0x92, 0xc7, //0x00003ca6 setb %r15b + 0x01, 0xc0, //0x00003caa addl %eax, %eax + 0x35, 0x55, 0x55, 0x55, 0x55, //0x00003cac xorl $1431655765, %eax + 0x44, 0x21, 0xc0, //0x00003cb1 andl %r8d, %eax + 0xf7, 0xd0, //0x00003cb4 notl %eax + 0x21, 0xc3, //0x00003cb6 andl %eax, %ebx + 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003cb8 jmp LBB13_25 + //0x00003cbd LBB13_48 + 0x48, 0x01, 0xf0, //0x00003cbd addq %rsi, %rax + 0x48, 0x89, 0x02, //0x00003cc0 movq %rax, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003cc3 movq $-2, %rax + 0xe9, 0xa7, 0xfd, 0xff, 0xff, //0x00003cca jmp LBB13_16 + //0x00003ccf LBB13_49 + 0x48, 0x89, 0xf0, //0x00003ccf movq %rsi, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00003cd2 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xf1, //0x00003cd6 bsfq %rcx, %r14 + 0x49, 0x01, 0xc6, //0x00003cda addq %rax, %r14 + 0x4c, 0x89, 0x32, //0x00003cdd movq %r14, (%rdx) + 0xe9, 0x86, 0xfe, 0xff, 0xff, //0x00003ce0 jmp LBB13_24 + //0x00003ce5 LBB13_50 + 0x48, 0x2b, 0x75, 0xd0, //0x00003ce5 subq $-48(%rbp), %rsi + 0x4c, 0x01, 0xce, //0x00003ce9 addq %r9, %rsi + 0xe9, 0x4b, 0x00, 0x00, 0x00, //0x00003cec jmp LBB13_56 + //0x00003cf1 LBB13_51 + 0x4d, 0x85, 0xe4, //0x00003cf1 testq %r12, %r12 + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00003cf4 je LBB13_45 + 0x49, 0x83, 0xfe, 0xff, //0x00003cfa cmpq $-1, %r14 + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00003cfe jne LBB13_54 + 0x4c, 0x8b, 0x75, 0xd0, //0x00003d04 movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x00003d08 notq %r14 + 0x49, 0x01, 0xf6, //0x00003d0b addq %rsi, %r14 + 0x4c, 0x89, 0x32, //0x00003d0e movq %r14, (%rdx) + //0x00003d11 LBB13_54 + 0x48, 0xff, 0xc6, //0x00003d11 incq %rsi + 0x49, 0xff, 0xcc, //0x00003d14 decq %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003d17 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00003d1e testq %r12, %r12 + 0x0f, 0x85, 0xcb, 0xfe, 0xff, 0xff, //0x00003d21 jne LBB13_36 + 0xe9, 0x4a, 0xfd, 0xff, 0xff, //0x00003d27 jmp LBB13_16 + //0x00003d2c LBB13_45 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003d2c movq $-1, %rax + 0xe9, 0x3e, 0xfd, 0xff, 0xff, //0x00003d33 jmp LBB13_16 + //0x00003d38 LBB13_55 + 0x48, 0x2b, 0x75, 0xd0, //0x00003d38 subq $-48(%rbp), %rsi + //0x00003d3c LBB13_56 + 0x48, 0x89, 0x32, //0x00003d3c movq %rsi, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d3f movq $-2, %rax + 0xe9, 0x2b, 0xfd, 0xff, 0xff, //0x00003d46 jmp LBB13_16 + 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d4b .p2align 4, 0x00 + //0x00003d50 LCPI14_0 + 0x00, 0x00, 0x30, 0x43, //0x00003d50 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00003d54 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00003d58 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00003d5c .long 0 + //0x00003d60 LCPI14_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003d60 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003d68 .quad 4985484787499139072 + //0x00003d70 .p2align 3, 0x00 + //0x00003d70 LCPI14_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003d70 .quad 4831355200913801216 + //0x00003d78 LCPI14_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00003d78 .quad -4392016835940974592 + //0x00003d80 .p2align 4, 0x90 + //0x00003d80 _vnumber + 0x55, //0x00003d80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003d81 movq %rsp, %rbp + 0x41, 0x57, //0x00003d84 pushq %r15 + 0x41, 0x56, //0x00003d86 pushq %r14 + 0x41, 0x55, //0x00003d88 pushq %r13 + 0x41, 0x54, //0x00003d8a pushq %r12 + 0x53, //0x00003d8c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x00003d8d subq $56, %rsp + 0x48, 0x89, 0xd3, //0x00003d91 movq %rdx, %rbx + 0x49, 0x89, 0xf6, //0x00003d94 movq %rsi, %r14 + 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00003d97 movq $0, $-48(%rbp) + 0x48, 0x8b, 0x06, //0x00003d9f movq (%rsi), %rax + 0x4c, 0x8b, 0x3f, //0x00003da2 movq (%rdi), %r15 + 0x4c, 0x8b, 0x6f, 0x08, //0x00003da5 movq $8(%rdi), %r13 + 0x4c, 0x8b, 0x52, 0x20, //0x00003da9 movq $32(%rdx), %r10 + 0x4c, 0x8b, 0x5a, 0x28, //0x00003dad movq $40(%rdx), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00003db1 movq $9, (%rdx) + 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00003db8 movq $0, $8(%rdx) + 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00003dc0 movq $0, $16(%rdx) + 0x48, 0x8b, 0x0e, //0x00003dc8 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00003dcb movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xe8, //0x00003dcf cmpq %r13, %rax + 0x0f, 0x83, 0xc1, 0x02, 0x00, 0x00, //0x00003dd2 jae LBB14_52 + 0x41, 0x8a, 0x3c, 0x07, //0x00003dd8 movb (%r15,%rax), %dil + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00003ddc movl $1, %r9d + 0x40, 0x80, 0xff, 0x2d, //0x00003de2 cmpb $45, %dil + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00003de6 jne LBB14_4 + 0x48, 0xff, 0xc0, //0x00003dec incq %rax + 0x4c, 0x39, 0xe8, //0x00003def cmpq %r13, %rax + 0x0f, 0x83, 0xa1, 0x02, 0x00, 0x00, //0x00003df2 jae LBB14_52 + 0x41, 0x8a, 0x3c, 0x07, //0x00003df8 movb (%r15,%rax), %dil + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00003dfc movl $-1, %r9d + //0x00003e02 LBB14_4 + 0x8d, 0x4f, 0xd0, //0x00003e02 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00003e05 cmpb $10, %cl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00003e08 jb LBB14_6 + //0x00003e0e LBB14_5 + 0x49, 0x89, 0x06, //0x00003e0e movq %rax, (%r14) + 0x48, 0xc7, 0x03, 0xfe, 0xff, 0xff, 0xff, //0x00003e11 movq $-2, (%rbx) + 0xe9, 0x86, 0x02, 0x00, 0x00, //0x00003e18 jmp LBB14_53 + //0x00003e1d LBB14_6 + 0x40, 0x80, 0xff, 0x30, //0x00003e1d cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00003e21 jne LBB14_10 + 0x48, 0x8d, 0x70, 0x01, //0x00003e27 leaq $1(%rax), %rsi + 0x4c, 0x39, 0xe8, //0x00003e2b cmpq %r13, %rax + 0x0f, 0x83, 0x9d, 0x00, 0x00, 0x00, //0x00003e2e jae LBB14_19 + 0x41, 0x8a, 0x14, 0x37, //0x00003e34 movb (%r15,%rsi), %dl + 0x80, 0xc2, 0xd2, //0x00003e38 addb $-46, %dl + 0x80, 0xfa, 0x37, //0x00003e3b cmpb $55, %dl + 0x0f, 0x87, 0x8d, 0x00, 0x00, 0x00, //0x00003e3e ja LBB14_19 + 0x44, 0x0f, 0xb6, 0xc2, //0x00003e44 movzbl %dl, %r8d + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003e48 movabsq $36028797027352577, %rdx + 0x4c, 0x0f, 0xa3, 0xc2, //0x00003e52 btq %r8, %rdx + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00003e56 jae LBB14_19 + //0x00003e5c LBB14_10 + 0x4c, 0x39, 0xe8, //0x00003e5c cmpq %r13, %rax + 0x0f, 0x83, 0x60, 0x00, 0x00, 0x00, //0x00003e5f jae LBB14_18 + 0x80, 0xf9, 0x09, //0x00003e65 cmpb $9, %cl + 0x0f, 0x87, 0x6b, 0x00, 0x00, 0x00, //0x00003e68 ja LBB14_20 + 0x4d, 0x8d, 0x45, 0xff, //0x00003e6e leaq $-1(%r13), %r8 + 0x31, 0xc9, //0x00003e72 xorl %ecx, %ecx + 0x31, 0xf6, //0x00003e74 xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00003e76 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e79 .p2align 4, 0x90 + //0x00003e80 LBB14_13 + 0x83, 0xfe, 0x12, //0x00003e80 cmpl $18, %esi + 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00003e83 jg LBB14_15 + 0x48, 0x0f, 0xbe, 0xff, //0x00003e89 movsbq %dil, %rdi + 0x4b, 0x8d, 0x14, 0xa4, //0x00003e8d leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003e91 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc6, //0x00003e96 incl %esi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00003e98 jmp LBB14_16 + 0x90, 0x90, 0x90, //0x00003e9d .p2align 4, 0x90 + //0x00003ea0 LBB14_15 + 0xff, 0xc1, //0x00003ea0 incl %ecx + //0x00003ea2 LBB14_16 + 0x49, 0x39, 0xc0, //0x00003ea2 cmpq %rax, %r8 + 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00003ea5 je LBB14_24 + 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00003eab movzbl $1(%r15,%rax), %edi + 0x48, 0xff, 0xc0, //0x00003eb1 incq %rax + 0x8d, 0x57, 0xd0, //0x00003eb4 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x0a, //0x00003eb7 cmpb $10, %dl + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00003eba jb LBB14_13 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00003ec0 jmp LBB14_21 + //0x00003ec5 LBB14_18 + 0x31, 0xc9, //0x00003ec5 xorl %ecx, %ecx + 0x31, 0xf6, //0x00003ec7 xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00003ec9 xorl %r12d, %r12d + 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00003ecc jmp LBB14_25 + //0x00003ed1 LBB14_19 + 0x49, 0x89, 0x36, //0x00003ed1 movq %rsi, (%r14) + 0xe9, 0xca, 0x01, 0x00, 0x00, //0x00003ed4 jmp LBB14_53 + //0x00003ed9 LBB14_20 + 0x45, 0x31, 0xe4, //0x00003ed9 xorl %r12d, %r12d + 0x31, 0xf6, //0x00003edc xorl %esi, %esi + 0x31, 0xc9, //0x00003ede xorl %ecx, %ecx + //0x00003ee0 LBB14_21 + 0x31, 0xd2, //0x00003ee0 xorl %edx, %edx + 0x85, 0xc9, //0x00003ee2 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00003ee4 setg %dl + 0x89, 0x55, 0xcc, //0x00003ee7 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003eea movl $9, %r8d + 0x40, 0x80, 0xff, 0x2e, //0x00003ef0 cmpb $46, %dil + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00003ef4 jne LBB14_26 + 0x48, 0xff, 0xc0, //0x00003efa incq %rax + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00003efd movq $8, (%rbx) + 0x4c, 0x39, 0xe8, //0x00003f04 cmpq %r13, %rax + 0x0f, 0x83, 0x8c, 0x01, 0x00, 0x00, //0x00003f07 jae LBB14_52 + 0x41, 0x8a, 0x14, 0x07, //0x00003f0d movb (%r15,%rax), %dl + 0x80, 0xc2, 0xd0, //0x00003f11 addb $-48, %dl + 0x41, 0xb8, 0x08, 0x00, 0x00, 0x00, //0x00003f14 movl $8, %r8d + 0x80, 0xfa, 0x0a, //0x00003f1a cmpb $10, %dl + 0x0f, 0x83, 0xeb, 0xfe, 0xff, 0xff, //0x00003f1d jae LBB14_5 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00003f23 jmp LBB14_26 + //0x00003f28 LBB14_24 + 0x4c, 0x89, 0xe8, //0x00003f28 movq %r13, %rax + //0x00003f2b LBB14_25 + 0x31, 0xd2, //0x00003f2b xorl %edx, %edx + 0x85, 0xc9, //0x00003f2d testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00003f2f setg %dl + 0x89, 0x55, 0xcc, //0x00003f32 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003f35 movl $9, %r8d + //0x00003f3b LBB14_26 + 0x85, 0xc9, //0x00003f3b testl %ecx, %ecx + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00003f3d jne LBB14_35 + 0x4d, 0x85, 0xe4, //0x00003f43 testq %r12, %r12 + 0x0f, 0x85, 0x46, 0x00, 0x00, 0x00, //0x00003f46 jne LBB14_35 + 0x4c, 0x39, 0xe8, //0x00003f4c cmpq %r13, %rax + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00003f4f jae LBB14_33 + 0x89, 0xc7, //0x00003f55 movl %eax, %edi + 0x44, 0x29, 0xef, //0x00003f57 subl %r13d, %edi + 0x31, 0xf6, //0x00003f5a xorl %esi, %esi + 0x31, 0xc9, //0x00003f5c xorl %ecx, %ecx + 0x90, 0x90, //0x00003f5e .p2align 4, 0x90 + //0x00003f60 LBB14_30 + 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00003f60 cmpb $48, (%r15,%rax) + 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x00003f65 jne LBB14_34 + 0x48, 0xff, 0xc0, //0x00003f6b incq %rax + 0xff, 0xc9, //0x00003f6e decl %ecx + 0x49, 0x39, 0xc5, //0x00003f70 cmpq %rax, %r13 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00003f73 jne LBB14_30 + 0x45, 0x31, 0xe4, //0x00003f79 xorl %r12d, %r12d + 0x41, 0x83, 0xf8, 0x09, //0x00003f7c cmpl $9, %r8d + 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00003f80 je LBB14_55 + 0xe9, 0x6a, 0x01, 0x00, 0x00, //0x00003f86 jmp LBB14_59 + //0x00003f8b LBB14_33 + 0x31, 0xc9, //0x00003f8b xorl %ecx, %ecx + 0x31, 0xf6, //0x00003f8d xorl %esi, %esi + //0x00003f8f LBB14_34 + 0x45, 0x31, 0xe4, //0x00003f8f xorl %r12d, %r12d + //0x00003f92 LBB14_35 + 0x4c, 0x39, 0xe8, //0x00003f92 cmpq %r13, %rax + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00003f95 jae LBB14_40 + 0x83, 0xfe, 0x12, //0x00003f9b cmpl $18, %esi + 0x0f, 0x8f, 0x42, 0x00, 0x00, 0x00, //0x00003f9e jg LBB14_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003fa4 .p2align 4, 0x90 + //0x00003fb0 LBB14_37 + 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00003fb0 movzbl (%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00003fb5 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00003fb8 cmpb $9, %dl + 0x0f, 0x87, 0x25, 0x00, 0x00, 0x00, //0x00003fbb ja LBB14_40 + 0x4b, 0x8d, 0x14, 0xa4, //0x00003fc1 leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003fc5 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc9, //0x00003fca decl %ecx + 0x48, 0xff, 0xc0, //0x00003fcc incq %rax + 0x4c, 0x39, 0xe8, //0x00003fcf cmpq %r13, %rax + 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00003fd2 jae LBB14_40 + 0x8d, 0x56, 0x01, //0x00003fd8 leal $1(%rsi), %edx + 0x83, 0xfe, 0x12, //0x00003fdb cmpl $18, %esi + 0x89, 0xd6, //0x00003fde movl %edx, %esi + 0x0f, 0x8c, 0xca, 0xff, 0xff, 0xff, //0x00003fe0 jl LBB14_37 + //0x00003fe6 LBB14_40 + 0x4c, 0x39, 0xe8, //0x00003fe6 cmpq %r13, %rax + 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00003fe9 jae LBB14_54 + 0x41, 0x8a, 0x34, 0x07, //0x00003fef movb (%r15,%rax), %sil + 0x8d, 0x56, 0xd0, //0x00003ff3 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00003ff6 cmpb $9, %dl + 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00003ff9 ja LBB14_46 + 0x49, 0x8d, 0x7d, 0xff, //0x00003fff leaq $-1(%r13), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004003 .p2align 4, 0x90 + //0x00004010 LBB14_43 + 0x48, 0x39, 0xc7, //0x00004010 cmpq %rax, %rdi + 0x0f, 0x84, 0x42, 0x02, 0x00, 0x00, //0x00004013 je LBB14_76 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004019 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x0000401f incq %rax + 0x8d, 0x56, 0xd0, //0x00004022 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00004025 cmpb $9, %dl + 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00004028 jbe LBB14_43 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x0000402e movl $1, $-52(%rbp) + //0x00004035 LBB14_46 + 0x40, 0x80, 0xce, 0x20, //0x00004035 orb $32, %sil + 0x40, 0x80, 0xfe, 0x65, //0x00004039 cmpb $101, %sil + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x0000403d jne LBB14_54 + 0x48, 0x8d, 0x78, 0x01, //0x00004043 leaq $1(%rax), %rdi + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004047 movq $8, (%rbx) + 0x4c, 0x39, 0xef, //0x0000404e cmpq %r13, %rdi + 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00004051 jae LBB14_52 + 0x41, 0x8a, 0x34, 0x3f, //0x00004057 movb (%r15,%rdi), %sil + 0x40, 0x80, 0xfe, 0x2d, //0x0000405b cmpb $45, %sil + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000405f je LBB14_50 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004065 movl $1, %r8d + 0x40, 0x80, 0xfe, 0x2b, //0x0000406b cmpb $43, %sil + 0x0f, 0x85, 0x98, 0x02, 0x00, 0x00, //0x0000406f jne LBB14_85 + //0x00004075 LBB14_50 + 0x48, 0x83, 0xc0, 0x02, //0x00004075 addq $2, %rax + 0x4c, 0x39, 0xe8, //0x00004079 cmpq %r13, %rax + 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x0000407c jae LBB14_52 + 0x31, 0xd2, //0x00004082 xorl %edx, %edx + 0x40, 0x80, 0xfe, 0x2b, //0x00004084 cmpb $43, %sil + 0x0f, 0x94, 0xc2, //0x00004088 sete %dl + 0x44, 0x8d, 0x44, 0x12, 0xff, //0x0000408b leal $-1(%rdx,%rdx), %r8d + 0x41, 0x8a, 0x34, 0x07, //0x00004090 movb (%r15,%rax), %sil + 0xe9, 0x77, 0x02, 0x00, 0x00, //0x00004094 jmp LBB14_86 + //0x00004099 LBB14_52 + 0x4d, 0x89, 0x2e, //0x00004099 movq %r13, (%r14) + 0x48, 0xc7, 0x03, 0xff, 0xff, 0xff, 0xff, //0x0000409c movq $-1, (%rbx) + //0x000040a3 LBB14_53 + 0x48, 0x83, 0xc4, 0x38, //0x000040a3 addq $56, %rsp + 0x5b, //0x000040a7 popq %rbx + 0x41, 0x5c, //0x000040a8 popq %r12 + 0x41, 0x5d, //0x000040aa popq %r13 + 0x41, 0x5e, //0x000040ac popq %r14 + 0x41, 0x5f, //0x000040ae popq %r15 + 0x5d, //0x000040b0 popq %rbp + 0xc3, //0x000040b1 retq + //0x000040b2 LBB14_54 + 0x89, 0xcf, //0x000040b2 movl %ecx, %edi + 0x49, 0x89, 0xc5, //0x000040b4 movq %rax, %r13 + 0x41, 0x83, 0xf8, 0x09, //0x000040b7 cmpl $9, %r8d + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000040bb jne LBB14_59 + //0x000040c1 LBB14_55 + 0x85, 0xff, //0x000040c1 testl %edi, %edi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x000040c3 jne LBB14_58 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000040c9 movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xc9, //0x000040d3 movslq %r9d, %rcx + 0x4d, 0x85, 0xe4, //0x000040d6 testq %r12, %r12 + 0x0f, 0x89, 0xbc, 0x01, 0x00, 0x00, //0x000040d9 jns LBB14_80 + 0x4c, 0x89, 0xe2, //0x000040df movq %r12, %rdx + 0x48, 0x21, 0xca, //0x000040e2 andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x000040e5 cmpq %rax, %rdx + 0x0f, 0x84, 0xad, 0x01, 0x00, 0x00, //0x000040e8 je LBB14_80 + //0x000040ee LBB14_58 + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x000040ee movq $8, (%rbx) + //0x000040f5 LBB14_59 + 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x000040f5 movq $0, $-64(%rbp) + 0x66, 0x49, 0x0f, 0x6e, 0xcc, //0x000040fd movq %r12, %xmm1 + 0x66, 0x0f, 0x62, 0x0d, 0x46, 0xfc, 0xff, 0xff, //0x00004102 punpckldq $-954(%rip), %xmm1 /* LCPI14_0+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x0d, 0x4e, 0xfc, 0xff, 0xff, //0x0000410a subpd $-946(%rip), %xmm1 /* LCPI14_1+0(%rip) */ + 0x66, 0x0f, 0x28, 0xc1, //0x00004112 movapd %xmm1, %xmm0 + 0x66, 0x0f, 0x15, 0xc1, //0x00004116 unpckhpd %xmm1, %xmm0 + 0xf2, 0x0f, 0x58, 0xc1, //0x0000411a addsd %xmm1, %xmm0 + 0xf2, 0x0f, 0x11, 0x45, 0xd0, //0x0000411e movsd %xmm0, $-48(%rbp) + 0x4c, 0x89, 0xe0, //0x00004123 movq %r12, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00004126 shrq $52, %rax + 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x0000412a je LBB14_71 + //0x00004130 LBB14_60 + 0x4c, 0x89, 0x5d, 0xb0, //0x00004130 movq %r11, $-80(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x00004134 movq %r10, $-88(%rbp) + 0x48, 0x8d, 0x4d, 0xd0, //0x00004138 leaq $-48(%rbp), %rcx + 0x48, 0x89, 0xfe, //0x0000413c movq %rdi, %rsi + 0x4c, 0x89, 0xe7, //0x0000413f movq %r12, %rdi + 0x48, 0x89, 0x75, 0xb8, //0x00004142 movq %rsi, $-72(%rbp) + 0x44, 0x89, 0xca, //0x00004146 movl %r9d, %edx + 0x44, 0x89, 0x4d, 0xc8, //0x00004149 movl %r9d, $-56(%rbp) + 0xe8, 0x7e, 0xe6, 0xff, 0xff, //0x0000414d callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004152 testb %al, %al + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00004154 je LBB14_64 + 0x48, 0x8b, 0x75, 0xb8, //0x0000415a movq $-72(%rbp), %rsi + 0x8b, 0x55, 0xc8, //0x0000415e movl $-56(%rbp), %edx + 0x83, 0x7d, 0xcc, 0x00, //0x00004161 cmpl $0, $-52(%rbp) + 0x0f, 0x84, 0x27, 0x01, 0x00, 0x00, //0x00004165 je LBB14_79 + 0x49, 0xff, 0xc4, //0x0000416b incq %r12 + 0x48, 0x8d, 0x4d, 0xc0, //0x0000416e leaq $-64(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x00004172 movq %r12, %rdi + 0xe8, 0x56, 0xe6, 0xff, 0xff, //0x00004175 callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x0000417a testb %al, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000417c je LBB14_64 + 0xf2, 0x0f, 0x10, 0x4d, 0xc0, //0x00004182 movsd $-64(%rbp), %xmm1 + 0xf2, 0x0f, 0x10, 0x45, 0xd0, //0x00004187 movsd $-48(%rbp), %xmm0 + 0x66, 0x0f, 0x2e, 0xc8, //0x0000418c ucomisd %xmm0, %xmm1 + 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x00004190 jne LBB14_64 + 0x0f, 0x8b, 0x21, 0x00, 0x00, 0x00, //0x00004196 jnp LBB14_66 + //0x0000419c LBB14_64 + 0x49, 0x8b, 0x06, //0x0000419c movq (%r14), %rax + 0x49, 0x01, 0xc7, //0x0000419f addq %rax, %r15 + 0x4c, 0x89, 0xee, //0x000041a2 movq %r13, %rsi + 0x48, 0x29, 0xc6, //0x000041a5 subq %rax, %rsi + 0x4c, 0x89, 0xff, //0x000041a8 movq %r15, %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x000041ab movq $-88(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x000041af movq $-80(%rbp), %rcx + 0xe8, 0x28, 0xec, 0xff, 0xff, //0x000041b3 callq _atof_native + //0x000041b8 LBB14_65 + 0xf2, 0x0f, 0x11, 0x45, 0xd0, //0x000041b8 movsd %xmm0, $-48(%rbp) + //0x000041bd LBB14_66 + 0x66, 0x48, 0x0f, 0x7e, 0xc0, //0x000041bd movq %xmm0, %rax + //0x000041c2 LBB14_67 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000041c2 movabsq $-9223372036854775808, %rcx + 0x48, 0xff, 0xc9, //0x000041cc decq %rcx + 0x48, 0x21, 0xc1, //0x000041cf andq %rax, %rcx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000041d2 movabsq $9218868437227405312, %rdx + 0x48, 0x39, 0xd1, //0x000041dc cmpq %rdx, %rcx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000041df jne LBB14_69 + 0x48, 0xc7, 0x03, 0xf8, 0xff, 0xff, 0xff, //0x000041e5 movq $-8, (%rbx) + //0x000041ec LBB14_69 + 0x48, 0x89, 0x43, 0x08, //0x000041ec movq %rax, $8(%rbx) + //0x000041f0 LBB14_70 + 0x4d, 0x89, 0x2e, //0x000041f0 movq %r13, (%r14) + 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x000041f3 jmp LBB14_53 + //0x000041f8 LBB14_71 + 0x66, 0x48, 0x0f, 0x7e, 0xc1, //0x000041f8 movq %xmm0, %rcx + 0x44, 0x89, 0xc8, //0x000041fd movl %r9d, %eax + 0xc1, 0xe8, 0x1f, //0x00004200 shrl $31, %eax + 0x48, 0xc1, 0xe0, 0x3f, //0x00004203 shlq $63, %rax + 0x48, 0x09, 0xc8, //0x00004207 orq %rcx, %rax + 0x48, 0x89, 0x45, 0xd0, //0x0000420a movq %rax, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x0000420e testq %r12, %r12 + 0x0f, 0x84, 0xab, 0xff, 0xff, 0xff, //0x00004211 je LBB14_67 + 0x85, 0xff, //0x00004217 testl %edi, %edi + 0x0f, 0x84, 0xa3, 0xff, 0xff, 0xff, //0x00004219 je LBB14_67 + 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x0000421f movq %rax, %xmm0 + 0x8d, 0x47, 0xff, //0x00004224 leal $-1(%rdi), %eax + 0x83, 0xf8, 0x24, //0x00004227 cmpl $36, %eax + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x0000422a ja LBB14_77 + 0x83, 0xff, 0x17, //0x00004230 cmpl $23, %edi + 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x00004233 jl LBB14_81 + 0x48, 0x63, 0xc7, //0x00004239 movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0x9d, 0xf1, 0x00, 0x00, //0x0000423c leaq $61853(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x00004243 mulsd $-176(%rcx,%rax,8), %xmm0 + 0xf2, 0x0f, 0x11, 0x45, 0xd0, //0x0000424c movsd %xmm0, $-48(%rbp) + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004251 movl $22, %eax + 0xe9, 0x7f, 0x00, 0x00, 0x00, //0x00004256 jmp LBB14_82 + //0x0000425b LBB14_76 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x0000425b movl $1, $-52(%rbp) + 0x89, 0xcf, //0x00004262 movl %ecx, %edi + 0x41, 0x83, 0xf8, 0x09, //0x00004264 cmpl $9, %r8d + 0x0f, 0x84, 0x53, 0xfe, 0xff, 0xff, //0x00004268 je LBB14_55 + 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x0000426e jmp LBB14_59 + //0x00004273 LBB14_77 + 0x83, 0xff, 0xea, //0x00004273 cmpl $-22, %edi + 0x0f, 0x82, 0xb4, 0xfe, 0xff, 0xff, //0x00004276 jb LBB14_60 + 0xf7, 0xdf, //0x0000427c negl %edi + 0x48, 0x63, 0xc7, //0x0000427e movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0x58, 0xf1, 0x00, 0x00, //0x00004281 leaq $61784(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x5e, 0x04, 0xc1, //0x00004288 divsd (%rcx,%rax,8), %xmm0 + 0xe9, 0x26, 0xff, 0xff, 0xff, //0x0000428d jmp LBB14_65 + //0x00004292 LBB14_79 + 0x48, 0x8b, 0x45, 0xd0, //0x00004292 movq $-48(%rbp), %rax + 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00004296 jmp LBB14_67 + //0x0000429b LBB14_80 + 0x66, 0x49, 0x0f, 0x6e, 0xc4, //0x0000429b movq %r12, %xmm0 + 0x4c, 0x0f, 0xaf, 0xe1, //0x000042a0 imulq %rcx, %r12 + 0x66, 0x0f, 0x62, 0x05, 0xa4, 0xfa, 0xff, 0xff, //0x000042a4 punpckldq $-1372(%rip), %xmm0 /* LCPI14_0+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x05, 0xac, 0xfa, 0xff, 0xff, //0x000042ac subpd $-1364(%rip), %xmm0 /* LCPI14_1+0(%rip) */ + 0x4c, 0x89, 0x63, 0x10, //0x000042b4 movq %r12, $16(%rbx) + 0x66, 0x0f, 0x28, 0xc8, //0x000042b8 movapd %xmm0, %xmm1 + 0x66, 0x0f, 0x15, 0xc8, //0x000042bc unpckhpd %xmm0, %xmm1 + 0xf2, 0x0f, 0x58, 0xc8, //0x000042c0 addsd %xmm0, %xmm1 + 0x48, 0x21, 0xc8, //0x000042c4 andq %rcx, %rax + 0x66, 0x48, 0x0f, 0x7e, 0xc9, //0x000042c7 movq %xmm1, %rcx + 0x48, 0x09, 0xc1, //0x000042cc orq %rax, %rcx + 0x48, 0x89, 0x4b, 0x08, //0x000042cf movq %rcx, $8(%rbx) + 0xe9, 0x18, 0xff, 0xff, 0xff, //0x000042d3 jmp LBB14_70 + //0x000042d8 LBB14_81 + 0x89, 0xf8, //0x000042d8 movl %edi, %eax + //0x000042da LBB14_82 + 0x66, 0x0f, 0x2e, 0x05, 0x8e, 0xfa, 0xff, 0xff, //0x000042da ucomisd $-1394(%rip), %xmm0 /* LCPI14_2+0(%rip) */ + 0x0f, 0x87, 0x48, 0xfe, 0xff, 0xff, //0x000042e2 ja LBB14_60 + 0xf2, 0x0f, 0x10, 0x0d, 0x88, 0xfa, 0xff, 0xff, //0x000042e8 movsd $-1400(%rip), %xmm1 /* LCPI14_3+0(%rip) */ + 0x66, 0x0f, 0x2e, 0xc8, //0x000042f0 ucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x36, 0xfe, 0xff, 0xff, //0x000042f4 ja LBB14_60 + 0x89, 0xc0, //0x000042fa movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xdd, 0xf0, 0x00, 0x00, //0x000042fc leaq $61661(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x04, 0xc1, //0x00004303 mulsd (%rcx,%rax,8), %xmm0 + 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00004308 jmp LBB14_65 + //0x0000430d LBB14_85 + 0x48, 0x89, 0xf8, //0x0000430d movq %rdi, %rax + //0x00004310 LBB14_86 + 0x8d, 0x7e, 0xd0, //0x00004310 leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x00004313 cmpb $9, %dil + 0x0f, 0x87, 0xf1, 0xfa, 0xff, 0xff, //0x00004317 ja LBB14_5 + 0x44, 0x89, 0x4d, 0xc8, //0x0000431d movl %r9d, $-56(%rbp) + 0x4c, 0x39, 0xe8, //0x00004321 cmpq %r13, %rax + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00004324 jae LBB14_93 + 0x40, 0x80, 0xff, 0x09, //0x0000432a cmpb $9, %dil + 0x0f, 0x87, 0x3f, 0x00, 0x00, 0x00, //0x0000432e ja LBB14_93 + 0x4d, 0x8d, 0x4d, 0xff, //0x00004334 leaq $-1(%r13), %r9 + 0x31, 0xff, //0x00004338 xorl %edi, %edi + //0x0000433a LBB14_90 + 0x89, 0xfa, //0x0000433a movl %edi, %edx + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x0000433c cmpl $10000, %edi + 0x8d, 0x3c, 0x92, //0x00004342 leal (%rdx,%rdx,4), %edi + 0x40, 0x0f, 0xb6, 0xf6, //0x00004345 movzbl %sil, %esi + 0x8d, 0x7c, 0x7e, 0xd0, //0x00004349 leal $-48(%rsi,%rdi,2), %edi + 0x0f, 0x4d, 0xfa, //0x0000434d cmovgel %edx, %edi + 0x49, 0x39, 0xc1, //0x00004350 cmpq %rax, %r9 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00004353 je LBB14_94 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004359 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x0000435f incq %rax + 0x8d, 0x56, 0xd0, //0x00004362 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x0a, //0x00004365 cmpb $10, %dl + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00004368 jb LBB14_90 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000436e jmp LBB14_95 + //0x00004373 LBB14_93 + 0x31, 0xff, //0x00004373 xorl %edi, %edi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004375 jmp LBB14_95 + //0x0000437a LBB14_94 + 0x4c, 0x89, 0xe8, //0x0000437a movq %r13, %rax + //0x0000437d LBB14_95 + 0x41, 0x0f, 0xaf, 0xf8, //0x0000437d imull %r8d, %edi + 0x01, 0xcf, //0x00004381 addl %ecx, %edi + 0x49, 0x89, 0xc5, //0x00004383 movq %rax, %r13 + 0x44, 0x8b, 0x4d, 0xc8, //0x00004386 movl $-56(%rbp), %r9d + 0xe9, 0x66, 0xfd, 0xff, 0xff, //0x0000438a jmp LBB14_59 + 0x90, //0x0000438f .p2align 4, 0x90 + //0x00004390 _vsigned + 0x55, //0x00004390 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004391 movq %rsp, %rbp + 0x53, //0x00004394 pushq %rbx + 0x48, 0x8b, 0x1e, //0x00004395 movq (%rsi), %rbx + 0x4c, 0x8b, 0x07, //0x00004398 movq (%rdi), %r8 + 0x4c, 0x8b, 0x57, 0x08, //0x0000439b movq $8(%rdi), %r10 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000439f movq $9, (%rdx) + 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000043a6 movq $0, $8(%rdx) + 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x000043ae movq $0, $16(%rdx) + 0x48, 0x8b, 0x0e, //0x000043b6 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x000043b9 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd3, //0x000043bd cmpq %r10, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x000043c0 jae LBB15_1 + 0x41, 0x8a, 0x0c, 0x18, //0x000043c6 movb (%r8,%rbx), %cl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000043ca movl $1, %r9d + 0x80, 0xf9, 0x2d, //0x000043d0 cmpb $45, %cl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000043d3 jne LBB15_5 + 0x48, 0xff, 0xc3, //0x000043d9 incq %rbx + 0x4c, 0x39, 0xd3, //0x000043dc cmpq %r10, %rbx + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000043df jae LBB15_1 + 0x41, 0x8a, 0x0c, 0x18, //0x000043e5 movb (%r8,%rbx), %cl + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000043e9 movq $-1, %r9 + //0x000043f0 LBB15_5 + 0x8d, 0x79, 0xd0, //0x000043f0 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000043f3 cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000043f7 jb LBB15_7 + 0x48, 0x89, 0x1e, //0x000043fd movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00004400 movq $-2, (%rdx) + 0x5b, //0x00004407 popq %rbx + 0x5d, //0x00004408 popq %rbp + 0xc3, //0x00004409 retq + //0x0000440a LBB15_1 + 0x4c, 0x89, 0x16, //0x0000440a movq %r10, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000440d movq $-1, (%rdx) + 0x5b, //0x00004414 popq %rbx + 0x5d, //0x00004415 popq %rbp + 0xc3, //0x00004416 retq + //0x00004417 LBB15_7 + 0x80, 0xf9, 0x30, //0x00004417 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x0000441a jne LBB15_8 + 0x48, 0x8d, 0x7b, 0x01, //0x00004420 leaq $1(%rbx), %rdi + 0x4c, 0x39, 0xd3, //0x00004424 cmpq %r10, %rbx + 0x0f, 0x83, 0x7a, 0x00, 0x00, 0x00, //0x00004427 jae LBB15_17 + 0x41, 0x8a, 0x0c, 0x38, //0x0000442d movb (%r8,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x00004431 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00004434 cmpb $55, %cl + 0x0f, 0x87, 0x6a, 0x00, 0x00, 0x00, //0x00004437 ja LBB15_17 + 0x44, 0x0f, 0xb6, 0xd9, //0x0000443d movzbl %cl, %r11d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004441 movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x0000444b btq %r11, %rcx + 0x0f, 0x83, 0x52, 0x00, 0x00, 0x00, //0x0000444f jae LBB15_17 + //0x00004455 LBB15_8 + 0x31, 0xff, //0x00004455 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004457 .p2align 4, 0x90 + //0x00004460 LBB15_9 + 0x4c, 0x39, 0xd3, //0x00004460 cmpq %r10, %rbx + 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x00004463 jae LBB15_22 + 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x00004469 movsbq (%r8,%rbx), %rcx + 0x8d, 0x41, 0xd0, //0x0000446e leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00004471 cmpb $9, %al + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00004473 ja LBB15_18 + 0x48, 0x6b, 0xff, 0x0a, //0x00004479 imulq $10, %rdi, %rdi + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000447d jo LBB15_13 + 0x48, 0xff, 0xc3, //0x00004483 incq %rbx + 0x48, 0x83, 0xc1, 0xd0, //0x00004486 addq $-48, %rcx + 0x49, 0x0f, 0xaf, 0xc9, //0x0000448a imulq %r9, %rcx + 0x48, 0x01, 0xcf, //0x0000448e addq %rcx, %rdi + 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00004491 jno LBB15_9 + //0x00004497 LBB15_13 + 0x48, 0xff, 0xcb, //0x00004497 decq %rbx + 0x48, 0x89, 0x1e, //0x0000449a movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000449d movq $-5, (%rdx) + 0x5b, //0x000044a4 popq %rbx + 0x5d, //0x000044a5 popq %rbp + 0xc3, //0x000044a6 retq + //0x000044a7 LBB15_17 + 0x48, 0x89, 0x3e, //0x000044a7 movq %rdi, (%rsi) + 0x5b, //0x000044aa popq %rbx + 0x5d, //0x000044ab popq %rbp + 0xc3, //0x000044ac retq + //0x000044ad LBB15_18 + 0x80, 0xf9, 0x65, //0x000044ad cmpb $101, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000044b0 je LBB15_21 + 0x80, 0xf9, 0x45, //0x000044b6 cmpb $69, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x000044b9 je LBB15_21 + 0x80, 0xf9, 0x2e, //0x000044bf cmpb $46, %cl + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000044c2 jne LBB15_22 + //0x000044c8 LBB15_21 + 0x48, 0x89, 0x1e, //0x000044c8 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000044cb movq $-6, (%rdx) + 0x5b, //0x000044d2 popq %rbx + 0x5d, //0x000044d3 popq %rbp + 0xc3, //0x000044d4 retq + //0x000044d5 LBB15_22 + 0x48, 0x89, 0x1e, //0x000044d5 movq %rbx, (%rsi) + 0x48, 0x89, 0x7a, 0x10, //0x000044d8 movq %rdi, $16(%rdx) + 0x5b, //0x000044dc popq %rbx + 0x5d, //0x000044dd popq %rbp + 0xc3, //0x000044de retq + 0x90, //0x000044df .p2align 4, 0x90 + //0x000044e0 _vunsigned + 0x55, //0x000044e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000044e1 movq %rsp, %rbp + 0x49, 0x89, 0xd0, //0x000044e4 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x000044e7 movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x000044ea movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x000044ed movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000044f1 movq $9, (%rdx) + 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000044f8 movq $0, $8(%rdx) + 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00004500 movq $0, $16(%rdx) + 0x48, 0x8b, 0x06, //0x00004508 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x0000450b movq %rax, $24(%rdx) + 0x4c, 0x39, 0xd9, //0x0000450f cmpq %r11, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00004512 jae LBB16_1 + 0x41, 0x8a, 0x04, 0x09, //0x00004518 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x0000451c cmpb $45, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000451e jne LBB16_4 + //0x00004524 LBB16_3 + 0x48, 0x89, 0x0e, //0x00004524 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00004527 movq $-6, (%r8) + 0x5d, //0x0000452e popq %rbp + 0xc3, //0x0000452f retq + //0x00004530 LBB16_1 + 0x4c, 0x89, 0x1e, //0x00004530 movq %r11, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00004533 movq $-1, (%r8) + 0x5d, //0x0000453a popq %rbp + 0xc3, //0x0000453b retq + //0x0000453c LBB16_4 + 0x8d, 0x50, 0xd0, //0x0000453c leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x0000453f cmpb $10, %dl + 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x00004542 jb LBB16_6 + 0x48, 0x89, 0x0e, //0x00004548 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000454b movq $-2, (%r8) + 0x5d, //0x00004552 popq %rbp + 0xc3, //0x00004553 retq + //0x00004554 LBB16_6 + 0x3c, 0x30, //0x00004554 cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00004556 jne LBB16_7 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x0000455c movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x00004561 addb $-46, %al + 0x3c, 0x37, //0x00004563 cmpb $55, %al + 0x0f, 0x87, 0xaf, 0x00, 0x00, 0x00, //0x00004565 ja LBB16_16 + 0x0f, 0xb6, 0xc0, //0x0000456b movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000456e movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00004578 btq %rax, %rdx + 0x0f, 0x83, 0x98, 0x00, 0x00, 0x00, //0x0000457c jae LBB16_16 + //0x00004582 LBB16_7 + 0x31, 0xc0, //0x00004582 xorl %eax, %eax + 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00004584 movl $10, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000458a .p2align 4, 0x90 + //0x00004590 LBB16_8 + 0x4c, 0x39, 0xd9, //0x00004590 cmpq %r11, %rcx + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x00004593 jae LBB16_20 + 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x00004599 movsbl (%r9,%rcx), %edi + 0x8d, 0x57, 0xd0, //0x0000459e leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x000045a1 cmpb $9, %dl + 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x000045a4 ja LBB16_17 + 0x49, 0xf7, 0xe2, //0x000045aa mulq %r10 + 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x000045ad jo LBB16_13 + 0x48, 0xff, 0xc1, //0x000045b3 incq %rcx + 0x83, 0xc7, 0xd0, //0x000045b6 addl $-48, %edi + 0x48, 0x63, 0xd7, //0x000045b9 movslq %edi, %rdx + 0x48, 0x89, 0xd7, //0x000045bc movq %rdx, %rdi + 0x48, 0xc1, 0xff, 0x3f, //0x000045bf sarq $63, %rdi + 0x48, 0x01, 0xd0, //0x000045c3 addq %rdx, %rax + 0x48, 0x83, 0xd7, 0x00, //0x000045c6 adcq $0, %rdi + 0x89, 0xfa, //0x000045ca movl %edi, %edx + 0x83, 0xe2, 0x01, //0x000045cc andl $1, %edx + 0x48, 0xf7, 0xda, //0x000045cf negq %rdx + 0x48, 0x31, 0xd7, //0x000045d2 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000045d5 jne LBB16_13 + 0x48, 0x85, 0xd2, //0x000045db testq %rdx, %rdx + 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x000045de jns LBB16_8 + //0x000045e4 LBB16_13 + 0x48, 0xff, 0xc9, //0x000045e4 decq %rcx + 0x48, 0x89, 0x0e, //0x000045e7 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000045ea movq $-5, (%r8) + 0x5d, //0x000045f1 popq %rbp + 0xc3, //0x000045f2 retq + //0x000045f3 LBB16_17 + 0x40, 0x80, 0xff, 0x65, //0x000045f3 cmpb $101, %dil + 0x0f, 0x84, 0x27, 0xff, 0xff, 0xff, //0x000045f7 je LBB16_3 + 0x40, 0x80, 0xff, 0x45, //0x000045fd cmpb $69, %dil + 0x0f, 0x84, 0x1d, 0xff, 0xff, 0xff, //0x00004601 je LBB16_3 + 0x40, 0x80, 0xff, 0x2e, //0x00004607 cmpb $46, %dil + 0x0f, 0x84, 0x13, 0xff, 0xff, 0xff, //0x0000460b je LBB16_3 + //0x00004611 LBB16_20 + 0x48, 0x89, 0x0e, //0x00004611 movq %rcx, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x00004614 movq %rax, $16(%r8) + 0x5d, //0x00004618 popq %rbp + 0xc3, //0x00004619 retq + //0x0000461a LBB16_16 + 0x48, 0xff, 0xc1, //0x0000461a incq %rcx + 0x48, 0x89, 0x0e, //0x0000461d movq %rcx, (%rsi) + 0x5d, //0x00004620 popq %rbp + 0xc3, //0x00004621 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004622 .p2align 4, 0x00 + //0x00004630 LCPI17_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004630 .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004638 .quad 5 + //0x00004640 .p2align 4, 0x90 + //0x00004640 _skip_array + 0x55, //0x00004640 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004641 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00004644 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00004647 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000464a movq %rdi, %rsi + 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x0000464d movaps $-36(%rip), %xmm0 /* LCPI17_0+0(%rip) */ + 0x0f, 0x11, 0x00, //0x00004654 movups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00004657 movq %rax, %rdi + 0x5d, //0x0000465a popq %rbp + 0xe9, 0x00, 0x00, 0x00, 0x00, //0x0000465b jmp _fsm_exec + //0x00004660 .p2align 4, 0x90 + //0x00004660 _fsm_exec + 0x55, //0x00004660 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004661 movq %rsp, %rbp + 0x41, 0x57, //0x00004664 pushq %r15 + 0x41, 0x56, //0x00004666 pushq %r14 + 0x41, 0x55, //0x00004668 pushq %r13 + 0x41, 0x54, //0x0000466a pushq %r12 + 0x53, //0x0000466c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000466d subq $56, %rsp + 0x48, 0x89, 0x4d, 0xa8, //0x00004671 movq %rcx, $-88(%rbp) + 0x4c, 0x8b, 0x0f, //0x00004675 movq (%rdi), %r9 + 0x4d, 0x85, 0xc9, //0x00004678 testq %r9, %r9 + 0x0f, 0x84, 0x16, 0x05, 0x00, 0x00, //0x0000467b je LBB18_2 + 0x49, 0x89, 0xd0, //0x00004681 movq %rdx, %r8 + 0x49, 0x89, 0xfa, //0x00004684 movq %rdi, %r10 + 0x48, 0x8d, 0x46, 0x08, //0x00004687 leaq $8(%rsi), %rax + 0x48, 0x89, 0x45, 0xc8, //0x0000468b movq %rax, $-56(%rbp) + 0x4c, 0x8b, 0x2a, //0x0000468f movq (%rdx), %r13 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004692 movq $-1, %r14 + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00004699 movabsq $4294977024, %r12 + 0x4c, 0x8d, 0x1d, 0x52, 0x06, 0x00, 0x00, //0x000046a3 leaq $1618(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x48, 0x89, 0x55, 0xd0, //0x000046aa movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x000046ae movq %rsi, $-80(%rbp) + 0x48, 0x89, 0x7d, 0xb8, //0x000046b2 movq %rdi, $-72(%rbp) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x000046b6 jmp LBB18_8 + //0x000046bb LBB18_3 + 0x49, 0x8b, 0x02, //0x000046bb movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000046be cmpq $4095, %rax + 0x0f, 0x8f, 0xe3, 0x04, 0x00, 0x00, //0x000046c4 jg LBB18_82 + 0x48, 0x8d, 0x48, 0x01, //0x000046ca leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x000046ce movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x000046d1 movq $6, $8(%r10,%rax,8) + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000046da .p2align 4, 0x90 + //0x000046e0 LBB18_5 + 0x4c, 0x89, 0xe9, //0x000046e0 movq %r13, %rcx + //0x000046e3 LBB18_6 + 0x49, 0x8b, 0x12, //0x000046e3 movq (%r10), %rdx + 0x49, 0x89, 0xcd, //0x000046e6 movq %rcx, %r13 + //0x000046e9 LBB18_7 + 0x49, 0x89, 0xd1, //0x000046e9 movq %rdx, %r9 + 0x4c, 0x89, 0xf0, //0x000046ec movq %r14, %rax + 0x48, 0x85, 0xd2, //0x000046ef testq %rdx, %rdx + 0x0f, 0x84, 0xa6, 0x04, 0x00, 0x00, //0x000046f2 je LBB18_88 + //0x000046f8 LBB18_8 + 0x48, 0x8b, 0x3e, //0x000046f8 movq (%rsi), %rdi + 0x48, 0x8b, 0x46, 0x08, //0x000046fb movq $8(%rsi), %rax + 0x4c, 0x89, 0xea, //0x000046ff movq %r13, %rdx + 0x48, 0x29, 0xc2, //0x00004702 subq %rax, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00004705 jae LBB18_13 + 0x42, 0x8a, 0x1c, 0x2f, //0x0000470b movb (%rdi,%r13), %bl + 0x80, 0xfb, 0x0d, //0x0000470f cmpb $13, %bl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00004712 je LBB18_13 + 0x80, 0xfb, 0x20, //0x00004718 cmpb $32, %bl + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000471b je LBB18_13 + 0x80, 0xc3, 0xf7, //0x00004721 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004724 cmpb $1, %bl + 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x00004727 jbe LBB18_13 + 0x4d, 0x89, 0xef, //0x0000472d movq %r13, %r15 + 0xe9, 0x2d, 0x01, 0x00, 0x00, //0x00004730 jmp LBB18_34 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004735 .p2align 4, 0x90 + //0x00004740 LBB18_13 + 0x4d, 0x8d, 0x7d, 0x01, //0x00004740 leaq $1(%r13), %r15 + 0x49, 0x39, 0xc7, //0x00004744 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004747 jae LBB18_17 + 0x42, 0x8a, 0x1c, 0x3f, //0x0000474d movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00004751 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004754 je LBB18_17 + 0x80, 0xfb, 0x20, //0x0000475a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000475d je LBB18_17 + 0x80, 0xc3, 0xf7, //0x00004763 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004766 cmpb $1, %bl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00004769 ja LBB18_34 + 0x90, //0x0000476f .p2align 4, 0x90 + //0x00004770 LBB18_17 + 0x4d, 0x8d, 0x7d, 0x02, //0x00004770 leaq $2(%r13), %r15 + 0x49, 0x39, 0xc7, //0x00004774 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004777 jae LBB18_21 + 0x42, 0x8a, 0x1c, 0x3f, //0x0000477d movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00004781 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004784 je LBB18_21 + 0x80, 0xfb, 0x20, //0x0000478a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000478d je LBB18_21 + 0x80, 0xc3, 0xf7, //0x00004793 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004796 cmpb $1, %bl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00004799 ja LBB18_34 + 0x90, //0x0000479f .p2align 4, 0x90 + //0x000047a0 LBB18_21 + 0x4d, 0x8d, 0x7d, 0x03, //0x000047a0 leaq $3(%r13), %r15 + 0x49, 0x39, 0xc7, //0x000047a4 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000047a7 jae LBB18_25 + 0x42, 0x8a, 0x1c, 0x3f, //0x000047ad movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x000047b1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000047b4 je LBB18_25 + 0x80, 0xfb, 0x20, //0x000047ba cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000047bd je LBB18_25 + 0x80, 0xc3, 0xf7, //0x000047c3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000047c6 cmpb $1, %bl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000047c9 ja LBB18_34 + 0x90, //0x000047cf .p2align 4, 0x90 + //0x000047d0 LBB18_25 + 0x49, 0x8d, 0x4d, 0x04, //0x000047d0 leaq $4(%r13), %rcx + 0x48, 0x39, 0xc8, //0x000047d4 cmpq %rcx, %rax + 0x0f, 0x86, 0xb7, 0x03, 0x00, 0x00, //0x000047d7 jbe LBB18_79 + 0x48, 0x39, 0xc8, //0x000047dd cmpq %rcx, %rax + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000047e0 je LBB18_31 + 0x48, 0x8d, 0x0c, 0x07, //0x000047e6 leaq (%rdi,%rax), %rcx + 0x48, 0x83, 0xc2, 0x04, //0x000047ea addq $4, %rdx + 0x4e, 0x8d, 0x7c, 0x2f, 0x05, //0x000047ee leaq $5(%rdi,%r13), %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047f3 .p2align 4, 0x90 + //0x00004800 LBB18_28 + 0x41, 0x0f, 0xbe, 0x5f, 0xff, //0x00004800 movsbl $-1(%r15), %ebx + 0x83, 0xfb, 0x20, //0x00004805 cmpl $32, %ebx + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00004808 ja LBB18_33 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000480e btq %rbx, %r12 + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00004812 jae LBB18_33 + 0x49, 0xff, 0xc7, //0x00004818 incq %r15 + 0x48, 0xff, 0xc2, //0x0000481b incq %rdx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000481e jne LBB18_28 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004824 jmp LBB18_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004829 .p2align 4, 0x90 + //0x00004830 LBB18_31 + 0x48, 0x01, 0xf9, //0x00004830 addq %rdi, %rcx + //0x00004833 LBB18_32 + 0x48, 0x29, 0xf9, //0x00004833 subq %rdi, %rcx + 0x49, 0x89, 0xcf, //0x00004836 movq %rcx, %r15 + 0x49, 0x39, 0xc7, //0x00004839 cmpq %rax, %r15 + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000483c jb LBB18_34 + 0xe9, 0x50, 0x03, 0x00, 0x00, //0x00004842 jmp LBB18_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004847 .p2align 4, 0x90 + //0x00004850 LBB18_33 + 0x48, 0x89, 0xfa, //0x00004850 movq %rdi, %rdx + 0x48, 0xf7, 0xd2, //0x00004853 notq %rdx + 0x49, 0x01, 0xd7, //0x00004856 addq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x00004859 cmpq %rax, %r15 + 0x0f, 0x83, 0x35, 0x03, 0x00, 0x00, //0x0000485c jae LBB18_2 + //0x00004862 LBB18_34 + 0x4d, 0x8d, 0x6f, 0x01, //0x00004862 leaq $1(%r15), %r13 + 0x4d, 0x89, 0x28, //0x00004866 movq %r13, (%r8) + 0x42, 0x0f, 0xbe, 0x0c, 0x3f, //0x00004869 movsbl (%rdi,%r15), %ecx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000486e movq $-1, %rax + 0x85, 0xc9, //0x00004875 testl %ecx, %ecx + 0x0f, 0x84, 0x21, 0x03, 0x00, 0x00, //0x00004877 je LBB18_88 + 0x49, 0x8d, 0x51, 0xff, //0x0000487d leaq $-1(%r9), %rdx + 0x43, 0x8b, 0x1c, 0xca, //0x00004881 movl (%r10,%r9,8), %ebx + 0x49, 0x83, 0xfe, 0xff, //0x00004885 cmpq $-1, %r14 + 0x4d, 0x0f, 0x44, 0xf7, //0x00004889 cmoveq %r15, %r14 + 0xff, 0xcb, //0x0000488d decl %ebx + 0x83, 0xfb, 0x05, //0x0000488f cmpl $5, %ebx + 0x0f, 0x87, 0x20, 0x00, 0x00, 0x00, //0x00004892 ja LBB18_40 + 0x49, 0x63, 0x1c, 0x9b, //0x00004898 movslq (%r11,%rbx,4), %rbx + 0x4c, 0x01, 0xdb, //0x0000489c addq %r11, %rbx + 0xff, 0xe3, //0x0000489f jmpq *%rbx + //0x000048a1 LBB18_37 + 0x83, 0xf9, 0x2c, //0x000048a1 cmpl $44, %ecx + 0x0f, 0x84, 0x5d, 0x01, 0x00, 0x00, //0x000048a4 je LBB18_58 + 0x83, 0xf9, 0x5d, //0x000048aa cmpl $93, %ecx + 0x0f, 0x84, 0xab, 0x00, 0x00, 0x00, //0x000048ad je LBB18_39 + 0xe9, 0x32, 0x03, 0x00, 0x00, //0x000048b3 jmp LBB18_87 + //0x000048b8 LBB18_40 + 0x49, 0x89, 0x12, //0x000048b8 movq %rdx, (%r10) + 0x83, 0xf9, 0x7b, //0x000048bb cmpl $123, %ecx + 0x0f, 0x86, 0xd1, 0x00, 0x00, 0x00, //0x000048be jbe LBB18_56 + 0xe9, 0x21, 0x03, 0x00, 0x00, //0x000048c4 jmp LBB18_87 + //0x000048c9 LBB18_41 + 0x83, 0xf9, 0x2c, //0x000048c9 cmpl $44, %ecx + 0x0f, 0x84, 0x57, 0x01, 0x00, 0x00, //0x000048cc je LBB18_60 + 0x83, 0xf9, 0x7d, //0x000048d2 cmpl $125, %ecx + 0x0f, 0x84, 0x83, 0x00, 0x00, 0x00, //0x000048d5 je LBB18_39 + 0xe9, 0x0a, 0x03, 0x00, 0x00, //0x000048db jmp LBB18_87 + //0x000048e0 LBB18_44 + 0x80, 0xf9, 0x22, //0x000048e0 cmpb $34, %cl + 0x0f, 0x85, 0x01, 0x03, 0x00, 0x00, //0x000048e3 jne LBB18_87 + 0x4b, 0xc7, 0x04, 0xca, 0x04, 0x00, 0x00, 0x00, //0x000048e9 movq $4, (%r10,%r9,8) + //0x000048f1 LBB18_46 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000048f1 movq $-1, $-64(%rbp) + 0x48, 0x89, 0xf7, //0x000048f9 movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x000048fc movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x000048ff leaq $-64(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa8, //0x00004903 movq $-88(%rbp), %rcx + 0xe8, 0x04, 0xef, 0xff, 0xff, //0x00004907 callq _advance_string + 0x48, 0x89, 0xc1, //0x0000490c movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x0000490f testq %rax, %rax + 0x0f, 0x88, 0xa1, 0x02, 0x00, 0x00, //0x00004912 js LBB18_81 + //0x00004918 LBB18_47 + 0x4c, 0x8b, 0x45, 0xd0, //0x00004918 movq $-48(%rbp), %r8 + 0x49, 0x89, 0x08, //0x0000491c movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x0000491f movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004922 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xb0, //0x00004925 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00004929 movq $-72(%rbp), %r10 + 0x4c, 0x8d, 0x1d, 0xc8, 0x03, 0x00, 0x00, //0x0000492d leaq $968(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x0f, 0x8f, 0xa9, 0xfd, 0xff, 0xff, //0x00004934 jg LBB18_6 + 0xe9, 0x5f, 0x02, 0x00, 0x00, //0x0000493a jmp LBB18_88 + //0x0000493f LBB18_48 + 0x80, 0xf9, 0x3a, //0x0000493f cmpb $58, %cl + 0x0f, 0x85, 0xa2, 0x02, 0x00, 0x00, //0x00004942 jne LBB18_87 + 0x4b, 0xc7, 0x04, 0xca, 0x00, 0x00, 0x00, 0x00, //0x00004948 movq $0, (%r10,%r9,8) + 0xe9, 0x8b, 0xfd, 0xff, 0xff, //0x00004950 jmp LBB18_5 + //0x00004955 LBB18_50 + 0x80, 0xf9, 0x5d, //0x00004955 cmpb $93, %cl + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00004958 jne LBB18_55 + //0x0000495e LBB18_39 + 0x49, 0x89, 0x12, //0x0000495e movq %rdx, (%r10) + 0xe9, 0x83, 0xfd, 0xff, 0xff, //0x00004961 jmp LBB18_7 + //0x00004966 LBB18_52 + 0x83, 0xf9, 0x22, //0x00004966 cmpl $34, %ecx + 0x0f, 0x84, 0xdc, 0x00, 0x00, 0x00, //0x00004969 je LBB18_62 + 0x83, 0xf9, 0x7d, //0x0000496f cmpl $125, %ecx + 0x0f, 0x85, 0x72, 0x02, 0x00, 0x00, //0x00004972 jne LBB18_87 + 0x49, 0x89, 0x12, //0x00004978 movq %rdx, (%r10) + 0x4c, 0x8b, 0x45, 0xd0, //0x0000497b movq $-48(%rbp), %r8 + 0xe9, 0x65, 0xfd, 0xff, 0xff, //0x0000497f jmp LBB18_7 + //0x00004984 LBB18_55 + 0x4b, 0xc7, 0x04, 0xca, 0x01, 0x00, 0x00, 0x00, //0x00004984 movq $1, (%r10,%r9,8) + 0x83, 0xf9, 0x7b, //0x0000498c cmpl $123, %ecx + 0x0f, 0x87, 0x55, 0x02, 0x00, 0x00, //0x0000498f ja LBB18_87 + //0x00004995 LBB18_56 + 0x4a, 0x8d, 0x1c, 0x3f, //0x00004995 leaq (%rdi,%r15), %rbx + 0x89, 0xca, //0x00004999 movl %ecx, %edx + 0x48, 0x8d, 0x0d, 0x72, 0x03, 0x00, 0x00, //0x0000499b leaq $882(%rip), %rcx /* LJTI18_1+0(%rip) */ + 0x48, 0x63, 0x14, 0x91, //0x000049a2 movslq (%rcx,%rdx,4), %rdx + 0x48, 0x01, 0xca, //0x000049a6 addq %rcx, %rdx + 0xff, 0xe2, //0x000049a9 jmpq *%rdx + //0x000049ab LBB18_57 + 0x48, 0x8b, 0x45, 0xc8, //0x000049ab movq $-56(%rbp), %rax + 0x48, 0x8b, 0x30, //0x000049af movq (%rax), %rsi + 0x4c, 0x29, 0xfe, //0x000049b2 subq %r15, %rsi + 0x48, 0x89, 0xdf, //0x000049b5 movq %rbx, %rdi + 0xe8, 0xc3, 0x06, 0x00, 0x00, //0x000049b8 callq _do_skip_number + 0x4c, 0x8d, 0x1d, 0x38, 0x03, 0x00, 0x00, //0x000049bd leaq $824(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x4c, 0x8b, 0x55, 0xb8, //0x000049c4 movq $-72(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xb0, //0x000049c8 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x45, 0xd0, //0x000049cc movq $-48(%rbp), %r8 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000049d0 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x000049d7 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x000049da testq %rax, %rax + 0x48, 0x8d, 0x48, 0xff, //0x000049dd leaq $-1(%rax), %rcx + 0x48, 0x0f, 0x48, 0xca, //0x000049e1 cmovsq %rdx, %rcx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000049e5 movq $-2, %rax + 0x4c, 0x0f, 0x48, 0xf8, //0x000049ec cmovsq %rax, %r15 + 0x4c, 0x01, 0xe9, //0x000049f0 addq %r13, %rcx + 0x49, 0x89, 0x08, //0x000049f3 movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x000049f6 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x000049f9 testq %r15, %r15 + 0x0f, 0x89, 0xe1, 0xfc, 0xff, 0xff, //0x000049fc jns LBB18_6 + 0xe9, 0x97, 0x01, 0x00, 0x00, //0x00004a02 jmp LBB18_88 + //0x00004a07 LBB18_58 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00004a07 cmpq $4095, %r9 + 0x0f, 0x8f, 0x99, 0x01, 0x00, 0x00, //0x00004a0e jg LBB18_82 + 0x49, 0x8d, 0x41, 0x01, //0x00004a14 leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x00004a18 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00004a1b movq $0, $8(%r10,%r9,8) + 0xe9, 0xb7, 0xfc, 0xff, 0xff, //0x00004a24 jmp LBB18_5 + //0x00004a29 LBB18_60 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00004a29 cmpq $4095, %r9 + 0x0f, 0x8f, 0x77, 0x01, 0x00, 0x00, //0x00004a30 jg LBB18_82 + 0x49, 0x8d, 0x41, 0x01, //0x00004a36 leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x00004a3a movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00004a3d movq $3, $8(%r10,%r9,8) + 0xe9, 0x95, 0xfc, 0xff, 0xff, //0x00004a46 jmp LBB18_5 + //0x00004a4b LBB18_62 + 0x4b, 0xc7, 0x04, 0xca, 0x02, 0x00, 0x00, 0x00, //0x00004a4b movq $2, (%r10,%r9,8) + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004a53 movq $-1, $-64(%rbp) + 0x48, 0x89, 0xf7, //0x00004a5b movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x00004a5e movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x00004a61 leaq $-64(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa8, //0x00004a65 movq $-88(%rbp), %rcx + 0xe8, 0xa2, 0xed, 0xff, 0xff, //0x00004a69 callq _advance_string + 0x48, 0x89, 0xc1, //0x00004a6e movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x00004a71 testq %rax, %rax + 0x0f, 0x88, 0x3f, 0x01, 0x00, 0x00, //0x00004a74 js LBB18_81 + 0x4c, 0x8b, 0x45, 0xd0, //0x00004a7a movq $-48(%rbp), %r8 + 0x49, 0x89, 0x08, //0x00004a7e movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004a81 movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004a84 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xb0, //0x00004a87 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00004a8b movq $-72(%rbp), %r10 + 0x4c, 0x8d, 0x1d, 0x66, 0x02, 0x00, 0x00, //0x00004a8f leaq $614(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x0f, 0x8e, 0x02, 0x01, 0x00, 0x00, //0x00004a96 jle LBB18_88 + 0x49, 0x8b, 0x02, //0x00004a9c movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004a9f cmpq $4095, %rax + 0x0f, 0x8f, 0x02, 0x01, 0x00, 0x00, //0x00004aa5 jg LBB18_82 + 0x48, 0x8d, 0x50, 0x01, //0x00004aab leaq $1(%rax), %rdx + 0x49, 0x89, 0x12, //0x00004aaf movq %rdx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004ab2 movq $4, $8(%r10,%rax,8) + 0xe9, 0x23, 0xfc, 0xff, 0xff, //0x00004abb jmp LBB18_6 + //0x00004ac0 LBB18_66 + 0x4c, 0x01, 0xef, //0x00004ac0 addq %r13, %rdi + 0x48, 0x8b, 0x45, 0xc8, //0x00004ac3 movq $-56(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00004ac7 movq (%rax), %rsi + 0x4c, 0x29, 0xee, //0x00004aca subq %r13, %rsi + 0xe8, 0xae, 0x05, 0x00, 0x00, //0x00004acd callq _do_skip_number + 0x48, 0x89, 0xc1, //0x00004ad2 movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x00004ad5 testq %rax, %rax + 0x0f, 0x88, 0x02, 0x01, 0x00, 0x00, //0x00004ad8 js LBB18_86 + 0x4c, 0x01, 0xe9, //0x00004ade addq %r13, %rcx + 0xe9, 0x32, 0xfe, 0xff, 0xff, //0x00004ae1 jmp LBB18_47 + //0x00004ae6 LBB18_68 + 0x49, 0x8b, 0x02, //0x00004ae6 movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004ae9 cmpq $4095, %rax + 0x0f, 0x8f, 0xb8, 0x00, 0x00, 0x00, //0x00004aef jg LBB18_82 + 0x48, 0x8d, 0x48, 0x01, //0x00004af5 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x00004af9 movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004afc movq $5, $8(%r10,%rax,8) + 0xe9, 0xd6, 0xfb, 0xff, 0xff, //0x00004b05 jmp LBB18_5 + //0x00004b0a LBB18_70 + 0x48, 0x8b, 0x4d, 0xc8, //0x00004b0a movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004b0e movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00004b11 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00004b15 cmpq %rdx, %r15 + 0x0f, 0x83, 0xd8, 0x00, 0x00, 0x00, //0x00004b18 jae LBB18_90 + 0x42, 0x8b, 0x0c, 0x2f, //0x00004b1e movl (%rdi,%r13), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004b22 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00004b28 jne LBB18_97 + 0x49, 0x8d, 0x4f, 0x05, //0x00004b2e leaq $5(%r15), %rcx + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00004b32 jmp LBB18_78 + //0x00004b37 LBB18_73 + 0x48, 0x8b, 0x55, 0xc8, //0x00004b37 movq $-56(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00004b3b movq (%rdx), %rdx + 0x48, 0x8d, 0x4a, 0xfd, //0x00004b3e leaq $-3(%rdx), %rcx + 0x49, 0x39, 0xcf, //0x00004b42 cmpq %rcx, %r15 + 0x0f, 0x83, 0x8d, 0x00, 0x00, 0x00, //0x00004b45 jae LBB18_92 + 0x81, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, //0x00004b4b cmpl $1819047278, (%rbx) + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00004b51 je LBB18_77 + 0xe9, 0x48, 0x01, 0x00, 0x00, //0x00004b57 jmp LBB18_102 + //0x00004b5c LBB18_75 + 0x48, 0x8b, 0x55, 0xc8, //0x00004b5c movq $-56(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00004b60 movq (%rdx), %rdx + 0x48, 0x8d, 0x4a, 0xfd, //0x00004b63 leaq $-3(%rdx), %rcx + 0x49, 0x39, 0xcf, //0x00004b67 cmpq %rcx, %r15 + 0x0f, 0x83, 0x68, 0x00, 0x00, 0x00, //0x00004b6a jae LBB18_92 + 0x81, 0x3b, 0x74, 0x72, 0x75, 0x65, //0x00004b70 cmpl $1702195828, (%rbx) + 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00004b76 jne LBB18_93 + //0x00004b7c LBB18_77 + 0x49, 0x8d, 0x4f, 0x04, //0x00004b7c leaq $4(%r15), %rcx + //0x00004b80 LBB18_78 + 0x49, 0x89, 0x08, //0x00004b80 movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004b83 movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004b86 testq %r13, %r13 + 0x0f, 0x8f, 0x54, 0xfb, 0xff, 0xff, //0x00004b89 jg LBB18_6 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004b8f jmp LBB18_88 + //0x00004b94 LBB18_79 + 0x49, 0x89, 0x08, //0x00004b94 movq %rcx, (%r8) + //0x00004b97 LBB18_2 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004b97 movq $-1, %rax + //0x00004b9e LBB18_88 + 0x48, 0x83, 0xc4, 0x38, //0x00004b9e addq $56, %rsp + 0x5b, //0x00004ba2 popq %rbx + 0x41, 0x5c, //0x00004ba3 popq %r12 + 0x41, 0x5d, //0x00004ba5 popq %r13 + 0x41, 0x5e, //0x00004ba7 popq %r14 + 0x41, 0x5f, //0x00004ba9 popq %r15 + 0x5d, //0x00004bab popq %rbp + 0xc3, //0x00004bac retq + //0x00004bad LBB18_82 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x00004bad movq $-7, %rax + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00004bb4 jmp LBB18_88 + //0x00004bb9 LBB18_81 + 0x48, 0x83, 0xf9, 0xff, //0x00004bb9 cmpq $-1, %rcx + 0x48, 0x8d, 0x45, 0xc0, //0x00004bbd leaq $-64(%rbp), %rax + 0x48, 0x0f, 0x44, 0x45, 0xc8, //0x00004bc1 cmoveq $-56(%rbp), %rax + 0x48, 0x8b, 0x00, //0x00004bc6 movq (%rax), %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00004bc9 movq $-48(%rbp), %rdx + 0x48, 0x89, 0x02, //0x00004bcd movq %rax, (%rdx) + 0x48, 0x89, 0xc8, //0x00004bd0 movq %rcx, %rax + 0xe9, 0xc6, 0xff, 0xff, 0xff, //0x00004bd3 jmp LBB18_88 + //0x00004bd8 LBB18_92 + 0x49, 0x89, 0x10, //0x00004bd8 movq %rdx, (%r8) + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004bdb jmp LBB18_88 + //0x00004be0 LBB18_86 + 0x49, 0x29, 0xcf, //0x00004be0 subq %rcx, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x00004be3 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00004be7 movq %r15, (%rax) + //0x00004bea LBB18_87 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004bea movq $-2, %rax + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00004bf1 jmp LBB18_88 + //0x00004bf6 LBB18_90 + 0x49, 0x89, 0x08, //0x00004bf6 movq %rcx, (%r8) + 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x00004bf9 jmp LBB18_88 + //0x00004bfe LBB18_93 + 0x4d, 0x89, 0x38, //0x00004bfe movq %r15, (%r8) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c01 movq $-2, %rax + 0x80, 0x3b, 0x74, //0x00004c08 cmpb $116, (%rbx) + 0x0f, 0x85, 0x8d, 0xff, 0xff, 0xff, //0x00004c0b jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x01, //0x00004c11 leaq $1(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c15 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x72, //0x00004c18 cmpb $114, $1(%rdi,%r15) + 0x0f, 0x85, 0x7a, 0xff, 0xff, 0xff, //0x00004c1e jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004c24 leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c28 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x75, //0x00004c2b cmpb $117, $2(%rdi,%r15) + 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00004c31 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004c37 leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c3b movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x65, //0x00004c3e cmpb $101, $3(%rdi,%r15) + 0x0f, 0x84, 0xa6, 0x00, 0x00, 0x00, //0x00004c44 je LBB18_106 + 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00004c4a jmp LBB18_88 + //0x00004c4f LBB18_97 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c4f movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00004c56 cmpb $97, %cl + 0x0f, 0x85, 0x3f, 0xff, 0xff, 0xff, //0x00004c59 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004c5f leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c63 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004c66 cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00004c6c jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004c72 leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c76 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x73, //0x00004c79 cmpb $115, $3(%rdi,%r15) + 0x0f, 0x85, 0x19, 0xff, 0xff, 0xff, //0x00004c7f jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x04, //0x00004c85 leaq $4(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c89 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x04, 0x65, //0x00004c8c cmpb $101, $4(%rdi,%r15) + 0x0f, 0x85, 0x06, 0xff, 0xff, 0xff, //0x00004c92 jne LBB18_88 + 0x49, 0x83, 0xc7, 0x05, //0x00004c98 addq $5, %r15 + 0x4d, 0x89, 0x38, //0x00004c9c movq %r15, (%r8) + 0xe9, 0xfa, 0xfe, 0xff, 0xff, //0x00004c9f jmp LBB18_88 + //0x00004ca4 LBB18_102 + 0x4d, 0x89, 0x38, //0x00004ca4 movq %r15, (%r8) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004ca7 movq $-2, %rax + 0x80, 0x3b, 0x6e, //0x00004cae cmpb $110, (%rbx) + 0x0f, 0x85, 0xe7, 0xfe, 0xff, 0xff, //0x00004cb1 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x01, //0x00004cb7 leaq $1(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004cbb movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x75, //0x00004cbe cmpb $117, $1(%rdi,%r15) + 0x0f, 0x85, 0xd4, 0xfe, 0xff, 0xff, //0x00004cc4 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004cca leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004cce movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004cd1 cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0xc1, 0xfe, 0xff, 0xff, //0x00004cd7 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004cdd leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004ce1 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x6c, //0x00004ce4 cmpb $108, $3(%rdi,%r15) + 0x0f, 0x85, 0xae, 0xfe, 0xff, 0xff, //0x00004cea jne LBB18_88 + //0x00004cf0 LBB18_106 + 0x49, 0x83, 0xc7, 0x04, //0x00004cf0 addq $4, %r15 + 0x4d, 0x89, 0x38, //0x00004cf4 movq %r15, (%r8) + 0xe9, 0xa2, 0xfe, 0xff, 0xff, //0x00004cf7 jmp LBB18_88 + //0x00004cfc .p2align 2, 0x90 + // // .set L18_0_set_37, LBB18_37-LJTI18_0 + // // .set L18_0_set_41, LBB18_41-LJTI18_0 + // // .set L18_0_set_44, LBB18_44-LJTI18_0 + // // .set L18_0_set_48, LBB18_48-LJTI18_0 + // // .set L18_0_set_50, LBB18_50-LJTI18_0 + // // .set L18_0_set_52, LBB18_52-LJTI18_0 + //0x00004cfc LJTI18_0 + 0xa5, 0xfb, 0xff, 0xff, //0x00004cfc .long L18_0_set_37 + 0xcd, 0xfb, 0xff, 0xff, //0x00004d00 .long L18_0_set_41 + 0xe4, 0xfb, 0xff, 0xff, //0x00004d04 .long L18_0_set_44 + 0x43, 0xfc, 0xff, 0xff, //0x00004d08 .long L18_0_set_48 + 0x59, 0xfc, 0xff, 0xff, //0x00004d0c .long L18_0_set_50 + 0x6a, 0xfc, 0xff, 0xff, //0x00004d10 .long L18_0_set_52 + // // .set L18_1_set_88, LBB18_88-LJTI18_1 + // // .set L18_1_set_87, LBB18_87-LJTI18_1 + // // .set L18_1_set_46, LBB18_46-LJTI18_1 + // // .set L18_1_set_66, LBB18_66-LJTI18_1 + // // .set L18_1_set_57, LBB18_57-LJTI18_1 + // // .set L18_1_set_68, LBB18_68-LJTI18_1 + // // .set L18_1_set_70, LBB18_70-LJTI18_1 + // // .set L18_1_set_73, LBB18_73-LJTI18_1 + // // .set L18_1_set_75, LBB18_75-LJTI18_1 + // // .set L18_1_set_3, LBB18_3-LJTI18_1 + //0x00004d14 LJTI18_1 + 0x8a, 0xfe, 0xff, 0xff, //0x00004d14 .long L18_1_set_88 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d18 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d1c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d20 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d24 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d28 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d2c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d30 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d34 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d38 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d3c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d40 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d44 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d48 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d4c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d50 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d54 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d58 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d5c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d60 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d64 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d68 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d6c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d70 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d74 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d78 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d7c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d80 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d84 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d88 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d8c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d90 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d94 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d98 .long L18_1_set_87 + 0xdd, 0xfb, 0xff, 0xff, //0x00004d9c .long L18_1_set_46 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dac .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dbc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc4 .long L18_1_set_87 + 0xac, 0xfd, 0xff, 0xff, //0x00004dc8 .long L18_1_set_66 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dcc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dd0 .long L18_1_set_87 + 0x97, 0xfc, 0xff, 0xff, //0x00004dd4 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004dd8 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004ddc .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004de0 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004de4 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004de8 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004dec .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004df0 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004df4 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004df8 .long L18_1_set_57 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dfc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e00 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e04 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e08 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e0c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e10 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e14 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e18 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e1c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e20 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e24 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e28 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e2c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e30 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e34 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e38 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e3c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e40 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e44 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e48 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e4c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e50 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e54 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e58 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e5c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e60 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e64 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e68 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e6c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e70 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e74 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e78 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e7c .long L18_1_set_87 + 0xd2, 0xfd, 0xff, 0xff, //0x00004e80 .long L18_1_set_68 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e84 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e88 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e8c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e90 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e94 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e98 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e9c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ea0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ea4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ea8 .long L18_1_set_87 + 0xf6, 0xfd, 0xff, 0xff, //0x00004eac .long L18_1_set_70 + 0xd6, 0xfe, 0xff, 0xff, //0x00004eb0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004eb4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004eb8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ebc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ec0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ec4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ec8 .long L18_1_set_87 + 0x23, 0xfe, 0xff, 0xff, //0x00004ecc .long L18_1_set_73 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ed0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ed4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ed8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004edc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ee0 .long L18_1_set_87 + 0x48, 0xfe, 0xff, 0xff, //0x00004ee4 .long L18_1_set_75 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ee8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004eec .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ef0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ef4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ef8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004efc .long L18_1_set_87 + 0xa7, 0xf9, 0xff, 0xff, //0x00004f00 .long L18_1_set_3 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f04 .p2align 4, 0x00 + //0x00004f10 LCPI19_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f10 .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f18 .quad 6 + //0x00004f20 .p2align 4, 0x90 + //0x00004f20 _skip_object + 0x55, //0x00004f20 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004f21 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00004f24 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00004f27 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x00004f2a movq %rdi, %rsi + 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x00004f2d movaps $-36(%rip), %xmm0 /* LCPI19_0+0(%rip) */ + 0x0f, 0x11, 0x00, //0x00004f34 movups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00004f37 movq %rax, %rdi + 0x5d, //0x00004f3a popq %rbp + 0xe9, 0x20, 0xf7, 0xff, 0xff, //0x00004f3b jmp _fsm_exec + //0x00004f40 .p2align 4, 0x90 + //0x00004f40 _skip_string + 0x55, //0x00004f40 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004f41 movq %rsp, %rbp + 0x41, 0x57, //0x00004f44 pushq %r15 + 0x41, 0x56, //0x00004f46 pushq %r14 + 0x41, 0x54, //0x00004f48 pushq %r12 + 0x53, //0x00004f4a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00004f4b subq $16, %rsp + 0x48, 0x89, 0xd1, //0x00004f4f movq %rdx, %rcx + 0x49, 0x89, 0xf6, //0x00004f52 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00004f55 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00004f58 movq $-1, $-40(%rbp) + 0x48, 0x8b, 0x1e, //0x00004f60 movq (%rsi), %rbx + 0x4c, 0x8d, 0x65, 0xd8, //0x00004f63 leaq $-40(%rbp), %r12 + 0x48, 0x89, 0xde, //0x00004f67 movq %rbx, %rsi + 0x4c, 0x89, 0xe2, //0x00004f6a movq %r12, %rdx + 0xe8, 0x9e, 0xe8, 0xff, 0xff, //0x00004f6d callq _advance_string + 0x48, 0x85, 0xc0, //0x00004f72 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004f75 js LBB20_1 + 0x48, 0xff, 0xcb, //0x00004f7b decq %rbx + 0x48, 0x89, 0xc1, //0x00004f7e movq %rax, %rcx + 0x48, 0x89, 0xd8, //0x00004f81 movq %rbx, %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004f84 jmp LBB20_3 + //0x00004f89 LBB20_1 + 0x49, 0x83, 0xc7, 0x08, //0x00004f89 addq $8, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x00004f8d cmpq $-1, %rax + 0x4d, 0x0f, 0x44, 0xe7, //0x00004f91 cmoveq %r15, %r12 + 0x49, 0x8b, 0x0c, 0x24, //0x00004f95 movq (%r12), %rcx + //0x00004f99 LBB20_3 + 0x49, 0x89, 0x0e, //0x00004f99 movq %rcx, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00004f9c addq $16, %rsp + 0x5b, //0x00004fa0 popq %rbx + 0x41, 0x5c, //0x00004fa1 popq %r12 + 0x41, 0x5e, //0x00004fa3 popq %r14 + 0x41, 0x5f, //0x00004fa5 popq %r15 + 0x5d, //0x00004fa7 popq %rbp + 0xc3, //0x00004fa8 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004fa9 .p2align 4, 0x90 + //0x00004fb0 _skip_negative + 0x55, //0x00004fb0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004fb1 movq %rsp, %rbp + 0x41, 0x56, //0x00004fb4 pushq %r14 + 0x53, //0x00004fb6 pushq %rbx + 0x49, 0x89, 0xf6, //0x00004fb7 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x00004fba movq (%rsi), %rbx + 0x48, 0x8b, 0x07, //0x00004fbd movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00004fc0 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x00004fc3 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x00004fc7 subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00004fca movq %rax, %rdi + 0xe8, 0xae, 0x00, 0x00, 0x00, //0x00004fcd callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00004fd2 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004fd5 js LBB21_1 + 0x48, 0x01, 0xd8, //0x00004fdb addq %rbx, %rax + 0x49, 0x89, 0x06, //0x00004fde movq %rax, (%r14) + 0x48, 0xff, 0xcb, //0x00004fe1 decq %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004fe4 jmp LBB21_3 + //0x00004fe9 LBB21_1 + 0x48, 0xf7, 0xd0, //0x00004fe9 notq %rax + 0x48, 0x01, 0xc3, //0x00004fec addq %rax, %rbx + 0x49, 0x89, 0x1e, //0x00004fef movq %rbx, (%r14) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00004ff2 movq $-2, %rbx + //0x00004ff9 LBB21_3 + 0x48, 0x89, 0xd8, //0x00004ff9 movq %rbx, %rax + 0x5b, //0x00004ffc popq %rbx + 0x41, 0x5e, //0x00004ffd popq %r14 + 0x5d, //0x00004fff popq %rbp + 0xc3, //0x00005000 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005001 .p2align 4, 0x00 + //0x00005010 LCPI22_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005010 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005020 LCPI22_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005020 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005030 LCPI22_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005030 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005040 LCPI22_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005040 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005050 LCPI22_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005060 LCPI22_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005060 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005070 LCPI22_6 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005070 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00005080 .p2align 4, 0x90 + //0x00005080 _do_skip_number + 0x55, //0x00005080 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005081 movq %rsp, %rbp + 0x41, 0x57, //0x00005084 pushq %r15 + 0x41, 0x56, //0x00005086 pushq %r14 + 0x41, 0x55, //0x00005088 pushq %r13 + 0x41, 0x54, //0x0000508a pushq %r12 + 0x53, //0x0000508c pushq %rbx + 0x48, 0x85, 0xf6, //0x0000508d testq %rsi, %rsi + 0x0f, 0x84, 0x84, 0x02, 0x00, 0x00, //0x00005090 je LBB22_34 + 0x80, 0x3f, 0x30, //0x00005096 cmpb $48, (%rdi) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00005099 jne LBB22_5 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000509f movl $1, %edx + 0x48, 0x83, 0xfe, 0x01, //0x000050a4 cmpq $1, %rsi + 0x0f, 0x84, 0x40, 0x03, 0x00, 0x00, //0x000050a8 je LBB22_52 + 0x8a, 0x47, 0x01, //0x000050ae movb $1(%rdi), %al + 0x04, 0xd2, //0x000050b1 addb $-46, %al + 0x3c, 0x37, //0x000050b3 cmpb $55, %al + 0x0f, 0x87, 0x33, 0x03, 0x00, 0x00, //0x000050b5 ja LBB22_52 + 0x0f, 0xb6, 0xc0, //0x000050bb movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000050be movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000050c8 btq %rax, %rcx + 0x0f, 0x83, 0x1c, 0x03, 0x00, 0x00, //0x000050cc jae LBB22_52 + //0x000050d2 LBB22_5 + 0x48, 0x83, 0xfe, 0x10, //0x000050d2 cmpq $16, %rsi + 0x0f, 0x82, 0x40, 0x03, 0x00, 0x00, //0x000050d6 jb LBB22_57 + 0x4c, 0x8d, 0x5e, 0xf0, //0x000050dc leaq $-16(%rsi), %r11 + 0x4c, 0x89, 0xd8, //0x000050e0 movq %r11, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x000050e3 andq $-16, %rax + 0x4c, 0x8d, 0x54, 0x38, 0x10, //0x000050e7 leaq $16(%rax,%rdi), %r10 + 0x41, 0x83, 0xe3, 0x0f, //0x000050ec andl $15, %r11d + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000050f0 movq $-1, %r9 + 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x10, 0xff, 0xff, 0xff, //0x000050f7 movdqa $-240(%rip), %xmm8 /* LCPI22_0+0(%rip) */ + 0x66, 0x44, 0x0f, 0x6f, 0x15, 0x17, 0xff, 0xff, 0xff, //0x00005100 movdqa $-233(%rip), %xmm10 /* LCPI22_1+0(%rip) */ + 0x66, 0x44, 0x0f, 0x6f, 0x0d, 0x1e, 0xff, 0xff, 0xff, //0x00005109 movdqa $-226(%rip), %xmm9 /* LCPI22_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x1d, 0x26, 0xff, 0xff, 0xff, //0x00005112 movdqa $-218(%rip), %xmm3 /* LCPI22_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x25, 0x2e, 0xff, 0xff, 0xff, //0x0000511a movdqa $-210(%rip), %xmm4 /* LCPI22_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x2d, 0x36, 0xff, 0xff, 0xff, //0x00005122 movdqa $-202(%rip), %xmm5 /* LCPI22_5+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x35, 0x3e, 0xff, 0xff, 0xff, //0x0000512a movdqa $-194(%rip), %xmm6 /* LCPI22_6+0(%rip) */ + 0x41, 0xbe, 0xff, 0xff, 0xff, 0xff, //0x00005132 movl $4294967295, %r14d + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005138 movq $-1, %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000513f movq $-1, %r8 + 0x49, 0x89, 0xff, //0x00005146 movq %rdi, %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005149 .p2align 4, 0x90 + //0x00005150 LBB22_7 + 0xf3, 0x41, 0x0f, 0x6f, 0x3f, //0x00005150 movdqu (%r15), %xmm7 + 0x66, 0x0f, 0x6f, 0xc7, //0x00005155 movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x64, 0xc0, //0x00005159 pcmpgtb %xmm8, %xmm0 + 0x66, 0x41, 0x0f, 0x6f, 0xca, //0x0000515e movdqa %xmm10, %xmm1 + 0x66, 0x0f, 0x64, 0xcf, //0x00005163 pcmpgtb %xmm7, %xmm1 + 0x66, 0x0f, 0xdb, 0xc8, //0x00005167 pand %xmm0, %xmm1 + 0x66, 0x0f, 0x6f, 0xc7, //0x0000516b movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc1, //0x0000516f pcmpeqb %xmm9, %xmm0 + 0x66, 0x0f, 0x6f, 0xd7, //0x00005174 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005178 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xeb, 0xd0, //0x0000517c por %xmm0, %xmm2 + 0x66, 0x0f, 0x6f, 0xc7, //0x00005180 movdqa %xmm7, %xmm0 + 0x66, 0x0f, 0xeb, 0xc4, //0x00005184 por %xmm4, %xmm0 + 0x66, 0x0f, 0x74, 0xc6, //0x00005188 pcmpeqb %xmm6, %xmm0 + 0x66, 0x0f, 0x74, 0xfd, //0x0000518c pcmpeqb %xmm5, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xe8, //0x00005190 pmovmskb %xmm0, %r13d + 0x66, 0x0f, 0xeb, 0xc7, //0x00005195 por %xmm7, %xmm0 + 0x66, 0x0f, 0xeb, 0xca, //0x00005199 por %xmm2, %xmm1 + 0x66, 0x0f, 0xeb, 0xc8, //0x0000519d por %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xd7, //0x000051a1 pmovmskb %xmm7, %edx + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x000051a5 pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0xd7, 0xc9, //0x000051aa pmovmskb %xmm1, %ecx + 0x4c, 0x31, 0xf1, //0x000051ae xorq %r14, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000051b1 bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x000051b5 cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000051b8 je LBB22_9 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x000051be movl $-1, %ebx + 0xd3, 0xe3, //0x000051c3 shll %cl, %ebx + 0xf7, 0xd3, //0x000051c5 notl %ebx + 0x21, 0xda, //0x000051c7 andl %ebx, %edx + 0x41, 0x21, 0xdd, //0x000051c9 andl %ebx, %r13d + 0x44, 0x21, 0xe3, //0x000051cc andl %r12d, %ebx + 0x41, 0x89, 0xdc, //0x000051cf movl %ebx, %r12d + //0x000051d2 LBB22_9 + 0x8d, 0x5a, 0xff, //0x000051d2 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000051d5 andl %edx, %ebx + 0x0f, 0x85, 0x05, 0x02, 0x00, 0x00, //0x000051d7 jne LBB22_50 + 0x41, 0x8d, 0x5d, 0xff, //0x000051dd leal $-1(%r13), %ebx + 0x44, 0x21, 0xeb, //0x000051e1 andl %r13d, %ebx + 0x0f, 0x85, 0xf8, 0x01, 0x00, 0x00, //0x000051e4 jne LBB22_50 + 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x000051ea leal $-1(%r12), %ebx + 0x44, 0x21, 0xe3, //0x000051ef andl %r12d, %ebx + 0x0f, 0x85, 0xea, 0x01, 0x00, 0x00, //0x000051f2 jne LBB22_50 + 0x85, 0xd2, //0x000051f8 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000051fa je LBB22_15 + 0x4c, 0x89, 0xfb, //0x00005200 movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x00005203 subq %rdi, %rbx + 0x0f, 0xbc, 0xd2, //0x00005206 bsfl %edx, %edx + 0x48, 0x01, 0xda, //0x00005209 addq %rbx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x0000520c cmpq $-1, %r8 + 0x0f, 0x85, 0xd5, 0x01, 0x00, 0x00, //0x00005210 jne LBB22_51 + 0x49, 0x89, 0xd0, //0x00005216 movq %rdx, %r8 + //0x00005219 LBB22_15 + 0x45, 0x85, 0xed, //0x00005219 testl %r13d, %r13d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000521c je LBB22_18 + 0x4c, 0x89, 0xfb, //0x00005222 movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x00005225 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd5, //0x00005228 bsfl %r13d, %edx + 0x48, 0x01, 0xda, //0x0000522c addq %rbx, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x0000522f cmpq $-1, %rax + 0x0f, 0x85, 0xb2, 0x01, 0x00, 0x00, //0x00005233 jne LBB22_51 + 0x48, 0x89, 0xd0, //0x00005239 movq %rdx, %rax + //0x0000523c LBB22_18 + 0x45, 0x85, 0xe4, //0x0000523c testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000523f je LBB22_21 + 0x4c, 0x89, 0xfb, //0x00005245 movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x00005248 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd4, //0x0000524b bsfl %r12d, %edx + 0x48, 0x01, 0xda, //0x0000524f addq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00005252 cmpq $-1, %r9 + 0x0f, 0x85, 0x8f, 0x01, 0x00, 0x00, //0x00005256 jne LBB22_51 + 0x49, 0x89, 0xd1, //0x0000525c movq %rdx, %r9 + //0x0000525f LBB22_21 + 0x83, 0xf9, 0x10, //0x0000525f cmpl $16, %ecx + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00005262 jne LBB22_35 + 0x49, 0x83, 0xc7, 0x10, //0x00005268 addq $16, %r15 + 0x48, 0x83, 0xc6, 0xf0, //0x0000526c addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x00005270 cmpq $15, %rsi + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00005274 ja LBB22_7 + 0x4d, 0x85, 0xdb, //0x0000527a testq %r11, %r11 + 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, //0x0000527d je LBB22_36 + //0x00005283 LBB22_24 + 0x4b, 0x8d, 0x0c, 0x1a, //0x00005283 leaq (%r10,%r11), %rcx + 0x48, 0x8d, 0x35, 0xae, 0x01, 0x00, 0x00, //0x00005287 leaq $430(%rip), %rsi /* LJTI22_0+0(%rip) */ + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x0000528e jmp LBB22_26 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005293 .p2align 4, 0x90 + //0x000052a0 LBB22_25 + 0x49, 0x89, 0xda, //0x000052a0 movq %rbx, %r10 + 0x49, 0xff, 0xcb, //0x000052a3 decq %r11 + 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x000052a6 je LBB22_54 + //0x000052ac LBB22_26 + 0x41, 0x0f, 0xbe, 0x12, //0x000052ac movsbl (%r10), %edx + 0x83, 0xc2, 0xd5, //0x000052b0 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000052b3 cmpl $58, %edx + 0x0f, 0x87, 0x70, 0x00, 0x00, 0x00, //0x000052b6 ja LBB22_36 + 0x49, 0x8d, 0x5a, 0x01, //0x000052bc leaq $1(%r10), %rbx + 0x48, 0x63, 0x14, 0x96, //0x000052c0 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x000052c4 addq %rsi, %rdx + 0xff, 0xe2, //0x000052c7 jmpq *%rdx + //0x000052c9 LBB22_28 + 0x48, 0x89, 0xda, //0x000052c9 movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x000052cc subq %rdi, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000052cf cmpq $-1, %r9 + 0x0f, 0x85, 0x3b, 0x01, 0x00, 0x00, //0x000052d3 jne LBB22_58 + 0x48, 0xff, 0xca, //0x000052d9 decq %rdx + 0x49, 0x89, 0xd1, //0x000052dc movq %rdx, %r9 + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x000052df jmp LBB22_25 + //0x000052e4 LBB22_30 + 0x48, 0x89, 0xda, //0x000052e4 movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x000052e7 subq %rdi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x000052ea cmpq $-1, %rax + 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x000052ee jne LBB22_58 + 0x48, 0xff, 0xca, //0x000052f4 decq %rdx + 0x48, 0x89, 0xd0, //0x000052f7 movq %rdx, %rax + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x000052fa jmp LBB22_25 + //0x000052ff LBB22_32 + 0x48, 0x89, 0xda, //0x000052ff movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x00005302 subq %rdi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00005305 cmpq $-1, %r8 + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00005309 jne LBB22_58 + 0x48, 0xff, 0xca, //0x0000530f decq %rdx + 0x49, 0x89, 0xd0, //0x00005312 movq %rdx, %r8 + 0xe9, 0x86, 0xff, 0xff, 0xff, //0x00005315 jmp LBB22_25 + //0x0000531a LBB22_34 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000531a movq $-1, %rax + 0xe9, 0xcb, 0x00, 0x00, 0x00, //0x00005321 jmp LBB22_53 + //0x00005326 LBB22_35 + 0x49, 0x01, 0xcf, //0x00005326 addq %rcx, %r15 + 0x4d, 0x89, 0xfa, //0x00005329 movq %r15, %r10 + //0x0000532c LBB22_36 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000532c movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x00005333 testq %rax, %rax + 0x0f, 0x84, 0xb2, 0x00, 0x00, 0x00, //0x00005336 je LBB22_52 + //0x0000533c LBB22_37 + 0x4d, 0x85, 0xc9, //0x0000533c testq %r9, %r9 + 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, //0x0000533f je LBB22_52 + 0x4d, 0x85, 0xc0, //0x00005345 testq %r8, %r8 + 0x0f, 0x84, 0xa0, 0x00, 0x00, 0x00, //0x00005348 je LBB22_52 + 0x49, 0x29, 0xfa, //0x0000534e subq %rdi, %r10 + 0x49, 0x8d, 0x4a, 0xff, //0x00005351 leaq $-1(%r10), %rcx + 0x48, 0x39, 0xc8, //0x00005355 cmpq %rcx, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00005358 je LBB22_45 + 0x49, 0x39, 0xc8, //0x0000535e cmpq %rcx, %r8 + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x00005361 je LBB22_45 + 0x49, 0x39, 0xc9, //0x00005367 cmpq %rcx, %r9 + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000536a je LBB22_45 + 0x4d, 0x85, 0xc9, //0x00005370 testq %r9, %r9 + 0x0f, 0x8e, 0x29, 0x00, 0x00, 0x00, //0x00005373 jle LBB22_46 + 0x49, 0x8d, 0x49, 0xff, //0x00005379 leaq $-1(%r9), %rcx + 0x48, 0x39, 0xc8, //0x0000537d cmpq %rcx, %rax + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00005380 je LBB22_46 + 0x49, 0xf7, 0xd1, //0x00005386 notq %r9 + 0x4c, 0x89, 0xca, //0x00005389 movq %r9, %rdx + 0x4c, 0x89, 0xc8, //0x0000538c movq %r9, %rax + 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x0000538f jmp LBB22_53 + //0x00005394 LBB22_45 + 0x49, 0xf7, 0xda, //0x00005394 negq %r10 + 0x4c, 0x89, 0xd2, //0x00005397 movq %r10, %rdx + 0x4c, 0x89, 0xd0, //0x0000539a movq %r10, %rax + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x0000539d jmp LBB22_53 + //0x000053a2 LBB22_46 + 0x4c, 0x89, 0xc1, //0x000053a2 movq %r8, %rcx + 0x48, 0x09, 0xc1, //0x000053a5 orq %rax, %rcx + 0x49, 0x39, 0xc0, //0x000053a8 cmpq %rax, %r8 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000053ab jl LBB22_49 + 0x48, 0x85, 0xc9, //0x000053b1 testq %rcx, %rcx + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x000053b4 js LBB22_49 + 0x49, 0xf7, 0xd0, //0x000053ba notq %r8 + 0x4c, 0x89, 0xc2, //0x000053bd movq %r8, %rdx + 0x4c, 0x89, 0xc0, //0x000053c0 movq %r8, %rax + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x000053c3 jmp LBB22_53 + //0x000053c8 LBB22_49 + 0x48, 0x85, 0xc9, //0x000053c8 testq %rcx, %rcx + 0x48, 0x8d, 0x48, 0xff, //0x000053cb leaq $-1(%rax), %rcx + 0x48, 0xf7, 0xd0, //0x000053cf notq %rax + 0x49, 0x0f, 0x48, 0xc2, //0x000053d2 cmovsq %r10, %rax + 0x49, 0x39, 0xc8, //0x000053d6 cmpq %rcx, %r8 + 0x49, 0x0f, 0x45, 0xc2, //0x000053d9 cmovneq %r10, %rax + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000053dd jmp LBB22_53 + //0x000053e2 LBB22_50 + 0x49, 0x29, 0xff, //0x000053e2 subq %rdi, %r15 + 0x0f, 0xbc, 0xd3, //0x000053e5 bsfl %ebx, %edx + 0x4c, 0x01, 0xfa, //0x000053e8 addq %r15, %rdx + //0x000053eb LBB22_51 + 0x48, 0xf7, 0xd2, //0x000053eb notq %rdx + //0x000053ee LBB22_52 + 0x48, 0x89, 0xd0, //0x000053ee movq %rdx, %rax + //0x000053f1 LBB22_53 + 0x5b, //0x000053f1 popq %rbx + 0x41, 0x5c, //0x000053f2 popq %r12 + 0x41, 0x5d, //0x000053f4 popq %r13 + 0x41, 0x5e, //0x000053f6 popq %r14 + 0x41, 0x5f, //0x000053f8 popq %r15 + 0x5d, //0x000053fa popq %rbp + 0xc3, //0x000053fb retq + //0x000053fc LBB22_54 + 0x49, 0x89, 0xca, //0x000053fc movq %rcx, %r10 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000053ff movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x00005406 testq %rax, %rax + 0x0f, 0x85, 0x2d, 0xff, 0xff, 0xff, //0x00005409 jne LBB22_37 + 0xe9, 0xda, 0xff, 0xff, 0xff, //0x0000540f jmp LBB22_52 + //0x00005414 LBB22_58 + 0x48, 0xf7, 0xda, //0x00005414 negq %rdx + 0xe9, 0xd2, 0xff, 0xff, 0xff, //0x00005417 jmp LBB22_52 + //0x0000541c LBB22_57 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000541c movq $-1, %r8 + 0x49, 0x89, 0xfa, //0x00005423 movq %rdi, %r10 + 0x49, 0x89, 0xf3, //0x00005426 movq %rsi, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005429 movq $-1, %rax + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005430 movq $-1, %r9 + 0xe9, 0x47, 0xfe, 0xff, 0xff, //0x00005437 jmp LBB22_24 + //0x0000543c .p2align 2, 0x90 + // // .set L22_0_set_28, LBB22_28-LJTI22_0 + // // .set L22_0_set_36, LBB22_36-LJTI22_0 + // // .set L22_0_set_32, LBB22_32-LJTI22_0 + // // .set L22_0_set_25, LBB22_25-LJTI22_0 + // // .set L22_0_set_30, LBB22_30-LJTI22_0 + //0x0000543c LJTI22_0 + 0x8d, 0xfe, 0xff, 0xff, //0x0000543c .long L22_0_set_28 + 0xf0, 0xfe, 0xff, 0xff, //0x00005440 .long L22_0_set_36 + 0x8d, 0xfe, 0xff, 0xff, //0x00005444 .long L22_0_set_28 + 0xc3, 0xfe, 0xff, 0xff, //0x00005448 .long L22_0_set_32 + 0xf0, 0xfe, 0xff, 0xff, //0x0000544c .long L22_0_set_36 + 0x64, 0xfe, 0xff, 0xff, //0x00005450 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005454 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005458 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x0000545c .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005460 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005464 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005468 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x0000546c .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005470 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005474 .long L22_0_set_25 + 0xf0, 0xfe, 0xff, 0xff, //0x00005478 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000547c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005480 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005484 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005488 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000548c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005490 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005494 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005498 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000549c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a0 .long L22_0_set_36 + 0xa8, 0xfe, 0xff, 0xff, //0x000054a4 .long L22_0_set_30 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054ac .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054b0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054b4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054b8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054bc .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054c0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054c4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054c8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054cc .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054d0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054d4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054d8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054dc .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054e0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054e4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054e8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054ec .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054f0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054f4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054f8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054fc .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005500 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005504 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005508 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000550c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005510 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005514 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005518 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000551c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005520 .long L22_0_set_36 + 0xa8, 0xfe, 0xff, 0xff, //0x00005524 .long L22_0_set_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005528 .p2align 4, 0x90 + //0x00005530 _skip_positive + 0x55, //0x00005530 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005531 movq %rsp, %rbp + 0x41, 0x57, //0x00005534 pushq %r15 + 0x41, 0x56, //0x00005536 pushq %r14 + 0x53, //0x00005538 pushq %rbx + 0x50, //0x00005539 pushq %rax + 0x49, 0x89, 0xf6, //0x0000553a movq %rsi, %r14 + 0x4c, 0x8b, 0x3e, //0x0000553d movq (%rsi), %r15 + 0x49, 0x8d, 0x5f, 0xff, //0x00005540 leaq $-1(%r15), %rbx + 0x48, 0x8b, 0x07, //0x00005544 movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00005547 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x0000554a movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x0000554e subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00005551 movq %rax, %rdi + 0xe8, 0x27, 0xfb, 0xff, 0xff, //0x00005554 callq _do_skip_number + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00005559 movq $-2, %rcx + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00005560 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x00005567 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x0000556a testq %rax, %rax + 0x48, 0x8d, 0x40, 0xff, //0x0000556d leaq $-1(%rax), %rax + 0x48, 0x0f, 0x48, 0xc2, //0x00005571 cmovsq %rdx, %rax + 0x48, 0x0f, 0x49, 0xcb, //0x00005575 cmovnsq %rbx, %rcx + 0x4c, 0x01, 0xf8, //0x00005579 addq %r15, %rax + 0x49, 0x89, 0x06, //0x0000557c movq %rax, (%r14) + 0x48, 0x89, 0xc8, //0x0000557f movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00005582 addq $8, %rsp + 0x5b, //0x00005586 popq %rbx + 0x41, 0x5e, //0x00005587 popq %r14 + 0x41, 0x5f, //0x00005589 popq %r15 + 0x5d, //0x0000558b popq %rbp + 0xc3, //0x0000558c retq + 0x90, 0x90, 0x90, //0x0000558d .p2align 4, 0x90 + //0x00005590 _skip_number + 0x55, //0x00005590 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005591 movq %rsp, %rbp + 0x41, 0x57, //0x00005594 pushq %r15 + 0x41, 0x56, //0x00005596 pushq %r14 + 0x41, 0x54, //0x00005598 pushq %r12 + 0x53, //0x0000559a pushq %rbx + 0x49, 0x89, 0xf6, //0x0000559b movq %rsi, %r14 + 0x4c, 0x8b, 0x27, //0x0000559e movq (%rdi), %r12 + 0x48, 0x8b, 0x77, 0x08, //0x000055a1 movq $8(%rdi), %rsi + 0x4d, 0x8b, 0x3e, //0x000055a5 movq (%r14), %r15 + 0x31, 0xc0, //0x000055a8 xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x3c, 0x2d, //0x000055aa cmpb $45, (%r12,%r15) + 0x4b, 0x8d, 0x1c, 0x3c, //0x000055af leaq (%r12,%r15), %rbx + 0x0f, 0x94, 0xc0, //0x000055b3 sete %al + 0x48, 0x01, 0xc3, //0x000055b6 addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x000055b9 subq %rax, %rsi + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x000055bc je LBB24_6 + 0x49, 0x39, 0xf7, //0x000055c2 cmpq %rsi, %r15 + 0x0f, 0x83, 0x0c, 0x00, 0x00, 0x00, //0x000055c5 jae LBB24_3 + 0x8a, 0x03, //0x000055cb movb (%rbx), %al + 0x04, 0xd0, //0x000055cd addb $-48, %al + 0x3c, 0x09, //0x000055cf cmpb $9, %al + 0x0f, 0x87, 0x38, 0x00, 0x00, 0x00, //0x000055d1 ja LBB24_8 + //0x000055d7 LBB24_3 + 0x48, 0x89, 0xdf, //0x000055d7 movq %rbx, %rdi + 0xe8, 0xa1, 0xfa, 0xff, 0xff, //0x000055da callq _do_skip_number + 0x48, 0x85, 0xc0, //0x000055df testq %rax, %rax + 0x0f, 0x88, 0x21, 0x00, 0x00, 0x00, //0x000055e2 js LBB24_7 + 0x48, 0x01, 0xc3, //0x000055e8 addq %rax, %rbx + //0x000055eb LBB24_5 + 0x4c, 0x29, 0xe3, //0x000055eb subq %r12, %rbx + 0x49, 0x89, 0x1e, //0x000055ee movq %rbx, (%r14) + 0x4c, 0x89, 0xf8, //0x000055f1 movq %r15, %rax + 0x5b, //0x000055f4 popq %rbx + 0x41, 0x5c, //0x000055f5 popq %r12 + 0x41, 0x5e, //0x000055f7 popq %r14 + 0x41, 0x5f, //0x000055f9 popq %r15 + 0x5d, //0x000055fb popq %rbp + 0xc3, //0x000055fc retq + //0x000055fd LBB24_6 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000055fd movq $-1, %r15 + 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x00005604 jmp LBB24_5 + //0x00005609 LBB24_7 + 0x48, 0xf7, 0xd0, //0x00005609 notq %rax + 0x48, 0x01, 0xc3, //0x0000560c addq %rax, %rbx + //0x0000560f LBB24_8 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000560f movq $-2, %r15 + 0xe9, 0xd0, 0xff, 0xff, 0xff, //0x00005616 jmp LBB24_5 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000561b .p2align 4, 0x90 + //0x00005620 _skip_one + 0x55, //0x00005620 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005621 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005624 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005627 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000562a movq %rdi, %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x0000562d movl $1, %edi + 0x66, 0x48, 0x0f, 0x6e, 0xc7, //0x00005632 movq %rdi, %xmm0 + 0xf3, 0x0f, 0x7f, 0x00, //0x00005637 movdqu %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x0000563b movq %rax, %rdi + 0x5d, //0x0000563e popq %rbp + 0xe9, 0x1c, 0xf0, 0xff, 0xff, //0x0000563f jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005644 .p2align 4, 0x90 + //0x00005650 _validate_one + 0x55, //0x00005650 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005651 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005654 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005657 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000565a movq %rdi, %rsi + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000565d movl $1, %ecx + 0x66, 0x48, 0x0f, 0x6e, 0xc1, //0x00005662 movq %rcx, %xmm0 + 0xf3, 0x0f, 0x7f, 0x00, //0x00005667 movdqu %xmm0, (%rax) + 0xb9, 0x20, 0x00, 0x00, 0x00, //0x0000566b movl $32, %ecx + 0x48, 0x89, 0xc7, //0x00005670 movq %rax, %rdi + 0x5d, //0x00005673 popq %rbp + 0xe9, 0xe7, 0xef, 0xff, 0xff, //0x00005674 jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005679 .p2align 4, 0x00 + //0x00005680 LCPI27_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00005680 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00005690 LCPI27_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005690 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000056a0 LCPI27_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x000056a0 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x000056b0 LCPI27_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000056b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000056c0 LCPI27_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000056c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000056d0 LCPI27_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000056d0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x000056e0 LCPI27_6 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000056e0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x000056f0 LCPI27_7 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x000056f0 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00005700 .p2align 4, 0x90 + //0x00005700 _skip_one_fast + 0x55, //0x00005700 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005701 movq %rsp, %rbp + 0x41, 0x57, //0x00005704 pushq %r15 + 0x41, 0x56, //0x00005706 pushq %r14 + 0x41, 0x55, //0x00005708 pushq %r13 + 0x41, 0x54, //0x0000570a pushq %r12 + 0x53, //0x0000570c pushq %rbx + 0x48, 0x83, 0xec, 0x58, //0x0000570d subq $88, %rsp + 0x4c, 0x8b, 0x07, //0x00005711 movq (%rdi), %r8 + 0x4c, 0x8b, 0x4f, 0x08, //0x00005714 movq $8(%rdi), %r9 + 0x48, 0x8b, 0x16, //0x00005718 movq (%rsi), %rdx + 0x48, 0x89, 0xd0, //0x0000571b movq %rdx, %rax + 0x4c, 0x29, 0xc8, //0x0000571e subq %r9, %rax + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00005721 jae LBB27_5 + 0x41, 0x8a, 0x0c, 0x10, //0x00005727 movb (%r8,%rdx), %cl + 0x80, 0xf9, 0x0d, //0x0000572b cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000572e je LBB27_5 + 0x80, 0xf9, 0x20, //0x00005734 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005737 je LBB27_5 + 0x80, 0xc1, 0xf7, //0x0000573d addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00005740 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00005743 jbe LBB27_5 + 0x49, 0x89, 0xd6, //0x00005749 movq %rdx, %r14 + 0xe9, 0x2e, 0x01, 0x00, 0x00, //0x0000574c jmp LBB27_27 + //0x00005751 LBB27_5 + 0x4c, 0x8d, 0x72, 0x01, //0x00005751 leaq $1(%rdx), %r14 + 0x4d, 0x39, 0xce, //0x00005755 cmpq %r9, %r14 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00005758 jae LBB27_9 + 0x43, 0x8a, 0x0c, 0x30, //0x0000575e movb (%r8,%r14), %cl + 0x80, 0xf9, 0x0d, //0x00005762 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005765 je LBB27_9 + 0x80, 0xf9, 0x20, //0x0000576b cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000576e je LBB27_9 + 0x80, 0xc1, 0xf7, //0x00005774 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00005777 cmpb $1, %cl + 0x0f, 0x87, 0xff, 0x00, 0x00, 0x00, //0x0000577a ja LBB27_27 + //0x00005780 LBB27_9 + 0x4c, 0x8d, 0x72, 0x02, //0x00005780 leaq $2(%rdx), %r14 + 0x4d, 0x39, 0xce, //0x00005784 cmpq %r9, %r14 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00005787 jae LBB27_13 + 0x43, 0x8a, 0x0c, 0x30, //0x0000578d movb (%r8,%r14), %cl + 0x80, 0xf9, 0x0d, //0x00005791 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005794 je LBB27_13 + 0x80, 0xf9, 0x20, //0x0000579a cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000579d je LBB27_13 + 0x80, 0xc1, 0xf7, //0x000057a3 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000057a6 cmpb $1, %cl + 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x000057a9 ja LBB27_27 + //0x000057af LBB27_13 + 0x4c, 0x8d, 0x72, 0x03, //0x000057af leaq $3(%rdx), %r14 + 0x4d, 0x39, 0xce, //0x000057b3 cmpq %r9, %r14 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000057b6 jae LBB27_17 + 0x43, 0x8a, 0x0c, 0x30, //0x000057bc movb (%r8,%r14), %cl + 0x80, 0xf9, 0x0d, //0x000057c0 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000057c3 je LBB27_17 + 0x80, 0xf9, 0x20, //0x000057c9 cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000057cc je LBB27_17 + 0x80, 0xc1, 0xf7, //0x000057d2 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000057d5 cmpb $1, %cl + 0x0f, 0x87, 0xa1, 0x00, 0x00, 0x00, //0x000057d8 ja LBB27_27 + //0x000057de LBB27_17 + 0x48, 0x8d, 0x4a, 0x04, //0x000057de leaq $4(%rdx), %rcx + 0x49, 0x39, 0xc9, //0x000057e2 cmpq %rcx, %r9 + 0x0f, 0x86, 0x4e, 0x00, 0x00, 0x00, //0x000057e5 jbe LBB27_23 + 0x49, 0x39, 0xc9, //0x000057eb cmpq %rcx, %r9 + 0x0f, 0x84, 0x54, 0x00, 0x00, 0x00, //0x000057ee je LBB27_24 + 0x4b, 0x8d, 0x0c, 0x08, //0x000057f4 leaq (%r8,%r9), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x000057f8 addq $4, %rax + 0x4e, 0x8d, 0x74, 0x02, 0x05, //0x000057fc leaq $5(%rdx,%r8), %r14 + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005801 movabsq $4294977024, %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000580b .p2align 4, 0x90 + //0x00005810 LBB27_20 + 0x41, 0x0f, 0xbe, 0x5e, 0xff, //0x00005810 movsbl $-1(%r14), %ebx + 0x83, 0xfb, 0x20, //0x00005815 cmpl $32, %ebx + 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x00005818 ja LBB27_26 + 0x48, 0x0f, 0xa3, 0xda, //0x0000581e btq %rbx, %rdx + 0x0f, 0x83, 0x3e, 0x00, 0x00, 0x00, //0x00005822 jae LBB27_26 + 0x49, 0xff, 0xc6, //0x00005828 incq %r14 + 0x48, 0xff, 0xc0, //0x0000582b incq %rax + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000582e jne LBB27_20 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00005834 jmp LBB27_25 + //0x00005839 LBB27_23 + 0x48, 0x89, 0x0e, //0x00005839 movq %rcx, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000583c movq $-1, %rax + 0xe9, 0x4a, 0x01, 0x00, 0x00, //0x00005843 jmp LBB27_45 + //0x00005848 LBB27_24 + 0x4c, 0x01, 0xc1, //0x00005848 addq %r8, %rcx + //0x0000584b LBB27_25 + 0x4c, 0x29, 0xc1, //0x0000584b subq %r8, %rcx + 0x49, 0x89, 0xce, //0x0000584e movq %rcx, %r14 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005851 movq $-1, %rax + 0x4d, 0x39, 0xce, //0x00005858 cmpq %r9, %r14 + 0x0f, 0x82, 0x1e, 0x00, 0x00, 0x00, //0x0000585b jb LBB27_27 + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00005861 jmp LBB27_45 + //0x00005866 LBB27_26 + 0x4c, 0x89, 0xc0, //0x00005866 movq %r8, %rax + 0x48, 0xf7, 0xd0, //0x00005869 notq %rax + 0x49, 0x01, 0xc6, //0x0000586c addq %rax, %r14 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000586f movq $-1, %rax + 0x4d, 0x39, 0xce, //0x00005876 cmpq %r9, %r14 + 0x0f, 0x83, 0x13, 0x01, 0x00, 0x00, //0x00005879 jae LBB27_45 + //0x0000587f LBB27_27 + 0x49, 0x8d, 0x5e, 0x01, //0x0000587f leaq $1(%r14), %rbx + 0x48, 0x89, 0x1e, //0x00005883 movq %rbx, (%rsi) + 0x43, 0x0f, 0xbe, 0x0c, 0x30, //0x00005886 movsbl (%r8,%r14), %ecx + 0x83, 0xf9, 0x7b, //0x0000588b cmpl $123, %ecx + 0x0f, 0x87, 0x20, 0x01, 0x00, 0x00, //0x0000588e ja LBB27_47 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005894 movq $-1, %rax + 0x48, 0x8d, 0x15, 0xaa, 0x0b, 0x00, 0x00, //0x0000589b leaq $2986(%rip), %rdx /* LJTI27_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x000058a2 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x000058a6 addq %rdx, %rcx + 0xff, 0xe1, //0x000058a9 jmpq *%rcx + //0x000058ab LBB27_29 + 0x48, 0x8b, 0x4f, 0x08, //0x000058ab movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x000058af movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x000058b2 subq %rbx, %rax + 0x4c, 0x01, 0xc3, //0x000058b5 addq %r8, %rbx + 0x48, 0x83, 0xf8, 0x10, //0x000058b8 cmpq $16, %rax + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000058bc jb LBB27_34 + 0x4c, 0x29, 0xf1, //0x000058c2 subq %r14, %rcx + 0x48, 0x83, 0xc1, 0xef, //0x000058c5 addq $-17, %rcx + 0x48, 0x89, 0xca, //0x000058c9 movq %rcx, %rdx + 0x48, 0x83, 0xe2, 0xf0, //0x000058cc andq $-16, %rdx + 0x4c, 0x01, 0xf2, //0x000058d0 addq %r14, %rdx + 0x49, 0x8d, 0x54, 0x10, 0x11, //0x000058d3 leaq $17(%r8,%rdx), %rdx + 0x83, 0xe1, 0x0f, //0x000058d8 andl $15, %ecx + 0x66, 0x0f, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x000058db movdqa $-611(%rip), %xmm0 /* LCPI27_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x000058e3 movdqa $-603(%rip), %xmm1 /* LCPI27_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x000058eb movdqa $-595(%rip), %xmm2 /* LCPI27_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000058f3 .p2align 4, 0x90 + //0x00005900 LBB27_31 + 0xf3, 0x0f, 0x6f, 0x1b, //0x00005900 movdqu (%rbx), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00005904 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00005908 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xeb, 0xd9, //0x0000590c por %xmm1, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00005910 pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xeb, 0xdc, //0x00005914 por %xmm4, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00005918 pmovmskb %xmm3, %edi + 0x66, 0x85, 0xff, //0x0000591c testw %di, %di + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x0000591f jne LBB27_42 + 0x48, 0x83, 0xc3, 0x10, //0x00005925 addq $16, %rbx + 0x48, 0x83, 0xc0, 0xf0, //0x00005929 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x0000592d cmpq $15, %rax + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00005931 ja LBB27_31 + 0x48, 0x89, 0xc8, //0x00005937 movq %rcx, %rax + 0x48, 0x89, 0xd3, //0x0000593a movq %rdx, %rbx + //0x0000593d LBB27_34 + 0x48, 0x85, 0xc0, //0x0000593d testq %rax, %rax + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00005940 je LBB27_41 + 0x48, 0x8d, 0x0c, 0x03, //0x00005946 leaq (%rbx,%rax), %rcx + //0x0000594a LBB27_36 + 0x0f, 0xb6, 0x13, //0x0000594a movzbl (%rbx), %edx + 0x80, 0xfa, 0x2c, //0x0000594d cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00005950 je LBB27_41 + 0x80, 0xfa, 0x7d, //0x00005956 cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00005959 je LBB27_41 + 0x80, 0xfa, 0x5d, //0x0000595f cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00005962 je LBB27_41 + 0x48, 0xff, 0xc3, //0x00005968 incq %rbx + 0x48, 0xff, 0xc8, //0x0000596b decq %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000596e jne LBB27_36 + 0x48, 0x89, 0xcb, //0x00005974 movq %rcx, %rbx + //0x00005977 LBB27_41 + 0x4c, 0x29, 0xc3, //0x00005977 subq %r8, %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x0000597a jmp LBB27_43 + //0x0000597f LBB27_42 + 0x0f, 0xb7, 0xc7, //0x0000597f movzwl %di, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00005982 bsfq %rax, %rax + 0x4c, 0x29, 0xc3, //0x00005986 subq %r8, %rbx + 0x48, 0x01, 0xc3, //0x00005989 addq %rax, %rbx + //0x0000598c LBB27_43 + 0x48, 0x89, 0x1e, //0x0000598c movq %rbx, (%rsi) + //0x0000598f LBB27_44 + 0x4c, 0x89, 0xf0, //0x0000598f movq %r14, %rax + //0x00005992 LBB27_45 + 0x48, 0x83, 0xc4, 0x58, //0x00005992 addq $88, %rsp + 0x5b, //0x00005996 popq %rbx + 0x41, 0x5c, //0x00005997 popq %r12 + 0x41, 0x5d, //0x00005999 popq %r13 + 0x41, 0x5e, //0x0000599b popq %r14 + 0x41, 0x5f, //0x0000599d popq %r15 + 0x5d, //0x0000599f popq %rbp + 0xc3, //0x000059a0 retq + //0x000059a1 LBB27_46 + 0x49, 0x8d, 0x4e, 0x04, //0x000059a1 leaq $4(%r14), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x000059a5 cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0xe3, 0xff, 0xff, 0xff, //0x000059a9 ja LBB27_45 + 0xe9, 0x6a, 0x05, 0x00, 0x00, //0x000059af jmp LBB27_83 + //0x000059b4 LBB27_47 + 0x4c, 0x89, 0x36, //0x000059b4 movq %r14, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000059b7 movq $-2, %rax + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000059be jmp LBB27_45 + //0x000059c3 LBB27_48 + 0x4c, 0x8b, 0x4f, 0x08, //0x000059c3 movq $8(%rdi), %r9 + 0x4d, 0x89, 0xcf, //0x000059c7 movq %r9, %r15 + 0x49, 0x29, 0xdf, //0x000059ca subq %rbx, %r15 + 0x49, 0x83, 0xff, 0x20, //0x000059cd cmpq $32, %r15 + 0x0f, 0x8c, 0x3e, 0x0a, 0x00, 0x00, //0x000059d1 jl LBB27_117 + 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x000059d7 movl $4294967295, %r10d + 0x4f, 0x8d, 0x1c, 0x30, //0x000059dd leaq (%r8,%r14), %r11 + 0x4d, 0x29, 0xf1, //0x000059e1 subq %r14, %r9 + 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x000059e4 movl $31, %r13d + 0x45, 0x31, 0xff, //0x000059ea xorl %r15d, %r15d + 0x66, 0x0f, 0x6f, 0x05, 0xbb, 0xfc, 0xff, 0xff, //0x000059ed movdqa $-837(%rip), %xmm0 /* LCPI27_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xc3, 0xfc, 0xff, 0xff, //0x000059f5 movdqa $-829(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0x45, 0x31, 0xe4, //0x000059fd xorl %r12d, %r12d + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00005a00 jmp LBB27_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005a05 .p2align 4, 0x90 + //0x00005a10 LBB27_52 + 0x45, 0x31, 0xe4, //0x00005a10 xorl %r12d, %r12d + 0x85, 0xc9, //0x00005a13 testl %ecx, %ecx + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00005a15 jne LBB27_110 + //0x00005a1b LBB27_53 + 0x49, 0x83, 0xc7, 0x20, //0x00005a1b addq $32, %r15 + 0x4b, 0x8d, 0x4c, 0x29, 0xe0, //0x00005a1f leaq $-32(%r9,%r13), %rcx + 0x49, 0x83, 0xc5, 0xe0, //0x00005a24 addq $-32, %r13 + 0x48, 0x83, 0xf9, 0x3f, //0x00005a28 cmpq $63, %rcx + 0x0f, 0x8e, 0x60, 0x09, 0x00, 0x00, //0x00005a2c jle LBB27_54 + //0x00005a32 LBB27_50 + 0xf3, 0x43, 0x0f, 0x6f, 0x54, 0x3b, 0x01, //0x00005a32 movdqu $1(%r11,%r15), %xmm2 + 0xf3, 0x43, 0x0f, 0x6f, 0x5c, 0x3b, 0x11, //0x00005a39 movdqu $17(%r11,%r15), %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x00005a40 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00005a44 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00005a48 pmovmskb %xmm4, %edi + 0x66, 0x0f, 0x6f, 0xe3, //0x00005a4c movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00005a50 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00005a54 pmovmskb %xmm4, %ecx + 0x48, 0xc1, 0xe1, 0x10, //0x00005a58 shlq $16, %rcx + 0x48, 0x09, 0xf9, //0x00005a5c orq %rdi, %rcx + 0x66, 0x0f, 0x74, 0xd1, //0x00005a5f pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005a63 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00005a67 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00005a6b pmovmskb %xmm3, %edi + 0x48, 0xc1, 0xe7, 0x10, //0x00005a6f shlq $16, %rdi + 0x48, 0x09, 0xdf, //0x00005a73 orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x00005a76 movq %rdi, %rbx + 0x4c, 0x09, 0xe3, //0x00005a79 orq %r12, %rbx + 0x0f, 0x84, 0x8e, 0xff, 0xff, 0xff, //0x00005a7c je LBB27_52 + 0x44, 0x89, 0xe3, //0x00005a82 movl %r12d, %ebx + 0x44, 0x31, 0xd3, //0x00005a85 xorl %r10d, %ebx + 0x21, 0xdf, //0x00005a88 andl %ebx, %edi + 0x8d, 0x1c, 0x3f, //0x00005a8a leal (%rdi,%rdi), %ebx + 0x44, 0x09, 0xe3, //0x00005a8d orl %r12d, %ebx + 0x41, 0x8d, 0x92, 0xab, 0xaa, 0xaa, 0xaa, //0x00005a90 leal $-1431655765(%r10), %edx + 0x31, 0xda, //0x00005a97 xorl %ebx, %edx + 0x21, 0xfa, //0x00005a99 andl %edi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005a9b andl $-1431655766, %edx + 0x45, 0x31, 0xe4, //0x00005aa1 xorl %r12d, %r12d + 0x01, 0xfa, //0x00005aa4 addl %edi, %edx + 0x41, 0x0f, 0x92, 0xc4, //0x00005aa6 setb %r12b + 0x01, 0xd2, //0x00005aaa addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00005aac xorl $1431655765, %edx + 0x21, 0xda, //0x00005ab2 andl %ebx, %edx + 0x44, 0x31, 0xd2, //0x00005ab4 xorl %r10d, %edx + 0x21, 0xd1, //0x00005ab7 andl %edx, %ecx + 0x85, 0xc9, //0x00005ab9 testl %ecx, %ecx + 0x0f, 0x84, 0x5a, 0xff, 0xff, 0xff, //0x00005abb je LBB27_53 + //0x00005ac1 LBB27_110 + 0x48, 0x0f, 0xbc, 0xc1, //0x00005ac1 bsfq %rcx, %rax + 0x49, 0x01, 0xc3, //0x00005ac5 addq %rax, %r11 + 0x4d, 0x01, 0xfb, //0x00005ac8 addq %r15, %r11 + 0x4d, 0x29, 0xc3, //0x00005acb subq %r8, %r11 + 0x49, 0x83, 0xc3, 0x02, //0x00005ace addq $2, %r11 + 0x4c, 0x89, 0x1e, //0x00005ad2 movq %r11, (%rsi) + 0xe9, 0xb5, 0xfe, 0xff, 0xff, //0x00005ad5 jmp LBB27_44 + //0x00005ada LBB27_57 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005ada movabsq $6148914691236517205, %r13 + 0x48, 0x8b, 0x4f, 0x08, //0x00005ae4 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00005ae8 subq %rbx, %rcx + 0x49, 0x01, 0xd8, //0x00005aeb addq %rbx, %r8 + 0x45, 0x31, 0xff, //0x00005aee xorl %r15d, %r15d + 0x66, 0x44, 0x0f, 0x6f, 0x15, 0xb6, 0xfb, 0xff, 0xff, //0x00005af1 movdqa $-1098(%rip), %xmm10 /* LCPI27_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xbe, 0xfb, 0xff, 0xff, //0x00005afa movdqa $-1090(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00005b02 pcmpeqd %xmm9, %xmm9 + 0x66, 0x0f, 0x6f, 0x1d, 0xd1, 0xfb, 0xff, 0xff, //0x00005b07 movdqa $-1071(%rip), %xmm3 /* LCPI27_6+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x25, 0xd9, 0xfb, 0xff, 0xff, //0x00005b0f movdqa $-1063(%rip), %xmm4 /* LCPI27_7+0(%rip) */ + 0x45, 0x0f, 0x57, 0xc0, //0x00005b17 xorps %xmm8, %xmm8 + 0x45, 0x31, 0xd2, //0x00005b1b xorl %r10d, %r10d + 0x31, 0xd2, //0x00005b1e xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc0, //0x00005b20 movq %rdx, $-64(%rbp) + 0x45, 0x31, 0xdb, //0x00005b24 xorl %r11d, %r11d + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00005b27 jmp LBB27_59 + //0x00005b2c LBB27_58 + 0x49, 0xc1, 0xf9, 0x3f, //0x00005b2c sarq $63, %r9 + 0x4c, 0x89, 0xf9, //0x00005b30 movq %r15, %rcx + 0x48, 0xd1, 0xe9, //0x00005b33 shrq %rcx + 0x4c, 0x21, 0xe9, //0x00005b36 andq %r13, %rcx + 0x49, 0x29, 0xcf, //0x00005b39 subq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00005b3c movq %r15, %rcx + 0x4c, 0x21, 0xd1, //0x00005b3f andq %r10, %rcx + 0x49, 0xc1, 0xef, 0x02, //0x00005b42 shrq $2, %r15 + 0x4d, 0x21, 0xd7, //0x00005b46 andq %r10, %r15 + 0x49, 0x01, 0xcf, //0x00005b49 addq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00005b4c movq %r15, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x00005b4f shrq $4, %rcx + 0x4c, 0x01, 0xf9, //0x00005b53 addq %r15, %rcx + 0x48, 0xba, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005b56 movabsq $1085102592571150095, %rdx + 0x48, 0x21, 0xd1, //0x00005b60 andq %rdx, %rcx + 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005b63 movabsq $72340172838076673, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x00005b6d imulq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x00005b71 shrq $56, %rcx + 0x48, 0x01, 0x4d, 0xc0, //0x00005b75 addq %rcx, $-64(%rbp) + 0x49, 0x83, 0xc0, 0x40, //0x00005b79 addq $64, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00005b7d movq $-48(%rbp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00005b81 addq $-64, %rcx + 0x4d, 0x89, 0xcf, //0x00005b85 movq %r9, %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00005b88 movq $-56(%rbp), %r10 + //0x00005b8c LBB27_59 + 0x48, 0x83, 0xf9, 0x40, //0x00005b8c cmpq $64, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x00005b90 movq %rcx, $-48(%rbp) + 0x0f, 0x8c, 0x34, 0x02, 0x00, 0x00, //0x00005b94 jl LBB27_66 + //0x00005b9a LBB27_60 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x00005b9a movdqu (%r8), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x00005b9f movdqu $16(%r8), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x00005ba5 movdqu $32(%r8), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x00005bab movdqu $48(%r8), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005bb1 movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bb5 pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x00005bba pmovmskb %xmm2, %r9d + 0x66, 0x0f, 0x6f, 0xd5, //0x00005bbf movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bc3 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005bc8 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd7, //0x00005bcc movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bd0 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005bd5 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00005bd9 movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bdd pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00005be2 pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00005be6 shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00005bea shlq $32, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x00005bee shlq $16, %rcx + 0x49, 0x09, 0xc9, //0x00005bf2 orq %rcx, %r9 + 0x49, 0x09, 0xd9, //0x00005bf5 orq %rbx, %r9 + 0x49, 0x09, 0xd1, //0x00005bf8 orq %rdx, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005bfb movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005bff pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005c03 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd5, //0x00005c07 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005c0b pcmpeqb %xmm1, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00005c0f pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x00005c14 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005c18 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005c1c pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00005c20 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005c24 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00005c28 pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00005c2c shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00005c30 shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x00005c34 shlq $16, %r12 + 0x4c, 0x09, 0xe1, //0x00005c38 orq %r12, %rcx + 0x48, 0x09, 0xd9, //0x00005c3b orq %rbx, %rcx + 0x48, 0x09, 0xd1, //0x00005c3e orq %rdx, %rcx + 0x48, 0x89, 0xca, //0x00005c41 movq %rcx, %rdx + 0x4c, 0x09, 0xd2, //0x00005c44 orq %r10, %rdx + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x00005c47 je LBB27_62 + 0x4c, 0x89, 0xd2, //0x00005c4d movq %r10, %rdx + 0x48, 0xf7, 0xd2, //0x00005c50 notq %rdx + 0x48, 0x21, 0xca, //0x00005c53 andq %rcx, %rdx + 0x4c, 0x8d, 0x24, 0x12, //0x00005c56 leaq (%rdx,%rdx), %r12 + 0x4d, 0x09, 0xd4, //0x00005c5a orq %r10, %r12 + 0x4d, 0x89, 0xe2, //0x00005c5d movq %r12, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005c60 movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x00005c6a xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x00005c6d andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00005c70 andq %r10, %rcx + 0x31, 0xdb, //0x00005c73 xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x00005c75 addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x00005c78 setb %bl + 0x48, 0x89, 0x5d, 0xc8, //0x00005c7b movq %rbx, $-56(%rbp) + 0x48, 0x01, 0xc9, //0x00005c7f addq %rcx, %rcx + 0x4c, 0x31, 0xe9, //0x00005c82 xorq %r13, %rcx + 0x4c, 0x21, 0xe1, //0x00005c85 andq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x00005c88 notq %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005c8b jmp LBB27_63 + //0x00005c90 LBB27_62 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005c90 movq $-1, %rcx + 0x31, 0xd2, //0x00005c97 xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc8, //0x00005c99 movq %rdx, $-56(%rbp) + //0x00005c9d LBB27_63 + 0x4c, 0x21, 0xc9, //0x00005c9d andq %r9, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x00005ca0 movq %rcx, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00005ca5 pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd1, //0x00005cac movq %xmm2, %r9 + 0x4d, 0x31, 0xf9, //0x00005cb1 xorq %r15, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005cb4 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005cb8 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00005cbc pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x6f, 0xd5, //0x00005cc1 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005cc5 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00005cc9 pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x00005cce movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005cd2 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005cd6 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00005cda movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005cde pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005ce2 pmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00005ce6 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00005cea shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x00005cee shlq $16, %r12 + 0x4d, 0x09, 0xe7, //0x00005cf2 orq %r12, %r15 + 0x49, 0x09, 0xdf, //0x00005cf5 orq %rbx, %r15 + 0x49, 0x09, 0xcf, //0x00005cf8 orq %rcx, %r15 + 0x4c, 0x89, 0xc9, //0x00005cfb movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00005cfe notq %rcx + 0x49, 0x21, 0xcf, //0x00005d01 andq %rcx, %r15 + 0x66, 0x0f, 0x74, 0xc4, //0x00005d04 pcmpeqb %xmm4, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xe0, //0x00005d08 pmovmskb %xmm0, %r12d + 0x66, 0x0f, 0x74, 0xec, //0x00005d0d pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00005d11 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x00005d15 pcmpeqb %xmm4, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00005d19 pmovmskb %xmm7, %r10d + 0x66, 0x0f, 0x74, 0xf4, //0x00005d1e pcmpeqb %xmm4, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x00005d22 pmovmskb %xmm6, %r13d + 0x49, 0xc1, 0xe5, 0x30, //0x00005d27 shlq $48, %r13 + 0x49, 0xc1, 0xe2, 0x20, //0x00005d2b shlq $32, %r10 + 0x48, 0xc1, 0xe3, 0x10, //0x00005d2f shlq $16, %rbx + 0x49, 0x09, 0xdc, //0x00005d33 orq %rbx, %r12 + 0x4d, 0x09, 0xd4, //0x00005d36 orq %r10, %r12 + 0x4d, 0x09, 0xec, //0x00005d39 orq %r13, %r12 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005d3c movabsq $6148914691236517205, %r13 + 0x49, 0xba, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00005d46 movabsq $3689348814741910323, %r10 + 0x49, 0x21, 0xcc, //0x00005d50 andq %rcx, %r12 + 0x0f, 0x84, 0xd3, 0xfd, 0xff, 0xff, //0x00005d53 je LBB27_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005d59 .p2align 4, 0x90 + //0x00005d60 LBB27_64 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x00005d60 leaq $-1(%r12), %rdx + 0x48, 0x89, 0xd3, //0x00005d65 movq %rdx, %rbx + 0x4c, 0x21, 0xfb, //0x00005d68 andq %r15, %rbx + 0x48, 0x89, 0xd9, //0x00005d6b movq %rbx, %rcx + 0x48, 0xd1, 0xe9, //0x00005d6e shrq %rcx + 0x4c, 0x21, 0xe9, //0x00005d71 andq %r13, %rcx + 0x48, 0x29, 0xcb, //0x00005d74 subq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x00005d77 movq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00005d7a andq %r10, %rcx + 0x48, 0xc1, 0xeb, 0x02, //0x00005d7d shrq $2, %rbx + 0x4c, 0x21, 0xd3, //0x00005d81 andq %r10, %rbx + 0x48, 0x01, 0xcb, //0x00005d84 addq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x00005d87 movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x00005d8a shrq $4, %rcx + 0x48, 0x01, 0xd9, //0x00005d8e addq %rbx, %rcx + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005d91 movabsq $1085102592571150095, %rbx + 0x48, 0x21, 0xd9, //0x00005d9b andq %rbx, %rcx + 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005d9e movabsq $72340172838076673, %rbx + 0x48, 0x0f, 0xaf, 0xcb, //0x00005da8 imulq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x00005dac shrq $56, %rcx + 0x48, 0x03, 0x4d, 0xc0, //0x00005db0 addq $-64(%rbp), %rcx + 0x4c, 0x39, 0xd9, //0x00005db4 cmpq %r11, %rcx + 0x0f, 0x86, 0xa3, 0x05, 0x00, 0x00, //0x00005db7 jbe LBB27_109 + 0x49, 0xff, 0xc3, //0x00005dbd incq %r11 + 0x49, 0x21, 0xd4, //0x00005dc0 andq %rdx, %r12 + 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00005dc3 jne LBB27_64 + 0xe9, 0x5e, 0xfd, 0xff, 0xff, //0x00005dc9 jmp LBB27_58 + //0x00005dce LBB27_66 + 0x48, 0x85, 0xc9, //0x00005dce testq %rcx, %rcx + 0x0f, 0x8e, 0x46, 0x06, 0x00, 0x00, //0x00005dd1 jle LBB27_118 + 0x4c, 0x89, 0xd3, //0x00005dd7 movq %r10, %rbx + 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x00005dda movups %xmm8, $-80(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x00005ddf movups %xmm8, $-96(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00005de4 movups %xmm8, $-112(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00005de9 movups %xmm8, $-128(%rbp) + 0x44, 0x89, 0xc1, //0x00005dee movl %r8d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00005df1 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00005df7 cmpl $4033, %ecx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00005dfd jb LBB27_70 + 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00005e03 cmpq $32, $-48(%rbp) + 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00005e08 jb LBB27_71 + 0x41, 0x0f, 0x10, 0x00, //0x00005e0e movups (%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x80, //0x00005e12 movups %xmm0, $-128(%rbp) + 0x41, 0x0f, 0x10, 0x40, 0x10, //0x00005e16 movups $16(%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x90, //0x00005e1b movups %xmm0, $-112(%rbp) + 0x49, 0x83, 0xc0, 0x20, //0x00005e1f addq $32, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00005e23 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00005e27 leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x4d, 0xa0, //0x00005e2b leaq $-96(%rbp), %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00005e2f jmp LBB27_72 + //0x00005e34 LBB27_70 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005e34 movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x00005e3e movq %rbx, %r10 + 0xe9, 0x54, 0xfd, 0xff, 0xff, //0x00005e41 jmp LBB27_60 + //0x00005e46 LBB27_71 + 0x4c, 0x8d, 0x4d, 0x80, //0x00005e46 leaq $-128(%rbp), %r9 + 0x48, 0x8b, 0x55, 0xd0, //0x00005e4a movq $-48(%rbp), %rdx + //0x00005e4e LBB27_72 + 0x48, 0x83, 0xfa, 0x10, //0x00005e4e cmpq $16, %rdx + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x00005e52 jb LBB27_73 + 0x41, 0x0f, 0x10, 0x00, //0x00005e58 movups (%r8), %xmm0 + 0x41, 0x0f, 0x11, 0x01, //0x00005e5c movups %xmm0, (%r9) + 0x49, 0x83, 0xc0, 0x10, //0x00005e60 addq $16, %r8 + 0x49, 0x83, 0xc1, 0x10, //0x00005e64 addq $16, %r9 + 0x48, 0x83, 0xc2, 0xf0, //0x00005e68 addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x00005e6c cmpq $8, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00005e70 jae LBB27_80 + //0x00005e76 LBB27_74 + 0x48, 0x83, 0xfa, 0x04, //0x00005e76 cmpq $4, %rdx + 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x00005e7a jl LBB27_75 + //0x00005e80 LBB27_81 + 0x41, 0x8b, 0x08, //0x00005e80 movl (%r8), %ecx + 0x41, 0x89, 0x09, //0x00005e83 movl %ecx, (%r9) + 0x49, 0x83, 0xc0, 0x04, //0x00005e86 addq $4, %r8 + 0x49, 0x83, 0xc1, 0x04, //0x00005e8a addq $4, %r9 + 0x48, 0x83, 0xc2, 0xfc, //0x00005e8e addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00005e92 cmpq $2, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00005e96 jae LBB27_76 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x00005e9c jmp LBB27_77 + //0x00005ea1 LBB27_73 + 0x48, 0x83, 0xfa, 0x08, //0x00005ea1 cmpq $8, %rdx + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00005ea5 jb LBB27_74 + //0x00005eab LBB27_80 + 0x49, 0x8b, 0x08, //0x00005eab movq (%r8), %rcx + 0x49, 0x89, 0x09, //0x00005eae movq %rcx, (%r9) + 0x49, 0x83, 0xc0, 0x08, //0x00005eb1 addq $8, %r8 + 0x49, 0x83, 0xc1, 0x08, //0x00005eb5 addq $8, %r9 + 0x48, 0x83, 0xc2, 0xf8, //0x00005eb9 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00005ebd cmpq $4, %rdx + 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x00005ec1 jge LBB27_81 + //0x00005ec7 LBB27_75 + 0x48, 0x83, 0xfa, 0x02, //0x00005ec7 cmpq $2, %rdx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00005ecb jb LBB27_77 + //0x00005ed1 LBB27_76 + 0x41, 0x0f, 0xb7, 0x08, //0x00005ed1 movzwl (%r8), %ecx + 0x66, 0x41, 0x89, 0x09, //0x00005ed5 movw %cx, (%r9) + 0x49, 0x83, 0xc0, 0x02, //0x00005ed9 addq $2, %r8 + 0x49, 0x83, 0xc1, 0x02, //0x00005edd addq $2, %r9 + 0x48, 0x83, 0xc2, 0xfe, //0x00005ee1 addq $-2, %rdx + //0x00005ee5 LBB27_77 + 0x4c, 0x89, 0xc1, //0x00005ee5 movq %r8, %rcx + 0x4c, 0x8d, 0x45, 0x80, //0x00005ee8 leaq $-128(%rbp), %r8 + 0x48, 0x85, 0xd2, //0x00005eec testq %rdx, %rdx + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005eef movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x00005ef9 movq %rbx, %r10 + 0x0f, 0x84, 0x98, 0xfc, 0xff, 0xff, //0x00005efc je LBB27_60 + 0x8a, 0x09, //0x00005f02 movb (%rcx), %cl + 0x41, 0x88, 0x09, //0x00005f04 movb %cl, (%r9) + 0x4c, 0x8d, 0x45, 0x80, //0x00005f07 leaq $-128(%rbp), %r8 + 0xe9, 0x8a, 0xfc, 0xff, 0xff, //0x00005f0b jmp LBB27_60 + //0x00005f10 LBB27_82 + 0x49, 0x8d, 0x4e, 0x05, //0x00005f10 leaq $5(%r14), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00005f14 cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0x74, 0xfa, 0xff, 0xff, //0x00005f18 ja LBB27_45 + //0x00005f1e LBB27_83 + 0x48, 0x89, 0x0e, //0x00005f1e movq %rcx, (%rsi) + 0xe9, 0x69, 0xfa, 0xff, 0xff, //0x00005f21 jmp LBB27_44 + //0x00005f26 LBB27_84 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005f26 movabsq $6148914691236517205, %r13 + 0x48, 0x8b, 0x4f, 0x08, //0x00005f30 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00005f34 subq %rbx, %rcx + 0x49, 0x01, 0xd8, //0x00005f37 addq %rbx, %r8 + 0x45, 0x31, 0xff, //0x00005f3a xorl %r15d, %r15d + 0x66, 0x44, 0x0f, 0x6f, 0x15, 0x6a, 0xf7, 0xff, 0xff, //0x00005f3d movdqa $-2198(%rip), %xmm10 /* LCPI27_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x72, 0xf7, 0xff, 0xff, //0x00005f46 movdqa $-2190(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00005f4e pcmpeqd %xmm9, %xmm9 + 0x66, 0x0f, 0x6f, 0x1d, 0x75, 0xf7, 0xff, 0xff, //0x00005f53 movdqa $-2187(%rip), %xmm3 /* LCPI27_5+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x25, 0x3d, 0xf7, 0xff, 0xff, //0x00005f5b movdqa $-2243(%rip), %xmm4 /* LCPI27_2+0(%rip) */ + 0x45, 0x0f, 0x57, 0xc0, //0x00005f63 xorps %xmm8, %xmm8 + 0x45, 0x31, 0xd2, //0x00005f67 xorl %r10d, %r10d + 0x31, 0xd2, //0x00005f6a xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc0, //0x00005f6c movq %rdx, $-64(%rbp) + 0x45, 0x31, 0xdb, //0x00005f70 xorl %r11d, %r11d + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00005f73 jmp LBB27_86 + //0x00005f78 LBB27_85 + 0x49, 0xc1, 0xf9, 0x3f, //0x00005f78 sarq $63, %r9 + 0x4c, 0x89, 0xf9, //0x00005f7c movq %r15, %rcx + 0x48, 0xd1, 0xe9, //0x00005f7f shrq %rcx + 0x4c, 0x21, 0xe9, //0x00005f82 andq %r13, %rcx + 0x49, 0x29, 0xcf, //0x00005f85 subq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00005f88 movq %r15, %rcx + 0x4c, 0x21, 0xd1, //0x00005f8b andq %r10, %rcx + 0x49, 0xc1, 0xef, 0x02, //0x00005f8e shrq $2, %r15 + 0x4d, 0x21, 0xd7, //0x00005f92 andq %r10, %r15 + 0x49, 0x01, 0xcf, //0x00005f95 addq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00005f98 movq %r15, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x00005f9b shrq $4, %rcx + 0x4c, 0x01, 0xf9, //0x00005f9f addq %r15, %rcx + 0x48, 0xba, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005fa2 movabsq $1085102592571150095, %rdx + 0x48, 0x21, 0xd1, //0x00005fac andq %rdx, %rcx + 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005faf movabsq $72340172838076673, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x00005fb9 imulq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x00005fbd shrq $56, %rcx + 0x48, 0x01, 0x4d, 0xc0, //0x00005fc1 addq %rcx, $-64(%rbp) + 0x49, 0x83, 0xc0, 0x40, //0x00005fc5 addq $64, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00005fc9 movq $-48(%rbp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00005fcd addq $-64, %rcx + 0x4d, 0x89, 0xcf, //0x00005fd1 movq %r9, %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00005fd4 movq $-56(%rbp), %r10 + //0x00005fd8 LBB27_86 + 0x48, 0x83, 0xf9, 0x40, //0x00005fd8 cmpq $64, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x00005fdc movq %rcx, $-48(%rbp) + 0x0f, 0x8c, 0x38, 0x02, 0x00, 0x00, //0x00005fe0 jl LBB27_93 + //0x00005fe6 LBB27_87 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x00005fe6 movdqu (%r8), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x00005feb movdqu $16(%r8), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x00005ff1 movdqu $32(%r8), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x00005ff7 movdqu $48(%r8), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005ffd movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006001 pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x00006006 pmovmskb %xmm2, %r9d + 0x66, 0x0f, 0x6f, 0xd5, //0x0000600b movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000600f pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00006014 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd7, //0x00006018 movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000601c pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00006021 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00006025 movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006029 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x0000602e pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00006032 shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00006036 shlq $32, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x0000603a shlq $16, %rcx + 0x49, 0x09, 0xc9, //0x0000603e orq %rcx, %r9 + 0x49, 0x09, 0xd9, //0x00006041 orq %rbx, %r9 + 0x49, 0x09, 0xd1, //0x00006044 orq %rdx, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00006047 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x0000604b pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x0000604f pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd5, //0x00006053 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00006057 pcmpeqb %xmm1, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x0000605b pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x00006060 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00006064 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00006068 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x0000606c movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00006070 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00006074 pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00006078 shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x0000607c shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x00006080 shlq $16, %r12 + 0x4c, 0x09, 0xe1, //0x00006084 orq %r12, %rcx + 0x48, 0x09, 0xd9, //0x00006087 orq %rbx, %rcx + 0x48, 0x09, 0xd1, //0x0000608a orq %rdx, %rcx + 0x48, 0x89, 0xca, //0x0000608d movq %rcx, %rdx + 0x4c, 0x09, 0xd2, //0x00006090 orq %r10, %rdx + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x00006093 je LBB27_89 + 0x4c, 0x89, 0xd2, //0x00006099 movq %r10, %rdx + 0x48, 0xf7, 0xd2, //0x0000609c notq %rdx + 0x48, 0x21, 0xca, //0x0000609f andq %rcx, %rdx + 0x4c, 0x8d, 0x24, 0x12, //0x000060a2 leaq (%rdx,%rdx), %r12 + 0x4d, 0x09, 0xd4, //0x000060a6 orq %r10, %r12 + 0x4d, 0x89, 0xe2, //0x000060a9 movq %r12, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000060ac movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x000060b6 xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x000060b9 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x000060bc andq %r10, %rcx + 0x31, 0xdb, //0x000060bf xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x000060c1 addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x000060c4 setb %bl + 0x48, 0x89, 0x5d, 0xc8, //0x000060c7 movq %rbx, $-56(%rbp) + 0x48, 0x01, 0xc9, //0x000060cb addq %rcx, %rcx + 0x4c, 0x31, 0xe9, //0x000060ce xorq %r13, %rcx + 0x4c, 0x21, 0xe1, //0x000060d1 andq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x000060d4 notq %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000060d7 jmp LBB27_90 + //0x000060dc LBB27_89 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000060dc movq $-1, %rcx + 0x31, 0xd2, //0x000060e3 xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc8, //0x000060e5 movq %rdx, $-56(%rbp) + //0x000060e9 LBB27_90 + 0x4c, 0x21, 0xc9, //0x000060e9 andq %r9, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x000060ec movq %rcx, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x000060f1 pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd1, //0x000060f8 movq %xmm2, %r9 + 0x4d, 0x31, 0xf9, //0x000060fd xorq %r15, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00006100 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00006104 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00006108 pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x6f, 0xd5, //0x0000610d movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00006111 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00006115 pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x0000611a movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x0000611e pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00006122 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00006126 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x0000612a pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x0000612e pmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00006132 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00006136 shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x0000613a shlq $16, %r12 + 0x4d, 0x09, 0xe7, //0x0000613e orq %r12, %r15 + 0x49, 0x09, 0xdf, //0x00006141 orq %rbx, %r15 + 0x49, 0x09, 0xcf, //0x00006144 orq %rcx, %r15 + 0x4c, 0x89, 0xc9, //0x00006147 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x0000614a notq %rcx + 0x49, 0x21, 0xcf, //0x0000614d andq %rcx, %r15 + 0x66, 0x0f, 0x74, 0xc4, //0x00006150 pcmpeqb %xmm4, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xe0, //0x00006154 pmovmskb %xmm0, %r12d + 0x66, 0x0f, 0x74, 0xec, //0x00006159 pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x0000615d pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x00006161 pcmpeqb %xmm4, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00006165 pmovmskb %xmm7, %r10d + 0x66, 0x0f, 0x74, 0xf4, //0x0000616a pcmpeqb %xmm4, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x0000616e pmovmskb %xmm6, %r13d + 0x49, 0xc1, 0xe5, 0x30, //0x00006173 shlq $48, %r13 + 0x49, 0xc1, 0xe2, 0x20, //0x00006177 shlq $32, %r10 + 0x48, 0xc1, 0xe3, 0x10, //0x0000617b shlq $16, %rbx + 0x49, 0x09, 0xdc, //0x0000617f orq %rbx, %r12 + 0x4d, 0x09, 0xd4, //0x00006182 orq %r10, %r12 + 0x4d, 0x09, 0xec, //0x00006185 orq %r13, %r12 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006188 movabsq $6148914691236517205, %r13 + 0x49, 0xba, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00006192 movabsq $3689348814741910323, %r10 + 0x49, 0x21, 0xcc, //0x0000619c andq %rcx, %r12 + 0x0f, 0x84, 0xd3, 0xfd, 0xff, 0xff, //0x0000619f je LBB27_85 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000061a5 .p2align 4, 0x90 + //0x000061b0 LBB27_91 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x000061b0 leaq $-1(%r12), %rdx + 0x48, 0x89, 0xd3, //0x000061b5 movq %rdx, %rbx + 0x4c, 0x21, 0xfb, //0x000061b8 andq %r15, %rbx + 0x48, 0x89, 0xd9, //0x000061bb movq %rbx, %rcx + 0x48, 0xd1, 0xe9, //0x000061be shrq %rcx + 0x4c, 0x21, 0xe9, //0x000061c1 andq %r13, %rcx + 0x48, 0x29, 0xcb, //0x000061c4 subq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x000061c7 movq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x000061ca andq %r10, %rcx + 0x48, 0xc1, 0xeb, 0x02, //0x000061cd shrq $2, %rbx + 0x4c, 0x21, 0xd3, //0x000061d1 andq %r10, %rbx + 0x48, 0x01, 0xcb, //0x000061d4 addq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x000061d7 movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x000061da shrq $4, %rcx + 0x48, 0x01, 0xd9, //0x000061de addq %rbx, %rcx + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x000061e1 movabsq $1085102592571150095, %rbx + 0x48, 0x21, 0xd9, //0x000061eb andq %rbx, %rcx + 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000061ee movabsq $72340172838076673, %rbx + 0x48, 0x0f, 0xaf, 0xcb, //0x000061f8 imulq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x000061fc shrq $56, %rcx + 0x48, 0x03, 0x4d, 0xc0, //0x00006200 addq $-64(%rbp), %rcx + 0x4c, 0x39, 0xd9, //0x00006204 cmpq %r11, %rcx + 0x0f, 0x86, 0x53, 0x01, 0x00, 0x00, //0x00006207 jbe LBB27_109 + 0x49, 0xff, 0xc3, //0x0000620d incq %r11 + 0x49, 0x21, 0xd4, //0x00006210 andq %rdx, %r12 + 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00006213 jne LBB27_91 + 0xe9, 0x5a, 0xfd, 0xff, 0xff, //0x00006219 jmp LBB27_85 + //0x0000621e LBB27_93 + 0x48, 0x85, 0xc9, //0x0000621e testq %rcx, %rcx + 0x0f, 0x8e, 0xf6, 0x01, 0x00, 0x00, //0x00006221 jle LBB27_118 + 0x4c, 0x89, 0xd3, //0x00006227 movq %r10, %rbx + 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x0000622a movups %xmm8, $-80(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x0000622f movups %xmm8, $-96(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00006234 movups %xmm8, $-112(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00006239 movups %xmm8, $-128(%rbp) + 0x44, 0x89, 0xc1, //0x0000623e movl %r8d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006241 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006247 cmpl $4033, %ecx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x0000624d jb LBB27_97 + 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00006253 cmpq $32, $-48(%rbp) + 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00006258 jb LBB27_98 + 0x41, 0x0f, 0x10, 0x00, //0x0000625e movups (%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x80, //0x00006262 movups %xmm0, $-128(%rbp) + 0x41, 0x0f, 0x10, 0x40, 0x10, //0x00006266 movups $16(%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x90, //0x0000626b movups %xmm0, $-112(%rbp) + 0x49, 0x83, 0xc0, 0x20, //0x0000626f addq $32, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00006273 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00006277 leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x4d, 0xa0, //0x0000627b leaq $-96(%rbp), %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x0000627f jmp LBB27_99 + //0x00006284 LBB27_97 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006284 movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x0000628e movq %rbx, %r10 + 0xe9, 0x50, 0xfd, 0xff, 0xff, //0x00006291 jmp LBB27_87 + //0x00006296 LBB27_98 + 0x4c, 0x8d, 0x4d, 0x80, //0x00006296 leaq $-128(%rbp), %r9 + 0x48, 0x8b, 0x55, 0xd0, //0x0000629a movq $-48(%rbp), %rdx + //0x0000629e LBB27_99 + 0x48, 0x83, 0xfa, 0x10, //0x0000629e cmpq $16, %rdx + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x000062a2 jb LBB27_100 + 0x41, 0x0f, 0x10, 0x00, //0x000062a8 movups (%r8), %xmm0 + 0x41, 0x0f, 0x11, 0x01, //0x000062ac movups %xmm0, (%r9) + 0x49, 0x83, 0xc0, 0x10, //0x000062b0 addq $16, %r8 + 0x49, 0x83, 0xc1, 0x10, //0x000062b4 addq $16, %r9 + 0x48, 0x83, 0xc2, 0xf0, //0x000062b8 addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x000062bc cmpq $8, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000062c0 jae LBB27_107 + //0x000062c6 LBB27_101 + 0x48, 0x83, 0xfa, 0x04, //0x000062c6 cmpq $4, %rdx + 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x000062ca jl LBB27_102 + //0x000062d0 LBB27_108 + 0x41, 0x8b, 0x08, //0x000062d0 movl (%r8), %ecx + 0x41, 0x89, 0x09, //0x000062d3 movl %ecx, (%r9) + 0x49, 0x83, 0xc0, 0x04, //0x000062d6 addq $4, %r8 + 0x49, 0x83, 0xc1, 0x04, //0x000062da addq $4, %r9 + 0x48, 0x83, 0xc2, 0xfc, //0x000062de addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x000062e2 cmpq $2, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000062e6 jae LBB27_103 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000062ec jmp LBB27_104 + //0x000062f1 LBB27_100 + 0x48, 0x83, 0xfa, 0x08, //0x000062f1 cmpq $8, %rdx + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x000062f5 jb LBB27_101 + //0x000062fb LBB27_107 + 0x49, 0x8b, 0x08, //0x000062fb movq (%r8), %rcx + 0x49, 0x89, 0x09, //0x000062fe movq %rcx, (%r9) + 0x49, 0x83, 0xc0, 0x08, //0x00006301 addq $8, %r8 + 0x49, 0x83, 0xc1, 0x08, //0x00006305 addq $8, %r9 + 0x48, 0x83, 0xc2, 0xf8, //0x00006309 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x0000630d cmpq $4, %rdx + 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x00006311 jge LBB27_108 + //0x00006317 LBB27_102 + 0x48, 0x83, 0xfa, 0x02, //0x00006317 cmpq $2, %rdx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x0000631b jb LBB27_104 + //0x00006321 LBB27_103 + 0x41, 0x0f, 0xb7, 0x08, //0x00006321 movzwl (%r8), %ecx + 0x66, 0x41, 0x89, 0x09, //0x00006325 movw %cx, (%r9) + 0x49, 0x83, 0xc0, 0x02, //0x00006329 addq $2, %r8 + 0x49, 0x83, 0xc1, 0x02, //0x0000632d addq $2, %r9 + 0x48, 0x83, 0xc2, 0xfe, //0x00006331 addq $-2, %rdx + //0x00006335 LBB27_104 + 0x4c, 0x89, 0xc1, //0x00006335 movq %r8, %rcx + 0x4c, 0x8d, 0x45, 0x80, //0x00006338 leaq $-128(%rbp), %r8 + 0x48, 0x85, 0xd2, //0x0000633c testq %rdx, %rdx + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000633f movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x00006349 movq %rbx, %r10 + 0x0f, 0x84, 0x94, 0xfc, 0xff, 0xff, //0x0000634c je LBB27_87 + 0x8a, 0x09, //0x00006352 movb (%rcx), %cl + 0x41, 0x88, 0x09, //0x00006354 movb %cl, (%r9) + 0x4c, 0x8d, 0x45, 0x80, //0x00006357 leaq $-128(%rbp), %r8 + 0xe9, 0x86, 0xfc, 0xff, 0xff, //0x0000635b jmp LBB27_87 + //0x00006360 LBB27_109 + 0x48, 0x8b, 0x47, 0x08, //0x00006360 movq $8(%rdi), %rax + 0x49, 0x0f, 0xbc, 0xcc, //0x00006364 bsfq %r12, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00006368 subq $-48(%rbp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x0000636c leaq $1(%rcx,%rax), %rax + 0x48, 0x89, 0x06, //0x00006371 movq %rax, (%rsi) + 0x48, 0x8b, 0x4f, 0x08, //0x00006374 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc8, //0x00006378 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x0000637b cmovaq %rcx, %rax + 0x48, 0x89, 0x06, //0x0000637f movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006382 movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xf0, //0x00006389 cmovaq %rax, %r14 + 0xe9, 0xfd, 0xf5, 0xff, 0xff, //0x0000638d jmp LBB27_44 + //0x00006392 LBB27_54 + 0x4d, 0x85, 0xe4, //0x00006392 testq %r12, %r12 + 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x00006395 jne LBB27_119 + 0x4b, 0x8d, 0x5c, 0x1f, 0x01, //0x0000639b leaq $1(%r15,%r11), %rbx + 0x49, 0xf7, 0xd7, //0x000063a0 notq %r15 + 0x4d, 0x01, 0xcf, //0x000063a3 addq %r9, %r15 + //0x000063a6 LBB27_56 + 0x4d, 0x85, 0xff, //0x000063a6 testq %r15, %r15 + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x000063a9 jg LBB27_113 + 0xe9, 0xde, 0xf5, 0xff, 0xff, //0x000063af jmp LBB27_45 + //0x000063b4 LBB27_111 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000063b4 movq $-2, %rcx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000063bb movl $2, %eax + 0x48, 0x01, 0xc3, //0x000063c0 addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000063c3 movq $-1, %rax + 0x49, 0x01, 0xcf, //0x000063ca addq %rcx, %r15 + 0x0f, 0x8e, 0xbf, 0xf5, 0xff, 0xff, //0x000063cd jle LBB27_45 + //0x000063d3 LBB27_113 + 0x0f, 0xb6, 0x03, //0x000063d3 movzbl (%rbx), %eax + 0x3c, 0x5c, //0x000063d6 cmpb $92, %al + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x000063d8 je LBB27_111 + 0x3c, 0x22, //0x000063de cmpb $34, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000063e0 je LBB27_116 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000063e6 movq $-1, %rcx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000063ed movl $1, %eax + 0x48, 0x01, 0xc3, //0x000063f2 addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000063f5 movq $-1, %rax + 0x49, 0x01, 0xcf, //0x000063fc addq %rcx, %r15 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x000063ff jg LBB27_113 + 0xe9, 0x88, 0xf5, 0xff, 0xff, //0x00006405 jmp LBB27_45 + //0x0000640a LBB27_116 + 0x4c, 0x29, 0xc3, //0x0000640a subq %r8, %rbx + 0x48, 0xff, 0xc3, //0x0000640d incq %rbx + 0xe9, 0x77, 0xf5, 0xff, 0xff, //0x00006410 jmp LBB27_43 + //0x00006415 LBB27_117 + 0x4c, 0x01, 0xc3, //0x00006415 addq %r8, %rbx + 0xe9, 0x89, 0xff, 0xff, 0xff, //0x00006418 jmp LBB27_56 + //0x0000641d LBB27_118 + 0x48, 0x8b, 0x4f, 0x08, //0x0000641d movq $8(%rdi), %rcx + 0x48, 0x89, 0x0e, //0x00006421 movq %rcx, (%rsi) + 0xe9, 0x69, 0xf5, 0xff, 0xff, //0x00006424 jmp LBB27_45 + //0x00006429 LBB27_119 + 0x49, 0x8d, 0x49, 0xff, //0x00006429 leaq $-1(%r9), %rcx + 0x4c, 0x39, 0xf9, //0x0000642d cmpq %r15, %rcx + 0x0f, 0x84, 0x5c, 0xf5, 0xff, 0xff, //0x00006430 je LBB27_45 + 0x4b, 0x8d, 0x5c, 0x1f, 0x02, //0x00006436 leaq $2(%r15,%r11), %rbx + 0x4d, 0x29, 0xf9, //0x0000643b subq %r15, %r9 + 0x49, 0x83, 0xc1, 0xfe, //0x0000643e addq $-2, %r9 + 0x4d, 0x89, 0xcf, //0x00006442 movq %r9, %r15 + 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x00006445 jmp LBB27_56 + 0x90, 0x90, //0x0000644a .p2align 2, 0x90 + // // .set L27_0_set_45, LBB27_45-LJTI27_0 + // // .set L27_0_set_47, LBB27_47-LJTI27_0 + // // .set L27_0_set_48, LBB27_48-LJTI27_0 + // // .set L27_0_set_29, LBB27_29-LJTI27_0 + // // .set L27_0_set_57, LBB27_57-LJTI27_0 + // // .set L27_0_set_82, LBB27_82-LJTI27_0 + // // .set L27_0_set_46, LBB27_46-LJTI27_0 + // // .set L27_0_set_84, LBB27_84-LJTI27_0 + //0x0000644c LJTI27_0 + 0x46, 0xf5, 0xff, 0xff, //0x0000644c .long L27_0_set_45 + 0x68, 0xf5, 0xff, 0xff, //0x00006450 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006454 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006458 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000645c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006460 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006464 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006468 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000646c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006470 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006474 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006478 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000647c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006480 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006484 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006488 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000648c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006490 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006494 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006498 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000649c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064a0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064a4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064a8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064ac .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064b0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064b4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064b8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064bc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064c0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064c4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064c8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064cc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064d0 .long L27_0_set_47 + 0x77, 0xf5, 0xff, 0xff, //0x000064d4 .long L27_0_set_48 + 0x68, 0xf5, 0xff, 0xff, //0x000064d8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064dc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064e0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064e4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064e8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064ec .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064f0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064f4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064f8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064fc .long L27_0_set_47 + 0x5f, 0xf4, 0xff, 0xff, //0x00006500 .long L27_0_set_29 + 0x68, 0xf5, 0xff, 0xff, //0x00006504 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006508 .long L27_0_set_47 + 0x5f, 0xf4, 0xff, 0xff, //0x0000650c .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006510 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006514 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006518 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x0000651c .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006520 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006524 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006528 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x0000652c .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006530 .long L27_0_set_29 + 0x68, 0xf5, 0xff, 0xff, //0x00006534 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006538 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000653c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006540 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006544 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006548 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000654c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006550 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006554 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006558 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000655c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006560 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006564 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006568 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000656c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006570 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006574 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006578 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000657c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006580 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006584 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006588 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000658c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006590 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006594 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006598 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000659c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065a0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065a4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065a8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065ac .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065b0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065b4 .long L27_0_set_47 + 0x8e, 0xf6, 0xff, 0xff, //0x000065b8 .long L27_0_set_57 + 0x68, 0xf5, 0xff, 0xff, //0x000065bc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065c0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065c4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065c8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065cc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065d0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065d4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065d8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065dc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065e0 .long L27_0_set_47 + 0xc4, 0xfa, 0xff, 0xff, //0x000065e4 .long L27_0_set_82 + 0x68, 0xf5, 0xff, 0xff, //0x000065e8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065ec .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065f0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065f4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065f8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065fc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006600 .long L27_0_set_47 + 0x55, 0xf5, 0xff, 0xff, //0x00006604 .long L27_0_set_46 + 0x68, 0xf5, 0xff, 0xff, //0x00006608 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000660c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006610 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006614 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006618 .long L27_0_set_47 + 0x55, 0xf5, 0xff, 0xff, //0x0000661c .long L27_0_set_46 + 0x68, 0xf5, 0xff, 0xff, //0x00006620 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006624 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006628 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000662c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006630 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006634 .long L27_0_set_47 + 0xda, 0xfa, 0xff, 0xff, //0x00006638 .long L27_0_set_84 + 0x90, 0x90, 0x90, 0x90, //0x0000663c .p2align 4, 0x90 + //0x00006640 _get_by_path + 0x55, //0x00006640 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006641 movq %rsp, %rbp + 0x41, 0x57, //0x00006644 pushq %r15 + 0x41, 0x56, //0x00006646 pushq %r14 + 0x41, 0x55, //0x00006648 pushq %r13 + 0x41, 0x54, //0x0000664a pushq %r12 + 0x53, //0x0000664c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000664d subq $56, %rsp + 0x49, 0x89, 0xf7, //0x00006651 movq %rsi, %r15 + 0x49, 0x89, 0xfb, //0x00006654 movq %rdi, %r11 + 0x4c, 0x8b, 0x52, 0x08, //0x00006657 movq $8(%rdx), %r10 + 0x4d, 0x85, 0xd2, //0x0000665b testq %r10, %r10 + 0x0f, 0x84, 0x4c, 0x0f, 0x00, 0x00, //0x0000665e je LBB28_244 + 0x48, 0x8b, 0x02, //0x00006664 movq (%rdx), %rax + 0x49, 0xc1, 0xe2, 0x04, //0x00006667 shlq $4, %r10 + 0x48, 0x89, 0x45, 0xb8, //0x0000666b movq %rax, $-72(%rbp) + 0x49, 0x01, 0xc2, //0x0000666f addq %rax, %r10 + 0x4d, 0x8b, 0x0b, //0x00006672 movq (%r11), %r9 + 0x49, 0x8b, 0x17, //0x00006675 movq (%r15), %rdx + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006678 movabsq $4294977024, %r12 + 0x4c, 0x89, 0x5d, 0xc0, //0x00006682 movq %r11, $-64(%rbp) + 0x48, 0x89, 0x4d, 0xa0, //0x00006686 movq %rcx, $-96(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x0000668a movq %r10, $-88(%rbp) + //0x0000668e LBB28_2 + 0x4d, 0x8b, 0x43, 0x08, //0x0000668e movq $8(%r11), %r8 + 0x48, 0x89, 0xd7, //0x00006692 movq %rdx, %rdi + 0x4c, 0x29, 0xc7, //0x00006695 subq %r8, %rdi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x00006698 jae LBB28_7 + 0x41, 0x8a, 0x04, 0x11, //0x0000669e movb (%r9,%rdx), %al + 0x3c, 0x0d, //0x000066a2 cmpb $13, %al + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000066a4 je LBB28_7 + 0x3c, 0x20, //0x000066aa cmpb $32, %al + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000066ac je LBB28_7 + 0x04, 0xf7, //0x000066b2 addb $-9, %al + 0x3c, 0x01, //0x000066b4 cmpb $1, %al + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000066b6 jbe LBB28_7 + 0x48, 0x89, 0xd6, //0x000066bc movq %rdx, %rsi + 0xe9, 0xfe, 0x00, 0x00, 0x00, //0x000066bf jmp LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000066c4 .p2align 4, 0x90 + //0x000066d0 LBB28_7 + 0x48, 0x8d, 0x72, 0x01, //0x000066d0 leaq $1(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x000066d4 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000066d7 jae LBB28_11 + 0x41, 0x8a, 0x04, 0x31, //0x000066dd movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x000066e1 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000066e3 je LBB28_11 + 0x3c, 0x20, //0x000066e9 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000066eb je LBB28_11 + 0x04, 0xf7, //0x000066f1 addb $-9, %al + 0x3c, 0x01, //0x000066f3 cmpb $1, %al + 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x000066f5 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000066fb .p2align 4, 0x90 + //0x00006700 LBB28_11 + 0x48, 0x8d, 0x72, 0x02, //0x00006700 leaq $2(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x00006704 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006707 jae LBB28_15 + 0x41, 0x8a, 0x04, 0x31, //0x0000670d movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x00006711 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006713 je LBB28_15 + 0x3c, 0x20, //0x00006719 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000671b je LBB28_15 + 0x04, 0xf7, //0x00006721 addb $-9, %al + 0x3c, 0x01, //0x00006723 cmpb $1, %al + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006725 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000672b .p2align 4, 0x90 + //0x00006730 LBB28_15 + 0x48, 0x8d, 0x72, 0x03, //0x00006730 leaq $3(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x00006734 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006737 jae LBB28_19 + 0x41, 0x8a, 0x04, 0x31, //0x0000673d movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x00006741 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006743 je LBB28_19 + 0x3c, 0x20, //0x00006749 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000674b je LBB28_19 + 0x04, 0xf7, //0x00006751 addb $-9, %al + 0x3c, 0x01, //0x00006753 cmpb $1, %al + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006755 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000675b .p2align 4, 0x90 + //0x00006760 LBB28_19 + 0x48, 0x8d, 0x42, 0x04, //0x00006760 leaq $4(%rdx), %rax + 0x49, 0x39, 0xc0, //0x00006764 cmpq %rax, %r8 + 0x0f, 0x86, 0x83, 0x00, 0x00, 0x00, //0x00006767 jbe LBB28_25 + 0x49, 0x39, 0xc0, //0x0000676d cmpq %rax, %r8 + 0x0f, 0x84, 0x94, 0x00, 0x00, 0x00, //0x00006770 je LBB28_26 + 0x4b, 0x8d, 0x04, 0x01, //0x00006776 leaq (%r9,%r8), %rax + 0x48, 0x83, 0xc7, 0x04, //0x0000677a addq $4, %rdi + 0x49, 0x8d, 0x74, 0x11, 0x05, //0x0000677e leaq $5(%r9,%rdx), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006783 .p2align 4, 0x90 + //0x00006790 LBB28_22 + 0x0f, 0xbe, 0x5e, 0xff, //0x00006790 movsbl $-1(%rsi), %ebx + 0x83, 0xfb, 0x20, //0x00006794 cmpl $32, %ebx + 0x0f, 0x87, 0xfd, 0x0b, 0x00, 0x00, //0x00006797 ja LBB28_29 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000679d btq %rbx, %r12 + 0x0f, 0x83, 0xf3, 0x0b, 0x00, 0x00, //0x000067a1 jae LBB28_29 + 0x48, 0xff, 0xc6, //0x000067a7 incq %rsi + 0x48, 0xff, 0xc7, //0x000067aa incq %rdi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000067ad jne LBB28_22 + 0x4c, 0x29, 0xc8, //0x000067b3 subq %r9, %rax + 0x48, 0x89, 0xc6, //0x000067b6 movq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x000067b9 cmpq %r8, %rsi + 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x000067bc jae LBB28_30 + //0x000067c2 LBB28_28 + 0x48, 0x8d, 0x46, 0x01, //0x000067c2 leaq $1(%rsi), %rax + 0x49, 0x89, 0x07, //0x000067c6 movq %rax, (%r15) + 0x41, 0x8a, 0x34, 0x31, //0x000067c9 movb (%r9,%rsi), %sil + 0x48, 0x8b, 0x55, 0xb8, //0x000067cd movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x000067d1 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x000067d4 testq %rdx, %rdx + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x000067d7 jne LBB28_31 + 0xe9, 0x29, 0x0e, 0x00, 0x00, //0x000067dd jmp LBB28_251 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000067e2 .p2align 4, 0x90 + //0x000067f0 LBB28_25 + 0x49, 0x89, 0x07, //0x000067f0 movq %rax, (%r15) + 0x31, 0xf6, //0x000067f3 xorl %esi, %esi + 0x48, 0x8b, 0x55, 0xb8, //0x000067f5 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x000067f9 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x000067fc testq %rdx, %rdx + 0x0f, 0x85, 0x3b, 0x00, 0x00, 0x00, //0x000067ff jne LBB28_31 + 0xe9, 0x01, 0x0e, 0x00, 0x00, //0x00006805 jmp LBB28_251 + //0x0000680a LBB28_26 + 0x4c, 0x01, 0xc8, //0x0000680a addq %r9, %rax + 0x4c, 0x29, 0xc8, //0x0000680d subq %r9, %rax + 0x48, 0x89, 0xc6, //0x00006810 movq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x00006813 cmpq %r8, %rsi + 0x0f, 0x82, 0xa6, 0xff, 0xff, 0xff, //0x00006816 jb LBB28_28 + //0x0000681c LBB28_30 + 0x31, 0xf6, //0x0000681c xorl %esi, %esi + 0x48, 0x89, 0xd0, //0x0000681e movq %rdx, %rax + 0x48, 0x8b, 0x55, 0xb8, //0x00006821 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00006825 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x00006828 testq %rdx, %rdx + 0x0f, 0x84, 0xda, 0x0d, 0x00, 0x00, //0x0000682b je LBB28_251 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006831 .p2align 4, 0x90 + //0x00006840 LBB28_31 + 0x8a, 0x52, 0x17, //0x00006840 movb $23(%rdx), %dl + 0x80, 0xe2, 0x1f, //0x00006843 andb $31, %dl + 0x80, 0xfa, 0x02, //0x00006846 cmpb $2, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00006849 je LBB28_184 + 0x80, 0xfa, 0x18, //0x0000684f cmpb $24, %dl + 0x0f, 0x85, 0xb3, 0x0d, 0x00, 0x00, //0x00006852 jne LBB28_251 + 0x40, 0x80, 0xfe, 0x7b, //0x00006858 cmpb $123, %sil + 0x4c, 0x89, 0x7d, 0xd0, //0x0000685c movq %r15, $-48(%rbp) + 0x0f, 0x84, 0x78, 0x01, 0x00, 0x00, //0x00006860 je LBB28_34 + 0xe9, 0x71, 0x0d, 0x00, 0x00, //0x00006866 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000686b .p2align 4, 0x90 + //0x00006870 LBB28_184 + 0x40, 0x80, 0xfe, 0x5b, //0x00006870 cmpb $91, %sil + 0x0f, 0x85, 0x62, 0x0d, 0x00, 0x00, //0x00006874 jne LBB28_247 + 0x48, 0x8b, 0x55, 0xb8, //0x0000687a movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x52, 0x08, //0x0000687e movq $8(%rdx), %rdx + 0x4c, 0x8b, 0x32, //0x00006882 movq (%rdx), %r14 + 0x4d, 0x85, 0xf6, //0x00006885 testq %r14, %r14 + 0x0f, 0x88, 0x7d, 0x0d, 0x00, 0x00, //0x00006888 js LBB28_251 + 0x4d, 0x8b, 0x43, 0x08, //0x0000688e movq $8(%r11), %r8 + 0x48, 0x89, 0xc6, //0x00006892 movq %rax, %rsi + 0x4c, 0x29, 0xc6, //0x00006895 subq %r8, %rsi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x00006898 jae LBB28_191 + 0x41, 0x8a, 0x14, 0x01, //0x0000689e movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x000068a2 cmpb $13, %dl + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000068a5 je LBB28_191 + 0x80, 0xfa, 0x20, //0x000068ab cmpb $32, %dl + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000068ae je LBB28_191 + 0x80, 0xc2, 0xf7, //0x000068b4 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000068b7 cmpb $1, %dl + 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x000068ba jbe LBB28_191 + 0x48, 0x89, 0xc7, //0x000068c0 movq %rax, %rdi + 0xe9, 0x12, 0x0b, 0x00, 0x00, //0x000068c3 jmp LBB28_213 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000068c8 .p2align 4, 0x90 + //0x000068d0 LBB28_191 + 0x48, 0x8d, 0x78, 0x01, //0x000068d0 leaq $1(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x000068d4 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000068d7 jae LBB28_195 + 0x41, 0x8a, 0x14, 0x39, //0x000068dd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000068e1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000068e4 je LBB28_195 + 0x80, 0xfa, 0x20, //0x000068ea cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000068ed je LBB28_195 + 0x80, 0xc2, 0xf7, //0x000068f3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000068f6 cmpb $1, %dl + 0x0f, 0x87, 0xdb, 0x0a, 0x00, 0x00, //0x000068f9 ja LBB28_213 + 0x90, //0x000068ff .p2align 4, 0x90 + //0x00006900 LBB28_195 + 0x48, 0x8d, 0x78, 0x02, //0x00006900 leaq $2(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x00006904 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006907 jae LBB28_199 + 0x41, 0x8a, 0x14, 0x39, //0x0000690d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00006911 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006914 je LBB28_199 + 0x80, 0xfa, 0x20, //0x0000691a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000691d je LBB28_199 + 0x80, 0xc2, 0xf7, //0x00006923 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006926 cmpb $1, %dl + 0x0f, 0x87, 0xab, 0x0a, 0x00, 0x00, //0x00006929 ja LBB28_213 + 0x90, //0x0000692f .p2align 4, 0x90 + //0x00006930 LBB28_199 + 0x48, 0x8d, 0x78, 0x03, //0x00006930 leaq $3(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x00006934 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006937 jae LBB28_203 + 0x41, 0x8a, 0x14, 0x39, //0x0000693d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00006941 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006944 je LBB28_203 + 0x80, 0xfa, 0x20, //0x0000694a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000694d je LBB28_203 + 0x80, 0xc2, 0xf7, //0x00006953 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006956 cmpb $1, %dl + 0x0f, 0x87, 0x7b, 0x0a, 0x00, 0x00, //0x00006959 ja LBB28_213 + 0x90, //0x0000695f .p2align 4, 0x90 + //0x00006960 LBB28_203 + 0x48, 0x8d, 0x50, 0x04, //0x00006960 leaq $4(%rax), %rdx + 0x49, 0x39, 0xd0, //0x00006964 cmpq %rdx, %r8 + 0x0f, 0x86, 0x22, 0x0a, 0x00, 0x00, //0x00006967 jbe LBB28_209 + 0x49, 0x39, 0xd0, //0x0000696d cmpq %rdx, %r8 + 0x0f, 0x84, 0x3b, 0x0a, 0x00, 0x00, //0x00006970 je LBB28_210 + 0x4b, 0x8d, 0x14, 0x01, //0x00006976 leaq (%r9,%r8), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000697a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000697e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006983 .p2align 4, 0x90 + //0x00006990 LBB28_206 + 0x0f, 0xbe, 0x4f, 0xff, //0x00006990 movsbl $-1(%rdi), %ecx + 0x83, 0xf9, 0x20, //0x00006994 cmpl $32, %ecx + 0x0f, 0x87, 0x2b, 0x0a, 0x00, 0x00, //0x00006997 ja LBB28_212 + 0x49, 0x0f, 0xa3, 0xcc, //0x0000699d btq %rcx, %r12 + 0x0f, 0x83, 0x21, 0x0a, 0x00, 0x00, //0x000069a1 jae LBB28_212 + 0x48, 0xff, 0xc7, //0x000069a7 incq %rdi + 0x48, 0xff, 0xc6, //0x000069aa incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000069ad jne LBB28_206 + 0xe9, 0xfc, 0x09, 0x00, 0x00, //0x000069b3 jmp LBB28_211 + //0x000069b8 LBB28_180 + 0x4c, 0x89, 0xca, //0x000069b8 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x000069bb notq %rdx + 0x48, 0x01, 0xd7, //0x000069be addq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x000069c1 cmpq %rcx, %rdi + 0x0f, 0x83, 0x12, 0x0c, 0x00, 0x00, //0x000069c4 jae LBB28_247 + //0x000069ca LBB28_181 + 0x48, 0x8d, 0x47, 0x01, //0x000069ca leaq $1(%rdi), %rax + 0x49, 0x89, 0x07, //0x000069ce movq %rax, (%r15) + 0x41, 0x8a, 0x0c, 0x39, //0x000069d1 movb (%r9,%rdi), %cl + 0x80, 0xf9, 0x2c, //0x000069d5 cmpb $44, %cl + 0x0f, 0x85, 0x42, 0x0c, 0x00, 0x00, //0x000069d8 jne LBB28_253 + //0x000069de LBB28_34 + 0x49, 0x8b, 0x4b, 0x08, //0x000069de movq $8(%r11), %rcx + 0x48, 0x89, 0xc6, //0x000069e2 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x000069e5 subq %rcx, %rsi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000069e8 jae LBB28_39 + 0x41, 0x8a, 0x14, 0x01, //0x000069ee movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x000069f2 cmpb $13, %dl + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000069f5 je LBB28_39 + 0x80, 0xfa, 0x20, //0x000069fb cmpb $32, %dl + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000069fe je LBB28_39 + 0x80, 0xc2, 0xf7, //0x00006a04 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006a07 cmpb $1, %dl + 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x00006a0a jbe LBB28_39 + 0x49, 0x89, 0xc5, //0x00006a10 movq %rax, %r13 + 0xe9, 0x2a, 0x01, 0x00, 0x00, //0x00006a13 jmp LBB28_60 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a18 .p2align 4, 0x90 + //0x00006a20 LBB28_39 + 0x4c, 0x8d, 0x68, 0x01, //0x00006a20 leaq $1(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006a24 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006a27 jae LBB28_43 + 0x43, 0x8a, 0x14, 0x29, //0x00006a2d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006a31 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006a34 je LBB28_43 + 0x80, 0xfa, 0x20, //0x00006a3a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006a3d je LBB28_43 + 0x80, 0xc2, 0xf7, //0x00006a43 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006a46 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00006a49 ja LBB28_60 + 0x90, //0x00006a4f .p2align 4, 0x90 + //0x00006a50 LBB28_43 + 0x4c, 0x8d, 0x68, 0x02, //0x00006a50 leaq $2(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006a54 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006a57 jae LBB28_47 + 0x43, 0x8a, 0x14, 0x29, //0x00006a5d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006a61 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006a64 je LBB28_47 + 0x80, 0xfa, 0x20, //0x00006a6a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006a6d je LBB28_47 + 0x80, 0xc2, 0xf7, //0x00006a73 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006a76 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00006a79 ja LBB28_60 + 0x90, //0x00006a7f .p2align 4, 0x90 + //0x00006a80 LBB28_47 + 0x4c, 0x8d, 0x68, 0x03, //0x00006a80 leaq $3(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006a84 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006a87 jae LBB28_51 + 0x43, 0x8a, 0x14, 0x29, //0x00006a8d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006a91 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006a94 je LBB28_51 + 0x80, 0xfa, 0x20, //0x00006a9a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006a9d je LBB28_51 + 0x80, 0xc2, 0xf7, //0x00006aa3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006aa6 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00006aa9 ja LBB28_60 + 0x90, //0x00006aaf .p2align 4, 0x90 + //0x00006ab0 LBB28_51 + 0x48, 0x8d, 0x50, 0x04, //0x00006ab0 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x00006ab4 cmpq %rdx, %rcx + 0x0f, 0x86, 0x19, 0x0b, 0x00, 0x00, //0x00006ab7 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x00006abd cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00006ac0 je LBB28_57 + 0x49, 0x8d, 0x14, 0x09, //0x00006ac6 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x00006aca addq $4, %rsi + 0x4d, 0x8d, 0x6c, 0x01, 0x05, //0x00006ace leaq $5(%r9,%rax), %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ad3 .p2align 4, 0x90 + //0x00006ae0 LBB28_54 + 0x41, 0x0f, 0xbe, 0x7d, 0xff, //0x00006ae0 movsbl $-1(%r13), %edi + 0x83, 0xff, 0x20, //0x00006ae5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00006ae8 ja LBB28_59 + 0x49, 0x0f, 0xa3, 0xfc, //0x00006aee btq %rdi, %r12 + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006af2 jae LBB28_59 + 0x49, 0xff, 0xc5, //0x00006af8 incq %r13 + 0x48, 0xff, 0xc6, //0x00006afb incq %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00006afe jne LBB28_54 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006b04 jmp LBB28_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b09 .p2align 4, 0x90 + //0x00006b10 LBB28_57 + 0x4c, 0x01, 0xca, //0x00006b10 addq %r9, %rdx + //0x00006b13 LBB28_58 + 0x4c, 0x29, 0xca, //0x00006b13 subq %r9, %rdx + 0x49, 0x89, 0xd5, //0x00006b16 movq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00006b19 cmpq %rcx, %r13 + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00006b1c jb LBB28_60 + 0xe9, 0xb5, 0x0a, 0x00, 0x00, //0x00006b22 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b27 .p2align 4, 0x90 + //0x00006b30 LBB28_59 + 0x4c, 0x89, 0xca, //0x00006b30 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x00006b33 notq %rdx + 0x49, 0x01, 0xd5, //0x00006b36 addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00006b39 cmpq %rcx, %r13 + 0x0f, 0x83, 0x9a, 0x0a, 0x00, 0x00, //0x00006b3c jae LBB28_247 + //0x00006b42 LBB28_60 + 0x49, 0x8d, 0x5d, 0x01, //0x00006b42 leaq $1(%r13), %rbx + 0x49, 0x89, 0x1f, //0x00006b46 movq %rbx, (%r15) + 0x43, 0x8a, 0x0c, 0x29, //0x00006b49 movb (%r9,%r13), %cl + 0x80, 0xf9, 0x22, //0x00006b4d cmpb $34, %cl + 0x0f, 0x85, 0xc7, 0x0a, 0x00, 0x00, //0x00006b50 jne LBB28_252 + 0x48, 0x8b, 0x45, 0xb8, //0x00006b56 movq $-72(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00006b5a movq $8(%rax), %rax + 0x4c, 0x8b, 0x30, //0x00006b5e movq (%rax), %r14 + 0x4c, 0x8b, 0x78, 0x08, //0x00006b61 movq $8(%rax), %r15 + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006b65 movq $-1, $-80(%rbp) + 0x4c, 0x89, 0xdf, //0x00006b6d movq %r11, %rdi + 0x48, 0x89, 0xde, //0x00006b70 movq %rbx, %rsi + 0x48, 0x8d, 0x55, 0xb0, //0x00006b73 leaq $-80(%rbp), %rdx + 0xe8, 0x24, 0x26, 0x00, 0x00, //0x00006b77 callq _advance_string_default + 0x48, 0x85, 0xc0, //0x00006b7c testq %rax, %rax + 0x0f, 0x88, 0xb6, 0x0a, 0x00, 0x00, //0x00006b7f js LBB28_255 + 0x48, 0x8b, 0x4d, 0xd0, //0x00006b85 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00006b89 movq %rax, (%rcx) + 0x48, 0x8b, 0x4d, 0xb0, //0x00006b8c movq $-80(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x00006b90 cmpq $-1, %rcx + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00006b94 je LBB28_64 + 0x48, 0x39, 0xc1, //0x00006b9a cmpq %rax, %rcx + 0x0f, 0x8e, 0x61, 0x01, 0x00, 0x00, //0x00006b9d jle LBB28_87 + //0x00006ba3 LBB28_64 + 0x48, 0x89, 0xc2, //0x00006ba3 movq %rax, %rdx + 0x4c, 0x29, 0xea, //0x00006ba6 subq %r13, %rdx + 0x48, 0x83, 0xc2, 0xfe, //0x00006ba9 addq $-2, %rdx + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006bad movl $1, %r10d + 0x48, 0x89, 0xd1, //0x00006bb3 movq %rdx, %rcx + 0x4c, 0x09, 0xf9, //0x00006bb6 orq %r15, %rcx + 0x4c, 0x8b, 0x5d, 0xc0, //0x00006bb9 movq $-64(%rbp), %r11 + 0x0f, 0x84, 0x00, 0x01, 0x00, 0x00, //0x00006bbd je LBB28_82 + 0x4c, 0x39, 0xfa, //0x00006bc3 cmpq %r15, %rdx + 0x0f, 0x85, 0xf4, 0x00, 0x00, 0x00, //0x00006bc6 jne LBB28_81 + 0x49, 0x03, 0x1b, //0x00006bcc addq (%r11), %rbx + 0x49, 0x83, 0xff, 0x10, //0x00006bcf cmpq $16, %r15 + 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x00006bd3 jb LBB28_71 + 0x49, 0x8d, 0x57, 0xf0, //0x00006bd9 leaq $-16(%r15), %rdx + 0x48, 0x89, 0xd1, //0x00006bdd movq %rdx, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00006be0 andq $-16, %rcx + 0x4c, 0x8d, 0x44, 0x0b, 0x10, //0x00006be4 leaq $16(%rbx,%rcx), %r8 + 0x49, 0x8d, 0x7c, 0x0e, 0x10, //0x00006be9 leaq $16(%r14,%rcx), %rdi + 0x83, 0xe2, 0x0f, //0x00006bee andl $15, %edx + 0x31, 0xf6, //0x00006bf1 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006bf3 .p2align 4, 0x90 + //0x00006c00 LBB28_68 + 0xf3, 0x0f, 0x6f, 0x04, 0x33, //0x00006c00 movdqu (%rbx,%rsi), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x0c, 0x36, //0x00006c05 movdqu (%r14,%rsi), %xmm1 + 0x66, 0x0f, 0x74, 0xc8, //0x00006c0b pcmpeqb %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xc9, //0x00006c0f pmovmskb %xmm1, %ecx + 0x66, 0x83, 0xf9, 0xff, //0x00006c13 cmpw $-1, %cx + 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x00006c17 jne LBB28_81 + 0x49, 0x83, 0xc7, 0xf0, //0x00006c1d addq $-16, %r15 + 0x48, 0x83, 0xc6, 0x10, //0x00006c21 addq $16, %rsi + 0x49, 0x83, 0xff, 0x0f, //0x00006c25 cmpq $15, %r15 + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00006c29 ja LBB28_68 + 0x49, 0x89, 0xd7, //0x00006c2f movq %rdx, %r15 + 0x49, 0x89, 0xfe, //0x00006c32 movq %rdi, %r14 + 0x4c, 0x89, 0xc3, //0x00006c35 movq %r8, %rbx + //0x00006c38 LBB28_71 + 0x44, 0x89, 0xf1, //0x00006c38 movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006c3b andl $4095, %ecx + 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006c41 cmpl $4080, %ecx + 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00006c47 ja LBB28_76 + 0x89, 0xd9, //0x00006c4d movl %ebx, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006c4f andl $4095, %ecx + 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006c55 cmpl $4081, %ecx + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00006c5b jae LBB28_76 + 0xf3, 0x0f, 0x6f, 0x03, //0x00006c61 movdqu (%rbx), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x0e, //0x00006c65 movdqu (%r14), %xmm1 + 0x66, 0x0f, 0x74, 0xc8, //0x00006c6a pcmpeqb %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xd1, //0x00006c6e pmovmskb %xmm1, %edx + 0x66, 0x83, 0xfa, 0xff, //0x00006c72 cmpw $-1, %dx + 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00006c76 je LBB28_82 + 0xf7, 0xd2, //0x00006c7c notl %edx + 0x0f, 0xb7, 0xca, //0x00006c7e movzwl %dx, %ecx + 0x48, 0x0f, 0xbc, 0xc9, //0x00006c81 bsfq %rcx, %rcx + 0x45, 0x31, 0xd2, //0x00006c85 xorl %r10d, %r10d + 0x4c, 0x39, 0xf9, //0x00006c88 cmpq %r15, %rcx + 0x41, 0x0f, 0x93, 0xc2, //0x00006c8b setae %r10b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00006c8f jmp LBB28_82 + //0x00006c94 LBB28_76 + 0x4d, 0x85, 0xff, //0x00006c94 testq %r15, %r15 + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00006c97 je LBB28_82 + 0x31, 0xd2, //0x00006c9d xorl %edx, %edx + 0x90, //0x00006c9f .p2align 4, 0x90 + //0x00006ca0 LBB28_78 + 0x0f, 0xb6, 0x0c, 0x13, //0x00006ca0 movzbl (%rbx,%rdx), %ecx + 0x41, 0x3a, 0x0c, 0x16, //0x00006ca4 cmpb (%r14,%rdx), %cl + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00006ca8 jne LBB28_81 + 0x48, 0xff, 0xc2, //0x00006cae incq %rdx + 0x49, 0x39, 0xd7, //0x00006cb1 cmpq %rdx, %r15 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00006cb4 jne LBB28_78 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00006cba jmp LBB28_82 + 0x90, //0x00006cbf .p2align 4, 0x90 + //0x00006cc0 LBB28_81 + 0x45, 0x31, 0xd2, //0x00006cc0 xorl %r10d, %r10d + //0x00006cc3 LBB28_82 + 0x4d, 0x8b, 0x0b, //0x00006cc3 movq (%r11), %r9 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006cc6 movq $-48(%rbp), %r15 + 0x49, 0x8b, 0x73, 0x08, //0x00006cca movq $8(%r11), %rsi + 0x48, 0x89, 0xc7, //0x00006cce movq %rax, %rdi + 0x48, 0x29, 0xf7, //0x00006cd1 subq %rsi, %rdi + 0x0f, 0x83, 0x16, 0x04, 0x00, 0x00, //0x00006cd4 jae LBB28_132 + //0x00006cda LBB28_83 + 0x41, 0x8a, 0x14, 0x01, //0x00006cda movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00006cde cmpb $13, %dl + 0x0f, 0x84, 0x09, 0x04, 0x00, 0x00, //0x00006ce1 je LBB28_132 + 0x80, 0xfa, 0x20, //0x00006ce7 cmpb $32, %dl + 0x0f, 0x84, 0x00, 0x04, 0x00, 0x00, //0x00006cea je LBB28_132 + 0x80, 0xc2, 0xf7, //0x00006cf0 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006cf3 cmpb $1, %dl + 0x0f, 0x86, 0xf4, 0x03, 0x00, 0x00, //0x00006cf6 jbe LBB28_132 + 0x48, 0x89, 0xc3, //0x00006cfc movq %rax, %rbx + 0xe9, 0x0e, 0x05, 0x00, 0x00, //0x00006cff jmp LBB28_153 + //0x00006d04 LBB28_87 + 0x48, 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00006d04 movq $0, $-56(%rbp) + 0x48, 0x8b, 0x4d, 0xc0, //0x00006d0c movq $-64(%rbp), %rcx + 0x4c, 0x8b, 0x09, //0x00006d10 movq (%rcx), %r9 + 0x4c, 0x01, 0xcb, //0x00006d13 addq %r9, %rbx + 0x4d, 0x8d, 0x44, 0x01, 0xff, //0x00006d16 leaq $-1(%r9,%rax), %r8 + 0x4f, 0x8d, 0x1c, 0x3e, //0x00006d1b leaq (%r14,%r15), %r11 + 0x4d, 0x85, 0xff, //0x00006d1f testq %r15, %r15 + 0x0f, 0x8e, 0xa0, 0x03, 0x00, 0x00, //0x00006d22 jle LBB28_129 + 0x49, 0x39, 0xd8, //0x00006d28 cmpq %rbx, %r8 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006d2b movq $-48(%rbp), %r15 + 0x0f, 0x86, 0x97, 0x03, 0x00, 0x00, //0x00006d2f jbe LBB28_130 + //0x00006d35 LBB28_89 + 0x8a, 0x0b, //0x00006d35 movb (%rbx), %cl + 0x80, 0xf9, 0x5c, //0x00006d37 cmpb $92, %cl + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00006d3a jne LBB28_94 + 0x4c, 0x89, 0xc2, //0x00006d40 movq %r8, %rdx + 0x48, 0x29, 0xda, //0x00006d43 subq %rbx, %rdx + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006d46 movq $-1, %rcx + 0x48, 0x85, 0xd2, //0x00006d4d testq %rdx, %rdx + 0x0f, 0x8e, 0x22, 0x09, 0x00, 0x00, //0x00006d50 jle LBB28_259 + 0x0f, 0xb6, 0x73, 0x01, //0x00006d56 movzbl $1(%rbx), %esi + 0x48, 0x8d, 0x3d, 0xaf, 0x9c, 0x00, 0x00, //0x00006d5a leaq $40111(%rip), %rdi /* __UnquoteTab+0(%rip) */ + 0x44, 0x8a, 0x3c, 0x3e, //0x00006d61 movb (%rsi,%rdi), %r15b + 0x41, 0x80, 0xff, 0xff, //0x00006d65 cmpb $-1, %r15b + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00006d69 je LBB28_96 + 0x45, 0x84, 0xff, //0x00006d6f testb %r15b, %r15b + 0x0f, 0x84, 0xee, 0x08, 0x00, 0x00, //0x00006d72 je LBB28_257 + 0x44, 0x88, 0x7d, 0xc8, //0x00006d78 movb %r15b, $-56(%rbp) + 0x48, 0x83, 0xc3, 0x02, //0x00006d7c addq $2, %rbx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006d80 movl $1, %edx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006d85 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006d8a cmpq %r11, %r14 + 0x0f, 0x82, 0x30, 0x01, 0x00, 0x00, //0x00006d8d jb LBB28_107 + 0xe9, 0x08, 0x03, 0x00, 0x00, //0x00006d93 jmp LBB28_113 + //0x00006d98 LBB28_94 + 0x41, 0x3a, 0x0e, //0x00006d98 cmpb (%r14), %cl + 0x0f, 0x85, 0xe6, 0x05, 0x00, 0x00, //0x00006d9b jne LBB28_183 + 0x48, 0xff, 0xc3, //0x00006da1 incq %rbx + 0x49, 0xff, 0xc6, //0x00006da4 incq %r14 + 0xe9, 0x05, 0x03, 0x00, 0x00, //0x00006da7 jmp LBB28_115 + //0x00006dac LBB28_96 + 0x48, 0x83, 0xfa, 0x03, //0x00006dac cmpq $3, %rdx + 0x0f, 0x8e, 0xbf, 0x08, 0x00, 0x00, //0x00006db0 jle LBB28_258 + 0x8b, 0x4b, 0x02, //0x00006db6 movl $2(%rbx), %ecx + 0x89, 0xce, //0x00006db9 movl %ecx, %esi + 0xf7, 0xd6, //0x00006dbb notl %esi + 0x8d, 0xb9, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006dbd leal $-808464432(%rcx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00006dc3 andl $-2139062144, %esi + 0x85, 0xfe, //0x00006dc9 testl %edi, %esi + 0x0f, 0x85, 0x85, 0x08, 0x00, 0x00, //0x00006dcb jne LBB28_256 + 0x8d, 0xb9, 0x19, 0x19, 0x19, 0x19, //0x00006dd1 leal $421075225(%rcx), %edi + 0x09, 0xcf, //0x00006dd7 orl %ecx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00006dd9 testl $-2139062144, %edi + 0x0f, 0x85, 0x71, 0x08, 0x00, 0x00, //0x00006ddf jne LBB28_256 + 0x89, 0xcf, //0x00006de5 movl %ecx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006de7 andl $2139062143, %edi + 0x41, 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006ded movl $-1061109568, %r10d + 0x41, 0x29, 0xfa, //0x00006df3 subl %edi, %r10d + 0x44, 0x8d, 0xbf, 0x46, 0x46, 0x46, 0x46, //0x00006df6 leal $1179010630(%rdi), %r15d + 0x41, 0x21, 0xf2, //0x00006dfd andl %esi, %r10d + 0x45, 0x85, 0xfa, //0x00006e00 testl %r15d, %r10d + 0x0f, 0x85, 0x4d, 0x08, 0x00, 0x00, //0x00006e03 jne LBB28_256 + 0x41, 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006e09 movl $-522133280, %r10d + 0x41, 0x29, 0xfa, //0x00006e0f subl %edi, %r10d + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00006e12 addl $960051513, %edi + 0x44, 0x21, 0xd6, //0x00006e18 andl %r10d, %esi + 0x85, 0xfe, //0x00006e1b testl %edi, %esi + 0x0f, 0x85, 0x33, 0x08, 0x00, 0x00, //0x00006e1d jne LBB28_256 + 0x0f, 0xc9, //0x00006e23 bswapl %ecx + 0x89, 0xce, //0x00006e25 movl %ecx, %esi + 0xc1, 0xee, 0x04, //0x00006e27 shrl $4, %esi + 0xf7, 0xd6, //0x00006e2a notl %esi + 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x00006e2c andl $16843009, %esi + 0x8d, 0x34, 0xf6, //0x00006e32 leal (%rsi,%rsi,8), %esi + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006e35 andl $252645135, %ecx + 0x01, 0xf1, //0x00006e3b addl %esi, %ecx + 0x41, 0x89, 0xcf, //0x00006e3d movl %ecx, %r15d + 0x41, 0xc1, 0xef, 0x04, //0x00006e40 shrl $4, %r15d + 0x41, 0x09, 0xcf, //0x00006e44 orl %ecx, %r15d + 0x44, 0x89, 0xfe, //0x00006e47 movl %r15d, %esi + 0xc1, 0xee, 0x08, //0x00006e4a shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00006e4d andl $65280, %esi + 0x41, 0x0f, 0xb6, 0xcf, //0x00006e53 movzbl %r15b, %ecx + 0x09, 0xf1, //0x00006e57 orl %esi, %ecx + 0x4c, 0x8d, 0x53, 0x06, //0x00006e59 leaq $6(%rbx), %r10 + 0x83, 0xf9, 0x7f, //0x00006e5d cmpl $127, %ecx + 0x0f, 0x86, 0xb2, 0x00, 0x00, 0x00, //0x00006e60 jbe LBB28_117 + 0x81, 0xf9, 0xff, 0x07, 0x00, 0x00, //0x00006e66 cmpl $2047, %ecx + 0x0f, 0x86, 0xc5, 0x00, 0x00, 0x00, //0x00006e6c jbe LBB28_118 + 0x44, 0x89, 0xff, //0x00006e72 movl %r15d, %edi + 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x00006e75 andl $16252928, %edi + 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x00006e7b cmpl $14155776, %edi + 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x00006e81 je LBB28_119 + 0xc1, 0xee, 0x0c, //0x00006e87 shrl $12, %esi + 0x40, 0x80, 0xce, 0xe0, //0x00006e8a orb $-32, %sil + 0x40, 0x88, 0x75, 0xc8, //0x00006e8e movb %sil, $-56(%rbp) + 0xc1, 0xe9, 0x06, //0x00006e92 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00006e95 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00006e98 orb $-128, %cl + 0x88, 0x4d, 0xc9, //0x00006e9b movb %cl, $-55(%rbp) + 0x41, 0x80, 0xe7, 0x3f, //0x00006e9e andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00006ea2 orb $-128, %r15b + 0x44, 0x88, 0x7d, 0xca, //0x00006ea6 movb %r15b, $-54(%rbp) + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00006eaa movl $3, %edx + 0x41, 0x89, 0xf7, //0x00006eaf movl %esi, %r15d + 0x4c, 0x89, 0xd3, //0x00006eb2 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006eb5 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006eba cmpq %r11, %r14 + 0x0f, 0x83, 0xdd, 0x01, 0x00, 0x00, //0x00006ebd jae LBB28_113 + //0x00006ec3 LBB28_107 + 0x48, 0x8d, 0x4d, 0xc8, //0x00006ec3 leaq $-56(%rbp), %rcx + 0x49, 0x39, 0xca, //0x00006ec7 cmpq %rcx, %r10 + 0x0f, 0x86, 0xd0, 0x01, 0x00, 0x00, //0x00006eca jbe LBB28_113 + 0x45, 0x38, 0x3e, //0x00006ed0 cmpb %r15b, (%r14) + 0x0f, 0x85, 0xc7, 0x01, 0x00, 0x00, //0x00006ed3 jne LBB28_113 + 0x49, 0xff, 0xc6, //0x00006ed9 incq %r14 + 0x48, 0x8d, 0x75, 0xc9, //0x00006edc leaq $-55(%rbp), %rsi + 0x4c, 0x89, 0xf7, //0x00006ee0 movq %r14, %rdi + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ee3 movq $-48(%rbp), %r15 + //0x00006ee7 LBB28_110 + 0x49, 0x89, 0xfe, //0x00006ee7 movq %rdi, %r14 + 0x48, 0x89, 0xf2, //0x00006eea movq %rsi, %rdx + 0x4c, 0x39, 0xd6, //0x00006eed cmpq %r10, %rsi + 0x0f, 0x83, 0xb2, 0x01, 0x00, 0x00, //0x00006ef0 jae LBB28_114 + 0x4d, 0x39, 0xde, //0x00006ef6 cmpq %r11, %r14 + 0x0f, 0x83, 0xa9, 0x01, 0x00, 0x00, //0x00006ef9 jae LBB28_114 + 0x41, 0x0f, 0xb6, 0x0e, //0x00006eff movzbl (%r14), %ecx + 0x49, 0x8d, 0x7e, 0x01, //0x00006f03 leaq $1(%r14), %rdi + 0x48, 0x8d, 0x72, 0x01, //0x00006f07 leaq $1(%rdx), %rsi + 0x3a, 0x0a, //0x00006f0b cmpb (%rdx), %cl + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00006f0d je LBB28_110 + 0xe9, 0x90, 0x01, 0x00, 0x00, //0x00006f13 jmp LBB28_114 + //0x00006f18 LBB28_117 + 0x44, 0x88, 0x7d, 0xc8, //0x00006f18 movb %r15b, $-56(%rbp) + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006f1c movl $1, %edx + 0x4c, 0x89, 0xd3, //0x00006f21 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006f24 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006f29 cmpq %r11, %r14 + 0x0f, 0x82, 0x91, 0xff, 0xff, 0xff, //0x00006f2c jb LBB28_107 + 0xe9, 0x69, 0x01, 0x00, 0x00, //0x00006f32 jmp LBB28_113 + //0x00006f37 LBB28_118 + 0xc1, 0xe9, 0x06, //0x00006f37 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00006f3a orb $-64, %cl + 0x88, 0x4d, 0xc8, //0x00006f3d movb %cl, $-56(%rbp) + 0x41, 0x80, 0xe7, 0x3f, //0x00006f40 andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00006f44 orb $-128, %r15b + 0x44, 0x88, 0x7d, 0xc9, //0x00006f48 movb %r15b, $-55(%rbp) + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00006f4c movl $2, %edx + 0x41, 0x89, 0xcf, //0x00006f51 movl %ecx, %r15d + 0x4c, 0x89, 0xd3, //0x00006f54 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006f57 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006f5c cmpq %r11, %r14 + 0x0f, 0x82, 0x5e, 0xff, 0xff, 0xff, //0x00006f5f jb LBB28_107 + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x00006f65 jmp LBB28_113 + //0x00006f6a LBB28_119 + 0x48, 0x83, 0xfa, 0x06, //0x00006f6a cmpq $6, %rdx + 0x0f, 0x8c, 0x1f, 0x07, 0x00, 0x00, //0x00006f6e jl LBB28_261 + 0x81, 0xf9, 0xff, 0xdb, 0x00, 0x00, //0x00006f74 cmpl $56319, %ecx + 0x0f, 0x87, 0x13, 0x07, 0x00, 0x00, //0x00006f7a ja LBB28_261 + 0x41, 0x80, 0x3a, 0x5c, //0x00006f80 cmpb $92, (%r10) + 0x0f, 0x85, 0x09, 0x07, 0x00, 0x00, //0x00006f84 jne LBB28_261 + 0x80, 0x7b, 0x07, 0x75, //0x00006f8a cmpb $117, $7(%rbx) + 0x0f, 0x85, 0xff, 0x06, 0x00, 0x00, //0x00006f8e jne LBB28_261 + 0x4c, 0x8d, 0x53, 0x08, //0x00006f94 leaq $8(%rbx), %r10 + 0x8b, 0x53, 0x08, //0x00006f98 movl $8(%rbx), %edx + 0x89, 0xd7, //0x00006f9b movl %edx, %edi + 0xf7, 0xd7, //0x00006f9d notl %edi + 0x8d, 0xb2, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006f9f leal $-808464432(%rdx), %esi + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00006fa5 andl $-2139062144, %edi + 0x85, 0xf7, //0x00006fab testl %esi, %edi + 0x0f, 0x85, 0xd4, 0x06, 0x00, 0x00, //0x00006fad jne LBB28_260 + 0x8d, 0xb2, 0x19, 0x19, 0x19, 0x19, //0x00006fb3 leal $421075225(%rdx), %esi + 0x09, 0xd6, //0x00006fb9 orl %edx, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00006fbb testl $-2139062144, %esi + 0x0f, 0x85, 0xc0, 0x06, 0x00, 0x00, //0x00006fc1 jne LBB28_260 + 0x89, 0xd6, //0x00006fc7 movl %edx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006fc9 andl $2139062143, %esi + 0x41, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006fcf movl $-1061109568, %r15d + 0x41, 0x29, 0xf7, //0x00006fd5 subl %esi, %r15d + 0x44, 0x8d, 0xae, 0x46, 0x46, 0x46, 0x46, //0x00006fd8 leal $1179010630(%rsi), %r13d + 0x41, 0x21, 0xff, //0x00006fdf andl %edi, %r15d + 0x45, 0x85, 0xef, //0x00006fe2 testl %r13d, %r15d + 0x0f, 0x85, 0x9c, 0x06, 0x00, 0x00, //0x00006fe5 jne LBB28_260 + 0x41, 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006feb movl $-522133280, %r15d + 0x41, 0x29, 0xf7, //0x00006ff1 subl %esi, %r15d + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00006ff4 addl $960051513, %esi + 0x44, 0x21, 0xff, //0x00006ffa andl %r15d, %edi + 0x85, 0xf7, //0x00006ffd testl %esi, %edi + 0x0f, 0x85, 0x82, 0x06, 0x00, 0x00, //0x00006fff jne LBB28_260 + 0x0f, 0xca, //0x00007005 bswapl %edx + 0x89, 0xd6, //0x00007007 movl %edx, %esi + 0xc1, 0xee, 0x04, //0x00007009 shrl $4, %esi + 0xf7, 0xd6, //0x0000700c notl %esi + 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x0000700e andl $16843009, %esi + 0x8d, 0x34, 0xf6, //0x00007014 leal (%rsi,%rsi,8), %esi + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007017 andl $252645135, %edx + 0x01, 0xf2, //0x0000701d addl %esi, %edx + 0x89, 0xd6, //0x0000701f movl %edx, %esi + 0xc1, 0xee, 0x04, //0x00007021 shrl $4, %esi + 0x09, 0xd6, //0x00007024 orl %edx, %esi + 0x89, 0xf2, //0x00007026 movl %esi, %edx + 0x81, 0xe2, 0x00, 0x00, 0xfc, 0x00, //0x00007028 andl $16515072, %edx + 0x81, 0xfa, 0x00, 0x00, 0xdc, 0x00, //0x0000702e cmpl $14417920, %edx + 0x0f, 0x85, 0x59, 0x06, 0x00, 0x00, //0x00007034 jne LBB28_261 + 0x89, 0xf2, //0x0000703a movl %esi, %edx + 0xc1, 0xea, 0x08, //0x0000703c shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x0000703f andl $65280, %edx + 0x40, 0x0f, 0xb6, 0xf6, //0x00007045 movzbl %sil, %esi + 0x09, 0xd6, //0x00007049 orl %edx, %esi + 0xc1, 0xe1, 0x0a, //0x0000704b shll $10, %ecx + 0x8d, 0x8c, 0x31, 0x00, 0x24, 0xa0, 0xfc, //0x0000704e leal $-56613888(%rcx,%rsi), %ecx + 0x41, 0x89, 0xcf, //0x00007055 movl %ecx, %r15d + 0x41, 0xc1, 0xef, 0x12, //0x00007058 shrl $18, %r15d + 0x41, 0x80, 0xcf, 0xf0, //0x0000705c orb $-16, %r15b + 0x44, 0x88, 0x7d, 0xc8, //0x00007060 movb %r15b, $-56(%rbp) + 0x89, 0xca, //0x00007064 movl %ecx, %edx + 0xc1, 0xea, 0x0c, //0x00007066 shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x00007069 andb $63, %dl + 0x80, 0xca, 0x80, //0x0000706c orb $-128, %dl + 0x88, 0x55, 0xc9, //0x0000706f movb %dl, $-55(%rbp) + 0x89, 0xca, //0x00007072 movl %ecx, %edx + 0xc1, 0xea, 0x06, //0x00007074 shrl $6, %edx + 0x80, 0xe2, 0x3f, //0x00007077 andb $63, %dl + 0x80, 0xca, 0x80, //0x0000707a orb $-128, %dl + 0x88, 0x55, 0xca, //0x0000707d movb %dl, $-54(%rbp) + 0x80, 0xe1, 0x3f, //0x00007080 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00007083 orb $-128, %cl + 0x88, 0x4d, 0xcb, //0x00007086 movb %cl, $-53(%rbp) + 0x48, 0x83, 0xc3, 0x0c, //0x00007089 addq $12, %rbx + 0xba, 0x04, 0x00, 0x00, 0x00, //0x0000708d movl $4, %edx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00007092 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00007097 cmpq %r11, %r14 + 0x0f, 0x82, 0x23, 0xfe, 0xff, 0xff, //0x0000709a jb LBB28_107 + //0x000070a0 LBB28_113 + 0x48, 0x8d, 0x55, 0xc8, //0x000070a0 leaq $-56(%rbp), %rdx + 0x4c, 0x8b, 0x7d, 0xd0, //0x000070a4 movq $-48(%rbp), %r15 + //0x000070a8 LBB28_114 + 0x4c, 0x39, 0xd2, //0x000070a8 cmpq %r10, %rdx + 0x0f, 0x85, 0xd6, 0x02, 0x00, 0x00, //0x000070ab jne LBB28_183 + //0x000070b1 LBB28_115 + 0x49, 0x39, 0xd8, //0x000070b1 cmpq %rbx, %r8 + 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x000070b4 jbe LBB28_130 + 0x4d, 0x39, 0xde, //0x000070ba cmpq %r11, %r14 + 0x0f, 0x82, 0x72, 0xfc, 0xff, 0xff, //0x000070bd jb LBB28_89 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x000070c3 jmp LBB28_130 + //0x000070c8 LBB28_129 + 0x4c, 0x8b, 0x7d, 0xd0, //0x000070c8 movq $-48(%rbp), %r15 + //0x000070cc LBB28_130 + 0x49, 0x31, 0xd8, //0x000070cc xorq %rbx, %r8 + 0x4d, 0x31, 0xde, //0x000070cf xorq %r11, %r14 + 0x45, 0x31, 0xd2, //0x000070d2 xorl %r10d, %r10d + 0x4d, 0x09, 0xc6, //0x000070d5 orq %r8, %r14 + 0x41, 0x0f, 0x94, 0xc2, //0x000070d8 sete %r10b + //0x000070dc LBB28_131 + 0x4c, 0x8b, 0x5d, 0xc0, //0x000070dc movq $-64(%rbp), %r11 + 0x49, 0x8b, 0x73, 0x08, //0x000070e0 movq $8(%r11), %rsi + 0x48, 0x89, 0xc7, //0x000070e4 movq %rax, %rdi + 0x48, 0x29, 0xf7, //0x000070e7 subq %rsi, %rdi + 0x0f, 0x82, 0xea, 0xfb, 0xff, 0xff, //0x000070ea jb LBB28_83 + //0x000070f0 .p2align 4, 0x90 + //0x000070f0 LBB28_132 + 0x48, 0x8d, 0x58, 0x01, //0x000070f0 leaq $1(%rax), %rbx + 0x48, 0x39, 0xf3, //0x000070f4 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000070f7 jae LBB28_136 + 0x41, 0x8a, 0x14, 0x19, //0x000070fd movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00007101 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007104 je LBB28_136 + 0x80, 0xfa, 0x20, //0x0000710a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000710d je LBB28_136 + 0x80, 0xc2, 0xf7, //0x00007113 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007116 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00007119 ja LBB28_153 + 0x90, //0x0000711f .p2align 4, 0x90 + //0x00007120 LBB28_136 + 0x48, 0x8d, 0x58, 0x02, //0x00007120 leaq $2(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00007124 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007127 jae LBB28_140 + 0x41, 0x8a, 0x14, 0x19, //0x0000712d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00007131 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007134 je LBB28_140 + 0x80, 0xfa, 0x20, //0x0000713a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000713d je LBB28_140 + 0x80, 0xc2, 0xf7, //0x00007143 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007146 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00007149 ja LBB28_153 + 0x90, //0x0000714f .p2align 4, 0x90 + //0x00007150 LBB28_140 + 0x48, 0x8d, 0x58, 0x03, //0x00007150 leaq $3(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00007154 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007157 jae LBB28_144 + 0x41, 0x8a, 0x14, 0x19, //0x0000715d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00007161 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007164 je LBB28_144 + 0x80, 0xfa, 0x20, //0x0000716a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000716d je LBB28_144 + 0x80, 0xc2, 0xf7, //0x00007173 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007176 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00007179 ja LBB28_153 + 0x90, //0x0000717f .p2align 4, 0x90 + //0x00007180 LBB28_144 + 0x48, 0x8d, 0x50, 0x04, //0x00007180 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd6, //0x00007184 cmpq %rdx, %rsi + 0x0f, 0x86, 0x49, 0x04, 0x00, 0x00, //0x00007187 jbe LBB28_245 + 0x48, 0x39, 0xd6, //0x0000718d cmpq %rdx, %rsi + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007190 je LBB28_150 + 0x49, 0x8d, 0x14, 0x31, //0x00007196 leaq (%r9,%rsi), %rdx + 0x48, 0x83, 0xc7, 0x04, //0x0000719a addq $4, %rdi + 0x49, 0x8d, 0x5c, 0x01, 0x05, //0x0000719e leaq $5(%r9,%rax), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071a3 .p2align 4, 0x90 + //0x000071b0 LBB28_147 + 0x0f, 0xbe, 0x4b, 0xff, //0x000071b0 movsbl $-1(%rbx), %ecx + 0x83, 0xf9, 0x20, //0x000071b4 cmpl $32, %ecx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x000071b7 ja LBB28_152 + 0x49, 0x0f, 0xa3, 0xcc, //0x000071bd btq %rcx, %r12 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x000071c1 jae LBB28_152 + 0x48, 0xff, 0xc3, //0x000071c7 incq %rbx + 0x48, 0xff, 0xc7, //0x000071ca incq %rdi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000071cd jne LBB28_147 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000071d3 jmp LBB28_151 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071d8 .p2align 4, 0x90 + //0x000071e0 LBB28_150 + 0x4c, 0x01, 0xca, //0x000071e0 addq %r9, %rdx + //0x000071e3 LBB28_151 + 0x4c, 0x29, 0xca, //0x000071e3 subq %r9, %rdx + 0x48, 0x89, 0xd3, //0x000071e6 movq %rdx, %rbx + 0x48, 0x39, 0xf3, //0x000071e9 cmpq %rsi, %rbx + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000071ec jb LBB28_153 + 0xe9, 0xe5, 0x03, 0x00, 0x00, //0x000071f2 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071f7 .p2align 4, 0x90 + //0x00007200 LBB28_152 + 0x4c, 0x89, 0xc9, //0x00007200 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00007203 notq %rcx + 0x48, 0x01, 0xcb, //0x00007206 addq %rcx, %rbx + 0x48, 0x39, 0xf3, //0x00007209 cmpq %rsi, %rbx + 0x0f, 0x83, 0xca, 0x03, 0x00, 0x00, //0x0000720c jae LBB28_247 + //0x00007212 LBB28_153 + 0x48, 0x8d, 0x53, 0x01, //0x00007212 leaq $1(%rbx), %rdx + 0x49, 0x89, 0x17, //0x00007216 movq %rdx, (%r15) + 0x41, 0x80, 0x3c, 0x19, 0x3a, //0x00007219 cmpb $58, (%r9,%rbx) + 0x0f, 0x85, 0xb5, 0x03, 0x00, 0x00, //0x0000721e jne LBB28_246 + 0x4d, 0x85, 0xd2, //0x00007224 testq %r10, %r10 + 0x0f, 0x85, 0x66, 0x03, 0x00, 0x00, //0x00007227 jne LBB28_243 + 0x4c, 0x89, 0xdf, //0x0000722d movq %r11, %rdi + 0x4c, 0x89, 0xfe, //0x00007230 movq %r15, %rsi + 0xe8, 0xc8, 0xe4, 0xff, 0xff, //0x00007233 callq _skip_one_fast + 0x4c, 0x8b, 0x5d, 0xc0, //0x00007238 movq $-64(%rbp), %r11 + 0x4d, 0x8b, 0x0b, //0x0000723c movq (%r11), %r9 + 0x49, 0x8b, 0x4b, 0x08, //0x0000723f movq $8(%r11), %rcx + 0x49, 0x8b, 0x07, //0x00007243 movq (%r15), %rax + 0x48, 0x89, 0xc6, //0x00007246 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x00007249 subq %rcx, %rsi + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x0000724c jae LBB28_160 + 0x41, 0x8a, 0x14, 0x01, //0x00007252 movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00007256 cmpb $13, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00007259 je LBB28_160 + 0x80, 0xfa, 0x20, //0x0000725f cmpb $32, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007262 je LBB28_160 + 0x80, 0xc2, 0xf7, //0x00007268 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000726b cmpb $1, %dl + 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x0000726e jbe LBB28_160 + 0x48, 0x89, 0xc7, //0x00007274 movq %rax, %rdi + 0xe9, 0x4e, 0xf7, 0xff, 0xff, //0x00007277 jmp LBB28_181 + 0x90, 0x90, 0x90, 0x90, //0x0000727c .p2align 4, 0x90 + //0x00007280 LBB28_160 + 0x48, 0x8d, 0x78, 0x01, //0x00007280 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007284 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007287 jae LBB28_164 + 0x41, 0x8a, 0x14, 0x39, //0x0000728d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00007291 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007294 je LBB28_164 + 0x80, 0xfa, 0x20, //0x0000729a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000729d je LBB28_164 + 0x80, 0xc2, 0xf7, //0x000072a3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000072a6 cmpb $1, %dl + 0x0f, 0x87, 0x1b, 0xf7, 0xff, 0xff, //0x000072a9 ja LBB28_181 + 0x90, //0x000072af .p2align 4, 0x90 + //0x000072b0 LBB28_164 + 0x48, 0x8d, 0x78, 0x02, //0x000072b0 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000072b4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072b7 jae LBB28_168 + 0x41, 0x8a, 0x14, 0x39, //0x000072bd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000072c1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072c4 je LBB28_168 + 0x80, 0xfa, 0x20, //0x000072ca cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072cd je LBB28_168 + 0x80, 0xc2, 0xf7, //0x000072d3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000072d6 cmpb $1, %dl + 0x0f, 0x87, 0xeb, 0xf6, 0xff, 0xff, //0x000072d9 ja LBB28_181 + 0x90, //0x000072df .p2align 4, 0x90 + //0x000072e0 LBB28_168 + 0x48, 0x8d, 0x78, 0x03, //0x000072e0 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000072e4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072e7 jae LBB28_172 + 0x41, 0x8a, 0x14, 0x39, //0x000072ed movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000072f1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072f4 je LBB28_172 + 0x80, 0xfa, 0x20, //0x000072fa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072fd je LBB28_172 + 0x80, 0xc2, 0xf7, //0x00007303 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007306 cmpb $1, %dl + 0x0f, 0x87, 0xbb, 0xf6, 0xff, 0xff, //0x00007309 ja LBB28_181 + 0x90, //0x0000730f .p2align 4, 0x90 + //0x00007310 LBB28_172 + 0x48, 0x8d, 0x50, 0x04, //0x00007310 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x00007314 cmpq %rdx, %rcx + 0x0f, 0x86, 0xb9, 0x02, 0x00, 0x00, //0x00007317 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x0000731d cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007320 je LBB28_178 + 0x49, 0x8d, 0x14, 0x09, //0x00007326 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000732a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000732e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007333 .p2align 4, 0x90 + //0x00007340 LBB28_175 + 0x0f, 0xbe, 0x5f, 0xff, //0x00007340 movsbl $-1(%rdi), %ebx + 0x83, 0xfb, 0x20, //0x00007344 cmpl $32, %ebx + 0x0f, 0x87, 0x6b, 0xf6, 0xff, 0xff, //0x00007347 ja LBB28_180 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000734d btq %rbx, %r12 + 0x0f, 0x83, 0x61, 0xf6, 0xff, 0xff, //0x00007351 jae LBB28_180 + 0x48, 0xff, 0xc7, //0x00007357 incq %rdi + 0x48, 0xff, 0xc6, //0x0000735a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000735d jne LBB28_175 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007363 jmp LBB28_179 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007368 .p2align 4, 0x90 + //0x00007370 LBB28_178 + 0x4c, 0x01, 0xca, //0x00007370 addq %r9, %rdx + //0x00007373 LBB28_179 + 0x4c, 0x29, 0xca, //0x00007373 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x00007376 movq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007379 cmpq %rcx, %rdi + 0x0f, 0x82, 0x48, 0xf6, 0xff, 0xff, //0x0000737c jb LBB28_181 + 0xe9, 0x55, 0x02, 0x00, 0x00, //0x00007382 jmp LBB28_247 + //0x00007387 LBB28_183 + 0x45, 0x31, 0xd2, //0x00007387 xorl %r10d, %r10d + 0xe9, 0x4d, 0xfd, 0xff, 0xff, //0x0000738a jmp LBB28_131 + //0x0000738f LBB28_209 + 0x49, 0x89, 0x17, //0x0000738f movq %rdx, (%r15) + 0x48, 0x89, 0xd0, //0x00007392 movq %rdx, %rax + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00007395 jmp LBB28_214 + //0x0000739a LBB28_29 + 0x4c, 0x89, 0xc8, //0x0000739a movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x0000739d notq %rax + 0x48, 0x01, 0xc6, //0x000073a0 addq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x000073a3 cmpq %r8, %rsi + 0x0f, 0x82, 0x16, 0xf4, 0xff, 0xff, //0x000073a6 jb LBB28_28 + 0xe9, 0x6b, 0xf4, 0xff, 0xff, //0x000073ac jmp LBB28_30 + //0x000073b1 LBB28_210 + 0x4c, 0x01, 0xca, //0x000073b1 addq %r9, %rdx + //0x000073b4 LBB28_211 + 0x4c, 0x29, 0xca, //0x000073b4 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x000073b7 movq %rdx, %rdi + 0x4c, 0x39, 0xc7, //0x000073ba cmpq %r8, %rdi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000073bd jb LBB28_213 + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000073c3 jmp LBB28_214 + //0x000073c8 LBB28_212 + 0x4c, 0x89, 0xc9, //0x000073c8 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x000073cb notq %rcx + 0x48, 0x01, 0xcf, //0x000073ce addq %rcx, %rdi + 0x4c, 0x39, 0xc7, //0x000073d1 cmpq %r8, %rdi + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000073d4 jae LBB28_214 + //0x000073da LBB28_213 + 0x48, 0x8d, 0x47, 0x01, //0x000073da leaq $1(%rdi), %rax + 0x49, 0x89, 0x07, //0x000073de movq %rax, (%r15) + 0x41, 0x80, 0x3c, 0x39, 0x5d, //0x000073e1 cmpb $93, (%r9,%rdi) + 0x0f, 0x84, 0x3d, 0x02, 0x00, 0x00, //0x000073e6 je LBB28_254 + //0x000073ec LBB28_214 + 0x48, 0xff, 0xc8, //0x000073ec decq %rax + 0x49, 0x89, 0x07, //0x000073ef movq %rax, (%r15) + 0x48, 0x89, 0xc2, //0x000073f2 movq %rax, %rdx + 0x4d, 0x85, 0xf6, //0x000073f5 testq %r14, %r14 + 0x0f, 0x8e, 0x95, 0x01, 0x00, 0x00, //0x000073f8 jle LBB28_243 + 0x90, 0x90, //0x000073fe .p2align 4, 0x90 + //0x00007400 LBB28_215 + 0x4c, 0x89, 0xdf, //0x00007400 movq %r11, %rdi + 0x4c, 0x89, 0xfe, //0x00007403 movq %r15, %rsi + 0xe8, 0xf5, 0xe2, 0xff, 0xff, //0x00007406 callq _skip_one_fast + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000740b movq $-64(%rbp), %r11 + 0x4d, 0x8b, 0x0b, //0x0000740f movq (%r11), %r9 + 0x49, 0x8b, 0x4b, 0x08, //0x00007412 movq $8(%r11), %rcx + 0x49, 0x8b, 0x07, //0x00007416 movq (%r15), %rax + 0x48, 0x89, 0xc6, //0x00007419 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x0000741c subq %rcx, %rsi + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000741f jae LBB28_220 + 0x41, 0x8a, 0x14, 0x01, //0x00007425 movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00007429 cmpb $13, %dl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000742c je LBB28_220 + 0x80, 0xfa, 0x20, //0x00007432 cmpb $32, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00007435 je LBB28_220 + 0x80, 0xc2, 0xf7, //0x0000743b addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000743e cmpb $1, %dl + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x00007441 jbe LBB28_220 + 0x48, 0x89, 0xc7, //0x00007447 movq %rax, %rdi + 0xe9, 0x23, 0x01, 0x00, 0x00, //0x0000744a jmp LBB28_241 + 0x90, //0x0000744f .p2align 4, 0x90 + //0x00007450 LBB28_220 + 0x48, 0x8d, 0x78, 0x01, //0x00007450 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007454 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007457 jae LBB28_224 + 0x41, 0x8a, 0x14, 0x39, //0x0000745d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00007461 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007464 je LBB28_224 + 0x80, 0xfa, 0x20, //0x0000746a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000746d je LBB28_224 + 0x80, 0xc2, 0xf7, //0x00007473 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007476 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00007479 ja LBB28_241 + 0x90, //0x0000747f .p2align 4, 0x90 + //0x00007480 LBB28_224 + 0x48, 0x8d, 0x78, 0x02, //0x00007480 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007484 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007487 jae LBB28_228 + 0x41, 0x8a, 0x14, 0x39, //0x0000748d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00007491 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007494 je LBB28_228 + 0x80, 0xfa, 0x20, //0x0000749a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000749d je LBB28_228 + 0x80, 0xc2, 0xf7, //0x000074a3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000074a6 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x000074a9 ja LBB28_241 + 0x90, //0x000074af .p2align 4, 0x90 + //0x000074b0 LBB28_228 + 0x48, 0x8d, 0x78, 0x03, //0x000074b0 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000074b4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000074b7 jae LBB28_232 + 0x41, 0x8a, 0x14, 0x39, //0x000074bd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000074c1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000074c4 je LBB28_232 + 0x80, 0xfa, 0x20, //0x000074ca cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000074cd je LBB28_232 + 0x80, 0xc2, 0xf7, //0x000074d3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000074d6 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000074d9 ja LBB28_241 + 0x90, //0x000074df .p2align 4, 0x90 + //0x000074e0 LBB28_232 + 0x48, 0x8d, 0x50, 0x04, //0x000074e0 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x000074e4 cmpq %rdx, %rcx + 0x0f, 0x86, 0xe9, 0x00, 0x00, 0x00, //0x000074e7 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x000074ed cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000074f0 je LBB28_238 + 0x49, 0x8d, 0x14, 0x09, //0x000074f6 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x000074fa addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x000074fe leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007503 .p2align 4, 0x90 + //0x00007510 LBB28_235 + 0x0f, 0xbe, 0x5f, 0xff, //0x00007510 movsbl $-1(%rdi), %ebx + 0x83, 0xfb, 0x20, //0x00007514 cmpl $32, %ebx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00007517 ja LBB28_240 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000751d btq %rbx, %r12 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00007521 jae LBB28_240 + 0x48, 0xff, 0xc7, //0x00007527 incq %rdi + 0x48, 0xff, 0xc6, //0x0000752a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000752d jne LBB28_235 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007533 jmp LBB28_239 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007538 .p2align 4, 0x90 + //0x00007540 LBB28_238 + 0x4c, 0x01, 0xca, //0x00007540 addq %r9, %rdx + //0x00007543 LBB28_239 + 0x4c, 0x29, 0xca, //0x00007543 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x00007546 movq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007549 cmpq %rcx, %rdi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000754c jb LBB28_241 + 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00007552 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007557 .p2align 4, 0x90 + //0x00007560 LBB28_240 + 0x4c, 0x89, 0xca, //0x00007560 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x00007563 notq %rdx + 0x48, 0x01, 0xd7, //0x00007566 addq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007569 cmpq %rcx, %rdi + 0x0f, 0x83, 0x6a, 0x00, 0x00, 0x00, //0x0000756c jae LBB28_247 + //0x00007572 LBB28_241 + 0x48, 0x8d, 0x57, 0x01, //0x00007572 leaq $1(%rdi), %rdx + 0x49, 0x89, 0x17, //0x00007576 movq %rdx, (%r15) + 0x41, 0x8a, 0x04, 0x39, //0x00007579 movb (%r9,%rdi), %al + 0x3c, 0x2c, //0x0000757d cmpb $44, %al + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x0000757f jne LBB28_249 + 0x49, 0x83, 0xfe, 0x02, //0x00007585 cmpq $2, %r14 + 0x4d, 0x8d, 0x76, 0xff, //0x00007589 leaq $-1(%r14), %r14 + 0x0f, 0x8d, 0x6d, 0xfe, 0xff, 0xff, //0x0000758d jge LBB28_215 + //0x00007593 LBB28_243 + 0x48, 0x8b, 0x45, 0xb8, //0x00007593 movq $-72(%rbp), %rax + 0x48, 0x83, 0xc0, 0x10, //0x00007597 addq $16, %rax + 0x4c, 0x8b, 0x55, 0xa8, //0x0000759b movq $-88(%rbp), %r10 + 0x48, 0x89, 0x45, 0xb8, //0x0000759f movq %rax, $-72(%rbp) + 0x4c, 0x39, 0xd0, //0x000075a3 cmpq %r10, %rax + 0x48, 0x8b, 0x4d, 0xa0, //0x000075a6 movq $-96(%rbp), %rcx + 0x0f, 0x85, 0xde, 0xf0, 0xff, 0xff, //0x000075aa jne LBB28_2 + //0x000075b0 LBB28_244 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000075b0 movl $1, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x000075b5 movq %rax, %xmm0 + 0xf3, 0x0f, 0x7f, 0x01, //0x000075ba movdqu %xmm0, (%rcx) + 0x48, 0x89, 0xcf, //0x000075be movq %rcx, %rdi + 0x4c, 0x89, 0xde, //0x000075c1 movq %r11, %rsi + 0x4c, 0x89, 0xfa, //0x000075c4 movq %r15, %rdx + 0x31, 0xc9, //0x000075c7 xorl %ecx, %ecx + 0xe8, 0x92, 0xd0, 0xff, 0xff, //0x000075c9 callq _fsm_exec + 0x48, 0x89, 0xc1, //0x000075ce movq %rax, %rcx + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000075d1 jmp LBB28_248 + //0x000075d6 LBB28_245 + 0x49, 0x89, 0x17, //0x000075d6 movq %rdx, (%r15) + //0x000075d9 LBB28_246 + 0x48, 0x89, 0xd0, //0x000075d9 movq %rdx, %rax + //0x000075dc LBB28_247 + 0x48, 0xff, 0xc8, //0x000075dc decq %rax + 0x49, 0x89, 0x07, //0x000075df movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000075e2 movq $-2, %rcx + //0x000075e9 LBB28_248 + 0x48, 0x89, 0xc8, //0x000075e9 movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x38, //0x000075ec addq $56, %rsp + 0x5b, //0x000075f0 popq %rbx + 0x41, 0x5c, //0x000075f1 popq %r12 + 0x41, 0x5d, //0x000075f3 popq %r13 + 0x41, 0x5e, //0x000075f5 popq %r14 + 0x41, 0x5f, //0x000075f7 popq %r15 + 0x5d, //0x000075f9 popq %rbp + 0xc3, //0x000075fa retq + //0x000075fb LBB28_249 + 0x3c, 0x5d, //0x000075fb cmpb $93, %al + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x000075fd jne LBB28_246 + 0x48, 0x89, 0xd0, //0x00007603 movq %rdx, %rax + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00007606 jmp LBB28_254 + //0x0000760b LBB28_251 + 0x48, 0xff, 0xc8, //0x0000760b decq %rax + 0x49, 0x89, 0x07, //0x0000760e movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xde, 0xff, 0xff, 0xff, //0x00007611 movq $-34, %rcx + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00007618 jmp LBB28_248 + //0x0000761d LBB28_252 + 0x48, 0x89, 0xd8, //0x0000761d movq %rbx, %rax + //0x00007620 LBB28_253 + 0x80, 0xf9, 0x7d, //0x00007620 cmpb $125, %cl + 0x0f, 0x85, 0xb3, 0xff, 0xff, 0xff, //0x00007623 jne LBB28_247 + //0x00007629 LBB28_254 + 0x48, 0xff, 0xc8, //0x00007629 decq %rax + 0x49, 0x89, 0x07, //0x0000762c movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xdf, 0xff, 0xff, 0xff, //0x0000762f movq $-33, %rcx + 0xe9, 0xae, 0xff, 0xff, 0xff, //0x00007636 jmp LBB28_248 + //0x0000763b LBB28_255 + 0x48, 0x8b, 0x45, 0xc0, //0x0000763b movq $-64(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x0000763f movq $8(%rax), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00007643 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00007647 movq %rax, (%rcx) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000764a movq $-1, %rcx + 0xe9, 0x93, 0xff, 0xff, 0xff, //0x00007651 jmp LBB28_248 + //0x00007656 LBB28_256 + 0x48, 0x83, 0xc3, 0x02, //0x00007656 addq $2, %rbx + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000765a movq $-2, %rcx + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00007661 jmp LBB28_259 + //0x00007666 LBB28_257 + 0x48, 0xff, 0xc3, //0x00007666 incq %rbx + 0x48, 0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, //0x00007669 movq $-3, %rcx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00007670 jmp LBB28_259 + //0x00007675 LBB28_258 + 0x48, 0xff, 0xc3, //0x00007675 incq %rbx + //0x00007678 LBB28_259 + 0x48, 0x8b, 0x45, 0xd0, //0x00007678 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xcb, //0x0000767c subq %r9, %rbx + 0x48, 0x89, 0x18, //0x0000767f movq %rbx, (%rax) + 0xe9, 0x62, 0xff, 0xff, 0xff, //0x00007682 jmp LBB28_248 + //0x00007687 LBB28_260 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00007687 movq $-2, %rcx + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000768e jmp LBB28_262 + //0x00007693 LBB28_261 + 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x00007693 movq $-4, %rcx + //0x0000769a LBB28_262 + 0x4c, 0x89, 0xd3, //0x0000769a movq %r10, %rbx + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x0000769d jmp LBB28_259 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076a2 .p2align 4, 0x90 + //0x000076b0 _validate_utf8 + 0x55, //0x000076b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000076b1 movq %rsp, %rbp + 0x41, 0x57, //0x000076b4 pushq %r15 + 0x41, 0x56, //0x000076b6 pushq %r14 + 0x41, 0x54, //0x000076b8 pushq %r12 + 0x53, //0x000076ba pushq %rbx + 0x50, //0x000076bb pushq %rax + 0x4c, 0x8b, 0x17, //0x000076bc movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x000076bf movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x000076c3 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x000076c6 addq %r10, %rcx + 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x000076c9 leaq $-3(%r10,%r11), %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000076ce jmp LBB29_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076d3 .p2align 4, 0x90 + //0x000076e0 LBB29_19 + 0x48, 0x01, 0xd9, //0x000076e0 addq %rbx, %rcx + //0x000076e3 LBB29_1 + 0x4c, 0x39, 0xc1, //0x000076e3 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x000076e6 jae LBB29_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000076ec movl $1, %ebx + 0x80, 0x39, 0x00, //0x000076f1 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000076f4 jns LBB29_19 + 0x8b, 0x01, //0x000076fa movl (%rcx), %eax + 0x89, 0xc7, //0x000076fc movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x000076fe andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007704 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000770a jne LBB29_10 + 0x89, 0xc7, //0x00007710 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007712 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007718 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000771e je LBB29_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007724 movl $3, %ebx + 0x85, 0xff, //0x00007729 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000772b jne LBB29_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007731 .p2align 4, 0x90 + //0x00007740 LBB29_10 + 0x89, 0xc7, //0x00007740 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007742 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007748 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000774e jne LBB29_12 + 0x89, 0xc7, //0x00007754 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007756 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x0000775b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000775e jne LBB29_19 + //0x00007764 LBB29_12 + 0x89, 0xc7, //0x00007764 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007766 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x0000776c cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007772 jne LBB29_16 + 0x89, 0xc7, //0x00007778 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x0000777a andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007780 je LBB29_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00007786 movl $4, %ebx + 0xa8, 0x04, //0x0000778b testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x0000778d je LBB29_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x00007793 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x00007798 je LBB29_19 + //0x0000779e LBB29_16 + 0x48, 0x89, 0xcf, //0x0000779e movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x000077a1 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x000077a4 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000077a7 cmpq $4096, %rbx + 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x000077ae jae LBB29_17 + 0x48, 0x63, 0xc7, //0x000077b4 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x000077b7 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x000077bb movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x000077be movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000077c3 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x000077c8 jmp LBB29_19 + //0x000077cd LBB29_2 + 0x4d, 0x01, 0xd3, //0x000077cd addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x000077d0 cmpq %r11, %rcx + 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x000077d3 jae LBB29_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x000077d9 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x000077dd leaq $-38(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000077e1 jmp LBB29_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077e6 .p2align 4, 0x90 + //0x000077f0 LBB29_5 + 0x48, 0xff, 0xc1, //0x000077f0 incq %rcx + 0x4c, 0x39, 0xd9, //0x000077f3 cmpq %r11, %rcx + 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x000077f6 jae LBB29_36 + //0x000077fc LBB29_4 + 0x80, 0x39, 0x00, //0x000077fc cmpb $0, (%rcx) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x000077ff jns LBB29_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00007805 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00007809 movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x0000780d movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00007810 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00007813 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007817 jb LBB29_21 + 0x44, 0x0f, 0xb6, 0x21, //0x0000781d movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007821 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00007826 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x0000782a leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x0000782e addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00007832 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00007835 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007838 je LBB29_24 + //0x0000783e LBB29_25 + 0x41, 0x0f, 0xb6, 0x07, //0x0000783e movzbl (%r15), %eax + 0x88, 0x07, //0x00007842 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007844 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00007849 movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000784d jmp LBB29_26 + //0x00007852 LBB29_21 + 0x45, 0x31, 0xe4, //0x00007852 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x00007855 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x00007858 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x0000785b movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x0000785e testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007861 jne LBB29_25 + //0x00007867 LBB29_24 + 0x31, 0xff, //0x00007867 xorl %edi, %edi + //0x00007869 LBB29_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x00007869 movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x0000786d shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x00007870 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x00007874 shll $8, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x00007877 movzbl %r12b, %edi + 0x09, 0xdf, //0x0000787b orl %ebx, %edi + 0x09, 0xf8, //0x0000787d orl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x0000787f andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007884 cmpl $8421600, %eax + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00007889 jne LBB29_29 + 0x89, 0xf8, //0x0000788f movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007891 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007896 cmpl $8205, %eax + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000789b je LBB29_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000078a1 movl $3, %ebx + 0x85, 0xc0, //0x000078a6 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000078a8 jne LBB29_34 + 0x90, 0x90, //0x000078ae .p2align 4, 0x90 + //0x000078b0 LBB29_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x000078b0 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000078b4 je LBB29_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000078ba andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000078c0 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000078c5 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000078cb jne LBB29_31 + //0x000078d1 LBB29_34 + 0x48, 0x01, 0xd9, //0x000078d1 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x000078d4 cmpq %r11, %rcx + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x000078d7 jb LBB29_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x000078dd jmp LBB29_36 + //0x000078e2 LBB29_31 + 0x48, 0x89, 0xc8, //0x000078e2 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x000078e5 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x000078e8 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x000078eb cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x000078f2 jae LBB29_32 + 0x48, 0x98, //0x000078f8 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x000078fa leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x000078fe movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007901 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007906 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x0000790b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x0000790e cmpq %r11, %rcx + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00007911 jb LBB29_4 + //0x00007917 LBB29_36 + 0x4c, 0x29, 0xd1, //0x00007917 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x0000791a movq %rcx, (%rsi) + 0x31, 0xc0, //0x0000791d xorl %eax, %eax + //0x0000791f LBB29_37 + 0x48, 0x83, 0xc4, 0x08, //0x0000791f addq $8, %rsp + 0x5b, //0x00007923 popq %rbx + 0x41, 0x5c, //0x00007924 popq %r12 + 0x41, 0x5e, //0x00007926 popq %r14 + 0x41, 0x5f, //0x00007928 popq %r15 + 0x5d, //0x0000792a popq %rbp + 0xc3, //0x0000792b retq + //0x0000792c LBB29_32 + 0x48, 0x89, 0x06, //0x0000792c movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000792f movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007936 jmp LBB29_37 + //0x0000793b LBB29_17 + 0x48, 0x89, 0x3e, //0x0000793b movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000793e movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007945 jmp LBB29_37 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000794a .p2align 4, 0x90 + //0x00007950 _validate_utf8_fast + 0x55, //0x00007950 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007951 movq %rsp, %rbp + 0x53, //0x00007954 pushq %rbx + 0x50, //0x00007955 pushq %rax + 0x4c, 0x8b, 0x17, //0x00007956 movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x00007959 movq $8(%rdi), %r11 + 0x4b, 0x8d, 0x74, 0x1a, 0xfd, //0x0000795d leaq $-3(%r10,%r11), %rsi + 0x4c, 0x89, 0xd0, //0x00007962 movq %r10, %rax + 0x49, 0x39, 0xf2, //0x00007965 cmpq %rsi, %r10 + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00007968 jae LBB30_14 + 0x4c, 0x89, 0xd0, //0x0000796e movq %r10, %rax + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007971 jmp LBB30_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007976 .p2align 4, 0x90 + //0x00007980 LBB30_2 + 0x48, 0x01, 0xd0, //0x00007980 addq %rdx, %rax + 0x48, 0x39, 0xf0, //0x00007983 cmpq %rsi, %rax + 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00007986 jae LBB30_14 + //0x0000798c LBB30_3 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000798c movl $1, %edx + 0x80, 0x38, 0x00, //0x00007991 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007994 jns LBB30_2 + 0x8b, 0x38, //0x0000799a movl (%rax), %edi + 0x89, 0xf9, //0x0000799c movl %edi, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x0000799e andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000079a4 cmpl $8421600, %ecx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000079aa jne LBB30_7 + 0x89, 0xf9, //0x000079b0 movl %edi, %ecx + 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x000079b2 andl $8207, %ecx + 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x000079b8 cmpl $8205, %ecx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000079be je LBB30_7 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000079c4 movl $3, %edx + 0x85, 0xc9, //0x000079c9 testl %ecx, %ecx + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000079cb jne LBB30_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000079d1 .p2align 4, 0x90 + //0x000079e0 LBB30_7 + 0x89, 0xf9, //0x000079e0 movl %edi, %ecx + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000079e2 andl $49376, %ecx + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000079e8 cmpl $32960, %ecx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000079ee jne LBB30_9 + 0x89, 0xf9, //0x000079f4 movl %edi, %ecx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000079f6 movl $2, %edx + 0x83, 0xe1, 0x1e, //0x000079fb andl $30, %ecx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000079fe jne LBB30_2 + //0x00007a04 LBB30_9 + 0x89, 0xf9, //0x00007a04 movl %edi, %ecx + 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007a06 andl $-1061109512, %ecx + 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x00007a0c cmpl $-2139062032, %ecx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007a12 jne LBB30_13 + 0x89, 0xf9, //0x00007a18 movl %edi, %ecx + 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x00007a1a andl $12295, %ecx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00007a20 je LBB30_13 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00007a26 movl $4, %edx + 0x40, 0xf6, 0xc7, 0x04, //0x00007a2b testb $4, %dil + 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x00007a2f je LBB30_2 + 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x00007a35 andl $12291, %edi + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x00007a3b je LBB30_2 + //0x00007a41 LBB30_13 + 0x48, 0xf7, 0xd0, //0x00007a41 notq %rax + 0x4c, 0x01, 0xd0, //0x00007a44 addq %r10, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00007a47 addq $8, %rsp + 0x5b, //0x00007a4b popq %rbx + 0x5d, //0x00007a4c popq %rbp + 0xc3, //0x00007a4d retq + //0x00007a4e LBB30_14 + 0x4d, 0x01, 0xd3, //0x00007a4e addq %r10, %r11 + 0x4c, 0x39, 0xd8, //0x00007a51 cmpq %r11, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00007a54 jae LBB30_30 + 0x4c, 0x8d, 0x45, 0xf4, //0x00007a5a leaq $-12(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xf2, //0x00007a5e leaq $-14(%rbp), %r9 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00007a62 jmp LBB30_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007a67 .p2align 4, 0x90 + //0x00007a70 LBB30_16 + 0x48, 0xff, 0xc0, //0x00007a70 incq %rax + 0x4c, 0x39, 0xd8, //0x00007a73 cmpq %r11, %rax + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007a76 jae LBB30_30 + //0x00007a7c LBB30_17 + 0x80, 0x38, 0x00, //0x00007a7c cmpb $0, (%rax) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x00007a7f jns LBB30_16 + 0xc6, 0x45, 0xf4, 0x00, //0x00007a85 movb $0, $-12(%rbp) + 0xc6, 0x45, 0xf2, 0x00, //0x00007a89 movb $0, $-14(%rbp) + 0x4c, 0x89, 0xda, //0x00007a8d movq %r11, %rdx + 0x48, 0x29, 0xc2, //0x00007a90 subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00007a93 cmpq $2, %rdx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00007a97 jb LBB30_21 + 0x0f, 0xb6, 0x30, //0x00007a9d movzbl (%rax), %esi + 0x0f, 0xb6, 0x78, 0x01, //0x00007aa0 movzbl $1(%rax), %edi + 0x40, 0x88, 0x75, 0xf4, //0x00007aa4 movb %sil, $-12(%rbp) + 0x48, 0x8d, 0x48, 0x02, //0x00007aa8 leaq $2(%rax), %rcx + 0x48, 0x83, 0xc2, 0xfe, //0x00007aac addq $-2, %rdx + 0x4c, 0x89, 0xcb, //0x00007ab0 movq %r9, %rbx + 0x48, 0x85, 0xd2, //0x00007ab3 testq %rdx, %rdx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007ab6 je LBB30_22 + //0x00007abc LBB30_20 + 0x0f, 0xb6, 0x09, //0x00007abc movzbl (%rcx), %ecx + 0x88, 0x0b, //0x00007abf movb %cl, (%rbx) + 0x0f, 0xb6, 0x75, 0xf4, //0x00007ac1 movzbl $-12(%rbp), %esi + 0x0f, 0xb6, 0x4d, 0xf2, //0x00007ac5 movzbl $-14(%rbp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00007ac9 jmp LBB30_23 + //0x00007ace LBB30_21 + 0x31, 0xf6, //0x00007ace xorl %esi, %esi + 0x31, 0xff, //0x00007ad0 xorl %edi, %edi + 0x4c, 0x89, 0xc3, //0x00007ad2 movq %r8, %rbx + 0x48, 0x89, 0xc1, //0x00007ad5 movq %rax, %rcx + 0x48, 0x85, 0xd2, //0x00007ad8 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00007adb jne LBB30_20 + //0x00007ae1 LBB30_22 + 0x31, 0xc9, //0x00007ae1 xorl %ecx, %ecx + //0x00007ae3 LBB30_23 + 0x0f, 0xb6, 0xc9, //0x00007ae3 movzbl %cl, %ecx + 0xc1, 0xe1, 0x10, //0x00007ae6 shll $16, %ecx + 0x40, 0x0f, 0xb6, 0xff, //0x00007ae9 movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x00007aed shll $8, %edi + 0x40, 0x0f, 0xb6, 0xd6, //0x00007af0 movzbl %sil, %edx + 0x09, 0xfa, //0x00007af4 orl %edi, %edx + 0x09, 0xd1, //0x00007af6 orl %edx, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x00007af8 andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00007afe cmpl $8421600, %ecx + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007b04 jne LBB30_26 + 0x89, 0xd7, //0x00007b0a movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007b0c andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007b12 cmpl $8205, %edi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00007b18 je LBB30_26 + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00007b1e movl $3, %ecx + 0x85, 0xff, //0x00007b23 testl %edi, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007b25 jne LBB30_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007b2b .p2align 4, 0x90 + //0x00007b30 LBB30_26 + 0x40, 0xf6, 0xc6, 0x1e, //0x00007b30 testb $30, %sil + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x00007b34 je LBB30_13 + 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x00007b3a andl $49376, %edx + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007b40 movl $2, %ecx + 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x00007b45 cmpl $32960, %edx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x00007b4b jne LBB30_13 + //0x00007b51 LBB30_28 + 0x48, 0x01, 0xc8, //0x00007b51 addq %rcx, %rax + 0x4c, 0x39, 0xd8, //0x00007b54 cmpq %r11, %rax + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00007b57 jb LBB30_17 + //0x00007b5d LBB30_30 + 0x31, 0xc0, //0x00007b5d xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00007b5f addq $8, %rsp + 0x5b, //0x00007b63 popq %rbx + 0x5d, //0x00007b64 popq %rbp + 0xc3, //0x00007b65 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b66 .p2align 4, 0x00 + //0x00007b70 LCPI31_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007b70 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00007b80 .p2align 4, 0x90 + //0x00007b80 _f32toa + 0x55, //0x00007b80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007b81 movq %rsp, %rbp + 0x41, 0x57, //0x00007b84 pushq %r15 + 0x41, 0x56, //0x00007b86 pushq %r14 + 0x41, 0x55, //0x00007b88 pushq %r13 + 0x41, 0x54, //0x00007b8a pushq %r12 + 0x53, //0x00007b8c pushq %rbx + 0x66, 0x0f, 0x7e, 0xc0, //0x00007b8d movd %xmm0, %eax + 0x89, 0xc1, //0x00007b91 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00007b93 shrl $23, %ecx + 0x0f, 0xb6, 0xd9, //0x00007b96 movzbl %cl, %ebx + 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x00007b99 cmpl $255, %ebx + 0x0f, 0x84, 0xbc, 0x0c, 0x00, 0x00, //0x00007b9f je LBB31_139 + 0xc6, 0x07, 0x2d, //0x00007ba5 movb $45, (%rdi) + 0x41, 0x89, 0xc1, //0x00007ba8 movl %eax, %r9d + 0x41, 0xc1, 0xe9, 0x1f, //0x00007bab shrl $31, %r9d + 0x4e, 0x8d, 0x04, 0x0f, //0x00007baf leaq (%rdi,%r9), %r8 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00007bb3 testl $2147483647, %eax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00007bb8 je LBB31_14 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x00007bbe andl $8388607, %eax + 0x85, 0xdb, //0x00007bc3 testl %ebx, %ebx + 0x0f, 0x84, 0x9e, 0x0c, 0x00, 0x00, //0x00007bc5 je LBB31_140 + 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x00007bcb leal $8388608(%rax), %esi + 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x00007bd1 leal $-150(%rbx), %r15d + 0x8d, 0x4b, 0x81, //0x00007bd8 leal $-127(%rbx), %ecx + 0x83, 0xf9, 0x17, //0x00007bdb cmpl $23, %ecx + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x00007bde ja LBB31_5 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007be4 movl $150, %ecx + 0x29, 0xd9, //0x00007be9 subl %ebx, %ecx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00007beb movq $-1, %rdx + 0x48, 0xd3, 0xe2, //0x00007bf2 shlq %cl, %rdx + 0xf7, 0xd2, //0x00007bf5 notl %edx + 0x85, 0xf2, //0x00007bf7 testl %esi, %edx + 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x00007bf9 je LBB31_32 + //0x00007bff LBB31_5 + 0x41, 0x89, 0xf6, //0x00007bff movl %esi, %r14d + 0x41, 0x83, 0xe6, 0x01, //0x00007c02 andl $1, %r14d + 0x85, 0xc0, //0x00007c06 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x00007c08 sete %al + 0x83, 0xfb, 0x01, //0x00007c0b cmpl $1, %ebx + 0x0f, 0x97, 0xc1, //0x00007c0e seta %cl + 0x20, 0xc1, //0x00007c11 andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x00007c13 movzbl %cl, %ecx + 0x41, 0x89, 0xf2, //0x00007c16 movl %esi, %r10d + 0x41, 0xc1, 0xe2, 0x02, //0x00007c19 shll $2, %r10d + 0x8d, 0x44, 0xb1, 0xfe, //0x00007c1d leal $-2(%rcx,%rsi,4), %eax + 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x00007c21 imull $1262611, %r15d, %r11d + 0x31, 0xd2, //0x00007c28 xorl %edx, %edx + 0x84, 0xc9, //0x00007c2a testb %cl, %cl + 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x00007c2c movl $524031, %ecx + 0x0f, 0x44, 0xca, //0x00007c31 cmovel %edx, %ecx + 0x41, 0x29, 0xcb, //0x00007c34 subl %ecx, %r11d + 0x41, 0xc1, 0xfb, 0x16, //0x00007c37 sarl $22, %r11d + 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x00007c3b imull $-1741647, %r11d, %ecx + 0xc1, 0xe9, 0x13, //0x00007c42 shrl $19, %ecx + 0x44, 0x01, 0xf9, //0x00007c45 addl %r15d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007c48 movl $31, %edx + 0x44, 0x29, 0xda, //0x00007c4d subl %r11d, %edx + 0x48, 0x63, 0xd2, //0x00007c50 movslq %edx, %rdx + 0x48, 0x8d, 0x1d, 0x46, 0xb8, 0x00, 0x00, //0x00007c53 leaq $47174(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0xfe, 0xc1, //0x00007c5a incb %cl + 0xd3, 0xe0, //0x00007c5c shll %cl, %eax + 0x4c, 0x8b, 0x24, 0xd3, //0x00007c5e movq (%rbx,%rdx,8), %r12 + 0x49, 0xf7, 0xe4, //0x00007c62 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00007c65 shrq $32, %rax + 0x31, 0xdb, //0x00007c69 xorl %ebx, %ebx + 0x83, 0xf8, 0x01, //0x00007c6b cmpl $1, %eax + 0x0f, 0x97, 0xc3, //0x00007c6e seta %bl + 0x41, 0xd3, 0xe2, //0x00007c71 shll %cl, %r10d + 0x09, 0xd3, //0x00007c74 orl %edx, %ebx + 0x4c, 0x89, 0xd0, //0x00007c76 movq %r10, %rax + 0x49, 0xf7, 0xe4, //0x00007c79 mulq %r12 + 0x49, 0x89, 0xd2, //0x00007c7c movq %rdx, %r10 + 0x48, 0xc1, 0xe8, 0x20, //0x00007c7f shrq $32, %rax + 0x45, 0x31, 0xff, //0x00007c83 xorl %r15d, %r15d + 0x83, 0xf8, 0x01, //0x00007c86 cmpl $1, %eax + 0x41, 0x0f, 0x97, 0xc7, //0x00007c89 seta %r15b + 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x00007c8d leal $2(,%rsi,4), %eax + 0xd3, 0xe0, //0x00007c94 shll %cl, %eax + 0x45, 0x09, 0xd7, //0x00007c96 orl %r10d, %r15d + 0x49, 0xf7, 0xe4, //0x00007c99 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00007c9c shrq $32, %rax + 0x31, 0xc9, //0x00007ca0 xorl %ecx, %ecx + 0x83, 0xf8, 0x01, //0x00007ca2 cmpl $1, %eax + 0x0f, 0x97, 0xc1, //0x00007ca5 seta %cl + 0x09, 0xd1, //0x00007ca8 orl %edx, %ecx + 0x44, 0x01, 0xf3, //0x00007caa addl %r14d, %ebx + 0x44, 0x29, 0xf1, //0x00007cad subl %r14d, %ecx + 0x41, 0x83, 0xff, 0x28, //0x00007cb0 cmpl $40, %r15d + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00007cb4 jb LBB31_12 + 0x44, 0x89, 0xd2, //0x00007cba movl %r10d, %edx + 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007cbd movl $3435973837, %eax + 0x48, 0x0f, 0xaf, 0xc2, //0x00007cc2 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00007cc6 shrq $37, %rax + 0x41, 0x89, 0xde, //0x00007cca movl %ebx, %r14d + 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x00007ccd leaq (,%rax,8), %rsi + 0x48, 0x8d, 0x14, 0xb6, //0x00007cd5 leaq (%rsi,%rsi,4), %rdx + 0x4c, 0x39, 0xf2, //0x00007cd9 cmpq %r14, %rdx + 0x41, 0x0f, 0x93, 0xc4, //0x00007cdc setae %r12b + 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x00007ce0 leaq $40(%rsi,%rsi,4), %r14 + 0x89, 0xce, //0x00007ce5 movl %ecx, %esi + 0x49, 0x39, 0xf6, //0x00007ce7 cmpq %rsi, %r14 + 0x0f, 0x96, 0xc2, //0x00007cea setbe %dl + 0x41, 0x38, 0xd4, //0x00007ced cmpb %dl, %r12b + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00007cf0 je LBB31_12 + 0x45, 0x31, 0xed, //0x00007cf6 xorl %r13d, %r13d + 0x49, 0x39, 0xf6, //0x00007cf9 cmpq %rsi, %r14 + 0x41, 0x0f, 0x96, 0xc5, //0x00007cfc setbe %r13b + 0x41, 0x01, 0xc5, //0x00007d00 addl %eax, %r13d + 0x41, 0xff, 0xc3, //0x00007d03 incl %r11d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007d06 cmpl $100000, %r13d + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x00007d0d jae LBB31_18 + //0x00007d13 LBB31_8 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007d13 movl $1, %eax + 0x41, 0x83, 0xfd, 0x0a, //0x00007d18 cmpl $10, %r13d + 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x00007d1c jb LBB31_22 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007d22 movl $2, %eax + 0x41, 0x83, 0xfd, 0x64, //0x00007d27 cmpl $100, %r13d + 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x00007d2b jb LBB31_22 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00007d31 movl $3, %eax + 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x00007d36 cmpl $1000, %r13d + 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x00007d3d jb LBB31_22 + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007d43 cmpl $10000, %r13d + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x00007d4a movl $5, %eax + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x00007d4f jmp LBB31_21 + //0x00007d54 LBB31_12 + 0x4d, 0x89, 0xd6, //0x00007d54 movq %r10, %r14 + 0x49, 0xc1, 0xee, 0x02, //0x00007d57 shrq $2, %r14 + 0x44, 0x89, 0xd6, //0x00007d5b movl %r10d, %esi + 0x83, 0xe6, 0xfc, //0x00007d5e andl $-4, %esi + 0x39, 0xf3, //0x00007d61 cmpl %esi, %ebx + 0x0f, 0x96, 0xc2, //0x00007d63 setbe %dl + 0x8d, 0x5e, 0x04, //0x00007d66 leal $4(%rsi), %ebx + 0x39, 0xcb, //0x00007d69 cmpl %ecx, %ebx + 0x0f, 0x96, 0xc0, //0x00007d6b setbe %al + 0x38, 0xc2, //0x00007d6e cmpb %al, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00007d70 je LBB31_15 + 0x45, 0x31, 0xed, //0x00007d76 xorl %r13d, %r13d + 0x39, 0xcb, //0x00007d79 cmpl %ecx, %ebx + 0x41, 0x0f, 0x96, 0xc5, //0x00007d7b setbe %r13b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00007d7f jmp LBB31_17 + //0x00007d84 LBB31_14 + 0x41, 0xc6, 0x00, 0x30, //0x00007d84 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x00007d88 subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x00007d8b incl %r8d + 0xe9, 0xc0, 0x0a, 0x00, 0x00, //0x00007d8e jmp LBB31_138 + //0x00007d93 LBB31_15 + 0x83, 0xce, 0x02, //0x00007d93 orl $2, %esi + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007d96 movl $1, %r13d + 0x41, 0x39, 0xf7, //0x00007d9c cmpl %esi, %r15d + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007d9f ja LBB31_17 + 0x0f, 0x94, 0xc0, //0x00007da5 sete %al + 0x41, 0xc0, 0xea, 0x02, //0x00007da8 shrb $2, %r10b + 0x41, 0x20, 0xc2, //0x00007dac andb %al, %r10b + 0x45, 0x0f, 0xb6, 0xea, //0x00007daf movzbl %r10b, %r13d + //0x00007db3 LBB31_17 + 0x45, 0x01, 0xf5, //0x00007db3 addl %r14d, %r13d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007db6 cmpl $100000, %r13d + 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x00007dbd jb LBB31_8 + //0x00007dc3 LBB31_18 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00007dc3 movl $6, %eax + 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00007dc8 cmpl $1000000, %r13d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007dcf jb LBB31_22 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00007dd5 movl $7, %eax + 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x00007dda cmpl $10000000, %r13d + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007de1 jb LBB31_22 + 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x00007de7 cmpl $100000000, %r13d + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00007dee movl $9, %eax + //0x00007df3 LBB31_21 + 0x83, 0xd8, 0x00, //0x00007df3 sbbl $0, %eax + //0x00007df6 LBB31_22 + 0x46, 0x8d, 0x14, 0x18, //0x00007df6 leal (%rax,%r11), %r10d + 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x00007dfa leal $5(%rax,%r11), %ecx + 0x83, 0xf9, 0x1b, //0x00007dff cmpl $27, %ecx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007e02 jb LBB31_26 + 0x89, 0xc0, //0x00007e08 movl %eax, %eax + 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x00007e0a leaq $1(%r8,%rax), %rbx + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007e0f cmpl $10000, %r13d + 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x00007e16 jb LBB31_30 + 0x44, 0x89, 0xe8, //0x00007e1c movl %r13d, %eax + 0x41, 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00007e1f movl $3518437209, %r14d + 0x4c, 0x0f, 0xaf, 0xf0, //0x00007e25 imulq %rax, %r14 + 0x49, 0xc1, 0xee, 0x2d, //0x00007e29 shrq $45, %r14 + 0x41, 0x69, 0xc6, 0xf0, 0xd8, 0xff, 0xff, //0x00007e2d imull $-10000, %r14d, %eax + 0x44, 0x01, 0xe8, //0x00007e34 addl %r13d, %eax + 0x0f, 0x84, 0xa3, 0x04, 0x00, 0x00, //0x00007e37 je LBB31_62 + 0x89, 0xc1, //0x00007e3d movl %eax, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00007e3f imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00007e46 shrq $37, %rcx + 0x6b, 0xd1, 0x64, //0x00007e4a imull $100, %ecx, %edx + 0x29, 0xd0, //0x00007e4d subl %edx, %eax + 0x48, 0x8d, 0x15, 0xca, 0x42, 0x00, 0x00, //0x00007e4f leaq $17098(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x42, //0x00007e56 movzwl (%rdx,%rax,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x00007e5a movw %ax, $-2(%rbx) + 0x0f, 0xb7, 0x04, 0x4a, //0x00007e5e movzwl (%rdx,%rcx,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x00007e62 movw %ax, $-4(%rbx) + 0x45, 0x31, 0xc9, //0x00007e66 xorl %r9d, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00007e69 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfe, 0x64, //0x00007e6d cmpl $100, %r14d + 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00007e71 jae LBB31_64 + //0x00007e77 LBB31_31 + 0x44, 0x89, 0xf2, //0x00007e77 movl %r14d, %edx + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00007e7a jmp LBB31_66 + //0x00007e7f LBB31_26 + 0x41, 0x89, 0xc4, //0x00007e7f movl %eax, %r12d + 0x45, 0x85, 0xdb, //0x00007e82 testl %r11d, %r11d + 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00007e85 js LBB31_38 + 0x4b, 0x8d, 0x34, 0x20, //0x00007e8b leaq (%r8,%r12), %rsi + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007e8f cmpl $10000, %r13d + 0x0f, 0x82, 0xa8, 0x02, 0x00, 0x00, //0x00007e96 jb LBB31_43 + 0x44, 0x89, 0xe8, //0x00007e9c movl %r13d, %eax + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00007e9f movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xc8, //0x00007ea4 imulq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00007ea8 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00007eac imull $-10000, %ecx, %eax + 0x44, 0x01, 0xe8, //0x00007eb2 addl %r13d, %eax + 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00007eb5 imulq $1374389535, %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007ebc shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00007ec0 imull $100, %edx, %ebx + 0x29, 0xd8, //0x00007ec3 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0x54, 0x42, 0x00, 0x00, //0x00007ec5 leaq $16980(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x00007ecc movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x46, 0xfe, //0x00007ed0 movw %ax, $-2(%rsi) + 0x48, 0x8d, 0x46, 0xfc, //0x00007ed4 leaq $-4(%rsi), %rax + 0x0f, 0xb7, 0x14, 0x53, //0x00007ed8 movzwl (%rbx,%rdx,2), %edx + 0x66, 0x89, 0x56, 0xfc, //0x00007edc movw %dx, $-4(%rsi) + 0x41, 0x89, 0xcd, //0x00007ee0 movl %ecx, %r13d + 0x41, 0x83, 0xfd, 0x64, //0x00007ee3 cmpl $100, %r13d + 0x0f, 0x83, 0x64, 0x02, 0x00, 0x00, //0x00007ee7 jae LBB31_44 + //0x00007eed LBB31_29 + 0x44, 0x89, 0xe9, //0x00007eed movl %r13d, %ecx + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00007ef0 jmp LBB31_46 + //0x00007ef5 LBB31_30 + 0x45, 0x31, 0xc9, //0x00007ef5 xorl %r9d, %r9d + 0x48, 0x89, 0xd9, //0x00007ef8 movq %rbx, %rcx + 0x45, 0x89, 0xee, //0x00007efb movl %r13d, %r14d + 0x41, 0x83, 0xfe, 0x64, //0x00007efe cmpl $100, %r14d + 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00007f02 jb LBB31_31 + //0x00007f08 LBB31_64 + 0x48, 0xff, 0xc9, //0x00007f08 decq %rcx + 0x4c, 0x8d, 0x1d, 0x0e, 0x42, 0x00, 0x00, //0x00007f0b leaq $16910(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f12 .p2align 4, 0x90 + //0x00007f20 LBB31_65 + 0x44, 0x89, 0xf2, //0x00007f20 movl %r14d, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00007f23 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007f2a shrq $37, %rdx + 0x6b, 0xc2, 0x64, //0x00007f2e imull $100, %edx, %eax + 0x44, 0x89, 0xf6, //0x00007f31 movl %r14d, %esi + 0x29, 0xc6, //0x00007f34 subl %eax, %esi + 0x41, 0x0f, 0xb7, 0x04, 0x73, //0x00007f36 movzwl (%r11,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xff, //0x00007f3b movw %ax, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00007f3f addq $-2, %rcx + 0x41, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00007f43 cmpl $9999, %r14d + 0x41, 0x89, 0xd6, //0x00007f4a movl %edx, %r14d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00007f4d ja LBB31_65 + //0x00007f53 LBB31_66 + 0x49, 0x8d, 0x70, 0x01, //0x00007f53 leaq $1(%r8), %rsi + 0x83, 0xfa, 0x0a, //0x00007f57 cmpl $10, %edx + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00007f5a jb LBB31_68 + 0x89, 0xd0, //0x00007f60 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0xb7, 0x41, 0x00, 0x00, //0x00007f62 leaq $16823(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00007f69 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00007f6c movb $1(%rcx,%rax,2), %al + 0x41, 0x88, 0x50, 0x01, //0x00007f70 movb %dl, $1(%r8) + 0x41, 0x88, 0x40, 0x02, //0x00007f74 movb %al, $2(%r8) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00007f78 jmp LBB31_69 + //0x00007f7d LBB31_68 + 0x80, 0xc2, 0x30, //0x00007f7d addb $48, %dl + 0x88, 0x16, //0x00007f80 movb %dl, (%rsi) + //0x00007f82 LBB31_69 + 0x4c, 0x29, 0xcb, //0x00007f82 subq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f85 .p2align 4, 0x90 + //0x00007f90 LBB31_70 + 0x80, 0x7b, 0xff, 0x30, //0x00007f90 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00007f94 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00007f98 je LBB31_70 + 0x41, 0x88, 0x10, //0x00007f9e movb %dl, (%r8) + 0x48, 0x8d, 0x43, 0x01, //0x00007fa1 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00007fa5 movq %rax, %rcx + 0x48, 0x29, 0xf1, //0x00007fa8 subq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00007fab cmpq $2, %rcx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00007faf jl LBB31_73 + 0xc6, 0x06, 0x2e, //0x00007fb5 movb $46, (%rsi) + 0x48, 0x89, 0xc3, //0x00007fb8 movq %rax, %rbx + //0x00007fbb LBB31_73 + 0xc6, 0x03, 0x65, //0x00007fbb movb $101, (%rbx) + 0x45, 0x85, 0xd2, //0x00007fbe testl %r10d, %r10d + 0x0f, 0x8e, 0x42, 0x01, 0x00, 0x00, //0x00007fc1 jle LBB31_76 + 0x41, 0xff, 0xca, //0x00007fc7 decl %r10d + 0xc6, 0x43, 0x01, 0x2b, //0x00007fca movb $43, $1(%rbx) + 0x44, 0x89, 0xd0, //0x00007fce movl %r10d, %eax + 0x83, 0xf8, 0x64, //0x00007fd1 cmpl $100, %eax + 0x0f, 0x8c, 0x44, 0x01, 0x00, 0x00, //0x00007fd4 jl LBB31_77 + //0x00007fda LBB31_75 + 0x89, 0xc1, //0x00007fda movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007fdc movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00007fe1 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00007fe5 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x00007fe9 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x00007fec leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x00007fef subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x28, 0x41, 0x00, 0x00, //0x00007ff1 leaq $16680(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x00007ff8 movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x00007ffc movw %cx, $2(%rbx) + 0x0c, 0x30, //0x00008000 orb $48, %al + 0x88, 0x43, 0x04, //0x00008002 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x00008005 addq $5, %rbx + 0x49, 0x89, 0xd8, //0x00008009 movq %rbx, %r8 + 0xe9, 0x3f, 0x08, 0x00, 0x00, //0x0000800c jmp LBB31_137 + //0x00008011 LBB31_32 + 0xd3, 0xee, //0x00008011 shrl %cl, %esi + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00008013 cmpl $100000, %esi + 0x0f, 0x82, 0x17, 0x02, 0x00, 0x00, //0x00008019 jb LBB31_52 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x0000801f movl $6, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00008024 cmpl $1000000, %esi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000802a jb LBB31_36 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00008030 movl $7, %eax + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00008035 cmpl $10000000, %esi + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x0000803b jb LBB31_36 + 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00008041 cmpl $100000000, %esi + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00008047 movl $9, %eax + 0x48, 0x83, 0xd8, 0x00, //0x0000804c sbbq $0, %rax + //0x00008050 LBB31_36 + 0x4c, 0x01, 0xc0, //0x00008050 addq %r8, %rax + //0x00008053 LBB31_37 + 0x89, 0xf1, //0x00008053 movl %esi, %ecx + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008055 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x0000805a imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x0000805e shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00008062 imull $-10000, %edx, %ecx + 0x01, 0xf1, //0x00008068 addl %esi, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x0000806a imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00008071 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00008075 imull $100, %esi, %ebx + 0x29, 0xd9, //0x00008078 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x9f, 0x40, 0x00, 0x00, //0x0000807a leaq $16543(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00008081 movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00008085 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x73, //0x00008089 movzwl (%rbx,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x0000808d movw %cx, $-4(%rax) + 0x49, 0x89, 0xc1, //0x00008091 movq %rax, %r9 + 0x48, 0x83, 0xc0, 0xfc, //0x00008094 addq $-4, %rax + 0x89, 0xd6, //0x00008098 movl %edx, %esi + 0x83, 0xfe, 0x64, //0x0000809a cmpl $100, %esi + 0x0f, 0x83, 0xd2, 0x01, 0x00, 0x00, //0x0000809d jae LBB31_56 + 0xe9, 0x07, 0x02, 0x00, 0x00, //0x000080a3 jmp LBB31_58 + //0x000080a8 LBB31_38 + 0x45, 0x85, 0xd2, //0x000080a8 testl %r10d, %r10d + 0x0f, 0x8f, 0x70, 0x04, 0x00, 0x00, //0x000080ab jg LBB31_98 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x000080b1 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x000080b7 addq $2, %r8 + 0x45, 0x85, 0xd2, //0x000080bb testl %r10d, %r10d + 0x0f, 0x89, 0x5d, 0x04, 0x00, 0x00, //0x000080be jns LBB31_98 + 0x31, 0xf6, //0x000080c4 xorl %esi, %esi + 0x41, 0x83, 0xfa, 0xe0, //0x000080c6 cmpl $-32, %r10d + 0x0f, 0x87, 0x33, 0x04, 0x00, 0x00, //0x000080ca ja LBB31_96 + 0x45, 0x89, 0xd3, //0x000080d0 movl %r10d, %r11d + 0x41, 0xf7, 0xd3, //0x000080d3 notl %r11d + 0x49, 0xff, 0xc3, //0x000080d6 incq %r11 + 0x4c, 0x89, 0xde, //0x000080d9 movq %r11, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x000080dc andq $-32, %rsi + 0x48, 0x8d, 0x4e, 0xe0, //0x000080e0 leaq $-32(%rsi), %rcx + 0x48, 0x89, 0xc8, //0x000080e4 movq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x05, //0x000080e7 shrq $5, %rax + 0x48, 0xff, 0xc0, //0x000080eb incq %rax + 0x41, 0x89, 0xc6, //0x000080ee movl %eax, %r14d + 0x41, 0x83, 0xe6, 0x07, //0x000080f1 andl $7, %r14d + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x000080f5 cmpq $224, %rcx + 0x0f, 0x83, 0x27, 0x03, 0x00, 0x00, //0x000080fc jae LBB31_90 + 0x31, 0xc0, //0x00008102 xorl %eax, %eax + 0xe9, 0xbc, 0x03, 0x00, 0x00, //0x00008104 jmp LBB31_92 + //0x00008109 LBB31_76 + 0xc6, 0x43, 0x01, 0x2d, //0x00008109 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000810d movl $1, %eax + 0x44, 0x29, 0xd0, //0x00008112 subl %r10d, %eax + 0x83, 0xf8, 0x64, //0x00008115 cmpl $100, %eax + 0x0f, 0x8d, 0xbc, 0xfe, 0xff, 0xff, //0x00008118 jge LBB31_75 + //0x0000811e LBB31_77 + 0x83, 0xf8, 0x0a, //0x0000811e cmpl $10, %eax + 0x0f, 0x8c, 0xfe, 0x00, 0x00, 0x00, //0x00008121 jl LBB31_79 + 0x48, 0x98, //0x00008127 cltq + 0x48, 0x8d, 0x0d, 0xf0, 0x3f, 0x00, 0x00, //0x00008129 leaq $16368(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008130 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00008134 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00008138 addq $4, %rbx + 0x49, 0x89, 0xd8, //0x0000813c movq %rbx, %r8 + 0xe9, 0x0c, 0x07, 0x00, 0x00, //0x0000813f jmp LBB31_137 + //0x00008144 LBB31_43 + 0x48, 0x89, 0xf0, //0x00008144 movq %rsi, %rax + 0x41, 0x83, 0xfd, 0x64, //0x00008147 cmpl $100, %r13d + 0x0f, 0x82, 0x9c, 0xfd, 0xff, 0xff, //0x0000814b jb LBB31_29 + //0x00008151 LBB31_44 + 0x48, 0xff, 0xc8, //0x00008151 decq %rax + 0x4c, 0x8d, 0x1d, 0xc5, 0x3f, 0x00, 0x00, //0x00008154 leaq $16325(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000815b .p2align 4, 0x90 + //0x00008160 LBB31_45 + 0x44, 0x89, 0xe9, //0x00008160 movl %r13d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008163 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x0000816a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x0000816e imull $100, %ecx, %ebx + 0x44, 0x89, 0xea, //0x00008171 movl %r13d, %edx + 0x29, 0xda, //0x00008174 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x53, //0x00008176 movzwl (%r11,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xff, //0x0000817b movw %dx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000817f addq $-2, %rax + 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00008183 cmpl $9999, %r13d + 0x41, 0x89, 0xcd, //0x0000818a movl %ecx, %r13d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000818d ja LBB31_45 + //0x00008193 LBB31_46 + 0x49, 0x63, 0xc2, //0x00008193 movslq %r10d, %rax + 0x83, 0xf9, 0x0a, //0x00008196 cmpl $10, %ecx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00008199 jb LBB31_48 + 0x89, 0xc9, //0x0000819f movl %ecx, %ecx + 0x48, 0x8d, 0x15, 0x78, 0x3f, 0x00, 0x00, //0x000081a1 leaq $16248(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x000081a8 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000081ac movw %cx, (%r8) + 0x49, 0x01, 0xc0, //0x000081b0 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x000081b3 cmpq %rax, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000081b6 jl LBB31_49 + 0xe9, 0x8f, 0x06, 0x00, 0x00, //0x000081bc jmp LBB31_137 + //0x000081c1 LBB31_48 + 0x80, 0xc1, 0x30, //0x000081c1 addb $48, %cl + 0x41, 0x88, 0x08, //0x000081c4 movb %cl, (%r8) + 0x49, 0x01, 0xc0, //0x000081c7 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x000081ca cmpq %rax, %r12 + 0x0f, 0x8d, 0x7d, 0x06, 0x00, 0x00, //0x000081cd jge LBB31_137 + //0x000081d3 LBB31_49 + 0x4b, 0x8d, 0x04, 0x21, //0x000081d3 leaq (%r9,%r12), %rax + 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x000081d7 leaq $1(%rdi,%rax), %r11 + 0x4d, 0x39, 0xc3, //0x000081dc cmpq %r8, %r11 + 0x4d, 0x0f, 0x46, 0xd8, //0x000081df cmovbeq %r8, %r11 + 0x4a, 0x8d, 0x0c, 0x0f, //0x000081e3 leaq (%rdi,%r9), %rcx + 0x4c, 0x01, 0xe1, //0x000081e7 addq %r12, %rcx + 0x49, 0x29, 0xcb, //0x000081ea subq %rcx, %r11 + 0x49, 0x83, 0xfb, 0x20, //0x000081ed cmpq $32, %r11 + 0x0f, 0x82, 0xf9, 0x01, 0x00, 0x00, //0x000081f1 jb LBB31_87 + 0x4d, 0x89, 0xda, //0x000081f7 movq %r11, %r10 + 0x49, 0x83, 0xe2, 0xe0, //0x000081fa andq $-32, %r10 + 0x49, 0x8d, 0x4a, 0xe0, //0x000081fe leaq $-32(%r10), %rcx + 0x48, 0x89, 0xcb, //0x00008202 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x05, //0x00008205 shrq $5, %rbx + 0x48, 0xff, 0xc3, //0x00008209 incq %rbx + 0x89, 0xda, //0x0000820c movl %ebx, %edx + 0x83, 0xe2, 0x07, //0x0000820e andl $7, %edx + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x00008211 cmpq $224, %rcx + 0x0f, 0x83, 0xdb, 0x00, 0x00, 0x00, //0x00008218 jae LBB31_80 + 0x31, 0xc0, //0x0000821e xorl %eax, %eax + 0xe9, 0x6f, 0x01, 0x00, 0x00, //0x00008220 jmp LBB31_82 + //0x00008225 LBB31_79 + 0x04, 0x30, //0x00008225 addb $48, %al + 0x88, 0x43, 0x02, //0x00008227 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x0000822a addq $3, %rbx + 0x49, 0x89, 0xd8, //0x0000822e movq %rbx, %r8 + 0xe9, 0x1a, 0x06, 0x00, 0x00, //0x00008231 jmp LBB31_137 + //0x00008236 LBB31_52 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008236 movl $1, %r9d + 0x83, 0xfe, 0x0a, //0x0000823c cmpl $10, %esi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x0000823f jb LBB31_55 + 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00008245 movl $2, %r9d + 0x83, 0xfe, 0x64, //0x0000824b cmpl $100, %esi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000824e jb LBB31_55 + 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00008254 movl $3, %r9d + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000825a cmpl $1000, %esi + 0x0f, 0x83, 0x9e, 0x01, 0x00, 0x00, //0x00008260 jae LBB31_88 + //0x00008266 LBB31_55 + 0x4d, 0x01, 0xc1, //0x00008266 addq %r8, %r9 + 0x4c, 0x89, 0xc8, //0x00008269 movq %r9, %rax + 0x83, 0xfe, 0x64, //0x0000826c cmpl $100, %esi + 0x0f, 0x82, 0x3a, 0x00, 0x00, 0x00, //0x0000826f jb LBB31_58 + //0x00008275 LBB31_56 + 0x48, 0xff, 0xc8, //0x00008275 decq %rax + 0x4c, 0x8d, 0x15, 0xa1, 0x3e, 0x00, 0x00, //0x00008278 leaq $16033(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, //0x0000827f .p2align 4, 0x90 + //0x00008280 LBB31_57 + 0x89, 0xf3, //0x00008280 movl %esi, %ebx + 0x89, 0xf6, //0x00008282 movl %esi, %esi + 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x00008284 imulq $1374389535, %rsi, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x0000828b shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x0000828f imull $100, %esi, %ecx + 0x89, 0xda, //0x00008292 movl %ebx, %edx + 0x29, 0xca, //0x00008294 subl %ecx, %edx + 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x00008296 movzwl (%r10,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xff, //0x0000829b movw %cx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000829f addq $-2, %rax + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000082a3 cmpl $9999, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x000082a9 ja LBB31_57 + //0x000082af LBB31_58 + 0x83, 0xfe, 0x0a, //0x000082af cmpl $10, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000082b2 jb LBB31_60 + 0x89, 0xf0, //0x000082b8 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0x5f, 0x3e, 0x00, 0x00, //0x000082ba leaq $15967(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000082c1 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x000082c5 movw %ax, (%r8) + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000082c9 jmp LBB31_61 + //0x000082ce LBB31_60 + 0x40, 0x80, 0xc6, 0x30, //0x000082ce addb $48, %sil + 0x41, 0x88, 0x30, //0x000082d2 movb %sil, (%r8) + //0x000082d5 LBB31_61 + 0x41, 0x29, 0xf9, //0x000082d5 subl %edi, %r9d + 0x45, 0x89, 0xc8, //0x000082d8 movl %r9d, %r8d + 0xe9, 0x73, 0x05, 0x00, 0x00, //0x000082db jmp LBB31_138 + //0x000082e0 LBB31_62 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000082e0 movl $4, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x000082e6 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfe, 0x64, //0x000082ea cmpl $100, %r14d + 0x0f, 0x82, 0x83, 0xfb, 0xff, 0xff, //0x000082ee jb LBB31_31 + 0xe9, 0x0f, 0xfc, 0xff, 0xff, //0x000082f4 jmp LBB31_64 + //0x000082f9 LBB31_80 + 0x48, 0x29, 0xd3, //0x000082f9 subq %rdx, %rbx + 0x48, 0x8d, 0x8c, 0x07, 0xf0, 0x00, 0x00, 0x00, //0x000082fc leaq $240(%rdi,%rax), %rcx + 0x31, 0xc0, //0x00008304 xorl %eax, %eax + 0x66, 0x0f, 0x6f, 0x05, 0x62, 0xf8, 0xff, 0xff, //0x00008306 movdqa $-1950(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + 0x90, 0x90, //0x0000830e .p2align 4, 0x90 + //0x00008310 LBB31_81 + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x10, 0xff, 0xff, 0xff, //0x00008310 movdqu %xmm0, $-240(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x00008319 movdqu %xmm0, $-224(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x30, 0xff, 0xff, 0xff, //0x00008322 movdqu %xmm0, $-208(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x0000832b movdqu %xmm0, $-192(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x50, 0xff, 0xff, 0xff, //0x00008334 movdqu %xmm0, $-176(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x0000833d movdqu %xmm0, $-160(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x70, 0xff, 0xff, 0xff, //0x00008346 movdqu %xmm0, $-144(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x80, //0x0000834f movdqu %xmm0, $-128(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x90, //0x00008355 movdqu %xmm0, $-112(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xa0, //0x0000835b movdqu %xmm0, $-96(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xb0, //0x00008361 movdqu %xmm0, $-80(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xc0, //0x00008367 movdqu %xmm0, $-64(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xd0, //0x0000836d movdqu %xmm0, $-48(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xe0, //0x00008373 movdqu %xmm0, $-32(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xf0, //0x00008379 movdqu %xmm0, $-16(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x04, 0x01, //0x0000837f movdqu %xmm0, (%rcx,%rax) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x00008384 addq $256, %rax + 0x48, 0x83, 0xc3, 0xf8, //0x0000838a addq $-8, %rbx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000838e jne LBB31_81 + //0x00008394 LBB31_82 + 0x48, 0x85, 0xd2, //0x00008394 testq %rdx, %rdx + 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x00008397 je LBB31_85 + 0x4c, 0x01, 0xc8, //0x0000839d addq %r9, %rax + 0x4c, 0x01, 0xe0, //0x000083a0 addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x10, //0x000083a3 leaq $16(%rdi,%rax), %rax + 0x48, 0xf7, 0xda, //0x000083a8 negq %rdx + 0x66, 0x0f, 0x6f, 0x05, 0xbd, 0xf7, 0xff, 0xff, //0x000083ab movdqa $-2115(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083b3 .p2align 4, 0x90 + //0x000083c0 LBB31_84 + 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x000083c0 movdqu %xmm0, $-16(%rax) + 0xf3, 0x0f, 0x7f, 0x00, //0x000083c5 movdqu %xmm0, (%rax) + 0x48, 0x83, 0xc0, 0x20, //0x000083c9 addq $32, %rax + 0x48, 0xff, 0xc2, //0x000083cd incq %rdx + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x000083d0 jne LBB31_84 + //0x000083d6 LBB31_85 + 0x4d, 0x39, 0xda, //0x000083d6 cmpq %r11, %r10 + 0x0f, 0x84, 0x71, 0x04, 0x00, 0x00, //0x000083d9 je LBB31_137 + 0x4c, 0x01, 0xd6, //0x000083df addq %r10, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083e2 .p2align 4, 0x90 + //0x000083f0 LBB31_87 + 0xc6, 0x06, 0x30, //0x000083f0 movb $48, (%rsi) + 0x48, 0xff, 0xc6, //0x000083f3 incq %rsi + 0x4c, 0x39, 0xc6, //0x000083f6 cmpq %r8, %rsi + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x000083f9 jb LBB31_87 + 0xe9, 0x4c, 0x04, 0x00, 0x00, //0x000083ff jmp LBB31_137 + //0x00008404 LBB31_88 + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008404 cmpl $10000, %esi + 0x4c, 0x89, 0xc0, //0x0000840a movq %r8, %rax + 0x48, 0x83, 0xd8, 0x00, //0x0000840d sbbq $0, %rax + 0x48, 0x83, 0xc0, 0x05, //0x00008411 addq $5, %rax + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008415 cmpl $10000, %esi + 0x0f, 0x83, 0x32, 0xfc, 0xff, 0xff, //0x0000841b jae LBB31_37 + 0x49, 0x89, 0xc1, //0x00008421 movq %rax, %r9 + 0xe9, 0x4c, 0xfe, 0xff, 0xff, //0x00008424 jmp LBB31_56 + //0x00008429 LBB31_90 + 0x49, 0x8d, 0x9c, 0x39, 0xf2, 0x00, 0x00, 0x00, //0x00008429 leaq $242(%r9,%rdi), %rbx + 0x4d, 0x89, 0xf7, //0x00008431 movq %r14, %r15 + 0x49, 0x29, 0xc7, //0x00008434 subq %rax, %r15 + 0x31, 0xc0, //0x00008437 xorl %eax, %eax + 0x66, 0x0f, 0x6f, 0x05, 0x2f, 0xf7, 0xff, 0xff, //0x00008439 movdqa $-2257(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + //0x00008441 LBB31_91 + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x10, 0xff, 0xff, 0xff, //0x00008441 movdqu %xmm0, $-240(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x20, 0xff, 0xff, 0xff, //0x0000844a movdqu %xmm0, $-224(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x30, 0xff, 0xff, 0xff, //0x00008453 movdqu %xmm0, $-208(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x40, 0xff, 0xff, 0xff, //0x0000845c movdqu %xmm0, $-192(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x50, 0xff, 0xff, 0xff, //0x00008465 movdqu %xmm0, $-176(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x60, 0xff, 0xff, 0xff, //0x0000846e movdqu %xmm0, $-160(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x70, 0xff, 0xff, 0xff, //0x00008477 movdqu %xmm0, $-144(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0x80, //0x00008480 movdqu %xmm0, $-128(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0x90, //0x00008486 movdqu %xmm0, $-112(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xa0, //0x0000848c movdqu %xmm0, $-96(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xb0, //0x00008492 movdqu %xmm0, $-80(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xc0, //0x00008498 movdqu %xmm0, $-64(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xd0, //0x0000849e movdqu %xmm0, $-48(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xe0, //0x000084a4 movdqu %xmm0, $-32(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xf0, //0x000084aa movdqu %xmm0, $-16(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x04, 0x03, //0x000084b0 movdqu %xmm0, (%rbx,%rax) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x000084b5 addq $256, %rax + 0x49, 0x83, 0xc7, 0x08, //0x000084bb addq $8, %r15 + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000084bf jne LBB31_91 + //0x000084c5 LBB31_92 + 0x4d, 0x85, 0xf6, //0x000084c5 testq %r14, %r14 + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000084c8 je LBB31_95 + 0x4c, 0x01, 0xc8, //0x000084ce addq %r9, %rax + 0x48, 0x8d, 0x44, 0x07, 0x12, //0x000084d1 leaq $18(%rdi,%rax), %rax + 0x49, 0xf7, 0xde, //0x000084d6 negq %r14 + 0x66, 0x0f, 0x6f, 0x05, 0x8f, 0xf6, 0xff, 0xff, //0x000084d9 movdqa $-2417(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + //0x000084e1 LBB31_94 + 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x000084e1 movdqu %xmm0, $-16(%rax) + 0xf3, 0x0f, 0x7f, 0x00, //0x000084e6 movdqu %xmm0, (%rax) + 0x48, 0x83, 0xc0, 0x20, //0x000084ea addq $32, %rax + 0x49, 0xff, 0xc6, //0x000084ee incq %r14 + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x000084f1 jne LBB31_94 + //0x000084f7 LBB31_95 + 0x49, 0x01, 0xf0, //0x000084f7 addq %rsi, %r8 + 0x49, 0x39, 0xf3, //0x000084fa cmpq %rsi, %r11 + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000084fd je LBB31_98 + //0x00008503 LBB31_96 + 0x44, 0x89, 0xd0, //0x00008503 movl %r10d, %eax + 0xf7, 0xd8, //0x00008506 negl %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008508 .p2align 4, 0x90 + //0x00008510 LBB31_97 + 0x41, 0xc6, 0x00, 0x30, //0x00008510 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00008514 incq %r8 + 0xff, 0xc6, //0x00008517 incl %esi + 0x39, 0xc6, //0x00008519 cmpl %eax, %esi + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000851b jl LBB31_97 + //0x00008521 LBB31_98 + 0x4b, 0x8d, 0x04, 0x20, //0x00008521 leaq (%r8,%r12), %rax + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008525 cmpl $10000, %r13d + 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x0000852c jb LBB31_101 + 0x44, 0x89, 0xe9, //0x00008532 movl %r13d, %ecx + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00008535 movl $3518437209, %r11d + 0x4c, 0x0f, 0xaf, 0xd9, //0x0000853b imulq %rcx, %r11 + 0x49, 0xc1, 0xeb, 0x2d, //0x0000853f shrq $45, %r11 + 0x41, 0x69, 0xcb, 0xf0, 0xd8, 0xff, 0xff, //0x00008543 imull $-10000, %r11d, %ecx + 0x44, 0x01, 0xe9, //0x0000854a addl %r13d, %ecx + 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x0000854d je LBB31_103 + 0x89, 0xca, //0x00008553 movl %ecx, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00008555 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x0000855c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00008560 imull $100, %edx, %ebx + 0x29, 0xd9, //0x00008563 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0xb4, 0x3b, 0x00, 0x00, //0x00008565 leaq $15284(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x0000856c movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00008570 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x53, //0x00008574 movzwl (%rbx,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00008578 movw %cx, $-4(%rax) + 0x45, 0x31, 0xc9, //0x0000857c xorl %r9d, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x0000857f addq $-4, %rax + 0x41, 0x83, 0xfb, 0x64, //0x00008583 cmpl $100, %r11d + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00008587 jae LBB31_105 + //0x0000858d LBB31_102 + 0x44, 0x89, 0xd9, //0x0000858d movl %r11d, %ecx + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00008590 jmp LBB31_107 + //0x00008595 LBB31_101 + 0x45, 0x31, 0xc9, //0x00008595 xorl %r9d, %r9d + 0x45, 0x89, 0xeb, //0x00008598 movl %r13d, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x0000859b cmpl $100, %r11d + 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x0000859f jb LBB31_102 + //0x000085a5 LBB31_105 + 0x48, 0xff, 0xc8, //0x000085a5 decq %rax + 0x48, 0x8d, 0x15, 0x71, 0x3b, 0x00, 0x00, //0x000085a8 leaq $15217(%rip), %rdx /* _Digits+0(%rip) */ + 0x90, //0x000085af .p2align 4, 0x90 + //0x000085b0 LBB31_106 + 0x44, 0x89, 0xd9, //0x000085b0 movl %r11d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000085b3 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000085ba shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x000085be imull $100, %ecx, %ebx + 0x44, 0x89, 0xde, //0x000085c1 movl %r11d, %esi + 0x29, 0xde, //0x000085c4 subl %ebx, %esi + 0x0f, 0xb7, 0x34, 0x72, //0x000085c6 movzwl (%rdx,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xff, //0x000085ca movw %si, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000085ce addq $-2, %rax + 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000085d2 cmpl $9999, %r11d + 0x41, 0x89, 0xcb, //0x000085d9 movl %ecx, %r11d + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x000085dc ja LBB31_106 + //0x000085e2 LBB31_107 + 0x83, 0xf9, 0x0a, //0x000085e2 cmpl $10, %ecx + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000085e5 jb LBB31_109 + 0x89, 0xc8, //0x000085eb movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x2c, 0x3b, 0x00, 0x00, //0x000085ed leaq $15148(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000085f4 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x000085f8 movw %ax, (%r8) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000085fc jmp LBB31_110 + //0x00008601 LBB31_109 + 0x80, 0xc1, 0x30, //0x00008601 addb $48, %cl + 0x41, 0x88, 0x08, //0x00008604 movb %cl, (%r8) + //0x00008607 LBB31_110 + 0x4d, 0x29, 0xcc, //0x00008607 subq %r9, %r12 + 0x49, 0x8d, 0x74, 0x24, 0x01, //0x0000860a leaq $1(%r12), %rsi + 0x49, 0x8d, 0x54, 0x24, 0x11, //0x0000860f leaq $17(%r12), %rdx + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00008614 leaq $2(%r12), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008619 .p2align 4, 0x90 + //0x00008620 LBB31_111 + 0x48, 0xff, 0xca, //0x00008620 decq %rdx + 0x48, 0xff, 0xce, //0x00008623 decq %rsi + 0x48, 0xff, 0xc8, //0x00008626 decq %rax + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00008629 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000862f leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00008634 je LBB31_111 + 0x4d, 0x8d, 0x0c, 0x30, //0x0000863a leaq (%r8,%rsi), %r9 + 0x45, 0x85, 0xd2, //0x0000863e testl %r10d, %r10d + 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00008641 jle LBB31_116 + 0x44, 0x89, 0xc9, //0x00008647 movl %r9d, %ecx + 0x44, 0x29, 0xc1, //0x0000864a subl %r8d, %ecx + 0x41, 0x39, 0xca, //0x0000864d cmpl %ecx, %r10d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00008650 jge LBB31_117 + 0x43, 0x8d, 0x0c, 0x02, //0x00008656 leal (%r10,%r8), %ecx + 0x41, 0x29, 0xc9, //0x0000865a subl %ecx, %r9d + 0x49, 0x8d, 0x49, 0xff, //0x0000865d leaq $-1(%r9), %rcx + 0x45, 0x89, 0xcb, //0x00008661 movl %r9d, %r11d + 0x41, 0x83, 0xe3, 0x03, //0x00008664 andl $3, %r11d + 0x48, 0x83, 0xf9, 0x03, //0x00008668 cmpq $3, %rcx + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x0000866c jae LBB31_121 + 0x31, 0xc9, //0x00008672 xorl %ecx, %ecx + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00008674 jmp LBB31_124 + //0x00008679 LBB31_117 + 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x00008679 jle LBB31_116 + 0x45, 0x01, 0xc2, //0x0000867f addl %r8d, %r10d + 0x45, 0x89, 0xcf, //0x00008682 movl %r9d, %r15d + 0x41, 0xf7, 0xd7, //0x00008685 notl %r15d + 0x45, 0x01, 0xd7, //0x00008688 addl %r10d, %r15d + 0x45, 0x31, 0xf6, //0x0000868b xorl %r14d, %r14d + 0x4d, 0x89, 0xcb, //0x0000868e movq %r9, %r11 + 0x41, 0x83, 0xff, 0x1e, //0x00008691 cmpl $30, %r15d + 0x0f, 0x86, 0x9b, 0x01, 0x00, 0x00, //0x00008695 jbe LBB31_135 + 0x49, 0xff, 0xc7, //0x0000869b incq %r15 + 0x4d, 0x89, 0xfe, //0x0000869e movq %r15, %r14 + 0x49, 0x83, 0xe6, 0xe0, //0x000086a1 andq $-32, %r14 + 0x4f, 0x8d, 0x1c, 0x30, //0x000086a5 leaq (%r8,%r14), %r11 + 0x49, 0x8d, 0x5e, 0xe0, //0x000086a9 leaq $-32(%r14), %rbx + 0x48, 0x89, 0xd8, //0x000086ad movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x05, //0x000086b0 shrq $5, %rax + 0x48, 0xff, 0xc0, //0x000086b4 incq %rax + 0x41, 0x89, 0xc4, //0x000086b7 movl %eax, %r12d + 0x41, 0x83, 0xe4, 0x07, //0x000086ba andl $7, %r12d + 0x48, 0x81, 0xfb, 0xe0, 0x00, 0x00, 0x00, //0x000086be cmpq $224, %rbx + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x000086c5 jae LBB31_129 + 0x31, 0xc0, //0x000086cb xorl %eax, %eax + 0xe9, 0x23, 0x01, 0x00, 0x00, //0x000086cd jmp LBB31_131 + //0x000086d2 LBB31_116 + 0x4d, 0x89, 0xc8, //0x000086d2 movq %r9, %r8 + 0xe9, 0x76, 0x01, 0x00, 0x00, //0x000086d5 jmp LBB31_137 + //0x000086da LBB31_103 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000086da movl $4, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x000086e0 addq $-4, %rax + 0x41, 0x83, 0xfb, 0x64, //0x000086e4 cmpl $100, %r11d + 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x000086e8 jb LBB31_102 + 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x000086ee jmp LBB31_105 + //0x000086f3 LBB31_121 + 0x4d, 0x89, 0xde, //0x000086f3 movq %r11, %r14 + 0x4d, 0x29, 0xce, //0x000086f6 subq %r9, %r14 + 0x31, 0xc9, //0x000086f9 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000086fb .p2align 4, 0x90 + //0x00008700 LBB31_122 + 0x49, 0x8d, 0x1c, 0x08, //0x00008700 leaq (%r8,%rcx), %rbx + 0x8b, 0x54, 0x1e, 0xfc, //0x00008704 movl $-4(%rsi,%rbx), %edx + 0x89, 0x54, 0x1e, 0xfd, //0x00008708 movl %edx, $-3(%rsi,%rbx) + 0x48, 0x83, 0xc1, 0xfc, //0x0000870c addq $-4, %rcx + 0x49, 0x39, 0xce, //0x00008710 cmpq %rcx, %r14 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008713 jne LBB31_122 + 0x48, 0xf7, 0xd9, //0x00008719 negq %rcx + //0x0000871c LBB31_124 + 0x4d, 0x85, 0xdb, //0x0000871c testq %r11, %r11 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x0000871f je LBB31_127 + 0x49, 0xf7, 0xdb, //0x00008725 negq %r11 + 0x4c, 0x89, 0xc2, //0x00008728 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x0000872b subq %rcx, %rdx + 0x31, 0xc9, //0x0000872e xorl %ecx, %ecx + //0x00008730 .p2align 4, 0x90 + //0x00008730 LBB31_126 + 0x48, 0x8d, 0x34, 0x0a, //0x00008730 leaq (%rdx,%rcx), %rsi + 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00008734 movzbl (%r12,%rsi), %ebx + 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00008739 movb %bl, $1(%r12,%rsi) + 0x48, 0xff, 0xc9, //0x0000873e decq %rcx + 0x49, 0x39, 0xcb, //0x00008741 cmpq %rcx, %r11 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00008744 jne LBB31_126 + //0x0000874a LBB31_127 + 0x49, 0x63, 0xca, //0x0000874a movslq %r10d, %rcx + 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x0000874d movb $46, (%r8,%rcx) + 0x49, 0x01, 0xc0, //0x00008752 addq %rax, %r8 + 0xe9, 0xf6, 0x00, 0x00, 0x00, //0x00008755 jmp LBB31_137 + //0x0000875a LBB31_129 + 0x4c, 0x89, 0xe3, //0x0000875a movq %r12, %rbx + 0x48, 0x29, 0xc3, //0x0000875d subq %rax, %rbx + 0x31, 0xc0, //0x00008760 xorl %eax, %eax + 0x66, 0x0f, 0x6f, 0x05, 0x06, 0xf4, 0xff, 0xff, //0x00008762 movdqa $-3066(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + //0x0000876a LBB31_130 + 0x49, 0x8d, 0x0c, 0x00, //0x0000876a leaq (%r8,%rax), %rcx + 0xf3, 0x0f, 0x7f, 0x04, 0x0e, //0x0000876e movdqu %xmm0, (%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x10, //0x00008773 movdqu %xmm0, $16(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x20, //0x00008779 movdqu %xmm0, $32(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x30, //0x0000877f movdqu %xmm0, $48(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x40, //0x00008785 movdqu %xmm0, $64(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x50, //0x0000878b movdqu %xmm0, $80(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x60, //0x00008791 movdqu %xmm0, $96(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x70, //0x00008797 movdqu %xmm0, $112(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0x80, 0x00, 0x00, 0x00, //0x0000879d movdqu %xmm0, $128(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0x90, 0x00, 0x00, 0x00, //0x000087a6 movdqu %xmm0, $144(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xa0, 0x00, 0x00, 0x00, //0x000087af movdqu %xmm0, $160(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xb0, 0x00, 0x00, 0x00, //0x000087b8 movdqu %xmm0, $176(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xc0, 0x00, 0x00, 0x00, //0x000087c1 movdqu %xmm0, $192(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xd0, 0x00, 0x00, 0x00, //0x000087ca movdqu %xmm0, $208(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xe0, 0x00, 0x00, 0x00, //0x000087d3 movdqu %xmm0, $224(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xf0, 0x00, 0x00, 0x00, //0x000087dc movdqu %xmm0, $240(%rsi,%rcx) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x000087e5 addq $256, %rax + 0x48, 0x83, 0xc3, 0x08, //0x000087eb addq $8, %rbx + 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x000087ef jne LBB31_130 + //0x000087f5 LBB31_131 + 0x49, 0x01, 0xf3, //0x000087f5 addq %rsi, %r11 + 0x4d, 0x85, 0xe4, //0x000087f8 testq %r12, %r12 + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000087fb je LBB31_134 + 0x49, 0x01, 0xc0, //0x00008801 addq %rax, %r8 + 0x49, 0x01, 0xd0, //0x00008804 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x00008807 negq %r12 + 0x66, 0x0f, 0x6f, 0x05, 0x5e, 0xf3, 0xff, 0xff, //0x0000880a movdqa $-3234(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + //0x00008812 LBB31_133 + 0xf3, 0x41, 0x0f, 0x7f, 0x40, 0xf0, //0x00008812 movdqu %xmm0, $-16(%r8) + 0xf3, 0x41, 0x0f, 0x7f, 0x00, //0x00008818 movdqu %xmm0, (%r8) + 0x49, 0x83, 0xc0, 0x20, //0x0000881d addq $32, %r8 + 0x49, 0xff, 0xc4, //0x00008821 incq %r12 + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00008824 jne LBB31_133 + //0x0000882a LBB31_134 + 0x4d, 0x89, 0xd8, //0x0000882a movq %r11, %r8 + 0x4d, 0x39, 0xf7, //0x0000882d cmpq %r14, %r15 + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00008830 je LBB31_137 + //0x00008836 LBB31_135 + 0x45, 0x29, 0xf2, //0x00008836 subl %r14d, %r10d + 0x45, 0x29, 0xca, //0x00008839 subl %r9d, %r10d + 0x4d, 0x89, 0xd8, //0x0000883c movq %r11, %r8 + 0x90, //0x0000883f .p2align 4, 0x90 + //0x00008840 LBB31_136 + 0x41, 0xc6, 0x00, 0x30, //0x00008840 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00008844 incq %r8 + 0x41, 0xff, 0xca, //0x00008847 decl %r10d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000884a jne LBB31_136 + //0x00008850 LBB31_137 + 0x41, 0x29, 0xf8, //0x00008850 subl %edi, %r8d + //0x00008853 LBB31_138 + 0x44, 0x89, 0xc0, //0x00008853 movl %r8d, %eax + 0x5b, //0x00008856 popq %rbx + 0x41, 0x5c, //0x00008857 popq %r12 + 0x41, 0x5d, //0x00008859 popq %r13 + 0x41, 0x5e, //0x0000885b popq %r14 + 0x41, 0x5f, //0x0000885d popq %r15 + 0x5d, //0x0000885f popq %rbp + 0xc3, //0x00008860 retq + //0x00008861 LBB31_139 + 0x45, 0x31, 0xc0, //0x00008861 xorl %r8d, %r8d + 0xe9, 0xea, 0xff, 0xff, 0xff, //0x00008864 jmp LBB31_138 + //0x00008869 LBB31_140 + 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x00008869 movl $-149, %r15d + 0x89, 0xc6, //0x0000886f movl %eax, %esi + 0xe9, 0x89, 0xf3, 0xff, 0xff, //0x00008871 jmp LBB31_5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00008876 .p2align 4, 0x00 + //0x00008880 LCPI32_0 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00008880 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' + //0x00008890 LCPI32_1 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00008890 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x000088a0 LCPI32_2 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000088a0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + //0x000088b0 LCPI32_3 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x000088b0 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x000088c0 LCPI32_4 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x000088c0 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x000088d0 LCPI32_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000088d0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000088e0 .p2align 4, 0x90 + //0x000088e0 _to_lower + 0x55, //0x000088e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000088e1 movq %rsp, %rbp + 0x41, 0x56, //0x000088e4 pushq %r14 + 0x53, //0x000088e6 pushq %rbx + 0x31, 0xc9, //0x000088e7 xorl %ecx, %ecx + 0x66, 0x0f, 0x6f, 0x05, 0x8f, 0xff, 0xff, 0xff, //0x000088e9 movdqa $-113(%rip), %xmm0 /* LCPI32_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x97, 0xff, 0xff, 0xff, //0x000088f1 movdqa $-105(%rip), %xmm1 /* LCPI32_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x9f, 0xff, 0xff, 0xff, //0x000088f9 movdqa $-97(%rip), %xmm2 /* LCPI32_2+0(%rip) */ + 0x48, 0x89, 0xd0, //0x00008901 movq %rdx, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008904 .p2align 4, 0x90 + //0x00008910 LBB32_1 + 0xf3, 0x0f, 0x6f, 0x1c, 0x0e, //0x00008910 movdqu (%rsi,%rcx), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00008915 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x64, 0xe0, //0x00008919 pcmpgtb %xmm0, %xmm4 + 0x66, 0x0f, 0x6f, 0xe9, //0x0000891d movdqa %xmm1, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00008921 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00008925 pand %xmm4, %xmm5 + 0x66, 0x0f, 0xdb, 0xea, //0x00008929 pand %xmm2, %xmm5 + 0x66, 0x0f, 0x71, 0xf5, 0x05, //0x0000892d psllw $5, %xmm5 + 0x66, 0x0f, 0xfc, 0xeb, //0x00008932 paddb %xmm3, %xmm5 + 0xf3, 0x0f, 0x7f, 0x2c, 0x0f, //0x00008936 movdqu %xmm5, (%rdi,%rcx) + 0x48, 0x83, 0xc0, 0xf0, //0x0000893b addq $-16, %rax + 0x48, 0x83, 0xc1, 0x10, //0x0000893f addq $16, %rcx + 0x48, 0x83, 0xf8, 0x0f, //0x00008943 cmpq $15, %rax + 0x0f, 0x87, 0xc3, 0xff, 0xff, 0xff, //0x00008947 ja LBB32_1 + 0x49, 0x89, 0xd2, //0x0000894d movq %rdx, %r10 + 0x49, 0x29, 0xca, //0x00008950 subq %rcx, %r10 + 0x0f, 0x84, 0xba, 0x02, 0x00, 0x00, //0x00008953 je LBB32_20 + 0x4c, 0x8d, 0x0c, 0x0f, //0x00008959 leaq (%rdi,%rcx), %r9 + 0x4c, 0x8d, 0x04, 0x0e, //0x0000895d leaq (%rsi,%rcx), %r8 + 0x48, 0x83, 0xf8, 0x20, //0x00008961 cmpq $32, %rax + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00008965 jb LBB32_14 + 0x49, 0x83, 0xc2, 0x10, //0x0000896b addq $16, %r10 + 0x48, 0x8d, 0x5c, 0x0e, 0xf0, //0x0000896f leaq $-16(%rsi,%rcx), %rbx + 0x4c, 0x01, 0xd3, //0x00008974 addq %r10, %rbx + 0x49, 0x39, 0xd9, //0x00008977 cmpq %rbx, %r9 + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000897a jae LBB32_6 + 0x48, 0x8d, 0x5c, 0x0f, 0xf0, //0x00008980 leaq $-16(%rdi,%rcx), %rbx + 0x4c, 0x01, 0xd3, //0x00008985 addq %r10, %rbx + 0x49, 0x39, 0xd8, //0x00008988 cmpq %rbx, %r8 + 0x0f, 0x83, 0x1a, 0x00, 0x00, 0x00, //0x0000898b jae LBB32_6 + //0x00008991 LBB32_14 + 0xa8, 0x01, //0x00008991 testb $1, %al + 0x0f, 0x85, 0x01, 0x02, 0x00, 0x00, //0x00008993 jne LBB32_16 + //0x00008999 LBB32_15 + 0x48, 0x89, 0xc1, //0x00008999 movq %rax, %rcx + 0x48, 0x83, 0xf8, 0x01, //0x0000899c cmpq $1, %rax + 0x0f, 0x85, 0x1f, 0x02, 0x00, 0x00, //0x000089a0 jne LBB32_18 + 0xe9, 0x68, 0x02, 0x00, 0x00, //0x000089a6 jmp LBB32_20 + //0x000089ab LBB32_6 + 0x49, 0x89, 0xc0, //0x000089ab movq %rax, %r8 + 0x49, 0x83, 0xe0, 0xe0, //0x000089ae andq $-32, %r8 + 0x49, 0x8d, 0x58, 0xe0, //0x000089b2 leaq $-32(%r8), %rbx + 0x49, 0x89, 0xdb, //0x000089b6 movq %rbx, %r11 + 0x49, 0xc1, 0xeb, 0x05, //0x000089b9 shrq $5, %r11 + 0x4d, 0x8d, 0x53, 0x01, //0x000089bd leaq $1(%r11), %r10 + 0x48, 0x85, 0xdb, //0x000089c1 testq %rbx, %rbx + 0x0f, 0x84, 0x4e, 0x02, 0x00, 0x00, //0x000089c4 je LBB32_7 + 0x41, 0x8d, 0x5b, 0x01, //0x000089ca leal $1(%r11), %ebx + 0x0f, 0xb6, 0xdb, //0x000089ce movzbl %bl, %ebx + 0x83, 0xe3, 0x01, //0x000089d1 andl $1, %ebx + 0x49, 0xf7, 0xd3, //0x000089d4 notq %r11 + 0x49, 0x01, 0xdb, //0x000089d7 addq %rbx, %r11 + 0x45, 0x31, 0xc9, //0x000089da xorl %r9d, %r9d + 0x66, 0x0f, 0x6f, 0x05, 0xcb, 0xfe, 0xff, 0xff, //0x000089dd movdqa $-309(%rip), %xmm0 /* LCPI32_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xd3, 0xfe, 0xff, 0xff, //0x000089e5 movdqa $-301(%rip), %xmm1 /* LCPI32_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0xdb, 0xfe, 0xff, 0xff, //0x000089ed movdqa $-293(%rip), %xmm2 /* LCPI32_5+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000089f5 .p2align 4, 0x90 + //0x00008a00 LBB32_9 + 0x4e, 0x8d, 0x34, 0x0e, //0x00008a00 leaq (%rsi,%r9), %r14 + 0xf3, 0x42, 0x0f, 0x6f, 0x1c, 0x31, //0x00008a04 movdqu (%rcx,%r14), %xmm3 + 0xf3, 0x42, 0x0f, 0x6f, 0x64, 0x31, 0x10, //0x00008a0a movdqu $16(%rcx,%r14), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00008a11 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0xfc, 0xe8, //0x00008a15 paddb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00008a19 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xf0, //0x00008a1d paddb %xmm0, %xmm6 + 0x66, 0x0f, 0x6f, 0xfd, //0x00008a21 movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0xda, 0xf9, //0x00008a25 pminub %xmm1, %xmm7 + 0x66, 0x0f, 0x74, 0xfd, //0x00008a29 pcmpeqb %xmm5, %xmm7 + 0x66, 0x0f, 0x6f, 0xee, //0x00008a2d movdqa %xmm6, %xmm5 + 0x66, 0x0f, 0xda, 0xe9, //0x00008a31 pminub %xmm1, %xmm5 + 0x66, 0x0f, 0x74, 0xee, //0x00008a35 pcmpeqb %xmm6, %xmm5 + 0x66, 0x0f, 0x6f, 0xf7, //0x00008a39 movdqa %xmm7, %xmm6 + 0x66, 0x0f, 0xdf, 0xf3, //0x00008a3d pandn %xmm3, %xmm6 + 0x66, 0x0f, 0xfc, 0xda, //0x00008a41 paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xdb, 0xdf, //0x00008a45 pand %xmm7, %xmm3 + 0x66, 0x0f, 0xeb, 0xde, //0x00008a49 por %xmm6, %xmm3 + 0x66, 0x0f, 0x6f, 0xf5, //0x00008a4d movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0xdf, 0xf4, //0x00008a51 pandn %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xe2, //0x00008a55 paddb %xmm2, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00008a59 pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00008a5d por %xmm6, %xmm4 + 0x4a, 0x8d, 0x1c, 0x0f, //0x00008a61 leaq (%rdi,%r9), %rbx + 0xf3, 0x0f, 0x7f, 0x1c, 0x19, //0x00008a65 movdqu %xmm3, (%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x64, 0x19, 0x10, //0x00008a6a movdqu %xmm4, $16(%rcx,%rbx) + 0xf3, 0x42, 0x0f, 0x6f, 0x5c, 0x31, 0x20, //0x00008a70 movdqu $32(%rcx,%r14), %xmm3 + 0xf3, 0x42, 0x0f, 0x6f, 0x64, 0x31, 0x30, //0x00008a77 movdqu $48(%rcx,%r14), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00008a7e movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0xfc, 0xe8, //0x00008a82 paddb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00008a86 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xf0, //0x00008a8a paddb %xmm0, %xmm6 + 0x66, 0x0f, 0x6f, 0xfd, //0x00008a8e movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0xda, 0xf9, //0x00008a92 pminub %xmm1, %xmm7 + 0x66, 0x0f, 0x74, 0xfd, //0x00008a96 pcmpeqb %xmm5, %xmm7 + 0x66, 0x0f, 0x6f, 0xee, //0x00008a9a movdqa %xmm6, %xmm5 + 0x66, 0x0f, 0xda, 0xe9, //0x00008a9e pminub %xmm1, %xmm5 + 0x66, 0x0f, 0x74, 0xee, //0x00008aa2 pcmpeqb %xmm6, %xmm5 + 0x66, 0x0f, 0x6f, 0xf7, //0x00008aa6 movdqa %xmm7, %xmm6 + 0x66, 0x0f, 0xdf, 0xf3, //0x00008aaa pandn %xmm3, %xmm6 + 0x66, 0x0f, 0xfc, 0xda, //0x00008aae paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xdb, 0xdf, //0x00008ab2 pand %xmm7, %xmm3 + 0x66, 0x0f, 0xeb, 0xde, //0x00008ab6 por %xmm6, %xmm3 + 0x66, 0x0f, 0x6f, 0xf5, //0x00008aba movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0xdf, 0xf4, //0x00008abe pandn %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xe2, //0x00008ac2 paddb %xmm2, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00008ac6 pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00008aca por %xmm6, %xmm4 + 0xf3, 0x0f, 0x7f, 0x5c, 0x19, 0x20, //0x00008ace movdqu %xmm3, $32(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x64, 0x19, 0x30, //0x00008ad4 movdqu %xmm4, $48(%rcx,%rbx) + 0x49, 0x83, 0xc1, 0x40, //0x00008ada addq $64, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00008ade addq $2, %r11 + 0x0f, 0x85, 0x18, 0xff, 0xff, 0xff, //0x00008ae2 jne LBB32_9 + 0x41, 0xf6, 0xc2, 0x01, //0x00008ae8 testb $1, %r10b + 0x0f, 0x84, 0x7c, 0x00, 0x00, 0x00, //0x00008aec je LBB32_12 + //0x00008af2 LBB32_11 + 0x4a, 0x8d, 0x5c, 0x0e, 0x10, //0x00008af2 leaq $16(%rsi,%r9), %rbx + 0xf3, 0x0f, 0x6f, 0x44, 0x19, 0xf0, //0x00008af7 movdqu $-16(%rcx,%rbx), %xmm0 + 0xf3, 0x0f, 0x6f, 0x0c, 0x19, //0x00008afd movdqu (%rcx,%rbx), %xmm1 + 0x66, 0x0f, 0x6f, 0x15, 0xa6, 0xfd, 0xff, 0xff, //0x00008b02 movdqa $-602(%rip), %xmm2 /* LCPI32_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00008b0a movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0xfc, 0xda, //0x00008b0e paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xfc, 0xd1, //0x00008b12 paddb %xmm1, %xmm2 + 0x66, 0x0f, 0x6f, 0x25, 0xa2, 0xfd, 0xff, 0xff, //0x00008b16 movdqa $-606(%rip), %xmm4 /* LCPI32_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xeb, //0x00008b1e movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0xda, 0xec, //0x00008b22 pminub %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xeb, //0x00008b26 pcmpeqb %xmm3, %xmm5 + 0x66, 0x0f, 0xda, 0xe2, //0x00008b2a pminub %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe2, //0x00008b2e pcmpeqb %xmm2, %xmm4 + 0x66, 0x0f, 0x6f, 0x15, 0x96, 0xfd, 0xff, 0xff, //0x00008b32 movdqa $-618(%rip), %xmm2 /* LCPI32_5+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xdd, //0x00008b3a movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0xdf, 0xd8, //0x00008b3e pandn %xmm0, %xmm3 + 0x66, 0x0f, 0xfc, 0xc2, //0x00008b42 paddb %xmm2, %xmm0 + 0x66, 0x0f, 0xfc, 0xd1, //0x00008b46 paddb %xmm1, %xmm2 + 0x66, 0x0f, 0xdb, 0xc5, //0x00008b4a pand %xmm5, %xmm0 + 0x66, 0x0f, 0xeb, 0xc3, //0x00008b4e por %xmm3, %xmm0 + 0x66, 0x0f, 0xdb, 0xd4, //0x00008b52 pand %xmm4, %xmm2 + 0x66, 0x0f, 0xdf, 0xe1, //0x00008b56 pandn %xmm1, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x00008b5a por %xmm2, %xmm4 + 0x4a, 0x8d, 0x5c, 0x0f, 0x10, //0x00008b5e leaq $16(%rdi,%r9), %rbx + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xf0, //0x00008b63 movdqu %xmm0, $-16(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x24, 0x19, //0x00008b69 movdqu %xmm4, (%rcx,%rbx) + //0x00008b6e LBB32_12 + 0x4c, 0x39, 0xc0, //0x00008b6e cmpq %r8, %rax + 0x0f, 0x84, 0x9c, 0x00, 0x00, 0x00, //0x00008b71 je LBB32_20 + 0x4c, 0x01, 0xc6, //0x00008b77 addq %r8, %rsi + 0x4c, 0x29, 0xc2, //0x00008b7a subq %r8, %rdx + 0x4c, 0x01, 0xc7, //0x00008b7d addq %r8, %rdi + 0x48, 0x01, 0xce, //0x00008b80 addq %rcx, %rsi + 0x48, 0x29, 0xca, //0x00008b83 subq %rcx, %rdx + 0x48, 0x01, 0xcf, //0x00008b86 addq %rcx, %rdi + 0x49, 0x89, 0xf0, //0x00008b89 movq %rsi, %r8 + 0x48, 0x89, 0xd0, //0x00008b8c movq %rdx, %rax + 0x49, 0x89, 0xf9, //0x00008b8f movq %rdi, %r9 + 0xa8, 0x01, //0x00008b92 testb $1, %al + 0x0f, 0x84, 0xff, 0xfd, 0xff, 0xff, //0x00008b94 je LBB32_15 + //0x00008b9a LBB32_16 + 0x41, 0x0f, 0xb6, 0x08, //0x00008b9a movzbl (%r8), %ecx + 0x8d, 0x51, 0xbf, //0x00008b9e leal $-65(%rcx), %edx + 0x8d, 0x71, 0x20, //0x00008ba1 leal $32(%rcx), %esi + 0x80, 0xfa, 0x1a, //0x00008ba4 cmpb $26, %dl + 0x40, 0x0f, 0xb6, 0xd6, //0x00008ba7 movzbl %sil, %edx + 0x0f, 0x43, 0xd1, //0x00008bab cmovael %ecx, %edx + 0x48, 0x8d, 0x48, 0xff, //0x00008bae leaq $-1(%rax), %rcx + 0x41, 0x88, 0x11, //0x00008bb2 movb %dl, (%r9) + 0x49, 0xff, 0xc0, //0x00008bb5 incq %r8 + 0x49, 0xff, 0xc1, //0x00008bb8 incq %r9 + 0x48, 0x83, 0xf8, 0x01, //0x00008bbb cmpq $1, %rax + 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00008bbf je LBB32_20 + //0x00008bc5 LBB32_18 + 0x31, 0xc0, //0x00008bc5 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008bc7 .p2align 4, 0x90 + //0x00008bd0 LBB32_19 + 0x41, 0x0f, 0xb6, 0x14, 0x00, //0x00008bd0 movzbl (%r8,%rax), %edx + 0x8d, 0x72, 0xbf, //0x00008bd5 leal $-65(%rdx), %esi + 0x8d, 0x7a, 0x20, //0x00008bd8 leal $32(%rdx), %edi + 0x40, 0x80, 0xfe, 0x1a, //0x00008bdb cmpb $26, %sil + 0x40, 0x0f, 0xb6, 0xf7, //0x00008bdf movzbl %dil, %esi + 0x0f, 0x43, 0xf2, //0x00008be3 cmovael %edx, %esi + 0x41, 0x88, 0x34, 0x01, //0x00008be6 movb %sil, (%r9,%rax) + 0x41, 0x0f, 0xb6, 0x54, 0x00, 0x01, //0x00008bea movzbl $1(%r8,%rax), %edx + 0x8d, 0x72, 0xbf, //0x00008bf0 leal $-65(%rdx), %esi + 0x8d, 0x7a, 0x20, //0x00008bf3 leal $32(%rdx), %edi + 0x40, 0x80, 0xfe, 0x1a, //0x00008bf6 cmpb $26, %sil + 0x40, 0x0f, 0xb6, 0xf7, //0x00008bfa movzbl %dil, %esi + 0x0f, 0x43, 0xf2, //0x00008bfe cmovael %edx, %esi + 0x41, 0x88, 0x74, 0x01, 0x01, //0x00008c01 movb %sil, $1(%r9,%rax) + 0x48, 0x83, 0xc0, 0x02, //0x00008c06 addq $2, %rax + 0x48, 0x39, 0xc1, //0x00008c0a cmpq %rax, %rcx + 0x0f, 0x85, 0xbd, 0xff, 0xff, 0xff, //0x00008c0d jne LBB32_19 + //0x00008c13 LBB32_20 + 0x5b, //0x00008c13 popq %rbx + 0x41, 0x5e, //0x00008c14 popq %r14 + 0x5d, //0x00008c16 popq %rbp + 0xc3, //0x00008c17 retq + //0x00008c18 LBB32_7 + 0x45, 0x31, 0xc9, //0x00008c18 xorl %r9d, %r9d + 0x41, 0xf6, 0xc2, 0x01, //0x00008c1b testb $1, %r10b + 0x0f, 0x85, 0xcd, 0xfe, 0xff, 0xff, //0x00008c1f jne LBB32_11 + 0xe9, 0x44, 0xff, 0xff, 0xff, //0x00008c25 jmp LBB32_12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008c2a .p2align 4, 0x90 + //0x00008c30 _format_significand + 0x55, //0x00008c30 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008c31 movq %rsp, %rbp + 0x41, 0x56, //0x00008c34 pushq %r14 + 0x53, //0x00008c36 pushq %rbx + 0x4c, 0x63, 0xc2, //0x00008c37 movslq %edx, %r8 + 0x49, 0x01, 0xf0, //0x00008c3a addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00008c3d movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00008c40 shrq $32, %rax + 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x00008c44 je LBB33_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00008c4a movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00008c54 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00008c57 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00008c5a shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00008c5e imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00008c64 addl %edi, %ecx + 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, //0x00008c66 je LBB33_3 + 0x89, 0xc8, //0x00008c6c movl %ecx, %eax + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008c6e movl $3518437209, %r9d + 0x49, 0x0f, 0xaf, 0xc1, //0x00008c74 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00008c78 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00008c7c imull $10000, %eax, %edi + 0x29, 0xf9, //0x00008c82 subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00008c84 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00008c87 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008c8b shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008c8f imull $10000, %edi, %edi + 0x29, 0xf8, //0x00008c95 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00008c97 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00008c9a shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008c9d imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00008ca4 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00008ca8 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00008cac subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00008cae movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00008cb2 movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00008cb5 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008cb8 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00008cbe shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00008cc1 imull $100, %edi, %ecx + 0x29, 0xc8, //0x00008cc4 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00008cc6 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x4f, 0x34, 0x00, 0x00, //0x00008cca leaq $13391(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008cd1 movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008cd6 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008cdb movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008ce0 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008ce5 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008cea movw %ax, $-6(%r8) + 0x0f, 0xb7, 0x04, 0x79, //0x00008cef movzwl (%rcx,%rdi,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008cf3 movw %ax, $-8(%r8) + 0x45, 0x31, 0xc9, //0x00008cf8 xorl %r9d, %r9d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00008cfb jmp LBB33_5 + //0x00008d00 LBB33_1 + 0x45, 0x31, 0xc9, //0x00008d00 xorl %r9d, %r9d + 0x4d, 0x89, 0xc6, //0x00008d03 movq %r8, %r14 + 0x48, 0x89, 0xfa, //0x00008d06 movq %rdi, %rdx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008d09 cmpl $10000, %edx + 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x00008d0f jae LBB33_8 + //0x00008d15 LBB33_7 + 0x89, 0xd7, //0x00008d15 movl %edx, %edi + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x00008d17 jmp LBB33_10 + //0x00008d1c LBB33_3 + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008d1c movl $8, %r9d + //0x00008d22 LBB33_5 + 0x4d, 0x8d, 0x70, 0xf8, //0x00008d22 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008d26 cmpl $10000, %edx + 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x00008d2c jb LBB33_7 + //0x00008d32 LBB33_8 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008d32 movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0xe1, 0x33, 0x00, 0x00, //0x00008d38 leaq $13281(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, //0x00008d3f .p2align 4, 0x90 + //0x00008d40 LBB33_9 + 0x89, 0xd7, //0x00008d40 movl %edx, %edi + 0x49, 0x0f, 0xaf, 0xfa, //0x00008d42 imulq %r10, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008d46 shrq $45, %rdi + 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008d4a imull $-10000, %edi, %eax + 0x01, 0xd0, //0x00008d50 addl %edx, %eax + 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008d52 imulq $1374389535, %rax, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00008d59 shrq $37, %rbx + 0x6b, 0xcb, 0x64, //0x00008d5d imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00008d60 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008d62 movzwl (%r11,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008d67 movw %ax, $-2(%r14) + 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008d6c movzwl (%r11,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008d71 movw %ax, $-4(%r14) + 0x49, 0x83, 0xc6, 0xfc, //0x00008d76 addq $-4, %r14 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008d7a cmpl $99999999, %edx + 0x89, 0xfa, //0x00008d80 movl %edi, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008d82 ja LBB33_9 + //0x00008d88 LBB33_10 + 0x83, 0xff, 0x64, //0x00008d88 cmpl $100, %edi + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008d8b jae LBB33_11 + 0x83, 0xff, 0x0a, //0x00008d91 cmpl $10, %edi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008d94 jb LBB33_14 + //0x00008d9a LBB33_13 + 0x89, 0xf8, //0x00008d9a movl %edi, %eax + 0x48, 0x8d, 0x0d, 0x7d, 0x33, 0x00, 0x00, //0x00008d9c leaq $13181(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008da3 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008da7 movw %ax, $-2(%r14) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008dac jmp LBB33_15 + //0x00008db1 LBB33_11 + 0x0f, 0xb7, 0xc7, //0x00008db1 movzwl %di, %eax + 0xc1, 0xe8, 0x02, //0x00008db4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008db7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00008dbd shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00008dc0 imull $100, %eax, %ecx + 0x29, 0xcf, //0x00008dc3 subl %ecx, %edi + 0x0f, 0xb7, 0xcf, //0x00008dc5 movzwl %di, %ecx + 0x48, 0x8d, 0x15, 0x51, 0x33, 0x00, 0x00, //0x00008dc8 leaq $13137(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008dcf movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008dd3 movw %cx, $-2(%r14) + 0x49, 0x83, 0xc6, 0xfe, //0x00008dd8 addq $-2, %r14 + 0x89, 0xc7, //0x00008ddc movl %eax, %edi + 0x83, 0xff, 0x0a, //0x00008dde cmpl $10, %edi + 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008de1 jae LBB33_13 + //0x00008de7 LBB33_14 + 0x40, 0x80, 0xc7, 0x30, //0x00008de7 addb $48, %dil + 0x40, 0x88, 0x3e, //0x00008deb movb %dil, (%rsi) + //0x00008dee LBB33_15 + 0x4d, 0x29, 0xc8, //0x00008dee subq %r9, %r8 + 0x4c, 0x89, 0xc0, //0x00008df1 movq %r8, %rax + 0x5b, //0x00008df4 popq %rbx + 0x41, 0x5e, //0x00008df5 popq %r14 + 0x5d, //0x00008df7 popq %rbp + 0xc3, //0x00008df8 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008df9 .p2align 4, 0x90 + //0x00008e00 _left_shift + 0x55, //0x00008e00 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008e01 movq %rsp, %rbp + 0x41, 0x56, //0x00008e04 pushq %r14 + 0x53, //0x00008e06 pushq %rbx + 0x89, 0xf1, //0x00008e07 movl %esi, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x00008e09 imulq $104, %rcx, %rdx + 0x48, 0x8d, 0x35, 0xfc, 0x8c, 0x00, 0x00, //0x00008e0d leaq $36092(%rip), %rsi /* _LSHIFT_TAB+0(%rip) */ + 0x44, 0x8b, 0x04, 0x32, //0x00008e14 movl (%rdx,%rsi), %r8d + 0x4c, 0x8b, 0x17, //0x00008e18 movq (%rdi), %r10 + 0x4c, 0x63, 0x4f, 0x10, //0x00008e1b movslq $16(%rdi), %r9 + 0x8a, 0x44, 0x32, 0x04, //0x00008e1f movb $4(%rdx,%rsi), %al + 0x4d, 0x85, 0xc9, //0x00008e23 testq %r9, %r9 + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00008e26 je LBB34_6 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x00008e2c leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x00008e31 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e33 .p2align 4, 0x90 + //0x00008e40 LBB34_3 + 0x84, 0xc0, //0x00008e40 testb %al, %al + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00008e42 je LBB34_8 + 0x41, 0x38, 0x04, 0x32, //0x00008e48 cmpb %al, (%r10,%rsi) + 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x00008e4c jne LBB34_5 + 0x0f, 0xb6, 0x04, 0x32, //0x00008e52 movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x00008e56 incq %rsi + 0x49, 0x39, 0xf1, //0x00008e59 cmpq %rsi, %r9 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00008e5c jne LBB34_3 + //0x00008e62 LBB34_6 + 0x84, 0xc0, //0x00008e62 testb %al, %al + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00008e64 je LBB34_8 + //0x00008e6a LBB34_7 + 0x41, 0xff, 0xc8, //0x00008e6a decl %r8d + //0x00008e6d LBB34_8 + 0x45, 0x85, 0xc9, //0x00008e6d testl %r9d, %r9d + 0x0f, 0x8e, 0x8c, 0x00, 0x00, 0x00, //0x00008e70 jle LBB34_23 + 0x43, 0x8d, 0x04, 0x08, //0x00008e76 leal (%r8,%r9), %eax + 0x4c, 0x63, 0xf0, //0x00008e7a movslq %eax, %r14 + 0x49, 0xff, 0xce, //0x00008e7d decq %r14 + 0x31, 0xd2, //0x00008e80 xorl %edx, %edx + 0x49, 0xbb, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00008e82 movabsq $-3689348814741910323, %r11 + 0x90, 0x90, 0x90, 0x90, //0x00008e8c .p2align 4, 0x90 + //0x00008e90 LBB34_10 + 0x4b, 0x0f, 0xbe, 0x74, 0x0a, 0xff, //0x00008e90 movsbq $-1(%r10,%r9), %rsi + 0x48, 0x83, 0xc6, 0xd0, //0x00008e96 addq $-48, %rsi + 0x48, 0xd3, 0xe6, //0x00008e9a shlq %cl, %rsi + 0x48, 0x01, 0xd6, //0x00008e9d addq %rdx, %rsi + 0x48, 0x89, 0xf0, //0x00008ea0 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00008ea3 mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00008ea6 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008eaa leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008eae leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xf0, //0x00008eb2 movq %rsi, %rax + 0x48, 0x29, 0xd8, //0x00008eb5 subq %rbx, %rax + 0x4c, 0x39, 0x77, 0x08, //0x00008eb8 cmpq %r14, $8(%rdi) + 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x00008ebc jbe LBB34_16 + 0x04, 0x30, //0x00008ec2 addb $48, %al + 0x43, 0x88, 0x04, 0x32, //0x00008ec4 movb %al, (%r10,%r14) + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00008ec8 jmp LBB34_18 + 0x90, 0x90, 0x90, //0x00008ecd .p2align 4, 0x90 + //0x00008ed0 LBB34_16 + 0x48, 0x85, 0xc0, //0x00008ed0 testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00008ed3 je LBB34_18 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008ed9 movl $1, $28(%rdi) + //0x00008ee0 LBB34_18 + 0x49, 0x83, 0xf9, 0x02, //0x00008ee0 cmpq $2, %r9 + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00008ee4 jl LBB34_12 + 0x49, 0xff, 0xc9, //0x00008eea decq %r9 + 0x4c, 0x8b, 0x17, //0x00008eed movq (%rdi), %r10 + 0x49, 0xff, 0xce, //0x00008ef0 decq %r14 + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00008ef3 jmp LBB34_10 + //0x00008ef8 LBB34_12 + 0x48, 0x83, 0xfe, 0x0a, //0x00008ef8 cmpq $10, %rsi + 0x0f, 0x83, 0x6e, 0x00, 0x00, 0x00, //0x00008efc jae LBB34_13 + //0x00008f02 LBB34_23 + 0x48, 0x63, 0x4f, 0x10, //0x00008f02 movslq $16(%rdi), %rcx + 0x49, 0x63, 0xc0, //0x00008f06 movslq %r8d, %rax + 0x48, 0x01, 0xc8, //0x00008f09 addq %rcx, %rax + 0x89, 0x47, 0x10, //0x00008f0c movl %eax, $16(%rdi) + 0x48, 0x8b, 0x4f, 0x08, //0x00008f0f movq $8(%rdi), %rcx + 0x48, 0x39, 0xc1, //0x00008f13 cmpq %rax, %rcx + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00008f16 ja LBB34_25 + 0x89, 0x4f, 0x10, //0x00008f1c movl %ecx, $16(%rdi) + 0x89, 0xc8, //0x00008f1f movl %ecx, %eax + //0x00008f21 LBB34_25 + 0x44, 0x01, 0x47, 0x14, //0x00008f21 addl %r8d, $20(%rdi) + 0x85, 0xc0, //0x00008f25 testl %eax, %eax + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00008f27 jle LBB34_29 + 0x48, 0x8b, 0x0f, //0x00008f2d movq (%rdi), %rcx + 0x89, 0xc0, //0x00008f30 movl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f32 .p2align 4, 0x90 + //0x00008f40 LBB34_27 + 0x80, 0x7c, 0x01, 0xff, 0x30, //0x00008f40 cmpb $48, $-1(%rcx,%rax) + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00008f45 jne LBB34_31 + 0x89, 0xc2, //0x00008f4b movl %eax, %edx + 0x48, 0xff, 0xc8, //0x00008f4d decq %rax + 0xff, 0xca, //0x00008f50 decl %edx + 0x89, 0x57, 0x10, //0x00008f52 movl %edx, $16(%rdi) + 0x48, 0x8d, 0x50, 0x01, //0x00008f55 leaq $1(%rax), %rdx + 0x48, 0x83, 0xfa, 0x01, //0x00008f59 cmpq $1, %rdx + 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00008f5d jg LBB34_27 + //0x00008f63 LBB34_29 + 0x85, 0xc0, //0x00008f63 testl %eax, %eax + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00008f65 je LBB34_30 + //0x00008f6b LBB34_31 + 0x5b, //0x00008f6b popq %rbx + 0x41, 0x5e, //0x00008f6c popq %r14 + 0x5d, //0x00008f6e popq %rbp + 0xc3, //0x00008f6f retq + //0x00008f70 LBB34_13 + 0x49, 0x63, 0xf6, //0x00008f70 movslq %r14d, %rsi + 0x48, 0xff, 0xce, //0x00008f73 decq %rsi + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00008f76 jmp LBB34_14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f7b .p2align 4, 0x90 + //0x00008f80 LBB34_15 + 0x04, 0x30, //0x00008f80 addb $48, %al + 0x48, 0x8b, 0x1f, //0x00008f82 movq (%rdi), %rbx + 0x88, 0x04, 0x33, //0x00008f85 movb %al, (%rbx,%rsi) + //0x00008f88 LBB34_22 + 0x48, 0xff, 0xce, //0x00008f88 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00008f8b cmpq $9, %rcx + 0x0f, 0x86, 0x6d, 0xff, 0xff, 0xff, //0x00008f8f jbe LBB34_23 + //0x00008f95 LBB34_14 + 0x48, 0x89, 0xd1, //0x00008f95 movq %rdx, %rcx + 0x48, 0x89, 0xd0, //0x00008f98 movq %rdx, %rax + 0x49, 0xf7, 0xe3, //0x00008f9b mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00008f9e shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008fa2 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008fa6 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00008faa movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00008fad subq %rbx, %rax + 0x48, 0x39, 0x77, 0x08, //0x00008fb0 cmpq %rsi, $8(%rdi) + 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00008fb4 ja LBB34_15 + 0x48, 0x85, 0xc0, //0x00008fba testq %rax, %rax + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00008fbd je LBB34_22 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008fc3 movl $1, $28(%rdi) + 0xe9, 0xb9, 0xff, 0xff, 0xff, //0x00008fca jmp LBB34_22 + //0x00008fcf LBB34_30 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00008fcf movl $0, $20(%rdi) + 0x5b, //0x00008fd6 popq %rbx + 0x41, 0x5e, //0x00008fd7 popq %r14 + 0x5d, //0x00008fd9 popq %rbp + 0xc3, //0x00008fda retq + //0x00008fdb LBB34_5 + 0x0f, 0x8c, 0x89, 0xfe, 0xff, 0xff, //0x00008fdb jl LBB34_7 + 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00008fe1 jmp LBB34_8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fe6 .p2align 4, 0x90 + //0x00008ff0 _right_shift + 0x55, //0x00008ff0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008ff1 movq %rsp, %rbp + 0x89, 0xf1, //0x00008ff4 movl %esi, %ecx + 0x4c, 0x63, 0x4f, 0x10, //0x00008ff6 movslq $16(%rdi), %r9 + 0x31, 0xf6, //0x00008ffa xorl %esi, %esi + 0x31, 0xc0, //0x00008ffc xorl %eax, %eax + 0x90, 0x90, //0x00008ffe .p2align 4, 0x90 + //0x00009000 LBB35_1 + 0x4c, 0x39, 0xce, //0x00009000 cmpq %r9, %rsi + 0x0f, 0x8d, 0x27, 0x01, 0x00, 0x00, //0x00009003 jge LBB35_2 + 0x48, 0x8d, 0x04, 0x80, //0x00009009 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x17, //0x0000900d movq (%rdi), %rdx + 0x48, 0x0f, 0xbe, 0x14, 0x32, //0x00009010 movsbq (%rdx,%rsi), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009015 leaq $-48(%rdx,%rax,2), %rax + 0x48, 0xff, 0xc6, //0x0000901a incq %rsi + 0x48, 0x89, 0xc2, //0x0000901d movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009020 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009023 testq %rdx, %rdx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00009026 je LBB35_1 + //0x0000902c LBB35_6 + 0x8b, 0x57, 0x14, //0x0000902c movl $20(%rdi), %edx + 0x29, 0xf2, //0x0000902f subl %esi, %edx + 0xff, 0xc2, //0x00009031 incl %edx + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009033 movq $-1, %r8 + 0x49, 0xd3, 0xe0, //0x0000903a shlq %cl, %r8 + 0x89, 0x57, 0x14, //0x0000903d movl %edx, $20(%rdi) + 0x49, 0xf7, 0xd0, //0x00009040 notq %r8 + 0x45, 0x31, 0xd2, //0x00009043 xorl %r10d, %r10d + 0x44, 0x39, 0xce, //0x00009046 cmpl %r9d, %esi + 0x0f, 0x8d, 0x69, 0x00, 0x00, 0x00, //0x00009049 jge LBB35_9 + 0x4c, 0x63, 0xce, //0x0000904f movslq %esi, %r9 + 0x48, 0x8b, 0x37, //0x00009052 movq (%rdi), %rsi + 0x45, 0x31, 0xd2, //0x00009055 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009058 .p2align 4, 0x90 + //0x00009060 LBB35_8 + 0x48, 0x89, 0xc2, //0x00009060 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009063 shrq %cl, %rdx + 0x4c, 0x21, 0xc0, //0x00009066 andq %r8, %rax + 0x80, 0xc2, 0x30, //0x00009069 addb $48, %dl + 0x42, 0x88, 0x14, 0x16, //0x0000906c movb %dl, (%rsi,%r10) + 0x48, 0x8d, 0x04, 0x80, //0x00009070 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x37, //0x00009074 movq (%rdi), %rsi + 0x4a, 0x8d, 0x14, 0x0e, //0x00009077 leaq (%rsi,%r9), %rdx + 0x49, 0x0f, 0xbe, 0x14, 0x12, //0x0000907b movsbq (%r10,%rdx), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009080 leaq $-48(%rdx,%rax,2), %rax + 0x4c, 0x63, 0x5f, 0x10, //0x00009085 movslq $16(%rdi), %r11 + 0x4b, 0x8d, 0x54, 0x11, 0x01, //0x00009089 leaq $1(%r9,%r10), %rdx + 0x49, 0xff, 0xc2, //0x0000908e incq %r10 + 0x4c, 0x39, 0xda, //0x00009091 cmpq %r11, %rdx + 0x0f, 0x8c, 0xc6, 0xff, 0xff, 0xff, //0x00009094 jl LBB35_8 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x0000909a jmp LBB35_9 + 0x90, //0x0000909f .p2align 4, 0x90 + //0x000090a0 LBB35_11 + 0x40, 0x80, 0xc6, 0x30, //0x000090a0 addb $48, %sil + 0x48, 0x8b, 0x17, //0x000090a4 movq (%rdi), %rdx + 0x42, 0x88, 0x34, 0x0a, //0x000090a7 movb %sil, (%rdx,%r9) + 0x41, 0xff, 0xc1, //0x000090ab incl %r9d + 0x45, 0x89, 0xca, //0x000090ae movl %r9d, %r10d + //0x000090b1 LBB35_14 + 0x48, 0x01, 0xc0, //0x000090b1 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x000090b4 leaq (%rax,%rax,4), %rax + //0x000090b8 LBB35_9 + 0x48, 0x85, 0xc0, //0x000090b8 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x000090bb je LBB35_15 + 0x48, 0x89, 0xc6, //0x000090c1 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x000090c4 shrq %cl, %rsi + 0x4c, 0x21, 0xc0, //0x000090c7 andq %r8, %rax + 0x4d, 0x63, 0xca, //0x000090ca movslq %r10d, %r9 + 0x4c, 0x39, 0x4f, 0x08, //0x000090cd cmpq %r9, $8(%rdi) + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x000090d1 ja LBB35_11 + 0x48, 0x85, 0xf6, //0x000090d7 testq %rsi, %rsi + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x000090da je LBB35_14 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x000090e0 movl $1, $28(%rdi) + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x000090e7 jmp LBB35_14 + //0x000090ec LBB35_15 + 0x44, 0x89, 0x57, 0x10, //0x000090ec movl %r10d, $16(%rdi) + 0x45, 0x85, 0xd2, //0x000090f0 testl %r10d, %r10d + 0x0f, 0x8e, 0x2c, 0x00, 0x00, 0x00, //0x000090f3 jle LBB35_19 + 0x48, 0x8b, 0x07, //0x000090f9 movq (%rdi), %rax + 0x45, 0x89, 0xd2, //0x000090fc movl %r10d, %r10d + 0x90, //0x000090ff .p2align 4, 0x90 + //0x00009100 LBB35_17 + 0x42, 0x80, 0x7c, 0x10, 0xff, 0x30, //0x00009100 cmpb $48, $-1(%rax,%r10) + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00009106 jne LBB35_21 + 0x44, 0x89, 0xd1, //0x0000910c movl %r10d, %ecx + 0x49, 0xff, 0xca, //0x0000910f decq %r10 + 0xff, 0xc9, //0x00009112 decl %ecx + 0x89, 0x4f, 0x10, //0x00009114 movl %ecx, $16(%rdi) + 0x49, 0x8d, 0x4a, 0x01, //0x00009117 leaq $1(%r10), %rcx + 0x48, 0x83, 0xf9, 0x01, //0x0000911b cmpq $1, %rcx + 0x0f, 0x8f, 0xdb, 0xff, 0xff, 0xff, //0x0000911f jg LBB35_17 + //0x00009125 LBB35_19 + 0x45, 0x85, 0xd2, //0x00009125 testl %r10d, %r10d + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00009128 je LBB35_20 + //0x0000912e LBB35_21 + 0x5d, //0x0000912e popq %rbp + 0xc3, //0x0000912f retq + //0x00009130 LBB35_2 + 0x48, 0x85, 0xc0, //0x00009130 testq %rax, %rax + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00009133 je LBB35_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009139 .p2align 4, 0x90 + 0x48, 0x89, 0xc2, //0x00009140 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009143 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009146 testq %rdx, %rdx + 0x0f, 0x85, 0xdd, 0xfe, 0xff, 0xff, //0x00009149 jne LBB35_6 + //0x0000914f LBB35_4 + 0x48, 0x01, 0xc0, //0x0000914f addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009152 leaq (%rax,%rax,4), %rax + 0xff, 0xc6, //0x00009156 incl %esi + 0x48, 0x89, 0xc2, //0x00009158 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x0000915b shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x0000915e testq %rdx, %rdx + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00009161 je LBB35_4 + 0xe9, 0xc0, 0xfe, 0xff, 0xff, //0x00009167 jmp LBB35_6 + //0x0000916c LBB35_20 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x0000916c movl $0, $20(%rdi) + 0x5d, //0x00009173 popq %rbp + 0xc3, //0x00009174 retq + //0x00009175 LBB35_22 + 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00009175 movl $0, $16(%rdi) + 0x5d, //0x0000917c popq %rbp + 0xc3, //0x0000917d retq + 0x00, 0x00, //0x0000917e .p2align 4, 0x00 + //0x00009180 LCPI36_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00009180 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00009190 LCPI36_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00009190 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000091a0 .p2align 4, 0x90 + //0x000091a0 _advance_string_default + 0x55, //0x000091a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000091a1 movq %rsp, %rbp + 0x41, 0x57, //0x000091a4 pushq %r15 + 0x41, 0x56, //0x000091a6 pushq %r14 + 0x41, 0x55, //0x000091a8 pushq %r13 + 0x41, 0x54, //0x000091aa pushq %r12 + 0x53, //0x000091ac pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x000091ad subq $16, %rsp + 0x4c, 0x8b, 0x67, 0x08, //0x000091b1 movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x000091b5 subq %rsi, %r12 + 0x0f, 0x84, 0x91, 0x03, 0x00, 0x00, //0x000091b8 je LBB36_17 + 0x48, 0x8b, 0x07, //0x000091be movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x000091c1 movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc6, //0x000091c5 addq %rax, %rsi + 0x48, 0x89, 0x55, 0xc8, //0x000091c8 movq %rdx, $-56(%rbp) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000091cc movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x000091d3 cmpq $64, %r12 + 0x0f, 0x82, 0x12, 0x02, 0x00, 0x00, //0x000091d7 jb LBB36_18 + 0x45, 0x89, 0xe1, //0x000091dd movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x000091e0 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000091e4 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x000091eb xorl %r15d, %r15d + 0x66, 0x0f, 0x6f, 0x05, 0x8a, 0xff, 0xff, 0xff, //0x000091ee movdqa $-118(%rip), %xmm0 /* LCPI36_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x92, 0xff, 0xff, 0xff, //0x000091f6 movdqa $-110(%rip), %xmm1 /* LCPI36_1+0(%rip) */ + 0x48, 0x8b, 0x55, 0xd0, //0x000091fe movq $-48(%rbp), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009202 .p2align 4, 0x90 + //0x00009210 LBB36_3 + 0xf3, 0x0f, 0x6f, 0x16, //0x00009210 movdqu (%rsi), %xmm2 + 0xf3, 0x0f, 0x6f, 0x5e, 0x10, //0x00009214 movdqu $16(%rsi), %xmm3 + 0xf3, 0x0f, 0x6f, 0x66, 0x20, //0x00009219 movdqu $32(%rsi), %xmm4 + 0xf3, 0x0f, 0x6f, 0x6e, 0x30, //0x0000921e movdqu $48(%rsi), %xmm5 + 0x66, 0x0f, 0x6f, 0xf2, //0x00009223 movdqa %xmm2, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x00009227 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xde, //0x0000922b pmovmskb %xmm6, %ebx + 0x66, 0x0f, 0x6f, 0xf3, //0x0000922f movdqa %xmm3, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x00009233 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xce, //0x00009237 pmovmskb %xmm6, %ecx + 0x66, 0x0f, 0x6f, 0xf4, //0x0000923b movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x0000923f pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xc6, //0x00009243 pmovmskb %xmm6, %eax + 0x66, 0x0f, 0x6f, 0xf5, //0x00009247 movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x0000924b pcmpeqb %xmm0, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x0000924f pmovmskb %xmm6, %r13d + 0x66, 0x0f, 0x74, 0xd1, //0x00009254 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x00009258 pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x74, 0xd9, //0x0000925c pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xd3, //0x00009260 pmovmskb %xmm3, %r10d + 0x66, 0x0f, 0x74, 0xe1, //0x00009265 pcmpeqb %xmm1, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xdc, //0x00009269 pmovmskb %xmm4, %r11d + 0x66, 0x0f, 0x74, 0xe9, //0x0000926e pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc5, //0x00009272 pmovmskb %xmm5, %r8d + 0x49, 0xc1, 0xe5, 0x30, //0x00009277 shlq $48, %r13 + 0x48, 0xc1, 0xe0, 0x20, //0x0000927b shlq $32, %rax + 0x48, 0xc1, 0xe1, 0x10, //0x0000927f shlq $16, %rcx + 0x48, 0x09, 0xcb, //0x00009283 orq %rcx, %rbx + 0x48, 0x09, 0xc3, //0x00009286 orq %rax, %rbx + 0x49, 0xc1, 0xe0, 0x30, //0x00009289 shlq $48, %r8 + 0x49, 0xc1, 0xe3, 0x20, //0x0000928d shlq $32, %r11 + 0x49, 0xc1, 0xe2, 0x10, //0x00009291 shlq $16, %r10 + 0x4c, 0x09, 0xd7, //0x00009295 orq %r10, %rdi + 0x4c, 0x09, 0xdf, //0x00009298 orq %r11, %rdi + 0x4c, 0x09, 0xc7, //0x0000929b orq %r8, %rdi + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000929e je LBB36_5 + 0x49, 0x83, 0xfe, 0xff, //0x000092a4 cmpq $-1, %r14 + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x000092a8 je LBB36_8 + //0x000092ae LBB36_5 + 0x4c, 0x09, 0xeb, //0x000092ae orq %r13, %rbx + 0x48, 0x89, 0xf8, //0x000092b1 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x000092b4 orq %r15, %rax + 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x000092b7 jne LBB36_9 + //0x000092bd LBB36_6 + 0x48, 0x85, 0xdb, //0x000092bd testq %rbx, %rbx + 0x0f, 0x85, 0x0e, 0x01, 0x00, 0x00, //0x000092c0 jne LBB36_15 + //0x000092c6 LBB36_7 + 0x48, 0x83, 0xc6, 0x40, //0x000092c6 addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x000092ca addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x000092ce cmpq $63, %r12 + 0x0f, 0x87, 0x38, 0xff, 0xff, 0xff, //0x000092d2 ja LBB36_3 + 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x000092d8 jmp LBB36_10 + //0x000092dd LBB36_8 + 0x48, 0x89, 0xf0, //0x000092dd movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x000092e0 subq %rdx, %rax + 0x4c, 0x0f, 0xbc, 0xf7, //0x000092e3 bsfq %rdi, %r14 + 0x49, 0x01, 0xc6, //0x000092e7 addq %rax, %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x000092ea movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x000092ee movq %r14, (%rax) + 0x4c, 0x09, 0xeb, //0x000092f1 orq %r13, %rbx + 0x48, 0x89, 0xf8, //0x000092f4 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x000092f7 orq %r15, %rax + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x000092fa je LBB36_6 + //0x00009300 LBB36_9 + 0x4c, 0x89, 0xf8, //0x00009300 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00009303 notq %rax + 0x48, 0x21, 0xf8, //0x00009306 andq %rdi, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x00009309 leaq (%rax,%rax), %r8 + 0x4d, 0x09, 0xf8, //0x0000930d orq %r15, %r8 + 0x4c, 0x89, 0xc1, //0x00009310 movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00009313 notq %rcx + 0x48, 0x21, 0xf9, //0x00009316 andq %rdi, %rcx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009319 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xf9, //0x00009323 andq %rdi, %rcx + 0x45, 0x31, 0xff, //0x00009326 xorl %r15d, %r15d + 0x48, 0x01, 0xc1, //0x00009329 addq %rax, %rcx + 0x41, 0x0f, 0x92, 0xc7, //0x0000932c setb %r15b + 0x48, 0x01, 0xc9, //0x00009330 addq %rcx, %rcx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00009333 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc1, //0x0000933d xorq %rax, %rcx + 0x4c, 0x21, 0xc1, //0x00009340 andq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00009343 notq %rcx + 0x48, 0x21, 0xcb, //0x00009346 andq %rcx, %rbx + 0x48, 0x85, 0xdb, //0x00009349 testq %rbx, %rbx + 0x0f, 0x84, 0x74, 0xff, 0xff, 0xff, //0x0000934c je LBB36_7 + 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x00009352 jmp LBB36_15 + //0x00009357 LBB36_10 + 0x4d, 0x89, 0xcc, //0x00009357 movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x0000935a cmpq $32, %r12 + 0x0f, 0x82, 0x0f, 0x01, 0x00, 0x00, //0x0000935e jb LBB36_22 + //0x00009364 LBB36_11 + 0xf3, 0x0f, 0x6f, 0x06, //0x00009364 movdqu (%rsi), %xmm0 + 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x00009368 movdqu $16(%rsi), %xmm1 + 0x66, 0x0f, 0x6f, 0x15, 0x0b, 0xfe, 0xff, 0xff, //0x0000936d movdqa $-501(%rip), %xmm2 /* LCPI36_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x1d, 0x13, 0xfe, 0xff, 0xff, //0x00009375 movdqa $-493(%rip), %xmm3 /* LCPI36_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xe0, //0x0000937d movdqa %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe2, //0x00009381 pcmpeqb %xmm2, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00009385 pmovmskb %xmm4, %edi + 0x66, 0x0f, 0x74, 0xd1, //0x00009389 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x0000938d pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x74, 0xc3, //0x00009391 pcmpeqb %xmm3, %xmm0 + 0x66, 0x0f, 0xd7, 0xc0, //0x00009395 pmovmskb %xmm0, %eax + 0x66, 0x0f, 0x74, 0xcb, //0x00009399 pcmpeqb %xmm3, %xmm1 + 0x66, 0x0f, 0xd7, 0xc9, //0x0000939d pmovmskb %xmm1, %ecx + 0x48, 0xc1, 0xe3, 0x10, //0x000093a1 shlq $16, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x000093a5 shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x000093a9 orq %rcx, %rax + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000093ac je LBB36_13 + 0x49, 0x83, 0xfe, 0xff, //0x000093b2 cmpq $-1, %r14 + 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x000093b6 je LBB36_19 + //0x000093bc LBB36_13 + 0x48, 0x09, 0xfb, //0x000093bc orq %rdi, %rbx + 0x48, 0x89, 0xc1, //0x000093bf movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x000093c2 orq %r15, %rcx + 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x000093c5 jne LBB36_20 + //0x000093cb LBB36_14 + 0x48, 0x85, 0xdb, //0x000093cb testq %rbx, %rbx + 0x0f, 0x84, 0x97, 0x00, 0x00, 0x00, //0x000093ce je LBB36_21 + //0x000093d4 LBB36_15 + 0x48, 0x0f, 0xbc, 0xc3, //0x000093d4 bsfq %rbx, %rax + 0x48, 0x29, 0xd6, //0x000093d8 subq %rdx, %rsi + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x000093db leaq $1(%rsi,%rax), %rax + //0x000093e0 LBB36_16 + 0x48, 0x83, 0xc4, 0x10, //0x000093e0 addq $16, %rsp + 0x5b, //0x000093e4 popq %rbx + 0x41, 0x5c, //0x000093e5 popq %r12 + 0x41, 0x5d, //0x000093e7 popq %r13 + 0x41, 0x5e, //0x000093e9 popq %r14 + 0x41, 0x5f, //0x000093eb popq %r15 + 0x5d, //0x000093ed popq %rbp + 0xc3, //0x000093ee retq + //0x000093ef LBB36_18 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000093ef movq $-1, %r14 + 0x45, 0x31, 0xff, //0x000093f6 xorl %r15d, %r15d + 0x48, 0x8b, 0x55, 0xd0, //0x000093f9 movq $-48(%rbp), %rdx + 0x49, 0x83, 0xfc, 0x20, //0x000093fd cmpq $32, %r12 + 0x0f, 0x83, 0x5d, 0xff, 0xff, 0xff, //0x00009401 jae LBB36_11 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x00009407 jmp LBB36_22 + //0x0000940c LBB36_19 + 0x48, 0x89, 0xf1, //0x0000940c movq %rsi, %rcx + 0x48, 0x29, 0xd1, //0x0000940f subq %rdx, %rcx + 0x4c, 0x0f, 0xbc, 0xf0, //0x00009412 bsfq %rax, %r14 + 0x49, 0x01, 0xce, //0x00009416 addq %rcx, %r14 + 0x48, 0x8b, 0x4d, 0xc8, //0x00009419 movq $-56(%rbp), %rcx + 0x4c, 0x89, 0x31, //0x0000941d movq %r14, (%rcx) + 0x48, 0x09, 0xfb, //0x00009420 orq %rdi, %rbx + 0x48, 0x89, 0xc1, //0x00009423 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00009426 orq %r15, %rcx + 0x0f, 0x84, 0x9c, 0xff, 0xff, 0xff, //0x00009429 je LBB36_14 + //0x0000942f LBB36_20 + 0x44, 0x89, 0xf9, //0x0000942f movl %r15d, %ecx + 0xf7, 0xd1, //0x00009432 notl %ecx + 0x21, 0xc1, //0x00009434 andl %eax, %ecx + 0x44, 0x8d, 0x04, 0x09, //0x00009436 leal (%rcx,%rcx), %r8d + 0x45, 0x09, 0xf8, //0x0000943a orl %r15d, %r8d + 0x44, 0x89, 0xc7, //0x0000943d movl %r8d, %edi + 0xf7, 0xd7, //0x00009440 notl %edi + 0x21, 0xc7, //0x00009442 andl %eax, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009444 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x0000944a xorl %r15d, %r15d + 0x01, 0xcf, //0x0000944d addl %ecx, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x0000944f setb %r15b + 0x01, 0xff, //0x00009453 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00009455 xorl $1431655765, %edi + 0x44, 0x21, 0xc7, //0x0000945b andl %r8d, %edi + 0xf7, 0xd7, //0x0000945e notl %edi + 0x21, 0xfb, //0x00009460 andl %edi, %ebx + 0x48, 0x85, 0xdb, //0x00009462 testq %rbx, %rbx + 0x0f, 0x85, 0x69, 0xff, 0xff, 0xff, //0x00009465 jne LBB36_15 + //0x0000946b LBB36_21 + 0x48, 0x83, 0xc6, 0x20, //0x0000946b addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x0000946f addq $-32, %r12 + //0x00009473 LBB36_22 + 0x4d, 0x85, 0xff, //0x00009473 testq %r15, %r15 + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x00009476 jne LBB36_33 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000947c movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00009483 testq %r12, %r12 + 0x0f, 0x84, 0x54, 0xff, 0xff, 0xff, //0x00009486 je LBB36_16 + //0x0000948c LBB36_24 + 0x49, 0x89, 0xd1, //0x0000948c movq %rdx, %r9 + 0x49, 0xf7, 0xd1, //0x0000948f notq %r9 + 0x48, 0x8b, 0x4d, 0xc8, //0x00009492 movq $-56(%rbp), %rcx + //0x00009496 LBB36_25 + 0x48, 0x8d, 0x7e, 0x01, //0x00009496 leaq $1(%rsi), %rdi + 0x0f, 0xb6, 0x1e, //0x0000949a movzbl (%rsi), %ebx + 0x80, 0xfb, 0x22, //0x0000949d cmpb $34, %bl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x000094a0 je LBB36_32 + 0x4d, 0x8d, 0x54, 0x24, 0xff, //0x000094a6 leaq $-1(%r12), %r10 + 0x80, 0xfb, 0x5c, //0x000094ab cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000094ae je LBB36_28 + 0x4d, 0x89, 0xd4, //0x000094b4 movq %r10, %r12 + 0x48, 0x89, 0xfe, //0x000094b7 movq %rdi, %rsi + 0x4d, 0x85, 0xd2, //0x000094ba testq %r10, %r10 + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000094bd jne LBB36_25 + 0xe9, 0x18, 0xff, 0xff, 0xff, //0x000094c3 jmp LBB36_16 + //0x000094c8 LBB36_28 + 0x4d, 0x85, 0xd2, //0x000094c8 testq %r10, %r10 + 0x0f, 0x84, 0x0f, 0xff, 0xff, 0xff, //0x000094cb je LBB36_16 + 0x49, 0x83, 0xfe, 0xff, //0x000094d1 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000094d5 jne LBB36_31 + 0x4c, 0x01, 0xcf, //0x000094db addq %r9, %rdi + 0x48, 0x89, 0x39, //0x000094de movq %rdi, (%rcx) + 0x49, 0x89, 0xfe, //0x000094e1 movq %rdi, %r14 + //0x000094e4 LBB36_31 + 0x48, 0x83, 0xc6, 0x02, //0x000094e4 addq $2, %rsi + 0x49, 0x83, 0xc4, 0xfe, //0x000094e8 addq $-2, %r12 + 0x4d, 0x89, 0xe2, //0x000094ec movq %r12, %r10 + 0x48, 0x8b, 0x55, 0xd0, //0x000094ef movq $-48(%rbp), %rdx + 0x4d, 0x85, 0xd2, //0x000094f3 testq %r10, %r10 + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x000094f6 jne LBB36_25 + 0xe9, 0xdf, 0xfe, 0xff, 0xff, //0x000094fc jmp LBB36_16 + //0x00009501 LBB36_32 + 0x48, 0x29, 0xd7, //0x00009501 subq %rdx, %rdi + 0x48, 0x89, 0xf8, //0x00009504 movq %rdi, %rax + 0xe9, 0xd4, 0xfe, 0xff, 0xff, //0x00009507 jmp LBB36_16 + //0x0000950c LBB36_33 + 0x4d, 0x85, 0xe4, //0x0000950c testq %r12, %r12 + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x0000950f je LBB36_17 + 0x49, 0x83, 0xfe, 0xff, //0x00009515 cmpq $-1, %r14 + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00009519 jne LBB36_36 + 0x4c, 0x8b, 0x75, 0xd0, //0x0000951f movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x00009523 notq %r14 + 0x49, 0x01, 0xf6, //0x00009526 addq %rsi, %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00009529 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x0000952d movq %r14, (%rax) + //0x00009530 LBB36_36 + 0x48, 0xff, 0xc6, //0x00009530 incq %rsi + 0x49, 0xff, 0xcc, //0x00009533 decq %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00009536 movq $-48(%rbp), %rdx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000953a movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00009541 testq %r12, %r12 + 0x0f, 0x85, 0x42, 0xff, 0xff, 0xff, //0x00009544 jne LBB36_24 + 0xe9, 0x91, 0xfe, 0xff, 0xff, //0x0000954a jmp LBB36_16 + //0x0000954f LBB36_17 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000954f movq $-1, %rax + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x00009556 jmp LBB36_16 + 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000955b .p2align 4, 0x00 + //0x00009560 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00009560 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00009568 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00009570 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00009578 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00009580 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00009588 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00009590 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00009598 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x000095a0 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x000095a8 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x000095b0 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x000095b8 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x000095c0 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x000095c8 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x000095d0 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x000095d8 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x000095e0 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x000095e8 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x000095f0 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x000095f8 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00009600 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00009608 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00009610 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00009618 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00009620 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00009628 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00009630 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00009638 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00009640 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00009648 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00009650 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00009658 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00009660 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00009668 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00009670 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00009678 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00009680 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00009688 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00009690 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00009698 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x000096a0 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x000096a8 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x000096b0 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x000096b8 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x000096c0 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x000096c8 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x000096d0 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x000096d8 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x000096e0 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x000096e8 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x000096f0 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x000096f8 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00009700 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00009708 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00009710 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00009718 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00009720 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00009728 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00009730 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00009738 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00009740 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00009748 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00009750 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00009758 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00009760 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00009768 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00009770 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00009778 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00009780 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00009788 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00009790 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00009798 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x000097a0 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x000097a8 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x000097b0 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x000097b8 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x000097c0 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x000097c8 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x000097d0 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x000097d8 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x000097e0 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x000097e8 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x000097f0 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x000097f8 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00009800 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00009808 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00009810 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00009818 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00009820 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00009828 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00009830 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00009838 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00009840 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00009848 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00009850 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00009858 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00009860 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00009868 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00009870 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00009878 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00009880 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00009888 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00009890 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00009898 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x000098a0 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x000098a8 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x000098b0 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x000098b8 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x000098c0 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x000098c8 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x000098d0 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x000098d8 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x000098e0 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x000098e8 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x000098f0 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x000098f8 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00009900 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00009908 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00009910 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00009918 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00009920 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00009928 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00009930 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00009938 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00009940 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00009948 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00009950 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00009958 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00009960 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00009968 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00009970 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00009978 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00009980 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00009988 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00009990 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00009998 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x000099a0 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x000099a8 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x000099b0 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x000099b8 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x000099c0 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x000099c8 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x000099d0 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x000099d8 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x000099e0 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x000099e8 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x000099f0 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x000099f8 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00009a00 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00009a08 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00009a10 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00009a18 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00009a20 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00009a28 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00009a30 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00009a38 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00009a40 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00009a48 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00009a50 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00009a58 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00009a60 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00009a68 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00009a70 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00009a78 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00009a80 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00009a88 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009a90 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009a98 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009aa0 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009aa8 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009ab0 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009ab8 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009ac0 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009ac8 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00009ad0 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00009ad8 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00009ae0 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00009ae8 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00009af0 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00009af8 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00009b00 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00009b08 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00009b10 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00009b18 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00009b20 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00009b28 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00009b30 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00009b38 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00009b40 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00009b48 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00009b50 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00009b58 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00009b60 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00009b68 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00009b70 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00009b78 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00009b80 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00009b88 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00009b90 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00009b98 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00009ba0 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00009ba8 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00009bb0 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00009bb8 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00009bc0 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00009bc8 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00009bd0 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00009bd8 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00009be0 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00009be8 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00009bf0 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00009bf8 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00009c00 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00009c08 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00009c10 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00009c18 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00009c20 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00009c28 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00009c30 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00009c38 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00009c40 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00009c48 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00009c50 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00009c58 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00009c60 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00009c68 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00009c70 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00009c78 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00009c80 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00009c88 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00009c90 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00009c98 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00009ca0 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00009ca8 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00009cb0 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00009cb8 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00009cc0 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00009cc8 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00009cd0 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00009cd8 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00009ce0 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00009ce8 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00009cf0 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00009cf8 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00009d00 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00009d08 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00009d10 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00009d18 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00009d20 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00009d28 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00009d30 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00009d38 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00009d40 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00009d48 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00009d50 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00009d58 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00009d60 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00009d68 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00009d70 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00009d78 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00009d80 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00009d88 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00009d90 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00009d98 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00009da0 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00009da8 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00009db0 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00009db8 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00009dc0 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00009dc8 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00009dd0 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00009dd8 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00009de0 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00009de8 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00009df0 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00009df8 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00009e00 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00009e08 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00009e10 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00009e18 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00009e20 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00009e28 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00009e30 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00009e38 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00009e40 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00009e48 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00009e50 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00009e58 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00009e60 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00009e68 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00009e70 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00009e78 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00009e80 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00009e88 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00009e90 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00009e98 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00009ea0 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00009ea8 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00009eb0 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00009eb8 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00009ec0 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00009ec8 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00009ed0 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00009ed8 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00009ee0 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00009ee8 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00009ef0 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00009ef8 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00009f00 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00009f08 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00009f10 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00009f18 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00009f20 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00009f28 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00009f30 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00009f38 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00009f40 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00009f48 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00009f50 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00009f58 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00009f60 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00009f68 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00009f70 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00009f78 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x00009f80 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x00009f88 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00009f90 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00009f98 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00009fa0 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00009fa8 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x00009fb0 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x00009fb8 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00009fc0 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00009fc8 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00009fd0 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00009fd8 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00009fe0 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00009fe8 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00009ff0 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00009ff8 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000a000 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000a008 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000a010 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000a018 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000a020 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000a028 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000a030 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000a038 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000a040 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000a048 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000a050 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000a058 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000a060 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000a068 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000a070 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000a078 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000a080 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000a088 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000a090 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000a098 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000a0a0 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000a0a8 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000a0b0 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000a0b8 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000a0c0 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000a0c8 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000a0d0 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000a0d8 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000a0e0 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000a0e8 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000a0f0 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000a0f8 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000a100 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000a108 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000a110 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000a118 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000a120 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000a128 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000a130 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000a138 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000a140 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000a148 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000a150 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000a158 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000a160 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000a168 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000a170 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000a178 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000a180 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000a188 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000a190 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000a198 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000a1a0 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000a1a8 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000a1b0 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000a1b8 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000a1c0 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000a1c8 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000a1d0 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000a1d8 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000a1e0 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000a1e8 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000a1f0 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000a1f8 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000a200 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000a208 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000a210 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000a218 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000a220 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000a228 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000a230 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000a238 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000a240 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000a248 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000a250 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000a258 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000a260 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000a268 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000a270 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000a278 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000a280 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000a288 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a290 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a298 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a2a0 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a2a8 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a2b0 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a2b8 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a2c0 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a2c8 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a2d0 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a2d8 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a2e0 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a2e8 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a2f0 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a2f8 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a300 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a308 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a310 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a318 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a320 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a328 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a330 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a338 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a340 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a348 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a350 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a358 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a360 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a368 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a370 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a378 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a380 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a388 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a390 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a398 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a3a0 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a3a8 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a3b0 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a3b8 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a3c0 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a3c8 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a3d0 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a3d8 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a3e0 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a3e8 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a3f0 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a3f8 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a400 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a408 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a410 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a418 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a420 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a428 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a430 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a438 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a440 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a448 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a450 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a458 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a460 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a468 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a470 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a478 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a480 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a488 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a490 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a498 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a4a0 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a4a8 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a4b0 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a4b8 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a4c0 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a4c8 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a4d0 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a4d8 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a4e0 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a4e8 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a4f0 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a4f8 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a500 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a508 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a510 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a518 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a520 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a528 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a530 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a538 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000a540 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000a548 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000a550 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000a558 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000a560 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000a568 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000a570 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000a578 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000a580 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000a588 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000a590 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000a598 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000a5a0 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000a5a8 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000a5b0 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000a5b8 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000a5c0 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000a5c8 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000a5d0 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000a5d8 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000a5e0 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000a5e8 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000a5f0 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000a5f8 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000a600 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000a608 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000a610 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000a618 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000a620 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000a628 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000a630 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000a638 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000a640 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000a648 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000a650 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000a658 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000a660 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000a668 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000a670 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000a678 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000a680 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000a688 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000a690 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000a698 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000a6a0 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000a6a8 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000a6b0 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000a6b8 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000a6c0 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000a6c8 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000a6d0 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000a6d8 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000a6e0 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000a6e8 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000a6f0 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000a6f8 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000a700 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000a708 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000a710 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000a718 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000a720 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000a728 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000a730 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000a738 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000a740 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000a748 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000a750 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000a758 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000a760 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000a768 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000a770 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000a778 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000a780 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000a788 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000a790 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000a798 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000a7a0 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000a7a8 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000a7b0 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000a7b8 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000a7c0 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000a7c8 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000a7d0 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000a7d8 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000a7e0 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000a7e8 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000a7f0 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000a7f8 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000a800 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000a808 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000a810 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000a818 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000a820 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000a828 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000a830 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000a838 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000a840 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000a848 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000a850 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000a858 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000a860 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000a868 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000a870 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000a878 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000a880 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000a888 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000a890 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000a898 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000a8a0 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000a8a8 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000a8b0 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000a8b8 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000a8c0 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000a8c8 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000a8d0 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000a8d8 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000a8e0 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000a8e8 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000a8f0 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000a8f8 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000a900 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000a908 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000a910 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000a918 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000a920 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000a928 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000a930 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000a938 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000a940 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000a948 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000a950 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000a958 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000a960 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000a968 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000a970 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000a978 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000a980 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000a988 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000a990 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000a998 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000a9a0 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000a9a8 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000a9b0 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000a9b8 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000a9c0 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000a9c8 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000a9d0 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000a9d8 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000a9e0 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000a9e8 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000a9f0 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000a9f8 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000aa00 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000aa08 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000aa10 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000aa18 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000aa20 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000aa28 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000aa30 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000aa38 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000aa40 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000aa48 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000aa50 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000aa58 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000aa60 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000aa68 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000aa70 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000aa78 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000aa80 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000aa88 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000aa90 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000aa98 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000aaa0 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000aaa8 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000aab0 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000aab8 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000aac0 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000aac8 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000aad0 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000aad8 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000aae0 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000aae8 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000aaf0 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000aaf8 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000ab00 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000ab08 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000ab10 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab20 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000ab28 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab30 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000ab38 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab40 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000ab48 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab50 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000ab58 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab60 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000ab68 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab70 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000ab78 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab80 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000ab88 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab90 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000ab98 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aba0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000aba8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abb0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000abb8 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abc0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000abc8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abd0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000abd8 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abe0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000abe8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abf0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000abf8 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac00 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000ac08 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac10 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000ac18 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac20 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000ac28 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac30 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000ac38 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac40 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000ac48 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac50 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000ac58 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac60 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000ac68 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac70 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000ac78 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac80 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000ac88 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac90 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000ac98 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aca0 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000aca8 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acb0 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000acb8 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acc0 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000acc8 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acd0 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000acd8 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000ace0 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000ace8 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000acf0 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000acf8 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000ad00 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000ad08 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000ad10 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000ad18 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000ad20 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000ad28 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000ad30 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000ad38 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000ad40 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000ad48 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000ad50 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000ad58 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000ad60 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000ad68 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000ad70 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000ad78 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000ad80 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000ad88 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000ad90 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000ad98 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000ada0 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000ada8 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000adb0 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000adb8 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000adc0 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000adc8 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000add0 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000add8 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000ade0 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000ade8 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000adf0 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000adf8 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000ae00 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000ae08 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000ae10 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000ae18 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000ae20 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000ae28 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000ae30 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000ae38 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000ae40 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000ae48 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000ae50 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000ae58 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000ae60 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000ae68 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000ae70 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000ae78 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000ae80 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000ae88 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000ae90 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000ae98 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000aea0 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000aea8 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000aeb0 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000aeb8 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000aec0 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000aec8 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000aed0 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000aed8 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000aee0 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000aee8 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000aef0 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000aef8 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000af00 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000af08 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000af10 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000af18 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000af20 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000af28 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000af30 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000af38 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000af40 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000af48 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000af50 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000af58 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000af60 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000af68 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000af70 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000af78 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000af80 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000af88 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000af90 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000af98 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000afa0 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000afa8 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000afb0 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000afb8 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000afc0 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000afc8 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000afd0 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000afd8 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000afe0 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000afe8 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000aff0 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000aff8 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000b000 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000b008 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000b010 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000b018 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000b020 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000b028 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000b030 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000b038 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000b040 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000b048 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000b050 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000b058 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000b060 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000b068 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000b070 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000b078 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000b080 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000b088 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000b090 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000b098 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000b0a0 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000b0a8 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000b0b0 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000b0b8 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000b0c0 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000b0c8 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000b0d0 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000b0d8 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000b0e0 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000b0e8 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000b0f0 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000b0f8 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000b100 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000b108 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000b110 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000b118 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000b120 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000b128 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000b130 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000b138 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000b140 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000b148 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000b150 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000b158 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000b160 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000b168 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000b170 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000b178 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000b180 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000b188 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000b190 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000b198 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000b1a0 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000b1a8 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000b1b0 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000b1b8 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000b1c0 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000b1c8 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000b1d0 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000b1d8 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000b1e0 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000b1e8 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000b1f0 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000b1f8 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000b200 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000b208 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000b210 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000b218 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000b220 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000b228 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000b230 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000b238 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000b240 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000b248 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000b250 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000b258 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000b260 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000b268 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000b270 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000b278 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000b280 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000b288 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b290 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b298 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b2a0 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b2a8 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b2b0 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b2b8 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b2c0 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b2c8 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b2d0 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b2d8 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b2e0 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b2e8 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b2f0 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b2f8 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b300 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b308 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b310 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b318 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b320 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b328 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b330 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b338 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b340 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b348 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b350 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b358 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b360 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b368 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b370 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b378 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b380 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b388 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b390 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b398 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b3a0 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b3a8 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b3b0 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b3b8 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b3c0 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b3c8 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b3d0 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b3d8 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b3e0 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b3e8 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b3f0 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b3f8 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b400 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b408 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b410 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b418 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b420 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b428 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b430 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b438 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b440 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b448 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b450 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b458 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b460 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b468 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b470 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b478 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b480 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b488 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b490 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b498 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b4a0 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b4a8 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b4b0 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b4b8 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b4c0 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b4c8 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b4d0 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b4d8 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b4e0 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b4e8 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b4f0 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b4f8 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b500 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b508 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b510 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b518 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b520 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b528 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b530 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b538 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000b540 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000b548 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000b550 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000b558 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000b560 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000b568 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000b570 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000b578 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000b580 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000b588 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000b590 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000b598 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000b5a0 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000b5a8 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000b5b0 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000b5b8 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000b5c0 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000b5c8 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000b5d0 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000b5d8 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000b5e0 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000b5e8 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000b5f0 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000b5f8 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000b600 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000b608 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000b610 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000b618 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000b620 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000b628 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000b630 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000b638 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000b640 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000b648 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000b650 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000b658 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000b660 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000b668 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000b670 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000b678 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000b680 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000b688 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000b690 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000b698 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000b6a0 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000b6a8 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000b6b0 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000b6b8 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000b6c0 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000b6c8 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000b6d0 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000b6d8 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000b6e0 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000b6e8 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000b6f0 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000b6f8 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000b700 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000b708 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000b710 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000b718 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000b720 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000b728 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000b730 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000b738 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000b740 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000b748 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000b750 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000b758 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000b760 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000b768 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000b770 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000b778 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000b780 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000b788 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000b790 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000b798 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000b7a0 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000b7a8 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000b7b0 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000b7b8 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000b7c0 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000b7c8 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000b7d0 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000b7d8 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000b7e0 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000b7e8 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000b7f0 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000b7f8 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000b800 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000b808 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000b810 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000b818 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000b820 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000b828 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000b830 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000b838 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000b840 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000b848 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000b850 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000b858 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000b860 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000b868 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000b870 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000b878 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000b880 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000b888 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000b890 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000b898 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000b8a0 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000b8a8 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000b8b0 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000b8b8 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000b8c0 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000b8c8 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000b8d0 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000b8d8 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000b8e0 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000b8e8 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000b8f0 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000b8f8 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000b900 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000b908 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000b910 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000b918 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000b920 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000b928 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000b930 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000b938 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000b940 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000b948 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000b950 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000b958 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000b960 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000b968 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000b970 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000b978 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000b980 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000b988 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000b990 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000b998 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000b9a0 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000b9a8 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000b9b0 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000b9b8 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000b9c0 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000b9c8 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000b9d0 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000b9d8 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000b9e0 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000b9e8 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000b9f0 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000b9f8 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000ba00 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000ba08 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000ba10 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000ba18 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000ba20 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000ba28 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000ba30 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000ba38 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000ba40 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000ba48 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000ba50 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000ba58 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000ba60 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000ba68 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000ba70 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000ba78 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000ba80 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000ba88 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000ba90 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000ba98 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000baa0 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000baa8 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000bab0 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000bab8 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000bac0 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000bac8 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000bad0 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000bad8 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000bae0 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000bae8 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000baf0 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000baf8 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000bb00 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000bb08 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000bb10 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000bb18 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000bb20 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000bb28 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000bb30 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000bb38 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000bb40 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000bb48 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000bb50 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000bb58 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000bb60 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000bb68 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000bb70 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000bb78 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000bb80 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000bb88 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000bb90 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000bb98 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000bba0 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000bba8 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000bbb0 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000bbb8 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000bbc0 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000bbc8 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000bbd0 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000bbd8 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000bbe0 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000bbe8 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000bbf0 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000bbf8 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000bc00 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000bc08 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000bc10 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000bc18 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000bc20 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000bc28 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000bc30 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000bc38 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000bc40 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000bc48 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000bc50 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000bc58 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000bc60 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000bc68 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000bc70 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000bc78 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000bc80 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000bc88 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000bc90 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000bc98 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000bca0 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000bca8 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000bcb0 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000bcb8 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000bcc0 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000bcc8 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000bcd0 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000bcd8 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000bce0 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000bce8 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000bcf0 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000bcf8 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000bd00 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000bd08 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000bd10 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000bd18 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000bd20 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000bd28 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000bd30 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000bd38 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000bd40 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000bd48 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000bd50 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000bd58 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000bd60 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000bd68 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000bd70 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000bd78 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000bd80 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000bd88 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000bd90 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000bd98 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000bda0 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000bda8 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000bdb0 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000bdb8 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000bdc0 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000bdc8 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000bdd0 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000bdd8 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000bde0 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000bde8 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000bdf0 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000bdf8 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000be00 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000be08 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000be10 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000be18 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000be20 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000be28 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000be30 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000be38 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000be40 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000be48 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000be50 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000be58 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000be60 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000be68 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000be70 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000be78 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000be80 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000be88 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000be90 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000be98 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000bea0 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000bea8 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000beb0 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000beb8 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000bec0 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000bec8 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000bed0 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000bed8 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000bee0 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000bee8 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000bef0 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000bef8 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000bf00 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000bf08 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000bf10 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000bf18 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000bf20 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000bf28 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000bf30 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000bf38 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000bf40 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000bf48 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000bf50 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000bf58 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000bf60 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000bf68 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000bf70 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000bf78 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000bf80 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000bf88 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000bf90 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000bf98 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000bfa0 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000bfa8 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000bfb0 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000bfb8 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000bfc0 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000bfc8 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000bfd0 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000bfd8 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000bfe0 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000bfe8 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000bff0 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000bff8 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000c000 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000c008 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000c010 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000c018 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000c020 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000c028 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000c030 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000c038 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000c040 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000c048 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000c050 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000c058 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000c060 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000c068 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000c070 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000c078 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000c080 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000c088 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000c090 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000c098 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000c0a0 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000c0a8 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000c0b0 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000c0b8 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000c0c0 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000c0c8 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000c0d0 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000c0d8 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c0e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000c0f0 .p2align 4, 0x00 + //0x0000c0f0 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x0000c0f0 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x0000c0f4 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x0000c0f8 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000c0fc .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x0000c100 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x0000c104 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x0000c108 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000c10c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x0000c110 .long 26 + //0x0000c114 .p2align 2, 0x00 + //0x0000c114 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000c114 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c118 .p2align 4, 0x00 + //0x0000c120 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000c120 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000c130 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000c140 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000c150 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000c160 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000c170 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000c180 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000c190 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000c1a0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000c1b0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000c1c0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000c1d0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000c1e0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c1e8 .p2align 4, 0x00 + //0x0000c1f0 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000c1f0 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000c1f8 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000c200 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000c208 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000c210 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000c218 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000c220 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000c228 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000c230 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000c238 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000c240 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000c248 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000c250 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000c258 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000c260 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000c268 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000c270 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000c278 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000c280 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000c288 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c290 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c298 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c2a0 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c2a8 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c2b0 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c2b8 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c2c0 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c2c8 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c2d0 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c2d8 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c2e0 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c2e8 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c2f0 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c2f8 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c300 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c308 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c310 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c318 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c320 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c328 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c330 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c338 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c340 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c348 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c350 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c358 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c360 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c368 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c370 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c378 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c380 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c388 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c390 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c398 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c3a0 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c3a8 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c3b0 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c3b8 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c3c0 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c3c8 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c3d0 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c3d8 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c3e0 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c3e8 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c3f0 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c3f8 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c400 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c408 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c410 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c418 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c420 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c428 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c430 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c438 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c440 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c448 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c450 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c458 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c460 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c468 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c470 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c478 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c480 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c488 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c490 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c498 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c4a0 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c4a8 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c4b0 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c4b8 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c4c0 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c4c8 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c4d0 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c4d8 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c4e0 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c4e8 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c4f0 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c4f8 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c500 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c508 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c510 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c518 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c520 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c528 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c530 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c538 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000c540 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000c548 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000c550 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000c558 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000c560 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000c568 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000c570 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000c578 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000c580 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000c588 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000c590 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000c598 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000c5a0 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000c5a8 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000c5b0 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000c5b8 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000c5c0 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000c5c8 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000c5d0 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000c5d8 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000c5e0 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000c5e8 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000c5f0 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000c5f8 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000c600 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000c608 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000c610 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000c618 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000c620 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000c628 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000c630 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000c638 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000c640 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000c648 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000c650 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000c658 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000c660 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000c668 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000c670 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000c678 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000c680 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000c688 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000c690 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000c698 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000c6a0 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000c6a8 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000c6b0 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000c6b8 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000c6c0 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000c6c8 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000c6d0 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000c6d8 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000c6e0 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000c6e8 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000c6f0 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000c6f8 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000c700 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000c708 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000c710 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000c718 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000c720 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000c728 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000c730 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000c738 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000c740 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000c748 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000c750 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000c758 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000c760 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000c768 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000c770 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000c778 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000c780 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000c788 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000c790 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000c798 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000c7a0 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000c7a8 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000c7b0 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000c7b8 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000c7c0 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000c7c8 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000c7d0 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000c7d8 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000c7e0 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000c7e8 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000c7f0 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000c7f8 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000c800 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000c808 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000c810 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000c818 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000c820 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000c828 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000c830 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000c838 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000c840 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000c848 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000c850 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000c858 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000c860 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000c868 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000c870 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000c878 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000c880 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000c888 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000c890 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000c898 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000c8a0 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000c8a8 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000c8b0 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000c8b8 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000c8c0 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000c8c8 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000c8d0 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000c8d8 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000c8e0 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000c8e8 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000c8f0 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000c8f8 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000c900 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000c908 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000c910 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000c918 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000c920 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000c928 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000c930 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000c938 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000c940 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000c948 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000c950 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000c958 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000c960 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000c968 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000c970 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000c978 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000c980 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000c988 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000c990 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000c998 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000c9a0 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000c9a8 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000c9b0 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000c9b8 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000c9c0 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000c9c8 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000c9d0 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000c9d8 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000c9e0 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000c9e8 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000c9f0 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000c9f8 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000ca00 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000ca08 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000ca10 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000ca18 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000ca20 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000ca28 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000ca30 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000ca38 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000ca40 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000ca48 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000ca50 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000ca58 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000ca60 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000ca68 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000ca70 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000ca78 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000ca80 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000ca88 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000ca90 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000ca98 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000caa0 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000caa8 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000cab0 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000cab8 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000cac0 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000cac8 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000cad0 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000cad8 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000cae0 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000cae8 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000caf0 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000caf8 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000cb00 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000cb08 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000cb10 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000cb18 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000cb20 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000cb28 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000cb30 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000cb38 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000cb40 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000cb48 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000cb50 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000cb58 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000cb60 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000cb68 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000cb70 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000cb78 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000cb80 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000cb88 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000cb90 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000cb98 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000cba0 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000cba8 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000cbb0 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000cbb8 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000cbc0 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000cbc8 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000cbd0 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000cbd8 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000cbe0 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000cbe8 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000cbf0 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000cbf8 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000cc00 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000cc08 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000cc10 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000cc18 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000cc20 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000cc28 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000cc30 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000cc38 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000cc40 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000cc48 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000cc50 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000cc58 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000cc60 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000cc68 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000cc70 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000cc78 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000cc80 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000cc88 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000cc90 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000cc98 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000cca0 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000cca8 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000ccb0 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000ccb8 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000ccc0 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000ccc8 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000ccd0 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000ccd8 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000cce0 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000cce8 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000ccf0 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000ccf8 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000cd00 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000cd08 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000cd10 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000cd18 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000cd20 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000cd28 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000cd30 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000cd38 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000cd40 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000cd48 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000cd50 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000cd58 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000cd60 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000cd68 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000cd70 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000cd78 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000cd80 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000cd88 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000cd90 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000cd98 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000cda0 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000cda8 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000cdb0 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000cdb8 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000cdc0 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000cdc8 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000cdd0 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000cdd8 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000cde0 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000cde8 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000cdf0 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000cdf8 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000ce00 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000ce08 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000ce10 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000ce18 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000ce20 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000ce28 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000ce30 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000ce38 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000ce40 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000ce48 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000ce50 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000ce58 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000ce60 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000ce68 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000ce70 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000ce78 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000ce80 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000ce88 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000ce90 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000ce98 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000cea0 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000cea8 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000ceb0 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000ceb8 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000cec0 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000cec8 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000ced0 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000ced8 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000cee0 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000cee8 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000cef0 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000cef8 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000cf00 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000cf08 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000cf10 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000cf18 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000cf20 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000cf28 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000cf30 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000cf38 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000cf40 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000cf48 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000cf50 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000cf58 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000cf60 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000cf68 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000cf70 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000cf78 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000cf80 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000cf88 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000cf90 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000cf98 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000cfa0 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000cfa8 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000cfb0 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000cfb8 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000cfc0 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000cfc8 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000cfd0 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000cfd8 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000cfe0 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000cfe8 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000cff0 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000cff8 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000d000 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000d008 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000d010 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000d018 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000d020 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000d028 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000d030 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000d038 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000d040 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000d048 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000d050 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000d058 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000d060 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000d068 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000d070 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000d078 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000d080 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000d088 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000d090 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000d098 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000d0a0 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000d0a8 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000d0b0 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000d0b8 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000d0c0 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000d0c8 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000d0d0 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000d0d8 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000d0e0 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000d0e8 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000d0f0 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000d0f8 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000d100 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000d108 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000d110 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000d118 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000d120 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000d128 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000d130 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000d138 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000d140 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000d148 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000d150 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000d158 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000d160 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000d168 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000d170 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000d178 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000d180 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000d188 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000d190 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000d198 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000d1a0 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000d1a8 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000d1b0 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000d1b8 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000d1c0 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000d1c8 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000d1d0 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000d1d8 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000d1e0 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000d1e8 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000d1f0 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000d1f8 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000d200 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000d208 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000d210 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000d218 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000d220 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000d228 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000d230 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000d238 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000d240 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000d248 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000d250 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000d258 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000d260 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000d268 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000d270 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000d278 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000d280 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000d288 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d290 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d298 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d2a0 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d2a8 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d2b0 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d2b8 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d2c0 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d2c8 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d2d0 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d2d8 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d2e0 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d2e8 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d2f0 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d2f8 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d300 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d308 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d310 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d318 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d320 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d328 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d330 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d338 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d340 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d348 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d350 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d358 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d360 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d368 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d370 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d378 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d380 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d388 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d390 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d398 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d3a0 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d3a8 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d3b0 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d3b8 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d3c0 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d3c8 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d3d0 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d3d8 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d3e0 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d3e8 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d3f0 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d3f8 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d400 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d408 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d410 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d418 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d420 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d428 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d430 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d438 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d440 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d448 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d450 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d458 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d460 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d468 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d470 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d478 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d480 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d488 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d490 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d498 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d4a0 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d4b0 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d4c0 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4c8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d4d0 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4d8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d4e0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4e8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d4f0 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4f8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d500 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d508 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d510 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d518 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d520 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d528 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d530 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d538 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000d540 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d548 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000d550 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d558 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000d560 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d568 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000d570 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d578 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000d580 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d588 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000d590 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d598 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000d5a0 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5a8 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000d5b0 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5b8 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000d5c0 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5c8 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000d5d0 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5d8 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000d5e0 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5e8 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000d5f0 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000d5f8 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000d600 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000d608 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000d610 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000d618 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000d620 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000d628 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000d630 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000d638 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000d640 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000d648 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000d650 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000d658 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000d660 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000d668 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000d670 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000d678 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000d680 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000d688 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000d690 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000d698 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000d6a0 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000d6a8 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000d6b0 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000d6b8 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000d6c0 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000d6c8 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000d6d0 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000d6d8 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000d6e0 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000d6e8 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000d6f0 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000d6f8 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000d700 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000d708 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000d710 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000d718 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000d720 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000d728 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000d730 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000d738 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000d740 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000d748 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000d750 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000d758 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000d760 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000d768 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000d770 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000d778 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000d780 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000d788 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000d790 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000d798 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000d7a0 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000d7a8 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000d7b0 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000d7b8 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000d7c0 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000d7c8 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000d7d0 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000d7d8 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000d7e0 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000d7e8 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000d7f0 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000d7f8 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000d800 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000d808 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000d810 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000d818 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000d820 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000d828 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000d830 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000d838 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000d840 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000d848 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000d850 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000d858 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000d860 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000d868 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000d870 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000d878 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000d880 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000d888 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000d890 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000d898 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000d8a0 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000d8a8 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000d8b0 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000d8b8 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000d8c0 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000d8c8 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000d8d0 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000d8d8 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000d8e0 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000d8e8 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000d8f0 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000d8f8 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000d900 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000d908 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000d910 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000d918 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000d920 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000d928 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000d930 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000d938 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000d940 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000d948 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000d950 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000d958 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000d960 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000d968 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000d970 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000d978 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000d980 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000d988 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000d990 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000d998 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000d9a0 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000d9a8 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000d9b0 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000d9b8 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000d9c0 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000d9c8 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000d9d0 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000d9d8 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000d9e0 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000d9e8 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000d9f0 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000d9f8 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000da00 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000da08 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000da10 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000da18 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000da20 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000da28 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000da30 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000da38 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000da40 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000da48 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000da50 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000da58 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000da60 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000da68 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000da70 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000da78 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000da80 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000da88 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000da90 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000da98 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000daa0 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000daa8 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000dab0 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000dab8 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000dac0 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000dac8 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000dad0 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000dad8 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000dae0 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000dae8 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000daf0 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000daf8 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000db00 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000db08 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000db10 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000db18 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000db20 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000db28 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000db30 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000db38 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000db40 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000db48 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000db50 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000db58 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000db60 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000db68 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000db70 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000db78 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000db80 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000db88 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000db90 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000db98 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000dba0 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000dba8 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000dbb0 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000dbb8 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000dbc0 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000dbc8 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000dbd0 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000dbd8 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000dbe0 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000dbe8 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000dbf0 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000dbf8 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000dc00 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000dc08 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000dc10 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000dc18 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000dc20 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000dc28 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000dc30 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000dc38 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000dc40 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000dc48 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000dc50 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000dc58 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000dc60 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000dc68 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000dc70 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000dc78 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000dc80 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000dc88 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000dc90 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000dc98 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000dca0 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000dca8 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000dcb0 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000dcb8 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000dcc0 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000dcc8 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000dcd0 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000dcd8 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000dce0 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000dce8 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000dcf0 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000dcf8 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000dd00 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000dd08 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000dd10 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000dd18 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000dd20 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000dd28 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000dd30 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000dd38 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000dd40 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000dd48 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000dd50 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000dd58 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000dd60 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000dd68 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000dd70 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000dd78 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000dd80 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000dd88 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000dd90 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000dd98 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000dda0 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000dda8 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000ddb0 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000ddb8 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000ddc0 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000ddc8 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000ddd0 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000ddd8 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000dde0 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000dde8 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000ddf0 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000ddf8 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000de00 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000de08 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000de10 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000de18 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000de20 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000de28 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000de30 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000de38 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000de40 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000de48 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000de50 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000de58 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000de60 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000de68 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000de70 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000de78 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000de80 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000de88 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000de90 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000de98 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000dea0 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000dea8 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000deb0 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000deb8 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000dec0 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000dec8 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000ded0 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000ded8 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000dee0 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000dee8 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000def0 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000def8 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000df00 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000df08 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000df10 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000df18 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000df20 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000df28 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000df30 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000df38 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000df40 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000df48 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000df50 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000df58 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000df60 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000df68 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000df70 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000df78 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000df80 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000df88 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000df90 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000df98 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000dfa0 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000dfa8 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000dfb0 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000dfb8 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000dfc0 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000dfc8 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000dfd0 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000dfd8 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000dfe0 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000dfe8 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000dff0 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000dff8 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000e000 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000e008 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000e010 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000e018 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000e020 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000e028 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000e030 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000e038 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000e040 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000e048 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000e050 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000e058 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000e060 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000e068 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000e070 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000e078 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000e080 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000e088 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000e090 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000e098 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000e0a0 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000e0a8 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000e0b0 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000e0b8 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000e0c0 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000e0c8 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000e0d0 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000e0d8 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000e0e0 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000e0e8 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000e0f0 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000e0f8 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000e100 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000e108 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000e110 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000e118 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000e120 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000e128 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000e130 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000e138 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000e140 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000e148 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000e150 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000e158 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000e160 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000e168 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000e170 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000e178 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000e180 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000e188 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000e190 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000e198 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000e1a0 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000e1a8 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000e1b0 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000e1b8 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000e1c0 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000e1c8 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000e1d0 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000e1d8 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000e1e0 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000e1e8 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000e1f0 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000e1f8 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000e200 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000e208 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000e210 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000e218 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000e220 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000e228 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000e230 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000e238 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000e240 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000e248 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000e250 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000e258 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000e260 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000e268 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000e270 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000e278 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000e280 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000e288 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e290 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e298 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e2a0 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e2a8 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e2b0 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e2b8 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e2c0 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e2c8 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e2d0 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e2d8 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e2e0 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e2e8 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e2f0 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e2f8 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e300 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e308 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e310 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e318 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e320 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e328 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e330 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e338 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e340 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e348 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e350 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e358 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e360 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e368 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e370 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e378 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e380 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e388 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e390 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e398 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e3a0 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e3a8 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e3b0 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e3b8 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e3c0 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e3c8 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e3d0 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e3d8 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e3e0 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e3e8 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e3f0 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e3f8 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e400 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e408 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e410 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e418 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e420 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e428 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e430 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e438 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e440 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e448 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e450 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e458 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e460 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e468 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e470 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e478 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e480 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e488 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e490 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e498 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e4a0 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e4a8 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e4b0 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e4b8 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e4c0 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e4c8 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e4d0 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e4d8 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e4e0 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e4e8 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e4f0 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e4f8 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e500 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e508 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e510 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e518 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e520 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e528 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e530 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e538 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000e540 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000e548 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000e550 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000e558 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000e560 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000e568 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000e570 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000e578 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000e580 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000e588 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000e590 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000e598 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000e5a0 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000e5a8 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000e5b0 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000e5b8 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000e5c0 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000e5c8 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000e5d0 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000e5d8 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000e5e0 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000e5e8 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000e5f0 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000e5f8 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000e600 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000e608 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000e610 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000e618 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000e620 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000e628 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000e630 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000e638 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000e640 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000e648 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000e650 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000e658 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000e660 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000e668 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000e670 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000e678 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000e680 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000e688 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000e690 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000e698 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000e6a0 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000e6a8 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000e6b0 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000e6b8 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000e6c0 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000e6c8 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000e6d0 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000e6d8 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000e6e0 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000e6e8 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000e6f0 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000e6f8 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000e700 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000e708 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000e710 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000e718 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000e720 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000e728 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000e730 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000e738 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000e740 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000e748 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000e750 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000e758 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000e760 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000e768 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000e770 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000e778 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000e780 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000e788 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000e790 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000e798 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000e7a0 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000e7a8 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000e7b0 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000e7b8 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000e7c0 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000e7c8 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000e7d0 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000e7d8 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000e7e0 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000e7e8 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000e7f0 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000e7f8 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000e800 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000e808 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000e810 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000e818 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000e820 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000e828 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000e830 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000e838 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000e840 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000e848 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000e850 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000e858 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000e860 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000e868 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000e870 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000e878 .quad 7784369436827535058 + //0x0000e880 .p2align 4, 0x00 + //0x0000e880 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000e880 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000e890 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000e8a0 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000e8b0 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000e8c0 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e8d0 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e8e0 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e8f0 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e900 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + //0x0000e910 .p2align 4, 0x00 + //0x0000e910 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e910 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000e918 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e920 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000e928 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e930 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000e938 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e940 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000e948 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e950 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000e958 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e960 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000e968 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e970 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000e978 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e980 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000e988 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e990 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000e998 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9a0 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9a8 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9b0 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9b8 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000e9c8 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000e9d8 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9e0 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9e8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000e9f8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000ea08 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000ea18 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000ea28 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000ea38 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000ea48 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000ea58 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea60 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000ea68 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea70 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000ea78 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea80 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000ea88 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000ea98 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaa0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000eaa8 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eab0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000eab8 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eac0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000eac8 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ead0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000ead8 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eae0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000eae8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaf0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000eaf8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000eb08 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb30 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb38 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ece0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ede0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eeb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eed0 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eed8 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000f910 .p2align 4, 0x00 + //0x0000f910 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f910 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000f918 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f920 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000f928 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f930 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000f938 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f940 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000f948 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f950 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000f958 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f960 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000f968 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f970 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000f978 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f980 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000f988 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f990 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000f998 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a0 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a8 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b0 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b8 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000f9c8 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000f9d8 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000f9f8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000fa08 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000fa18 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000fa28 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000fa38 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000fa48 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000fa58 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000fa68 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000fa78 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000fa88 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000fa98 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000faa8 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000fab8 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000fac8 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000fad8 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000fae8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000faf8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000fb08 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000fb38 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000feb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fed0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x0000fed8 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010910 .p2align 4, 0x00 + //0x00010910 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010910 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010920 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010930 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00010960 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001096d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001097d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001098d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001099d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109ad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109bd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109cd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109dd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109ed QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109fd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x00010a0d WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' + //0x00010a10 .p2align 4, 0x00 + //0x00010a10 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00010a30 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00010a60 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00010a70 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00010a80 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a86 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a96 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ab6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ac6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b06 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010b10 .p2align 4, 0x00 + //0x00010b10 __HtmlQuoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d70 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00010d78 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ed0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00010ed8 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ef0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00010ef8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011590 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00011598 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115a0 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x000115a8 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00011b10 .p2align 4, 0x00 + //0x00011b10 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b70 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011b78 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b7c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011bdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011be0 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011be4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011c44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011c48 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c4c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011cac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011cb0 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cb4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ce4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011d14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011d18 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d1c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011d7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011d80 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d84 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011da4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011db4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011de4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011de8 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dec QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011e4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011e50 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e54 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011eb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011eb8 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ebc QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011edc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011f1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011f20 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f24 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011f84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011f88 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f8c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011fec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011ff0 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ff4 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012004 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012014 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012024 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012054 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012058 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001205c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001206c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001207c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001208c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001209c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000120bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000120c0 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120c4 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012124 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012128 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001212c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001213c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001214c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001215c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001216c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001217c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001218c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012190 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012194 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000121f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000121f8 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000121fc QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001220c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001221c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001222c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001223c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001224c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001225c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012260 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012264 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012284 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012294 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000122c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000122c8 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x000122cc QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001230c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001231c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001232c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012330 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012334 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012394 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012398 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001239c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000123fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012400 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00012404 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012464 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012468 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0001246c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001247c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001248c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001249c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000124cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000124d0 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x000124d4 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124e4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012514 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012534 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012538 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0001253c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001254c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001255c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001256c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001257c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001258c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001259c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000125a0 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x000125a4 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125b4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012604 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00012608 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x0001260c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001261c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001262c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001263c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001264c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001265c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001266c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00012670 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00012674 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012684 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000126d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000126d8 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x000126dc QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ec QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001270c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001271c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001272c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001273c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012740 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00012744 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012754 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012784 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000127a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000127a8 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x000127ac QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127bc QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001280c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012810 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00012814 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012824 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012854 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012874 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012878 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x0001287c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001288c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001289c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000128dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000128e0 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x000128e4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128f4 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012904 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012924 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012934 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012944 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012948 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0001294c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001295c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001296c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001297c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001298c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001299c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000129ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000129b0 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x000129b4 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129c4 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012a18 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00012a1c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a2c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012a80 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00012a84 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a94 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ad4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ae4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012ae8 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00012aec QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012afc QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012b50 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00012b54 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012b64 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ba4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012bb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012bb8 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x00012bbc QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012bcc QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012c20 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00012c24 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012c34 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012c88 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x00012c8c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00012c9c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012cec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012cf0 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00012cf4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00012d04 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012d58 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x00012d5c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x00012d6c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012dbc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012dc0 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00012dc4 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00012dd4 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012de4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e24 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012e28 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x00012e2c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x00012e3c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e4c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e8c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012e90 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00012e94 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00012ea4 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eb4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ef4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012ef8 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00012efc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00012f0c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f1c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012f60 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00012f64 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00012f74 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f84 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012fc4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012fc8 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x00012fcc QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x00012fdc QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fec QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001300c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001301c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001302c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013030 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00013034 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013044 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013054 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013084 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013094 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013098 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0001309c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x000130ac QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130bc QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000130fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013100 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00013104 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00013114 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013124 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013154 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013164 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013168 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0001316c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x0001317c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001318c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001319c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000131cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x000131d0 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x000131d4 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x000131e4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131f4 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013224 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013234 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013238 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0001323c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001324c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001325c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001326c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001327c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001328c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001329c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000132a0 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x000132a4 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x000132b4 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132c4 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013304 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013308 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x0001330c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x0001331c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001332c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001333c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001334c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001335c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001336c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00013370 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013374 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013384 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013394 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000133d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133d8 .p2align 4, 0x00 + //0x000133e0 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000133e0 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000133e8 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000133f0 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000133f8 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x00013400 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x00013408 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x00013410 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x00013418 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00013420 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00013428 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013430 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013438 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013440 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013448 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013450 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013458 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013460 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013468 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013470 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013478 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013480 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013488 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013490 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013498 .p2align 4, 0x00 + //0x000134a0 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x000134a0 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x000134a8 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x000134b0 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x000134b8 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x000134c0 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x000134c8 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x000134d0 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x000134d8 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000134e0 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000134e8 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000134f0 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000134f8 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00013500 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00013508 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00013510 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00013518 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00013520 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00013528 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00013530 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00013538 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013540 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013548 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00013550 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00013558 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00013560 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00013568 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00013570 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00013578 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00013580 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00013588 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00013590 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00013598 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x000135a0 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x000135a8 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x000135b0 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x000135b8 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x000135c0 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x000135c8 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x000135d0 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x000135d8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x000135e0 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x000135e8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x000135f0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x000135f8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00013600 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00013608 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00013610 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00013618 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00013620 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00013628 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00013630 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00013638 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00013640 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00013648 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00013650 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00013658 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00013660 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00013668 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00013670 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00013678 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00013680 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00013688 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00013690 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00013698 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x000136a0 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x000136a8 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x000136b0 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x000136b8 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x000136c0 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x000136c8 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x000136d0 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x000136d8 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x000136e0 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x000136e8 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x000136f0 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x000136f8 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00013700 .quad -5522047002568494196 +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/types/types.go b/vendor/github.com/bytedance/sonic/internal/native/types/types.go index e4e75705..b4afec9b 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/types/types.go +++ b/vendor/github.com/bytedance/sonic/internal/native/types/types.go @@ -19,6 +19,7 @@ package types import ( `fmt` `sync` + `unsafe` ) type ValueType int @@ -46,15 +47,23 @@ const ( ) const ( + // for native.Unquote() flags B_DOUBLE_UNQUOTE = 0 B_UNICODE_REPLACE = 1 + + // for native.Value() flags + B_USE_NUMBER = 1 B_VALIDATE_STRING = 5 + B_ALLOW_CONTROL = 31 ) const ( F_DOUBLE_UNQUOTE = 1 << B_DOUBLE_UNQUOTE F_UNICODE_REPLACE = 1 << B_UNICODE_REPLACE + + F_USE_NUMBER = 1 << B_USE_NUMBER F_VALIDATE_STRING = 1 << B_VALIDATE_STRING + F_ALLOW_CONTROL = 1 << B_ALLOW_CONTROL ) const ( @@ -136,3 +145,18 @@ func FreeStateMachine(fsm *StateMachine) { stackPool.Put(fsm) } +const MaxDigitNums = 800 + +var digitPool = sync.Pool{ + New: func() interface{} { + return (*byte)(unsafe.Pointer(&[MaxDigitNums]byte{})) + }, +} + +func NewDbuf() *byte { + return digitPool.Get().(*byte) +} + +func FreeDbuf(p *byte) { + digitPool.Put(p) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go b/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go index 5bf80dd4..e3bf0db9 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go @@ -109,4 +109,16 @@ func StrFrom(p unsafe.Pointer, n int64) (s string) { (*GoString)(unsafe.Pointer(&s)).Ptr = p (*GoString)(unsafe.Pointer(&s)).Len = int(n) return +} + +// NoEscape hides a pointer from escape analysis. NoEscape is +// the identity function but escape analysis doesn't think the +// output depends on the input. NoEscape is inlined and currently +// compiles down to zero instructions. +// USE CAREFULLY! +//go:nosplit +//goland:noinspection GoVetUnsafePointer +func NoEscape(p unsafe.Pointer) unsafe.Pointer { + x := uintptr(p) + return unsafe.Pointer(x ^ 0) } \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/loader/loader_compat.go b/vendor/github.com/bytedance/sonic/loader/loader_compat.go deleted file mode 100644 index 31b80a33..00000000 --- a/vendor/github.com/bytedance/sonic/loader/loader_compat.go +++ /dev/null @@ -1,46 +0,0 @@ -//go:build !go1.16 -// +build !go1.16 - -/* - * Copyright 2021 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package loader - -import ( - `github.com/bytedance/sonic/internal/loader` -) - -// LoadFuncs loads only one function as module, and returns the function pointer -// - text: machine code -// - funcName: function name -// - frameSize: stack frame size. -// - argSize: argument total size (in bytes) -// - argPtrs: indicates if a slot (8 Bytes) of arguments memory stores pointer, from low to high -// - localPtrs: indicates if a slot (8 Bytes) of local variants memory stores pointer, from low to high -// -// WARN: -// - the function MUST has fixed SP offset equaling to this, otherwise it go.gentraceback will fail -// - the function MUST has only one stack map for all arguments and local variants -func (self Loader) LoadOne(text []byte, funcName string, frameSize int, argSize int, argPtrs []bool, localPtrs []bool) Function { - return Function(loader.Loader(text).Load(funcName, frameSize, argSize, argPtrs, localPtrs)) -} - -// Load loads given machine codes and corresponding function information into go moduledata -// and returns runnable function pointer -// WARN: this API is experimental, use it carefully -func Load(text []byte, funcs []Func, modulename string, filenames []string) (out []Function) { - panic("not implemented") -} diff --git a/vendor/github.com/bytedance/sonic/loader/wrapper.go b/vendor/github.com/bytedance/sonic/loader/wrapper.go new file mode 100644 index 00000000..73ebc351 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/wrapper.go @@ -0,0 +1,185 @@ +/** +* Copyright 2023 ByteDance Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package loader + +import ( + `reflect` + `unsafe` + + `github.com/bytedance/sonic/internal/abi` + `github.com/bytedance/sonic/internal/rt` +) + +var _C_Redzone = []bool{false, false, false, false} + +// CFunc is a function information for C func +type CFunc struct { + // C function name + Name string + + // entry pc relative to entire text segment + EntryOff uint32 + + // function text size in bytes + TextSize uint32 + + // maximum stack depth of the function + MaxStack uintptr + + // PC->SP delta lists of the function + Pcsp [][2]uint32 +} + +// GoC is the wrapper for Go calls to C +type GoC struct { + // CName is the name of corresponding C function + CName string + + // CEntry points out where to store the entry address of corresponding C function. + // It won't be set if nil + CEntry *uintptr + + // GoFunc is the POINTER of corresponding go stub function. + // It is used to generate Go-C ABI conversion wrapper and receive the wrapper's address + // eg. &func(a int, b int) int + // FOR + // int add(int a, int b) + // It won't be set if nil + GoFunc interface{} +} + +// WrapGoC wraps C functions and loader it into Go stubs +func WrapGoC(text []byte, natives []CFunc, stubs []GoC, modulename string, filename string) { + funcs := make([]Func, len(natives)) + + // register C funcs + for i, f := range natives { + fn := Func{ + Flag: FuncFlag_ASM, + EntryOff: f.EntryOff, + TextSize: f.TextSize, + Name: f.Name, + } + if len(f.Pcsp) != 0 { + fn.Pcsp = (*Pcdata)(unsafe.Pointer(&natives[i].Pcsp)) + } + // NOTICE: always forbid async preempt + fn.PcUnsafePoint = &Pcdata{ + {PC: f.TextSize, Val: PCDATA_UnsafePointUnsafe}, + } + // NOTICE: always refer to first file + fn.Pcfile = &Pcdata{ + {PC: f.TextSize, Val: 0}, + } + // NOTICE: always refer to first line + fn.Pcline = &Pcdata{ + {PC: f.TextSize, Val: 1}, + } + // NOTICE: copystack need locals stackmap + fn.PcStackMapIndex = &Pcdata{ + {PC: f.TextSize, Val: 0}, + } + sm := rt.StackMapBuilder{} + sm.AddField(false) + fn.ArgsPointerMaps = sm.Build() + fn.LocalsPointerMaps = sm.Build() + funcs[i] = fn + } + rets := Load(text, funcs, modulename, []string{filename}) + + // got absolute entry address + native_entry := **(**uintptr)(unsafe.Pointer(&rets[0])) + // println("native_entry: ", native_entry) + + wraps := make([]Func, 0, len(stubs)) + wrapIds := make([]int, 0, len(stubs)) + code := make([]byte, 0, len(wraps)) + entryOff := uint32(0) + + // register go wrappers + for i := range stubs { + for j := range natives { + if stubs[i].CName != natives[j].Name { + continue + } + + // calculate corresponding C entry + pc := uintptr(native_entry + uintptr(natives[j].EntryOff)) + if stubs[i].CEntry != nil { + *stubs[i].CEntry = pc + } + + // no need to generate wrapper, continue next + if stubs[i].GoFunc == nil { + continue + } + + // assemble wrapper codes + layout := abi.NewFunctionLayout(reflect.TypeOf(stubs[i].GoFunc).Elem()) + frame := abi.NewFrame(&layout, _C_Redzone, true) + tcode := abi.CallC(pc, frame, natives[j].MaxStack) + code = append(code, tcode...) + size := uint32(len(tcode)) + + fn := Func{ + Flag: FuncFlag_ASM, + ArgsSize: int32(layout.ArgSize()), + EntryOff: entryOff, + TextSize: size, + Name: stubs[i].CName + "_go", + } + + // add check-stack and grow-stack texts' pcsp + fn.Pcsp = &Pcdata{ + {PC: uint32(frame.StackCheckTextSize()), Val: 0}, + {PC: size - uint32(frame.GrowStackTextSize()), Val: int32(frame.Size())}, + {PC: size, Val: 0}, + } + // NOTICE: always refer to first file + fn.Pcfile = &Pcdata{ + {PC: size, Val: 0}, + } + // NOTICE: always refer to first line + fn.Pcline = &Pcdata{ + {PC: size, Val: 1}, + } + // NOTICE: always forbid async preempt + fn.PcUnsafePoint = &Pcdata{ + {PC: size, Val: PCDATA_UnsafePointUnsafe}, + } + + // register pointer stackmaps + fn.PcStackMapIndex = &Pcdata{ + {PC: size, Val: 0}, + } + fn.ArgsPointerMaps = frame.ArgPtrs() + fn.LocalsPointerMaps = frame.LocalPtrs() + + entryOff += size + wraps = append(wraps, fn) + wrapIds = append(wrapIds, i) + } + } + gofuncs := Load(code, wraps, modulename+"/go", []string{filename+".go"}) + + // set go func value + for i := range gofuncs { + idx := wrapIds[i] + w := rt.UnpackEface(stubs[idx].GoFunc) + *(*Function)(w.Value) = gofuncs[i] + } +} diff --git a/vendor/github.com/bytedance/sonic/sonic.go b/vendor/github.com/bytedance/sonic/sonic.go index 6cbb1ad4..b394aa6d 100644 --- a/vendor/github.com/bytedance/sonic/sonic.go +++ b/vendor/github.com/bytedance/sonic/sonic.go @@ -1,4 +1,4 @@ -// +build amd64,go1.15,!go1.21 +// +build amd64,go1.16,!go1.21 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/chenzhuoyu/base64x/Makefile b/vendor/github.com/chenzhuoyu/base64x/Makefile index 436d8baf..a0793f48 100644 --- a/vendor/github.com/chenzhuoyu/base64x/Makefile +++ b/vendor/github.com/chenzhuoyu/base64x/Makefile @@ -19,10 +19,11 @@ NATIVE_SRC += $(wildcard native/*.c) all: native_amd64.s clean: - rm -vf native_amd64.s output/*.s + rm -vf native_text_amd64.go native_subr_amd64.go output/*.s native_amd64.s: ${NATIVE_SRC} ${NATIVE_ASM} native_amd64.go mkdir -p output clang ${CFLAGS} -S -o output/native.s native/native.c - python3 tools/asm2asm/asm2asm.py native_amd64.s output/native.s ${NATIVE_ASM} - asmfmt -w native_amd64.s + python3 tools/asm2asm/asm2asm.py -r native_amd64.go output/native.s ${NATIVE_ASM} + awk '{gsub(/Text__native_entry__/, "text__native_entry__")}1' native_text_amd64.go > native_text_amd64.go.tmp && mv native_text_amd64.go.tmp native_text_amd64.go + awk '{gsub(/Funcs/, "funcs")}1' native_subr_amd64.go > native_subr_amd64.go.tmp && mv native_subr_amd64.go.tmp native_subr_amd64.go diff --git a/vendor/github.com/chenzhuoyu/base64x/base64x.go b/vendor/github.com/chenzhuoyu/base64x/base64x.go index 3d457176..f0746fce 100644 --- a/vendor/github.com/chenzhuoyu/base64x/base64x.go +++ b/vendor/github.com/chenzhuoyu/base64x/base64x.go @@ -71,7 +71,7 @@ func (self Encoding) Encode(out []byte, src []byte) { // // It will also update the length of out. func (self Encoding) EncodeUnsafe(out *[]byte, src []byte) { - __b64encode(out, &src, int(self) | archFlags) + b64encode(out, &src, int(self) | archFlags) } // EncodeToString returns the base64 encoding of src. @@ -120,7 +120,7 @@ func (self Encoding) Decode(out []byte, src []byte) (int, error) { // // It will also update the length of out. func (self Encoding) DecodeUnsafe(out *[]byte, src []byte) (int, error) { - if n := __b64decode(out, mem2addr(src), len(src), int(self) | archFlags); n >= 0 { + if n := b64decode(out, mem2addr(src), len(src), int(self) | archFlags); n >= 0 { return n, nil } else { return 0, base64.CorruptInputError(-n - 1) @@ -149,9 +149,3 @@ func (self Encoding) DecodedLen(n int) int { return n * 6 / 8 } } - -func init() { - if hasAVX2() { - archFlags = _MODE_AVX2 - } -} diff --git a/vendor/github.com/chenzhuoyu/base64x/cpuid.go b/vendor/github.com/chenzhuoyu/base64x/cpuid.go index a768c768..68ba6133 100644 --- a/vendor/github.com/chenzhuoyu/base64x/cpuid.go +++ b/vendor/github.com/chenzhuoyu/base64x/cpuid.go @@ -14,4 +14,4 @@ func hasAVX2() bool { case "noavx2" : return false default : panic(fmt.Sprintf("invalid mode: '%s', should be one of 'auto', 'noavx2'", v)) } -} \ No newline at end of file +} diff --git a/vendor/github.com/chenzhuoyu/base64x/faststr.go b/vendor/github.com/chenzhuoyu/base64x/faststr.go index 83b58ea1..7334b063 100644 --- a/vendor/github.com/chenzhuoyu/base64x/faststr.go +++ b/vendor/github.com/chenzhuoyu/base64x/faststr.go @@ -21,3 +21,15 @@ func str2mem(s string) (v []byte) { func mem2addr(v []byte) unsafe.Pointer { return *(*unsafe.Pointer)(unsafe.Pointer(&v)) } + +// NoEscape hides a pointer from escape analysis. NoEscape is +// the identity function but escape analysis doesn't think the +// output depends on the input. NoEscape is inlined and currently +// compiles down to zero instructions. +// USE CAREFULLY! +//go:nosplit +//goland:noinspection GoVetUnsafePointer +func noEscape(p unsafe.Pointer) unsafe.Pointer { + x := uintptr(p) + return unsafe.Pointer(x ^ 0) +} diff --git a/vendor/github.com/chenzhuoyu/base64x/native_amd64.go b/vendor/github.com/chenzhuoyu/base64x/native_amd64.go index a6f95575..39a91612 100644 --- a/vendor/github.com/chenzhuoyu/base64x/native_amd64.go +++ b/vendor/github.com/chenzhuoyu/base64x/native_amd64.go @@ -3,14 +3,40 @@ package base64x import ( `unsafe` + + `github.com/bytedance/sonic/loader` ) //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __b64encode(out *[]byte, src *[]byte, mode int) +func b64encode(out *[]byte, src *[]byte, mode int) { + __b64encode(noEscape(unsafe.Pointer(out)), noEscape(unsafe.Pointer(src)), mode) +} //go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __b64decode(out *[]byte, src unsafe.Pointer, len int, mode int) (ret int) +func b64decode(out *[]byte, src unsafe.Pointer, len int, mode int) (ret int) { + return __b64decode(noEscape(unsafe.Pointer(out)), noEscape(unsafe.Pointer(src)), len, mode) +} + +// asm2asm templates +var ( + __b64encode func(out unsafe.Pointer, src unsafe.Pointer, mod int) + __b64decode func(out unsafe.Pointer, src unsafe.Pointer, len int, mod int) (ret int) +) + +// directly jump PCs +var ( + _subr__b64encode uintptr + _subr__b64decode uintptr +) + +var stubs = []loader.GoC{ + {"_b64encode", &_subr__b64encode, &__b64encode}, + {"_b64decode", &_subr__b64decode, &__b64decode}, +} + +func init() { + if hasAVX2() { + archFlags = _MODE_AVX2 + } + loader.WrapGoC(text__native_entry__, funcs, stubs, "base64x", "base64x/native.c") +} diff --git a/vendor/github.com/chenzhuoyu/base64x/native_amd64.s b/vendor/github.com/chenzhuoyu/base64x/native_amd64.s deleted file mode 100644 index 7f7a5872..00000000 --- a/vendor/github.com/chenzhuoyu/base64x/native_amd64.s +++ /dev/null @@ -1,4416 +0,0 @@ -// +build !noasm !appengine -// Code generated by asm2asm, DO NOT EDIT. - -#include "go_asm.h" -#include "funcdata.h" -#include "textflag.h" - -TEXT ·__native_entry__(SB), NOSPLIT, $0 - NO_LOCAL_POINTERS - LONG $0xf9058d48; WORD $0xffff; BYTE $0xff // leaq $-7(%rip), %rax - MOVQ AX, 8(SP) - RET - -LCPI0_0: - BYTE $0x47 // .byte 71 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xed // .byte 237 - BYTE $0xf0 // .byte 240 - BYTE $0x41 // .byte 65 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x47 // .byte 71 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xed // .byte 237 - BYTE $0xf0 // .byte 240 - BYTE $0x41 // .byte 65 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - -LCPI0_1: - BYTE $0x47 // .byte 71 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xef // .byte 239 - BYTE $0x20 // .byte 32 - BYTE $0x41 // .byte 65 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x47 // .byte 71 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xfc // .byte 252 - BYTE $0xef // .byte 239 - BYTE $0x20 // .byte 32 - BYTE $0x41 // .byte 65 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - -LCPI0_2: - BYTE $0x01 // .byte 1 - BYTE $0x00 // .byte 0 - BYTE $0x02 // .byte 2 - BYTE $0x01 // .byte 1 - BYTE $0x04 // .byte 4 - BYTE $0x03 // .byte 3 - BYTE $0x05 // .byte 5 - BYTE $0x04 // .byte 4 - BYTE $0x07 // .byte 7 - BYTE $0x06 // .byte 6 - BYTE $0x08 // .byte 8 - BYTE $0x07 // .byte 7 - BYTE $0x0a // .byte 10 - BYTE $0x09 // .byte 9 - BYTE $0x0b // .byte 11 - BYTE $0x0a // .byte 10 - BYTE $0x01 // .byte 1 - BYTE $0x00 // .byte 0 - BYTE $0x02 // .byte 2 - BYTE $0x01 // .byte 1 - BYTE $0x04 // .byte 4 - BYTE $0x03 // .byte 3 - BYTE $0x05 // .byte 5 - BYTE $0x04 // .byte 4 - BYTE $0x07 // .byte 7 - BYTE $0x06 // .byte 6 - BYTE $0x08 // .byte 8 - BYTE $0x07 // .byte 7 - BYTE $0x0a // .byte 10 - BYTE $0x09 // .byte 9 - BYTE $0x0b // .byte 11 - BYTE $0x0a // .byte 10 - -LCPI0_3: - WORD $0xfc00 // .word 64512 - WORD $0x0fc0 // .word 4032 - WORD $0xfc00 // .word 64512 - WORD $0x0fc0 // .word 4032 - WORD $0xfc00 // .word 64512 - WORD $0x0fc0 // .word 4032 - WORD $0xfc00 // .word 64512 - WORD $0x0fc0 // .word 4032 - WORD $0xfc00 // .word 64512 - WORD $0x0fc0 // .word 4032 - WORD $0xfc00 // .word 64512 - WORD $0x0fc0 // .word 4032 - WORD $0xfc00 // .word 64512 - WORD $0x0fc0 // .word 4032 - WORD $0xfc00 // .word 64512 - WORD $0x0fc0 // .word 4032 - -LCPI0_4: - WORD $0x0040 // .word 64 - WORD $0x0400 // .word 1024 - WORD $0x0040 // .word 64 - WORD $0x0400 // .word 1024 - WORD $0x0040 // .word 64 - WORD $0x0400 // .word 1024 - WORD $0x0040 // .word 64 - WORD $0x0400 // .word 1024 - WORD $0x0040 // .word 64 - WORD $0x0400 // .word 1024 - WORD $0x0040 // .word 64 - WORD $0x0400 // .word 1024 - WORD $0x0040 // .word 64 - WORD $0x0400 // .word 1024 - WORD $0x0040 // .word 64 - WORD $0x0400 // .word 1024 - -LCPI0_5: - WORD $0x03f0 // .word 1008 - WORD $0x003f // .word 63 - WORD $0x03f0 // .word 1008 - WORD $0x003f // .word 63 - WORD $0x03f0 // .word 1008 - WORD $0x003f // .word 63 - WORD $0x03f0 // .word 1008 - WORD $0x003f // .word 63 - WORD $0x03f0 // .word 1008 - WORD $0x003f // .word 63 - WORD $0x03f0 // .word 1008 - WORD $0x003f // .word 63 - WORD $0x03f0 // .word 1008 - WORD $0x003f // .word 63 - WORD $0x03f0 // .word 1008 - WORD $0x003f // .word 63 - -LCPI0_6: - QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a' - QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a' - -LCPI0_7: - QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333' - QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333' - -LCPI0_8: - QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r' - QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r' - -_b64encode: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - MOVQ 8(SI), R9 - TESTQ R9, R9 - JE LBB0_29 - MOVQ 0(DI), R8 - MOVQ 0(SI), R12 - ADDQ R12, R9 - LEAQ -28(R9), SI - LONG $0x610d8d48; WORD $0x002f; BYTE $0x00 // leaq $12129(%rip), %rcx /* _TabEncodeCharsetStd(%rip) */ - LONG $0x9a1d8d4c; WORD $0x002f; BYTE $0x00 // leaq $12186(%rip), %r11 /* _TabEncodeCharsetURL(%rip) */ - TESTB $1, DX - LONG $0xd9440f4c // cmoveq %rcx, %r11 - JE LBB0_2 - QUAD $0xfffffebc056ffec5 // vmovdqu $-324(%rip), %ymm0 /* LCPI0_1(%rip) */ - JMP LBB0_4 - -LBB0_2: - QUAD $0xfffffe92056ffec5 // vmovdqu $-366(%rip), %ymm0 /* LCPI0_0(%rip) */ - -LBB0_4: - ADDQ 8(DI), R8 - MOVL DX, R10 - ANDL $4, R10 - CMPQ R12, SI - JA LBB0_5 - TESTL R10, R10 - JE LBB0_7 - QUAD $0xfffffead0d6ffec5 // vmovdqu $-339(%rip), %ymm1 /* LCPI0_2(%rip) */ - QUAD $0xfffffec5156ffec5 // vmovdqu $-315(%rip), %ymm2 /* LCPI0_3(%rip) */ - QUAD $0xfffffedd1d6ffec5 // vmovdqu $-291(%rip), %ymm3 /* LCPI0_4(%rip) */ - QUAD $0xfffffef5256ffec5 // vmovdqu $-267(%rip), %ymm4 /* LCPI0_5(%rip) */ - QUAD $0xffffff0d2d6ffec5 // vmovdqu $-243(%rip), %ymm5 /* LCPI0_6(%rip) */ - QUAD $0xffffff25356ffec5 // vmovdqu $-219(%rip), %ymm6 /* LCPI0_7(%rip) */ - QUAD $0xffffff3d3d6ffec5 // vmovdqu $-195(%rip), %ymm7 /* LCPI0_8(%rip) */ - MOVQ R8, R14 - -LBB0_9: - LONG $0x6f7a41c4; WORD $0x2404 // vmovdqu (%r12), %xmm8 - QUAD $0x010c2444383d43c4 // vinserti128 $1, $12(%r12), %ymm8, %ymm8 - LONG $0x003d62c4; BYTE $0xc1 // vpshufb %ymm1, %ymm8, %ymm8 - LONG $0xcadb3dc5 // vpand %ymm2, %ymm8, %ymm9 - LONG $0xcbe435c5 // vpmulhuw %ymm3, %ymm9, %ymm9 - LONG $0xc4db3dc5 // vpand %ymm4, %ymm8, %ymm8 - LONG $0x712dc1c4; WORD $0x08f0 // vpsllw $8, %ymm8, %ymm10 - LONG $0x713dc1c4; WORD $0x04f0 // vpsllw $4, %ymm8, %ymm8 - LONG $0x0e3d43c4; WORD $0xaac2 // vpblendw $170, %ymm10, %ymm8, %ymm8 - LONG $0xeb3d41c4; BYTE $0xc1 // vpor %ymm9, %ymm8, %ymm8 - LONG $0x645541c4; BYTE $0xc8 // vpcmpgtb %ymm8, %ymm5, %ymm9 - LONG $0xcfdb35c5 // vpand %ymm7, %ymm9, %ymm9 - LONG $0xd6d83dc5 // vpsubusb %ymm6, %ymm8, %ymm10 - LONG $0xeb3541c4; BYTE $0xca // vpor %ymm10, %ymm9, %ymm9 - LONG $0x007d42c4; BYTE $0xc9 // vpshufb %ymm9, %ymm0, %ymm9 - LONG $0xfc3541c4; BYTE $0xc0 // vpaddb %ymm8, %ymm9, %ymm8 - LONG $0x7f7e41c4; BYTE $0x06 // vmovdqu %ymm8, (%r14) - ADDQ $32, R14 - ADDQ $24, R12 - CMPQ R12, SI - JBE LBB0_9 - JMP LBB0_10 - -LBB0_5: - MOVQ R8, R14 - -LBB0_10: - LEAQ -24(R9), SI - CMPQ R12, SI - JA LBB0_13 - -LBB0_11: - TESTL R10, R10 - JE LBB0_13 - LONG $0x6f7ac1c4; WORD $0x240c // vmovdqu (%r12), %xmm1 - LONG $0x6f7ac1c4; WORD $0x2454; BYTE $0x08 // vmovdqu $8(%r12), %xmm2 - LONG $0xda73e9c5; BYTE $0x04 // vpsrldq $4, %xmm2, %xmm2 - LONG $0x3875e3c4; WORD $0x01ca // vinserti128 $1, %xmm2, %ymm1, %ymm1 - QUAD $0xfffdda0d0075e2c4; BYTE $0xff // vpshufb $-550(%rip), %ymm1, %ymm1 /* LCPI0_2(%rip) */ - QUAD $0xfffffdf215dbf5c5 // vpand $-526(%rip), %ymm1, %ymm2 /* LCPI0_3(%rip) */ - QUAD $0xfffffe0a15e4edc5 // vpmulhuw $-502(%rip), %ymm2, %ymm2 /* LCPI0_4(%rip) */ - QUAD $0xfffffe220ddbf5c5 // vpand $-478(%rip), %ymm1, %ymm1 /* LCPI0_5(%rip) */ - LONG $0xf171e5c5; BYTE $0x08 // vpsllw $8, %ymm1, %ymm3 - LONG $0xf171f5c5; BYTE $0x04 // vpsllw $4, %ymm1, %ymm1 - LONG $0x0e75e3c4; WORD $0xaacb // vpblendw $170, %ymm3, %ymm1, %ymm1 - LONG $0xcaebf5c5 // vpor %ymm2, %ymm1, %ymm1 - QUAD $0xfffffe26156ffec5 // vmovdqu $-474(%rip), %ymm2 /* LCPI0_6(%rip) */ - LONG $0xd164edc5 // vpcmpgtb %ymm1, %ymm2, %ymm2 - QUAD $0xfffffe3a1dd8f5c5 // vpsubusb $-454(%rip), %ymm1, %ymm3 /* LCPI0_7(%rip) */ - QUAD $0xfffffe5215dbedc5 // vpand $-430(%rip), %ymm2, %ymm2 /* LCPI0_8(%rip) */ - LONG $0xd3ebedc5 // vpor %ymm3, %ymm2, %ymm2 - LONG $0x007de2c4; BYTE $0xc2 // vpshufb %ymm2, %ymm0, %ymm0 - LONG $0xc1fcfdc5 // vpaddb %ymm1, %ymm0, %ymm0 - LONG $0x7f7ec1c4; BYTE $0x06 // vmovdqu %ymm0, (%r14) - ADDQ $32, R14 - ADDQ $24, R12 - -LBB0_13: - CMPQ R12, R9 - JE LBB0_28 - LEAQ -4(R9), R10 - CMPQ R12, R10 - JA LBB0_17 - -LBB0_15: - MOVL 0(R12), SI - BSWAPL SI - MOVQ SI, R15 - SHRQ $26, R15 - MOVL SI, CX - SHRL $20, CX - ANDL $63, CX - MOVL SI, BX - SHRL $14, BX - ANDL $63, BX - SHRL $8, SI - ANDL $63, SI - ADDQ $3, R12 - MOVBLZX 0(R11)(R15*1), AX - MOVB AX, 0(R14) - MOVBLZX 0(R11)(CX*1), AX - MOVB AX, 1(R14) - MOVBLZX 0(R11)(BX*1), AX - MOVB AX, 2(R14) - MOVBLZX 0(R11)(SI*1), AX - MOVB AX, 3(R14) - ADDQ $4, R14 - CMPQ R12, R10 - JBE LBB0_15 - -LBB0_17: - SUBQ R12, R9 - MOVBLZX 0(R12), R10 - CMPQ R9, $1 - JE LBB0_24 - MOVQ R10, SI - SHLQ $16, SI - CMPQ R9, $2 - JE LBB0_21 - CMPQ R9, $3 - JNE LBB0_28 - MOVBLZX 2(R12), DX - ORL DX, SI - MOVBLZX 1(R12), AX - SHLL $8, AX - ORL SI, AX - SHRQ $2, R10 - MOVB 0(R11)(R10*1), CX - MOVB CX, 0(R14) - MOVL AX, CX - SHRL $12, CX - ANDL $63, CX - MOVB 0(R11)(CX*1), CX - MOVB CX, 1(R14) - SHRL $6, AX - ANDL $63, AX - MOVB 0(R11)(AX*1), AX - MOVB AX, 2(R14) - ANDL $63, DX - MOVB 0(R11)(DX*1), AX - MOVB AX, 3(R14) - JMP LBB0_27 - -LBB0_7: - MOVQ R8, R14 - LEAQ -24(R9), SI - CMPQ R12, SI - JBE LBB0_11 - JMP LBB0_13 - -LBB0_21: - MOVBLZX 1(R12), AX - MOVL AX, CX - SHLL $8, CX - ORL SI, CX - SHRQ $2, R10 - MOVB 0(R11)(R10*1), BX - MOVB BX, 0(R14) - SHRL $12, CX - ANDL $63, CX - MOVB 0(R11)(CX*1), CX - MOVB CX, 1(R14) - ANDL $15, AX - MOVB 0(R11)(AX*4), AX - MOVB AX, 2(R14) - TESTB $2, DX - JNE LBB0_22 - MOVB $61, 3(R14) - JMP LBB0_27 - -LBB0_24: - MOVQ R10, AX - SHRQ $2, AX - MOVB 0(R11)(AX*1), AX - MOVB AX, 0(R14) - SHLL $4, R10 - ANDL $48, R10 - MOVB 0(R11)(R10*1), AX - MOVB AX, 1(R14) - TESTB $2, DX - JNE LBB0_25 - MOVW $15677, 2(R14) - -LBB0_27: - ADDQ $4, R14 - JMP LBB0_28 - -LBB0_22: - ADDQ $3, R14 - JMP LBB0_28 - -LBB0_25: - ADDQ $2, R14 - -LBB0_28: - SUBQ R8, R14 - ADDQ R14, 8(DI) - -LBB0_29: - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - RET - -LCPI1_0: - BYTE $0xa8 // .byte 168 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf0 // .byte 240 - BYTE $0x54 // .byte 84 - BYTE $0x50 // .byte 80 - BYTE $0x50 // .byte 80 - BYTE $0x50 // .byte 80 - BYTE $0x54 // .byte 84 - BYTE $0xa8 // .byte 168 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf0 // .byte 240 - BYTE $0x54 // .byte 84 - BYTE $0x50 // .byte 80 - BYTE $0x50 // .byte 80 - BYTE $0x50 // .byte 80 - BYTE $0x54 // .byte 84 - -LCPI1_1: - BYTE $0xa8 // .byte 168 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf0 // .byte 240 - BYTE $0x50 // .byte 80 - BYTE $0x50 // .byte 80 - BYTE $0x54 // .byte 84 - BYTE $0x50 // .byte 80 - BYTE $0x70 // .byte 112 - BYTE $0xa8 // .byte 168 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf8 // .byte 248 - BYTE $0xf0 // .byte 240 - BYTE $0x50 // .byte 80 - BYTE $0x50 // .byte 80 - BYTE $0x54 // .byte 84 - BYTE $0x50 // .byte 80 - BYTE $0x70 // .byte 112 - -LCPI1_2: - QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - -LCPI1_3: - QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .space 16, '________________' - QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .space 16, '________________' - -LCPI1_4: - QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .space 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10' - QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .space 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10' - -LCPI1_5: - QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - -LCPI1_6: - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x13 // .byte 19 - BYTE $0x04 // .byte 4 - BYTE $0xbf // .byte 191 - BYTE $0xbf // .byte 191 - BYTE $0xb9 // .byte 185 - BYTE $0xb9 // .byte 185 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x13 // .byte 19 - BYTE $0x04 // .byte 4 - BYTE $0xbf // .byte 191 - BYTE $0xbf // .byte 191 - BYTE $0xb9 // .byte 185 - BYTE $0xb9 // .byte 185 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - -LCPI1_7: - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x11 // .byte 17 - BYTE $0x04 // .byte 4 - BYTE $0xbf // .byte 191 - BYTE $0xbf // .byte 191 - BYTE $0xb9 // .byte 185 - BYTE $0xb9 // .byte 185 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x11 // .byte 17 - BYTE $0x04 // .byte 4 - BYTE $0xbf // .byte 191 - BYTE $0xbf // .byte 191 - BYTE $0xb9 // .byte 185 - BYTE $0xb9 // .byte 185 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - -LCPI1_8: - QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - -LCPI1_9: - BYTE $0x01 // .byte 1 - BYTE $0x02 // .byte 2 - BYTE $0x04 // .byte 4 - BYTE $0x08 // .byte 8 - BYTE $0x10 // .byte 16 - BYTE $0x20 // .byte 32 - BYTE $0x40 // .byte 64 - BYTE $0x80 // .byte 128 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x01 // .byte 1 - BYTE $0x02 // .byte 2 - BYTE $0x04 // .byte 4 - BYTE $0x08 // .byte 8 - BYTE $0x10 // .byte 16 - BYTE $0x20 // .byte 32 - BYTE $0x40 // .byte 64 - BYTE $0x80 // .byte 128 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - BYTE $0x00 // .byte 0 - -LCPI1_10: - QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????' - QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????' - -LCPI1_11: - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - BYTE $0x40 // .byte 64 - BYTE $0x01 // .byte 1 - -LCPI1_12: - WORD $0x1000 // .word 4096 - WORD $0x0001 // .word 1 - WORD $0x1000 // .word 4096 - WORD $0x0001 // .word 1 - WORD $0x1000 // .word 4096 - WORD $0x0001 // .word 1 - WORD $0x1000 // .word 4096 - WORD $0x0001 // .word 1 - WORD $0x1000 // .word 4096 - WORD $0x0001 // .word 1 - WORD $0x1000 // .word 4096 - WORD $0x0001 // .word 1 - WORD $0x1000 // .word 4096 - WORD $0x0001 // .word 1 - WORD $0x1000 // .word 4096 - WORD $0x0001 // .word 1 - -LCPI1_14: - BYTE $0x02 // .byte 2 - BYTE $0x01 // .byte 1 - BYTE $0x00 // .byte 0 - BYTE $0x06 // .byte 6 - BYTE $0x05 // .byte 5 - BYTE $0x04 // .byte 4 - BYTE $0x0a // .byte 10 - BYTE $0x09 // .byte 9 - BYTE $0x08 // .byte 8 - BYTE $0x0e // .byte 14 - BYTE $0x0d // .byte 13 - BYTE $0x0c // .byte 12 - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x05 // .byte 5 - BYTE $0x04 // .byte 4 - BYTE $0x0a // .byte 10 - BYTE $0x09 // .byte 9 - BYTE $0x08 // .byte 8 - BYTE $0x0e // .byte 14 - BYTE $0x0d // .byte 13 - BYTE $0x0c // .byte 12 - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - -LCPI1_13: - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x00 // .space 1, '\x00' - BYTE $0x02 // .byte 2 - BYTE $0x01 // .byte 1 - BYTE $0x00 // .byte 0 - BYTE $0x06 // .byte 6 - -_b64decode: - BYTE $0x55 // pushq %rbp - WORD $0x8948; BYTE $0xe5 // movq %rsp, %rbp - WORD $0x5741 // pushq %r15 - WORD $0x5641 // pushq %r14 - WORD $0x5541 // pushq %r13 - WORD $0x5441 // pushq %r12 - BYTE $0x53 // pushq %rbx - SUBQ $80, SP - TESTQ DX, DX - JE LBB1_3 - MOVQ 0(DI), BX - MOVQ 8(DI), R15 - ADDQ BX, R15 - ADDQ 16(DI), BX - ADDQ SI, DX - TESTB $1, CX - LONG $0xee058d4c; WORD $0x002a; BYTE $0x00 // leaq $10990(%rip), %r8 /* _VecDecodeCharsetStd(%rip) */ - LONG $0xe7058d48; WORD $0x002b; BYTE $0x00 // leaq $11239(%rip), %rax /* _VecDecodeCharsetURL(%rip) */ - LONG $0xc0440f49 // cmoveq %r8, %rax - MOVQ AX, -56(BP) - TESTB $4, CX - MOVQ SI, -96(BP) - MOVQ DI, -120(BP) - MOVQ R15, -112(BP) - MOVQ BX, -88(BP) - JNE LBB1_4 - MOVL CX, R8 - ANDL $8, R8 - ANDL $2, CX - MOVL CX, -44(BP) - JMP LBB1_764 - -LBB1_3: - XORL AX, AX - JMP LBB1_763 - -LBB1_4: - LEAQ -32(DX), R14 - LEAQ -32(BX), R13 - TESTB $1, CX - JE LBB1_9 - QUAD $0xfffffdcd056ffec5 // vmovdqu $-563(%rip), %ymm0 /* LCPI1_1(%rip) */ - JNE LBB1_10 - -LBB1_6: - QUAD $0xfffffde30d6ffec5 // vmovdqu $-541(%rip), %ymm1 /* LCPI1_2(%rip) */ - JNE LBB1_11 - -LBB1_7: - QUAD $0xfffffe19156ffec5 // vmovdqu $-487(%rip), %ymm2 /* LCPI1_4(%rip) */ - JNE LBB1_12 - -LBB1_8: - QUAD $0xfffffe4f1d6ffec5 // vmovdqu $-433(%rip), %ymm3 /* LCPI1_6(%rip) */ - JMP LBB1_13 - -LBB1_9: - QUAD $0xfffffd85056ffec5 // vmovdqu $-635(%rip), %ymm0 /* LCPI1_0(%rip) */ - JE LBB1_6 - -LBB1_10: - QUAD $0xfffffddb0d6ffec5 // vmovdqu $-549(%rip), %ymm1 /* LCPI1_3(%rip) */ - JE LBB1_7 - -LBB1_11: - QUAD $0xfffffe11156ffec5 // vmovdqu $-495(%rip), %ymm2 /* LCPI1_5(%rip) */ - JE LBB1_8 - -LBB1_12: - QUAD $0xfffffe471d6ffec5 // vmovdqu $-441(%rip), %ymm3 /* LCPI1_7(%rip) */ - -LBB1_13: - MOVL CX, R8 - ANDL $8, R8 - ANDL $2, CX - CMPQ R14, SI - MOVL CX, -44(BP) - JB LBB1_205 - CMPQ R15, R13 - JA LBB1_764 - QUAD $0xfffffe40256ffec5 // vmovdqu $-448(%rip), %ymm4 /* LCPI1_8(%rip) */ - QUAD $0xfffffe582d6ffec5 // vmovdqu $-424(%rip), %ymm5 /* LCPI1_9(%rip) */ - LONG $0xf6efc9c5 // vpxor %xmm6, %xmm6, %xmm6 - MOVQ $-4294967296, DI - QUAD $0xfffffe82056f7ec5 // vmovdqu $-382(%rip), %ymm8 /* LCPI1_11(%rip) */ - QUAD $0xfffffe9a0d6f7ec5 // vmovdqu $-358(%rip), %ymm9 /* LCPI1_12(%rip) */ - QUAD $0xfffffed2156f7ac5 // vmovdqu $-302(%rip), %xmm10 /* LCPI1_13(%rip) */ - QUAD $0xfffffeaa1d6f7ec5 // vmovdqu $-342(%rip), %ymm11 /* LCPI1_14(%rip) */ - MOVQ SI, R10 - MOVQ R14, -72(BP) - MOVQ R13, -80(BP) - -LBB1_16: - LONG $0x6f7e41c4; BYTE $0x22 // vmovdqu (%r10), %ymm12 - LONG $0x7215c1c4; WORD $0x04d4 // vpsrld $4, %ymm12, %ymm13 - LONG $0xecdb15c5 // vpand %ymm4, %ymm13, %ymm13 - LONG $0xf4db1dc5 // vpand %ymm4, %ymm12, %ymm14 - LONG $0x007d42c4; BYTE $0xf6 // vpshufb %ymm14, %ymm0, %ymm14 - LONG $0x005542c4; BYTE $0xfd // vpshufb %ymm13, %ymm5, %ymm15 - LONG $0xdb0541c4; BYTE $0xf6 // vpand %ymm14, %ymm15, %ymm14 - LONG $0xf6740dc5 // vpcmpeqb %ymm6, %ymm14, %ymm14 - LONG $0xd77dc1c4; BYTE $0xc6 // vpmovmskb %ymm14, %eax - ORQ DI, AX - BSFQ AX, AX - CMPL AX, $31 - JA LBB1_19 - CMPQ R10, DX - JAE LBB1_110 - MOVQ R10, R12 - JMP LBB1_22 - -LBB1_19: - LONG $0xf1741dc5 // vpcmpeqb %ymm1, %ymm12, %ymm14 - LONG $0x006542c4; BYTE $0xed // vpshufb %ymm13, %ymm3, %ymm13 - LONG $0x4c1563c4; WORD $0xe0ea // vpblendvb %ymm14, %ymm2, %ymm13, %ymm13 - LONG $0xfc1541c4; BYTE $0xe4 // vpaddb %ymm12, %ymm13, %ymm12 - QUAD $0xfffffdde25db1dc5 // vpand $-546(%rip), %ymm12, %ymm12 /* LCPI1_10(%rip) */ - LONG $0x041d42c4; BYTE $0xe0 // vpmaddubsw %ymm8, %ymm12, %ymm12 - LONG $0xf51d41c4; BYTE $0xe1 // vpmaddwd %ymm9, %ymm12, %ymm12 - LONG $0x397d63c4; WORD $0x01e7 // vextracti128 $1, %ymm12, %xmm7 - LONG $0x0041c2c4; BYTE $0xfa // vpshufb %xmm10, %xmm7, %xmm7 - LONG $0x001d42c4; BYTE $0xe3 // vpshufb %ymm11, %ymm12, %ymm12 - LONG $0x021de3c4; WORD $0x08ff // vpblendd $8, %ymm7, %ymm12, %ymm7 - LONG $0x0245e3c4; WORD $0xc0fe // vpblendd $192, %ymm6, %ymm7, %ymm7 - LONG $0x7f7ec1c4; BYTE $0x3f // vmovdqu %ymm7, (%r15) - ADDQ $32, R10 - ADDQ $24, R15 - JMP LBB1_110 - -LBB1_38: - CMPB CX, $110 - JNE LBB1_43 - -LBB1_20: - MOVQ SI, R12 - -LBB1_21: - CMPQ R12, DX - JAE LBB1_40 - -LBB1_22: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_34 - TESTL R8, R8 - JE LBB1_36 - LEAQ 2(R12), SI - MOVB $-1, R9 - CMPQ SI, DX - JA LBB1_42 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_38 - CMPB CX, $114 - JE LBB1_20 - CMPB CX, $117 - JNE LBB1_45 - MOVQ DX, CX - SUBQ SI, CX - CMPQ CX, $4 - JL LBB1_45 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), CX - ANDL $-2139062144, DI - TESTL CX, DI - JNE LBB1_45 - LEAL 421075225(BX), CX - ORL BX, CX - TESTL $-2139062144, CX - JNE LBB1_45 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R11 - ANDL DI, AX - TESTL R11, AX - JNE LBB1_45 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_45 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - JNE LBB1_46 - CMPB SI, $13 - JNE LBB1_37 - JMP LBB1_21 - -LBB1_34: - MOVQ CX, R12 - CMPB SI, $13 - JNE LBB1_37 - JMP LBB1_21 - -LBB1_36: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_21 - -LBB1_37: - MOVL SI, R9 - CMPB SI, $10 - JE LBB1_21 - JMP LBB1_46 - -LBB1_40: - MOVB $1, CX - XORL DI, DI - XORL R11, R11 - -LBB1_41: - TESTB CX, CX - JE LBB1_49 - JMP LBB1_109 - -LBB1_42: - MOVQ CX, R12 - JMP LBB1_46 - -LBB1_43: - CMPB CX, $47 - JNE LBB1_45 - MOVL CX, R9 - -LBB1_45: - MOVQ SI, R12 - -LBB1_46: - MOVBLZX R9, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), DI - MOVB $1, R13 - CMPL DI, $255 - JE LBB1_72 - MOVL $1, R11 - CMPQ R12, DX - JB LBB1_54 - -LBB1_48: - MOVQ -80(BP), R13 - -LBB1_49: - MOVL DI, -64(BP) - CMPL -44(BP), $0 - SETEQ CX - CMPL R11, $1 - SETEQ BX - CMPQ R12, DX - JB LBB1_102 - CMPL R11, $4 - JE LBB1_102 - ORB BX, CX - JNE LBB1_97 - JMP LBB1_102 - -LBB1_70: - CMPB CX, $110 - JNE LBB1_112 - -LBB1_52: - MOVQ SI, R12 - -LBB1_53: - CMPQ R12, DX - JAE LBB1_98 - -LBB1_54: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_66 - TESTL R8, R8 - JE LBB1_68 - LEAQ 2(R12), SI - MOVB $-1, R9 - CMPQ SI, DX - JA LBB1_100 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_70 - CMPB CX, $114 - JE LBB1_52 - CMPB CX, $117 - JNE LBB1_114 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_114 - MOVL DI, R14 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_99 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_99 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R11 - ANDL DI, AX - TESTL R11, AX - JNE LBB1_99 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_99 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - MOVL R14, DI - MOVQ -72(BP), R14 - JE LBB1_67 - JMP LBB1_115 - -LBB1_66: - MOVQ CX, R12 - -LBB1_67: - CMPB SI, $13 - JNE LBB1_69 - JMP LBB1_53 - -LBB1_68: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_53 - -LBB1_69: - MOVL SI, R9 - CMPB SI, $10 - JE LBB1_53 - JMP LBB1_115 - -LBB1_72: - XORL DI, DI - XORL AX, AX - XORL R11, R11 - -LBB1_73: - CMPL -44(BP), $0 - JNE LBB1_96 - CMPB R9, $61 - JNE LBB1_96 - TESTB R13, R13 - JNE LBB1_96 - MOVL DI, -64(BP) - CMPQ R12, DX - MOVQ -80(BP), R13 - JAE LBB1_102 - MOVL AX, -100(BP) - MOVQ R12, SI - JMP LBB1_80 - -LBB1_95: - MOVQ BX, SI - CMPQ SI, DX - JB LBB1_80 - JMP LBB1_101 - -LBB1_78: - MOVQ R12, SI - CMPQ SI, DX - JAE LBB1_101 - -LBB1_80: - LEAQ 1(SI), BX - MOVBLZX 0(SI), DI - CMPB DI, $92 - JNE LBB1_92 - TESTL R8, R8 - JE LBB1_92 - LEAQ 2(SI), R12 - CMPQ R12, DX - JA LBB1_143 - MOVBLZX 0(BX), CX - CMPB CX, $110 - JE LBB1_78 - CMPB CX, $114 - JE LBB1_78 - CMPB CX, $117 - JNE LBB1_97 - MOVQ DX, AX - SUBQ R12, AX - CMPQ AX, $4 - JL LBB1_97 - MOVL 0(R12), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_97 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_97 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_97 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_97 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, DI - SHRL $4, DI - ORL BX, DI - MOVL DI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL DI, CX - ANDL $128, CX - ADDQ $6, SI - ORL AX, CX - MOVQ SI, BX - MOVQ SI, R12 - JNE LBB1_97 - -LBB1_92: - CMPB DI, $10 - JE LBB1_95 - CMPB DI, $13 - JE LBB1_95 - CMPB DI, $61 - JNE LBB1_143 - CMPB -100(BP), $0 - JE LBB1_147 - -LBB1_143: - MOVQ BX, R12 - JMP LBB1_97 - -LBB1_96: - MOVQ -80(BP), R13 - -LBB1_97: - XORL CX, CX - CMPQ R12, DX - SETEQ CX - ADDQ R12, CX - CMPQ CX, R10 - MOVQ $-4294967296, DI - JE LBB1_110 - JMP LBB1_762 - -LBB1_98: - MOVL $1, R11 - XORL CX, CX - MOVQ -80(BP), R13 - JMP LBB1_41 - -LBB1_99: - MOVQ SI, R12 - MOVL R14, DI - MOVQ -72(BP), R14 - JMP LBB1_115 - -LBB1_100: - MOVQ CX, R12 - JMP LBB1_115 - -LBB1_101: - MOVQ SI, R12 - -LBB1_102: - MOVB $4, AX - SUBB R11, AX - MOVBLZX AX, AX - ADDL AX, AX - LEAL 0(AX)(AX*2), CX - MOVL -64(BP), AX - SHLL CX, AX - CMPL R11, $2 - MOVQ R15, CX - JE LBB1_107 - CMPL R11, $3 - JE LBB1_106 - CMPL R11, $4 - JNE LBB1_108 - MOVB AX, 2(CX) - -LBB1_106: - MOVB AH, 1(CX) - -LBB1_107: - SHRL $16, AX - MOVB AX, 0(CX) - -LBB1_108: - MOVL R11, AX - LEAQ 0(AX)(CX*1), R15 - ADDQ $-1, R15 - -LBB1_109: - MOVQ R12, R10 - MOVQ $-4294967296, DI - -LBB1_110: - CMPQ R10, R14 - JA LBB1_206 - CMPQ R15, R13 - JBE LBB1_16 - JMP LBB1_206 - -LBB1_112: - CMPB CX, $47 - JNE LBB1_114 - MOVL CX, R9 - -LBB1_114: - MOVQ SI, R12 - -LBB1_115: - MOVBLZX R9, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_138 - SHLL $6, DI - ORL CX, DI - MOVL $2, R11 - CMPQ R12, DX - JAE LBB1_48 - MOVQ -80(BP), R13 - JMP LBB1_120 - -LBB1_136: - CMPB CX, $110 - JNE LBB1_169 - -LBB1_118: - MOVQ SI, R12 - -LBB1_119: - CMPQ R12, DX - JAE LBB1_142 - -LBB1_120: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_132 - TESTL R8, R8 - JE LBB1_134 - LEAQ 2(R12), SI - MOVB $-1, R9 - CMPQ SI, DX - JA LBB1_146 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_136 - CMPB CX, $114 - JE LBB1_118 - CMPB CX, $117 - JNE LBB1_171 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_171 - MOVL DI, R14 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_144 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_144 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R11 - ANDL DI, AX - TESTL R11, AX - JNE LBB1_144 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_144 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - MOVL R14, DI - MOVQ -72(BP), R14 - JE LBB1_133 - JMP LBB1_172 - -LBB1_132: - MOVQ CX, R12 - -LBB1_133: - CMPB SI, $13 - JNE LBB1_135 - JMP LBB1_119 - -LBB1_134: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_119 - -LBB1_135: - MOVL SI, R9 - CMPB SI, $10 - JE LBB1_119 - JMP LBB1_172 - -LBB1_138: - XORL AX, AX - MOVL $1, R11 - JMP LBB1_73 - -LBB1_142: - MOVL $2, R11 - XORL CX, CX - JMP LBB1_41 - -LBB1_144: - MOVQ SI, R12 - MOVL R14, DI - MOVQ -72(BP), R14 - JMP LBB1_172 - -LBB1_146: - MOVQ CX, R12 - JMP LBB1_172 - -LBB1_147: - CMPQ BX, DX - JB LBB1_151 - -LBB1_148: - MOVQ BX, R12 - JMP LBB1_102 - -LBB1_149: - MOVQ R12, BX - -LBB1_150: - CMPQ BX, DX - JAE LBB1_148 - -LBB1_151: - LEAQ 1(BX), CX - MOVBLZX 0(BX), SI - CMPB SI, $92 - JNE LBB1_164 - TESTL R8, R8 - JE LBB1_164 - LEAQ 2(BX), R12 - CMPQ R12, DX - JA LBB1_204 - MOVBLZX 0(CX), CX - CMPB CX, $110 - JE LBB1_149 - CMPB CX, $114 - JE LBB1_149 - CMPB CX, $117 - JNE LBB1_97 - MOVQ DX, AX - SUBQ R12, AX - CMPQ AX, $4 - JL LBB1_97 - MOVL 0(R12), CX - MOVL CX, SI - NOTL SI - LEAL -808464432(CX), AX - ANDL $-2139062144, SI - TESTL AX, SI - JNE LBB1_97 - LEAL 421075225(CX), AX - ORL CX, AX - TESTL $-2139062144, AX - JNE LBB1_97 - MOVL CX, DI - ANDL $2139062143, DI - MOVL $-1061109568, AX - SUBL DI, AX - LEAL 1179010630(DI), R9 - ANDL SI, AX - TESTL R9, AX - JNE LBB1_97 - MOVL $-522133280, AX - SUBL DI, AX - ADDL $960051513, DI - ANDL AX, SI - TESTL DI, SI - JNE LBB1_97 - BSWAPL CX - MOVL CX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, CX - ADDL AX, CX - MOVL CX, SI - SHRL $4, SI - ORL CX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, BX - ORL AX, CX - MOVQ BX, R12 - JE LBB1_165 - JMP LBB1_97 - -LBB1_164: - MOVQ CX, R12 - -LBB1_165: - CMPB SI, $13 - JE LBB1_149 - MOVQ R12, BX - CMPB SI, $10 - JE LBB1_150 - JMP LBB1_97 - -LBB1_169: - CMPB CX, $47 - JNE LBB1_171 - MOVL CX, R9 - -LBB1_171: - MOVQ SI, R12 - -LBB1_172: - MOVBLZX R9, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_194 - SHLL $6, DI - ORL CX, DI - MOVL $3, R11 - CMPQ R12, DX - JB LBB1_176 - JMP LBB1_49 - -LBB1_192: - CMPB CX, $110 - JNE LBB1_197 - -LBB1_174: - MOVQ SI, R12 - -LBB1_175: - MOVL $3, R11 - XORL CX, CX - CMPQ R12, DX - JAE LBB1_41 - -LBB1_176: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_189 - TESTL R8, R8 - JE LBB1_189 - LEAQ 2(R12), SI - MOVB $-1, R9 - CMPQ SI, DX - JA LBB1_196 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_192 - CMPB CX, $114 - JE LBB1_174 - CMPB CX, $117 - JNE LBB1_199 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_199 - MOVL DI, R14 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_195 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_195 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R11 - ANDL DI, AX - TESTL R11, AX - JNE LBB1_195 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_195 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - MOVL R14, DI - MOVQ -72(BP), R14 - JE LBB1_190 - JMP LBB1_200 - -LBB1_189: - MOVQ CX, R12 - -LBB1_190: - CMPB SI, $13 - JE LBB1_175 - MOVL SI, R9 - CMPB SI, $10 - JE LBB1_175 - JMP LBB1_200 - -LBB1_194: - XORL R13, R13 - MOVL $2, R11 - XORL AX, AX - JMP LBB1_73 - -LBB1_195: - MOVQ SI, R12 - MOVL R14, DI - MOVQ -72(BP), R14 - JMP LBB1_200 - -LBB1_196: - MOVQ CX, R12 - JMP LBB1_200 - -LBB1_197: - CMPB CX, $47 - JNE LBB1_199 - MOVL CX, R9 - -LBB1_199: - MOVQ SI, R12 - -LBB1_200: - MOVBLZX R9, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_202 - SHLL $6, DI - ORL CX, DI - MOVL $4, R11 - JMP LBB1_49 - -LBB1_202: - XORL R13, R13 - MOVL $3, R11 - MOVB $1, AX - JMP LBB1_73 - -LBB1_204: - MOVQ CX, R12 - JMP LBB1_97 - -LBB1_764: - MOVQ SI, R10 - LEAQ -8(DX), AX - MOVQ AX, -80(BP) - CMPQ R10, AX - JBE LBB1_207 - JMP LBB1_393 - -LBB1_205: - MOVQ SI, R10 - -LBB1_206: - LEAQ -8(DX), AX - MOVQ AX, -80(BP) - CMPQ R10, AX - JA LBB1_393 - -LBB1_207: - MOVQ -88(BP), AX - ADDQ $-8, AX - MOVQ AX, -72(BP) - CMPQ R15, AX - JA LBB1_393 - -LBB1_208: - MOVQ R15, -64(BP) - MOVBLZX 0(R10), AX - MOVQ -56(BP), DI - MOVBLZX 0(DI)(AX*1), R9 - MOVBLZX 1(R10), AX - MOVBLZX 0(DI)(AX*1), SI - MOVBLZX 2(R10), AX - MOVBLZX 0(DI)(AX*1), R12 - MOVBLZX 3(R10), AX - MOVBLZX 0(DI)(AX*1), AX - MOVBLZX 4(R10), CX - MOVBLZX 0(DI)(CX*1), R13 - MOVBLZX 5(R10), CX - MOVBLZX 0(DI)(CX*1), R11 - MOVBLZX 6(R10), CX - MOVBLZX 0(DI)(CX*1), BX - MOVBLZX 7(R10), CX - MOVBLZX 0(DI)(CX*1), CX - MOVL SI, DI - ORL R9, DI - MOVL AX, R15 - ORL R12, R15 - ORL DI, R15 - MOVL R11, DI - ORL R13, DI - MOVL BX, R14 - ORL DI, R14 - ORL R15, R14 - MOVL CX, DI - ORL R14, DI - CMPB DI, $-1 - JE LBB1_210 - SHLQ $58, R9 - SHLQ $52, SI - ORQ R9, SI - SHLQ $46, R12 - SHLQ $40, AX - ORQ R12, AX - ORQ SI, AX - SHLQ $34, R13 - SHLQ $28, R11 - ORQ R13, R11 - SHLQ $22, BX - ORQ R11, BX - ORQ AX, BX - SHLQ $16, CX - ORQ BX, CX - BSWAPQ CX - MOVQ -64(BP), AX - MOVQ CX, 0(AX) - ADDQ $8, R10 - ADDQ $6, AX - MOVQ AX, -64(BP) - CMPQ R10, -80(BP) - JBE LBB1_330 - JMP LBB1_392 - -LBB1_210: - CMPQ R10, DX - JAE LBB1_329 - MOVQ R10, R14 - JMP LBB1_214 - -LBB1_230: - CMPB CX, $110 - JNE LBB1_236 - -LBB1_212: - MOVQ SI, R14 - -LBB1_213: - CMPQ R14, DX - JAE LBB1_232 - -LBB1_214: - LEAQ 1(R14), CX - MOVBLZX 0(R14), SI - CMPB SI, $92 - JNE LBB1_226 - TESTL R8, R8 - JE LBB1_228 - LEAQ 2(R14), SI - MOVB $-1, R13 - CMPQ SI, DX - JA LBB1_235 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_230 - CMPB CX, $114 - JE LBB1_212 - CMPB CX, $117 - JNE LBB1_238 - MOVQ DX, CX - SUBQ SI, CX - CMPQ CX, $4 - JL LBB1_238 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), CX - ANDL $-2139062144, DI - TESTL CX, DI - JNE LBB1_238 - LEAL 421075225(BX), CX - ORL BX, CX - TESTL $-2139062144, CX - JNE LBB1_238 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_238 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_238 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R14 - ORL AX, CX - JNE LBB1_239 - CMPB SI, $13 - JNE LBB1_229 - JMP LBB1_213 - -LBB1_226: - MOVQ CX, R14 - CMPB SI, $13 - JNE LBB1_229 - JMP LBB1_213 - -LBB1_228: - MOVQ CX, R14 - CMPB SI, $13 - JE LBB1_213 - -LBB1_229: - MOVL SI, R13 - CMPB SI, $10 - JE LBB1_213 - JMP LBB1_239 - -LBB1_232: - MOVB $1, CX - XORL DI, DI - XORL R11, R11 - -LBB1_233: - TESTB CX, CX - JE LBB1_241 - MOVQ R14, R10 - CMPQ R10, -80(BP) - JBE LBB1_330 - JMP LBB1_392 - -LBB1_235: - MOVQ CX, R14 - JMP LBB1_239 - -LBB1_236: - CMPB CX, $47 - JNE LBB1_238 - MOVL CX, R13 - -LBB1_238: - MOVQ SI, R14 - -LBB1_239: - MOVBLZX R13, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), DI - MOVB $1, R9 - CMPL DI, $255 - JE LBB1_264 - MOVL $1, R11 - CMPQ R14, DX - JB LBB1_246 - -LBB1_241: - MOVL DI, R15 - CMPL -44(BP), $0 - SETEQ CX - CMPL R11, $1 - SETEQ BX - CMPQ R14, DX - JB LBB1_292 - CMPL R11, $4 - JE LBB1_292 - ORB BX, CX - JNE LBB1_328 - JMP LBB1_292 - -LBB1_262: - CMPB CX, $110 - JNE LBB1_299 - -LBB1_244: - MOVQ SI, R14 - -LBB1_245: - CMPQ R14, DX - JAE LBB1_288 - -LBB1_246: - LEAQ 1(R14), CX - MOVBLZX 0(R14), SI - CMPB SI, $92 - JNE LBB1_258 - TESTL R8, R8 - JE LBB1_260 - LEAQ 2(R14), SI - MOVB $-1, R13 - CMPQ SI, DX - JA LBB1_290 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_262 - CMPB CX, $114 - JE LBB1_244 - CMPB CX, $117 - JNE LBB1_301 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_301 - MOVL DI, R15 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_289 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_289 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R11 - ANDL DI, AX - TESTL R11, AX - JNE LBB1_289 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_289 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R14 - ORL AX, CX - MOVL R15, DI - JE LBB1_259 - JMP LBB1_302 - -LBB1_258: - MOVQ CX, R14 - -LBB1_259: - CMPB SI, $13 - JNE LBB1_261 - JMP LBB1_245 - -LBB1_260: - MOVQ CX, R14 - CMPB SI, $13 - JE LBB1_245 - -LBB1_261: - MOVL SI, R13 - CMPB SI, $10 - JE LBB1_245 - JMP LBB1_302 - -LBB1_264: - XORL DI, DI - XORL R12, R12 - XORL R11, R11 - -LBB1_265: - CMPL -44(BP), $0 - JNE LBB1_328 - CMPB R13, $61 - JNE LBB1_328 - TESTB R9, R9 - JNE LBB1_328 - MOVL DI, R15 - CMPQ R14, DX - JAE LBB1_292 - MOVQ R14, BX - JMP LBB1_272 - -LBB1_287: - MOVQ SI, BX - CMPQ BX, DX - JB LBB1_272 - JMP LBB1_291 - -LBB1_270: - MOVQ R14, BX - CMPQ BX, DX - JAE LBB1_291 - -LBB1_272: - LEAQ 1(BX), SI - MOVBLZX 0(BX), DI - CMPB DI, $92 - JNE LBB1_284 - TESTL R8, R8 - JE LBB1_284 - LEAQ 2(BX), R14 - CMPQ R14, DX - JA LBB1_327 - MOVBLZX 0(SI), CX - CMPB CX, $110 - JE LBB1_270 - CMPB CX, $114 - JE LBB1_270 - CMPB CX, $117 - JNE LBB1_328 - MOVQ DX, AX - SUBQ R14, AX - CMPQ AX, $4 - JL LBB1_328 - MOVL 0(R14), CX - MOVL CX, SI - NOTL SI - LEAL -808464432(CX), AX - ANDL $-2139062144, SI - TESTL AX, SI - JNE LBB1_328 - LEAL 421075225(CX), AX - ORL CX, AX - TESTL $-2139062144, AX - JNE LBB1_328 - MOVL CX, DI - ANDL $2139062143, DI - MOVL $-1061109568, AX - SUBL DI, AX - LEAL 1179010630(DI), R9 - ANDL SI, AX - TESTL R9, AX - JNE LBB1_328 - MOVL $-522133280, AX - SUBL DI, AX - ADDL $960051513, DI - ANDL AX, SI - TESTL DI, SI - JNE LBB1_328 - BSWAPL CX - MOVL CX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, CX - ADDL AX, CX - MOVL CX, DI - SHRL $4, DI - ORL CX, DI - MOVL DI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL DI, CX - ANDL $128, CX - ADDQ $6, BX - ORL AX, CX - MOVQ BX, SI - MOVQ BX, R14 - JNE LBB1_328 - -LBB1_284: - CMPB DI, $10 - JE LBB1_287 - CMPB DI, $13 - JE LBB1_287 - CMPB DI, $61 - JNE LBB1_327 - TESTB R12, R12 - JE LBB1_334 - -LBB1_327: - MOVQ SI, R14 - -LBB1_328: - XORL CX, CX - CMPQ R14, DX - SETEQ CX - ADDQ R14, CX - CMPQ CX, R10 - JNE LBB1_762 - -LBB1_329: - CMPQ R10, -80(BP) - JA LBB1_392 - -LBB1_330: - MOVQ -64(BP), R15 - CMPQ R15, -72(BP) - JBE LBB1_208 - JMP LBB1_393 - -LBB1_288: - MOVL $1, R11 - XORL CX, CX - JMP LBB1_233 - -LBB1_289: - MOVQ SI, R14 - MOVL R15, DI - JMP LBB1_302 - -LBB1_290: - MOVQ CX, R14 - JMP LBB1_302 - -LBB1_291: - MOVQ BX, R14 - -LBB1_292: - MOVB $4, AX - SUBB R11, AX - MOVBLZX AX, AX - ADDL AX, AX - LEAL 0(AX)(AX*2), CX - MOVL R15, AX - SHLL CX, AX - CMPL R11, $2 - MOVQ -64(BP), CX - JE LBB1_297 - CMPL R11, $3 - JE LBB1_296 - CMPL R11, $4 - JNE LBB1_298 - MOVB AX, 2(CX) - -LBB1_296: - MOVB AH, 1(CX) - -LBB1_297: - SHRL $16, AX - MOVB AX, 0(CX) - -LBB1_298: - MOVL R11, AX - ADDQ AX, CX - ADDQ $-1, CX - MOVQ CX, -64(BP) - MOVQ R14, R10 - CMPQ R10, -80(BP) - JBE LBB1_330 - JMP LBB1_392 - -LBB1_299: - CMPB CX, $47 - JNE LBB1_301 - MOVL CX, R13 - -LBB1_301: - MOVQ SI, R14 - -LBB1_302: - MOVBLZX R13, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_324 - SHLL $6, DI - ORL CX, DI - MOVL $2, R11 - CMPQ R14, DX - JB LBB1_306 - JMP LBB1_241 - -LBB1_322: - CMPB CX, $110 - JNE LBB1_356 - -LBB1_304: - MOVQ SI, R14 - -LBB1_305: - CMPQ R14, DX - JAE LBB1_331 - -LBB1_306: - LEAQ 1(R14), CX - MOVBLZX 0(R14), SI - CMPB SI, $92 - JNE LBB1_318 - TESTL R8, R8 - JE LBB1_320 - LEAQ 2(R14), SI - MOVB $-1, R13 - CMPQ SI, DX - JA LBB1_333 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_322 - CMPB CX, $114 - JE LBB1_304 - CMPB CX, $117 - JNE LBB1_358 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_358 - MOVL DI, R11 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_332 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_332 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_332 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_332 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R14 - ORL AX, CX - MOVL R11, DI - JE LBB1_319 - JMP LBB1_359 - -LBB1_318: - MOVQ CX, R14 - -LBB1_319: - CMPB SI, $13 - JNE LBB1_321 - JMP LBB1_305 - -LBB1_320: - MOVQ CX, R14 - CMPB SI, $13 - JE LBB1_305 - -LBB1_321: - MOVL SI, R13 - CMPB SI, $10 - JE LBB1_305 - JMP LBB1_359 - -LBB1_324: - XORL R12, R12 - MOVL $1, R11 - JMP LBB1_265 - -LBB1_331: - MOVL $2, R11 - XORL CX, CX - JMP LBB1_233 - -LBB1_332: - MOVQ SI, R14 - MOVL R11, DI - JMP LBB1_359 - -LBB1_333: - MOVQ CX, R14 - JMP LBB1_359 - -LBB1_334: - CMPQ SI, DX - JB LBB1_338 - -LBB1_335: - MOVQ SI, R14 - JMP LBB1_292 - -LBB1_336: - MOVQ R14, SI - -LBB1_337: - CMPQ SI, DX - JAE LBB1_335 - -LBB1_338: - LEAQ 1(SI), CX - MOVBLZX 0(SI), DI - CMPB DI, $92 - JNE LBB1_351 - TESTL R8, R8 - JE LBB1_351 - LEAQ 2(SI), R14 - CMPQ R14, DX - JA LBB1_391 - MOVBLZX 0(CX), CX - CMPB CX, $110 - JE LBB1_336 - CMPB CX, $114 - JE LBB1_336 - CMPB CX, $117 - JNE LBB1_328 - MOVQ DX, AX - SUBQ R14, AX - CMPQ AX, $4 - JL LBB1_328 - MOVL 0(R14), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_328 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_328 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_328 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_328 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, DI - SHRL $4, DI - ORL BX, DI - MOVL DI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL DI, CX - ANDL $128, CX - ADDQ $6, SI - ORL AX, CX - MOVQ SI, R14 - JE LBB1_352 - JMP LBB1_328 - -LBB1_351: - MOVQ CX, R14 - -LBB1_352: - CMPB DI, $13 - JE LBB1_336 - MOVQ R14, SI - CMPB DI, $10 - JE LBB1_337 - JMP LBB1_328 - -LBB1_356: - CMPB CX, $47 - JNE LBB1_358 - MOVL CX, R13 - -LBB1_358: - MOVQ SI, R14 - -LBB1_359: - MOVBLZX R13, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_381 - SHLL $6, DI - ORL CX, DI - MOVL $3, R11 - CMPQ R14, DX - JB LBB1_363 - JMP LBB1_241 - -LBB1_379: - CMPB CX, $110 - JNE LBB1_384 - -LBB1_361: - MOVQ SI, R14 - -LBB1_362: - MOVL $3, R11 - XORL CX, CX - CMPQ R14, DX - JAE LBB1_233 - -LBB1_363: - LEAQ 1(R14), CX - MOVBLZX 0(R14), SI - CMPB SI, $92 - JNE LBB1_375 - TESTL R8, R8 - JE LBB1_377 - LEAQ 2(R14), SI - MOVB $-1, R13 - CMPQ SI, DX - JA LBB1_383 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_379 - CMPB CX, $114 - JE LBB1_361 - CMPB CX, $117 - JNE LBB1_386 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_386 - MOVL DI, R11 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_382 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_382 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_382 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_382 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R14 - ORL AX, CX - MOVL R11, DI - JE LBB1_376 - JMP LBB1_387 - -LBB1_375: - MOVQ CX, R14 - -LBB1_376: - CMPB SI, $13 - JNE LBB1_378 - JMP LBB1_362 - -LBB1_377: - MOVQ CX, R14 - CMPB SI, $13 - JE LBB1_362 - -LBB1_378: - MOVL SI, R13 - CMPB SI, $10 - JE LBB1_362 - JMP LBB1_387 - -LBB1_381: - XORL R9, R9 - MOVL $2, R11 - XORL R12, R12 - JMP LBB1_265 - -LBB1_382: - MOVQ SI, R14 - MOVL R11, DI - JMP LBB1_387 - -LBB1_383: - MOVQ CX, R14 - JMP LBB1_387 - -LBB1_384: - CMPB CX, $47 - JNE LBB1_386 - MOVL CX, R13 - -LBB1_386: - MOVQ SI, R14 - -LBB1_387: - MOVBLZX R13, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_389 - SHLL $6, DI - ORL CX, DI - MOVL $4, R11 - JMP LBB1_241 - -LBB1_389: - XORL R9, R9 - MOVL $3, R11 - MOVB $1, R12 - JMP LBB1_265 - -LBB1_391: - MOVQ CX, R14 - JMP LBB1_328 - -LBB1_392: - MOVQ -64(BP), R15 - -LBB1_393: - LEAQ -4(DX), R14 - CMPQ R10, R14 - MOVQ R15, -64(BP) - JA LBB1_581 - MOVQ -88(BP), AX - ADDQ $-4, AX - CMPQ R15, AX - JA LBB1_581 - MOVQ AX, R15 - MOVQ AX, -88(BP) - -LBB1_396: - MOVBLZX 0(R10), AX - MOVQ -56(BP), DI - MOVBLZX 0(DI)(AX*1), R9 - MOVBLZX 1(R10), AX - MOVBLZX 0(DI)(AX*1), BX - MOVBLZX 2(R10), CX - MOVBLZX 0(DI)(CX*1), SI - MOVBLZX 3(R10), CX - MOVBLZX 0(DI)(CX*1), CX - MOVL BX, AX - ORL R9, AX - MOVL SI, DI - ORL CX, DI - ORL AX, DI - CMPB DI, $-1 - JE LBB1_398 - SHLL $26, R9 - SHLL $20, BX - ORL R9, BX - SHLL $14, SI - SHLL $8, CX - ORL SI, CX - ORL BX, CX - BSWAPL CX - MOVQ -64(BP), AX - MOVL CX, 0(AX) - ADDQ $4, R10 - ADDQ $3, AX - MOVQ AX, -64(BP) - CMPQ R10, R14 - JBE LBB1_517 - JMP LBB1_581 - -LBB1_398: - CMPQ R10, DX - JAE LBB1_516 - MOVQ R10, R12 - JMP LBB1_402 - -LBB1_418: - CMPB CX, $110 - JNE LBB1_424 - -LBB1_400: - MOVQ SI, R12 - -LBB1_401: - CMPQ R12, DX - JAE LBB1_420 - -LBB1_402: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_414 - TESTL R8, R8 - JE LBB1_416 - LEAQ 2(R12), SI - MOVB $-1, R13 - CMPQ SI, DX - JA LBB1_423 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_418 - CMPB CX, $114 - JE LBB1_400 - CMPB CX, $117 - JNE LBB1_426 - MOVQ DX, CX - SUBQ SI, CX - CMPQ CX, $4 - JL LBB1_426 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), CX - ANDL $-2139062144, DI - TESTL CX, DI - JNE LBB1_426 - LEAL 421075225(BX), CX - ORL BX, CX - TESTL $-2139062144, CX - JNE LBB1_426 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_426 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_426 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - JNE LBB1_427 - CMPB SI, $13 - JNE LBB1_417 - JMP LBB1_401 - -LBB1_414: - MOVQ CX, R12 - CMPB SI, $13 - JNE LBB1_417 - JMP LBB1_401 - -LBB1_416: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_401 - -LBB1_417: - MOVL SI, R13 - CMPB SI, $10 - JE LBB1_401 - JMP LBB1_427 - -LBB1_420: - MOVB $1, CX - XORL R9, R9 - XORL R11, R11 - -LBB1_421: - TESTB CX, CX - JE LBB1_429 - MOVQ R12, R10 - CMPQ R10, R14 - JBE LBB1_517 - JMP LBB1_581 - -LBB1_423: - MOVQ CX, R12 - JMP LBB1_427 - -LBB1_424: - CMPB CX, $47 - JNE LBB1_426 - MOVL CX, R13 - -LBB1_426: - MOVQ SI, R12 - -LBB1_427: - MOVBLZX R13, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), R9 - MOVB $1, AX - CMPL R9, $255 - JE LBB1_452 - MOVL $1, R11 - CMPQ R12, DX - JB LBB1_434 - -LBB1_429: - MOVL R9, R13 - CMPL -44(BP), $0 - SETEQ CX - CMPL R11, $1 - SETEQ BX - CMPQ R12, DX - JB LBB1_479 - CMPL R11, $4 - JE LBB1_479 - ORB BX, CX - JNE LBB1_515 - JMP LBB1_479 - -LBB1_450: - CMPB CX, $110 - JNE LBB1_486 - -LBB1_432: - MOVQ SI, R12 - -LBB1_433: - CMPQ R12, DX - JAE LBB1_476 - -LBB1_434: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_446 - TESTL R8, R8 - JE LBB1_448 - LEAQ 2(R12), SI - MOVB $-1, R13 - CMPQ SI, DX - JA LBB1_477 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_450 - CMPB CX, $114 - JE LBB1_432 - CMPB CX, $117 - JNE LBB1_488 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_488 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_488 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_488 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R11 - ANDL DI, AX - TESTL R11, AX - JNE LBB1_488 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_488 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - JE LBB1_447 - JMP LBB1_489 - -LBB1_446: - MOVQ CX, R12 - -LBB1_447: - CMPB SI, $13 - JNE LBB1_449 - JMP LBB1_433 - -LBB1_448: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_433 - -LBB1_449: - MOVL SI, R13 - CMPB SI, $10 - JE LBB1_433 - JMP LBB1_489 - -LBB1_452: - XORL R9, R9 - XORL R15, R15 - XORL R11, R11 - -LBB1_453: - CMPL -44(BP), $0 - JNE LBB1_515 - CMPB R13, $61 - JNE LBB1_515 - TESTB AX, AX - JNE LBB1_515 - MOVL R9, R13 - CMPQ R12, DX - JAE LBB1_479 - MOVQ R12, BX - JMP LBB1_460 - -LBB1_475: - MOVQ SI, BX - CMPQ BX, DX - JB LBB1_460 - JMP LBB1_478 - -LBB1_458: - MOVQ R12, BX - CMPQ BX, DX - JAE LBB1_478 - -LBB1_460: - LEAQ 1(BX), SI - MOVBLZX 0(BX), DI - CMPB DI, $92 - JNE LBB1_472 - TESTL R8, R8 - JE LBB1_472 - LEAQ 2(BX), R12 - CMPQ R12, DX - JA LBB1_514 - MOVBLZX 0(SI), CX - CMPB CX, $110 - JE LBB1_458 - CMPB CX, $114 - JE LBB1_458 - CMPB CX, $117 - JNE LBB1_515 - MOVQ DX, AX - SUBQ R12, AX - CMPQ AX, $4 - JL LBB1_515 - MOVL 0(R12), CX - MOVL CX, SI - NOTL SI - LEAL -808464432(CX), AX - ANDL $-2139062144, SI - TESTL AX, SI - JNE LBB1_515 - LEAL 421075225(CX), AX - ORL CX, AX - TESTL $-2139062144, AX - JNE LBB1_515 - MOVL CX, DI - ANDL $2139062143, DI - MOVL $-1061109568, AX - SUBL DI, AX - LEAL 1179010630(DI), R9 - ANDL SI, AX - TESTL R9, AX - JNE LBB1_515 - MOVL $-522133280, AX - SUBL DI, AX - ADDL $960051513, DI - ANDL AX, SI - TESTL DI, SI - JNE LBB1_515 - BSWAPL CX - MOVL CX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, CX - ADDL AX, CX - MOVL CX, DI - SHRL $4, DI - ORL CX, DI - MOVL DI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL DI, CX - ANDL $128, CX - ADDQ $6, BX - ORL AX, CX - MOVQ BX, SI - MOVQ BX, R12 - JNE LBB1_515 - -LBB1_472: - CMPB DI, $10 - JE LBB1_475 - CMPB DI, $13 - JE LBB1_475 - CMPB DI, $61 - JNE LBB1_514 - TESTB R15, R15 - JE LBB1_521 - -LBB1_514: - MOVQ SI, R12 - -LBB1_515: - XORL CX, CX - CMPQ R12, DX - SETEQ CX - ADDQ R12, CX - CMPQ CX, R10 - MOVQ -88(BP), R15 - JNE LBB1_762 - -LBB1_516: - CMPQ R10, R14 - JA LBB1_581 - -LBB1_517: - CMPQ -64(BP), R15 - JBE LBB1_396 - JMP LBB1_581 - -LBB1_476: - MOVL $1, R11 - XORL CX, CX - JMP LBB1_421 - -LBB1_477: - MOVQ CX, R12 - JMP LBB1_489 - -LBB1_478: - MOVQ BX, R12 - -LBB1_479: - MOVB $4, AX - SUBB R11, AX - MOVBLZX AX, AX - ADDL AX, AX - LEAL 0(AX)(AX*2), CX - MOVL R13, AX - SHLL CX, AX - CMPL R11, $2 - MOVQ -64(BP), CX - JE LBB1_484 - CMPL R11, $3 - JE LBB1_483 - CMPL R11, $4 - JNE LBB1_485 - MOVB AX, 2(CX) - -LBB1_483: - MOVB AH, 1(CX) - -LBB1_484: - SHRL $16, AX - MOVB AX, 0(CX) - -LBB1_485: - MOVL R11, AX - ADDQ AX, CX - ADDQ $-1, CX - MOVQ CX, -64(BP) - MOVQ R12, R10 - MOVQ -88(BP), R15 - CMPQ R10, R14 - JBE LBB1_517 - JMP LBB1_581 - -LBB1_486: - CMPB CX, $47 - JNE LBB1_488 - MOVL CX, R13 - -LBB1_488: - MOVQ SI, R12 - -LBB1_489: - MOVBLZX R13, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_511 - SHLL $6, R9 - ORL CX, R9 - MOVL $2, R11 - CMPQ R12, DX - JB LBB1_493 - JMP LBB1_429 - -LBB1_509: - CMPB CX, $110 - JNE LBB1_543 - -LBB1_491: - MOVQ SI, R12 - -LBB1_492: - CMPQ R12, DX - JAE LBB1_518 - -LBB1_493: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_505 - TESTL R8, R8 - JE LBB1_507 - LEAQ 2(R12), SI - MOVB $-1, R13 - CMPQ SI, DX - JA LBB1_520 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_509 - CMPB CX, $114 - JE LBB1_491 - CMPB CX, $117 - JNE LBB1_545 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_545 - MOVL R9, R11 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_519 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_519 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_519 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_519 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - MOVL R11, R9 - JE LBB1_506 - JMP LBB1_546 - -LBB1_505: - MOVQ CX, R12 - -LBB1_506: - CMPB SI, $13 - JNE LBB1_508 - JMP LBB1_492 - -LBB1_507: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_492 - -LBB1_508: - MOVL SI, R13 - CMPB SI, $10 - JE LBB1_492 - JMP LBB1_546 - -LBB1_511: - XORL R15, R15 - MOVL $1, R11 - MOVB $1, AX - JMP LBB1_453 - -LBB1_518: - MOVL $2, R11 - XORL CX, CX - JMP LBB1_421 - -LBB1_519: - MOVQ SI, R12 - MOVL R11, R9 - JMP LBB1_546 - -LBB1_520: - MOVQ CX, R12 - JMP LBB1_546 - -LBB1_521: - CMPQ SI, DX - JB LBB1_525 - -LBB1_522: - MOVQ SI, R12 - JMP LBB1_479 - -LBB1_523: - MOVQ R12, SI - -LBB1_524: - CMPQ SI, DX - JAE LBB1_522 - -LBB1_525: - LEAQ 1(SI), CX - MOVBLZX 0(SI), DI - CMPB DI, $92 - JNE LBB1_538 - TESTL R8, R8 - JE LBB1_538 - LEAQ 2(SI), R12 - CMPQ R12, DX - JA LBB1_578 - MOVBLZX 0(CX), CX - CMPB CX, $110 - JE LBB1_523 - CMPB CX, $114 - JE LBB1_523 - CMPB CX, $117 - JNE LBB1_515 - MOVQ DX, AX - SUBQ R12, AX - CMPQ AX, $4 - JL LBB1_515 - MOVL 0(R12), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_515 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_515 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_515 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_515 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, DI - SHRL $4, DI - ORL BX, DI - MOVL DI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL DI, CX - ANDL $128, CX - ADDQ $6, SI - ORL AX, CX - MOVQ SI, R12 - JE LBB1_539 - JMP LBB1_515 - -LBB1_538: - MOVQ CX, R12 - -LBB1_539: - CMPB DI, $13 - JE LBB1_523 - MOVQ R12, SI - CMPB DI, $10 - JE LBB1_524 - JMP LBB1_515 - -LBB1_543: - CMPB CX, $47 - JNE LBB1_545 - MOVL CX, R13 - -LBB1_545: - MOVQ SI, R12 - -LBB1_546: - MOVBLZX R13, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_568 - SHLL $6, R9 - ORL CX, R9 - MOVL $3, R11 - CMPQ R12, DX - JB LBB1_550 - JMP LBB1_429 - -LBB1_566: - CMPB CX, $110 - JNE LBB1_571 - -LBB1_548: - MOVQ SI, R12 - -LBB1_549: - MOVL $3, R11 - XORL CX, CX - CMPQ R12, DX - JAE LBB1_421 - -LBB1_550: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_562 - TESTL R8, R8 - JE LBB1_564 - LEAQ 2(R12), SI - MOVB $-1, R13 - CMPQ SI, DX - JA LBB1_570 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_566 - CMPB CX, $114 - JE LBB1_548 - CMPB CX, $117 - JNE LBB1_573 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_573 - MOVL R9, R11 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_569 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_569 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_569 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_569 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - MOVL R11, R9 - JE LBB1_563 - JMP LBB1_574 - -LBB1_562: - MOVQ CX, R12 - -LBB1_563: - CMPB SI, $13 - JNE LBB1_565 - JMP LBB1_549 - -LBB1_564: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_549 - -LBB1_565: - MOVL SI, R13 - CMPB SI, $10 - JE LBB1_549 - JMP LBB1_574 - -LBB1_568: - XORL AX, AX - MOVL $2, R11 - XORL R15, R15 - JMP LBB1_453 - -LBB1_569: - MOVQ SI, R12 - MOVL R11, R9 - JMP LBB1_574 - -LBB1_570: - MOVQ CX, R12 - JMP LBB1_574 - -LBB1_571: - CMPB CX, $47 - JNE LBB1_573 - MOVL CX, R13 - -LBB1_573: - MOVQ SI, R12 - -LBB1_574: - MOVBLZX R13, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_576 - SHLL $6, R9 - ORL CX, R9 - MOVL $4, R11 - JMP LBB1_429 - -LBB1_576: - XORL AX, AX - MOVL $3, R11 - MOVB $1, R15 - JMP LBB1_453 - -LBB1_578: - MOVQ CX, R12 - JMP LBB1_515 - -LBB1_579: - MOVQ BX, R12 - -LBB1_580: - XORL CX, CX - CMPQ R12, DX - SETEQ CX - ADDQ R12, CX - SUBQ R10, CX - TESTQ CX, CX - JNE LBB1_761 - -LBB1_581: - CMPQ R10, DX - JAE LBB1_760 - MOVQ R10, R12 - JMP LBB1_585 - -LBB1_601: - CMPB CX, $110 - JNE LBB1_606 - -LBB1_583: - MOVQ SI, R12 - -LBB1_584: - CMPQ R12, DX - JAE LBB1_603 - -LBB1_585: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_597 - TESTL R8, R8 - JE LBB1_599 - LEAQ 2(R12), SI - MOVB $-1, R15 - CMPQ SI, DX - JA LBB1_605 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_601 - CMPB CX, $114 - JE LBB1_583 - CMPB CX, $117 - JNE LBB1_608 - MOVQ DX, CX - SUBQ SI, CX - CMPQ CX, $4 - JL LBB1_608 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), CX - ANDL $-2139062144, DI - TESTL CX, DI - JNE LBB1_608 - LEAL 421075225(BX), CX - ORL BX, CX - TESTL $-2139062144, CX - JNE LBB1_608 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_608 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_608 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - JNE LBB1_609 - CMPB SI, $13 - JNE LBB1_600 - JMP LBB1_584 - -LBB1_597: - MOVQ CX, R12 - CMPB SI, $13 - JNE LBB1_600 - JMP LBB1_584 - -LBB1_599: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_584 - -LBB1_600: - MOVL SI, R15 - CMPB SI, $10 - JE LBB1_584 - JMP LBB1_609 - -LBB1_603: - MOVB $1, CX - XORL BX, BX - XORL R11, R11 - -LBB1_604: - TESTB CX, CX - JE LBB1_611 - MOVQ R12, R10 - XORL CX, CX - TESTQ CX, CX - JE LBB1_581 - JMP LBB1_761 - -LBB1_605: - MOVQ CX, R12 - JMP LBB1_609 - -LBB1_606: - CMPB CX, $47 - JNE LBB1_608 - MOVL CX, R15 - -LBB1_608: - MOVQ SI, R12 - -LBB1_609: - MOVBLZX R15, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), BX - MOVB $1, R14 - CMPL BX, $255 - JE LBB1_635 - MOVL $1, R11 - CMPQ R12, DX - JB LBB1_617 - -LBB1_611: - MOVL BX, R15 - -LBB1_612: - CMPL -44(BP), $0 - SETEQ CX - CMPL R11, $1 - SETEQ BX - CMPQ R12, DX - JB LBB1_663 - CMPL R11, $4 - JE LBB1_663 - ORB BX, CX - JNE LBB1_580 - JMP LBB1_663 - -LBB1_633: - CMPB CX, $110 - JNE LBB1_671 - -LBB1_615: - MOVQ DI, R12 - -LBB1_616: - CMPQ R12, DX - JAE LBB1_659 - -LBB1_617: - LEAQ 1(R12), CX - MOVBLZX 0(R12), DI - CMPB DI, $92 - JNE LBB1_629 - TESTL R8, R8 - JE LBB1_631 - LEAQ 2(R12), DI - MOVB $-1, R15 - CMPQ DI, DX - JA LBB1_661 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_633 - CMPB CX, $114 - JE LBB1_615 - CMPB CX, $117 - JNE LBB1_673 - MOVQ DX, AX - SUBQ DI, AX - CMPQ AX, $4 - JL LBB1_673 - MOVL BX, R11 - MOVL 0(DI), BX - MOVL BX, SI - NOTL SI - LEAL -808464432(BX), AX - ANDL $-2139062144, SI - TESTL AX, SI - JNE LBB1_660 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_660 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL SI, AX - TESTL R9, AX - JNE LBB1_660 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, SI - TESTL CX, SI - JNE LBB1_660 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, DI - SHRL $4, DI - ORL BX, DI - MOVL DI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL DI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - MOVL R11, BX - JNE LBB1_674 - CMPB DI, $13 - JNE LBB1_632 - JMP LBB1_616 - -LBB1_629: - MOVQ CX, R12 - CMPB DI, $13 - JNE LBB1_632 - JMP LBB1_616 - -LBB1_631: - MOVQ CX, R12 - CMPB DI, $13 - JE LBB1_616 - -LBB1_632: - MOVL DI, R15 - CMPB DI, $10 - JE LBB1_616 - JMP LBB1_674 - -LBB1_635: - XORL BX, BX - XORL R9, R9 - XORL R11, R11 - -LBB1_636: - CMPL -44(BP), $0 - JNE LBB1_580 - CMPB R15, $61 - JNE LBB1_580 - TESTB R14, R14 - JNE LBB1_580 - MOVL BX, R15 - CMPQ R12, DX - JAE LBB1_663 - MOVQ R12, SI - JMP LBB1_643 - -LBB1_658: - MOVQ BX, SI - CMPQ SI, DX - JB LBB1_643 - JMP LBB1_662 - -LBB1_641: - MOVQ R12, SI - CMPQ SI, DX - JAE LBB1_662 - -LBB1_643: - LEAQ 1(SI), BX - MOVBLZX 0(SI), DI - CMPB DI, $92 - JNE LBB1_655 - TESTL R8, R8 - JE LBB1_655 - LEAQ 2(SI), R12 - CMPQ R12, DX - JA LBB1_579 - MOVBLZX 0(BX), CX - CMPB CX, $110 - JE LBB1_641 - CMPB CX, $114 - JE LBB1_641 - CMPB CX, $117 - JNE LBB1_580 - MOVQ DX, AX - SUBQ R12, AX - CMPQ AX, $4 - JL LBB1_580 - MOVL 0(R12), CX - MOVL CX, DI - NOTL DI - LEAL -808464432(CX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_580 - LEAL 421075225(CX), AX - ORL CX, AX - TESTL $-2139062144, AX - JNE LBB1_580 - MOVL CX, BX - ANDL $2139062143, BX - MOVL $-1061109568, AX - SUBL BX, AX - LEAL 1179010630(BX), R14 - ANDL DI, AX - TESTL R14, AX - JNE LBB1_580 - MOVL $-522133280, AX - SUBL BX, AX - ADDL $960051513, BX - ANDL AX, DI - TESTL BX, DI - JNE LBB1_580 - BSWAPL CX - MOVL CX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, CX - ADDL AX, CX - MOVL CX, DI - SHRL $4, DI - ORL CX, DI - MOVL DI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL DI, CX - ANDL $128, CX - ADDQ $6, SI - ORL AX, CX - MOVQ SI, BX - MOVQ SI, R12 - JNE LBB1_580 - -LBB1_655: - CMPB DI, $10 - JE LBB1_658 - CMPB DI, $13 - JE LBB1_658 - CMPB DI, $61 - JNE LBB1_579 - TESTB R9, R9 - JNE LBB1_579 - CMPQ BX, DX - JB LBB1_706 - -LBB1_700: - MOVQ BX, R12 - JMP LBB1_663 - -LBB1_659: - MOVL $1, R11 - XORL CX, CX - JMP LBB1_604 - -LBB1_660: - MOVQ DI, R12 - MOVL R11, BX - JMP LBB1_674 - -LBB1_661: - MOVQ CX, R12 - JMP LBB1_674 - -LBB1_662: - MOVQ SI, R12 - -LBB1_663: - MOVB $4, AX - SUBB R11, AX - MOVBLZX AX, AX - ADDL AX, AX - LEAL 0(AX)(AX*2), CX - MOVL R15, AX - SHLL CX, AX - CMPL R11, $2 - MOVQ -64(BP), CX - JE LBB1_668 - CMPL R11, $3 - JE LBB1_667 - CMPL R11, $4 - JNE LBB1_669 - MOVB AX, 2(CX) - -LBB1_667: - MOVB AH, 1(CX) - -LBB1_668: - SHRL $16, AX - MOVB AX, 0(CX) - -LBB1_669: - MOVL R11, AX - ADDQ AX, CX - ADDQ $-1, CX - MOVQ CX, -64(BP) - MOVQ R12, R10 - XORL CX, CX - TESTQ CX, CX - JE LBB1_581 - JMP LBB1_761 - -LBB1_671: - CMPB CX, $47 - JNE LBB1_673 - MOVL CX, R15 - -LBB1_673: - MOVQ DI, R12 - -LBB1_674: - MOVBLZX R15, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_696 - SHLL $6, BX - ORL CX, BX - MOVL $2, R11 - CMPQ R12, DX - JB LBB1_678 - JMP LBB1_611 - -LBB1_694: - CMPB CX, $110 - JNE LBB1_724 - -LBB1_676: - MOVQ SI, R12 - -LBB1_677: - CMPQ R12, DX - JAE LBB1_701 - -LBB1_678: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_690 - TESTL R8, R8 - JE LBB1_692 - LEAQ 2(R12), SI - MOVB $-1, R15 - CMPQ SI, DX - JA LBB1_703 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_694 - CMPB CX, $114 - JE LBB1_676 - CMPB CX, $117 - JNE LBB1_726 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_726 - MOVL BX, R11 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_702 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_702 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_702 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_702 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - MOVL R11, BX - JE LBB1_691 - JMP LBB1_727 - -LBB1_690: - MOVQ CX, R12 - -LBB1_691: - CMPB SI, $13 - JNE LBB1_693 - JMP LBB1_677 - -LBB1_692: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_677 - -LBB1_693: - MOVL SI, R15 - CMPB SI, $10 - JE LBB1_677 - JMP LBB1_727 - -LBB1_696: - XORL R9, R9 - MOVL $1, R11 - JMP LBB1_636 - -LBB1_704: - MOVQ R12, BX - -LBB1_705: - CMPQ BX, DX - JAE LBB1_700 - -LBB1_706: - LEAQ 1(BX), CX - MOVBLZX 0(BX), SI - CMPB SI, $92 - JNE LBB1_718 - TESTL R8, R8 - JE LBB1_720 - LEAQ 2(BX), R12 - CMPQ R12, DX - JA LBB1_759 - MOVBLZX 0(CX), CX - CMPB CX, $110 - JE LBB1_704 - CMPB CX, $114 - JE LBB1_704 - CMPB CX, $117 - JNE LBB1_580 - MOVQ DX, AX - SUBQ R12, AX - CMPQ AX, $4 - JL LBB1_580 - MOVL 0(R12), CX - MOVL CX, SI - NOTL SI - LEAL -808464432(CX), AX - ANDL $-2139062144, SI - TESTL AX, SI - JNE LBB1_580 - LEAL 421075225(CX), AX - ORL CX, AX - TESTL $-2139062144, AX - JNE LBB1_580 - MOVL CX, DI - ANDL $2139062143, DI - MOVL $-1061109568, AX - SUBL DI, AX - LEAL 1179010630(DI), R9 - ANDL SI, AX - TESTL R9, AX - JNE LBB1_580 - MOVL $-522133280, AX - SUBL DI, AX - ADDL $960051513, DI - ANDL AX, SI - TESTL DI, SI - JNE LBB1_580 - BSWAPL CX - MOVL CX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, CX - ADDL AX, CX - MOVL CX, SI - SHRL $4, SI - ORL CX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, BX - ORL AX, CX - MOVQ BX, R12 - JE LBB1_719 - JMP LBB1_580 - -LBB1_718: - MOVQ CX, R12 - -LBB1_719: - CMPB SI, $13 - JNE LBB1_721 - JMP LBB1_704 - -LBB1_720: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_704 - -LBB1_721: - MOVQ R12, BX - CMPB SI, $10 - JE LBB1_705 - JMP LBB1_580 - -LBB1_701: - MOVL $2, R11 - XORL CX, CX - JMP LBB1_604 - -LBB1_702: - MOVQ SI, R12 - MOVL R11, BX - JMP LBB1_727 - -LBB1_703: - MOVQ CX, R12 - JMP LBB1_727 - -LBB1_724: - CMPB CX, $47 - JNE LBB1_726 - MOVL CX, R15 - -LBB1_726: - MOVQ SI, R12 - -LBB1_727: - MOVBLZX R15, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_749 - SHLL $6, BX - ORL CX, BX - MOVL $3, R11 - CMPQ R12, DX - JB LBB1_731 - JMP LBB1_611 - -LBB1_747: - CMPB CX, $110 - JNE LBB1_752 - -LBB1_729: - MOVQ SI, R12 - -LBB1_730: - MOVL $3, R11 - XORL CX, CX - CMPQ R12, DX - JAE LBB1_604 - -LBB1_731: - LEAQ 1(R12), CX - MOVBLZX 0(R12), SI - CMPB SI, $92 - JNE LBB1_743 - TESTL R8, R8 - JE LBB1_745 - LEAQ 2(R12), SI - MOVB $-1, R15 - CMPQ SI, DX - JA LBB1_751 - MOVBLZX 0(CX), CX - CMPB CX, $113 - JLE LBB1_747 - CMPB CX, $114 - JE LBB1_729 - CMPB CX, $117 - JNE LBB1_754 - MOVQ DX, AX - SUBQ SI, AX - CMPQ AX, $4 - JL LBB1_754 - MOVL BX, R11 - MOVL 0(SI), BX - MOVL BX, DI - NOTL DI - LEAL -808464432(BX), AX - ANDL $-2139062144, DI - TESTL AX, DI - JNE LBB1_750 - LEAL 421075225(BX), AX - ORL BX, AX - TESTL $-2139062144, AX - JNE LBB1_750 - MOVL BX, CX - ANDL $2139062143, CX - MOVL $-1061109568, AX - SUBL CX, AX - LEAL 1179010630(CX), R9 - ANDL DI, AX - TESTL R9, AX - JNE LBB1_750 - MOVL $-522133280, AX - SUBL CX, AX - ADDL $960051513, CX - ANDL AX, DI - TESTL CX, DI - JNE LBB1_750 - BSWAPL BX - MOVL BX, AX - SHRL $4, AX - NOTL AX - ANDL $16843009, AX - LEAL 0(AX)(AX*8), AX - ANDL $252645135, BX - ADDL AX, BX - MOVL BX, SI - SHRL $4, SI - ORL BX, SI - MOVL SI, AX - SHRL $8, AX - ANDL $65280, AX - MOVL SI, CX - ANDL $128, CX - ADDQ $6, R12 - ORL AX, CX - MOVL R11, BX - JE LBB1_744 - JMP LBB1_755 - -LBB1_743: - MOVQ CX, R12 - -LBB1_744: - CMPB SI, $13 - JNE LBB1_746 - JMP LBB1_730 - -LBB1_745: - MOVQ CX, R12 - CMPB SI, $13 - JE LBB1_730 - -LBB1_746: - MOVL SI, R15 - CMPB SI, $10 - JE LBB1_730 - JMP LBB1_755 - -LBB1_749: - XORL R14, R14 - MOVL $2, R11 - XORL R9, R9 - JMP LBB1_636 - -LBB1_750: - MOVQ SI, R12 - MOVL R11, BX - JMP LBB1_755 - -LBB1_751: - MOVQ CX, R12 - JMP LBB1_755 - -LBB1_752: - CMPB CX, $47 - JNE LBB1_754 - MOVL CX, R15 - -LBB1_754: - MOVQ SI, R12 - -LBB1_755: - MOVBLZX R15, AX - MOVQ -56(BP), CX - MOVBLZX 0(CX)(AX*1), CX - CMPL CX, $255 - JE LBB1_757 - SHLL $6, BX - ORL CX, BX - MOVL BX, R15 - MOVL $4, R11 - JMP LBB1_612 - -LBB1_757: - XORL R14, R14 - MOVL $3, R11 - MOVB $1, R9 - JMP LBB1_636 - -LBB1_759: - MOVQ CX, R12 - JMP LBB1_580 - -LBB1_760: - MOVQ -64(BP), CX - SUBQ -112(BP), CX - MOVQ -120(BP), AX - ADDQ CX, 8(AX) - MOVQ CX, AX - JMP LBB1_763 - -LBB1_761: - ADDQ R10, CX - -LBB1_762: - MOVQ -96(BP), AX - SUBQ CX, AX - -LBB1_763: - ADDQ $80, SP - BYTE $0x5b // popq %rbx - WORD $0x5c41 // popq %r12 - WORD $0x5d41 // popq %r13 - WORD $0x5e41 // popq %r14 - WORD $0x5f41 // popq %r15 - BYTE $0x5d // popq %rbp - WORD $0xf8c5; BYTE $0x77 // vzeroupper - RET - -_TabEncodeCharsetStd: - QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP' - QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef' - QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv' - QUAD $0x333231307a797877; QUAD $0x2f2b393837363534 // .ascii 16, 'wxyz0123456789+/' - -_TabEncodeCharsetURL: - QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP' - QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef' - QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv' - QUAD $0x333231307a797877; QUAD $0x5f2d393837363534 // .ascii 16, 'wxyz0123456789-_' - -_VecDecodeCharsetStd: - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0x3fffffff3effffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff\xff?' - QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff' - QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' - QUAD $0x161514131211100f; QUAD $0xffffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff\xff' - QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'(' - QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - -_VecDecodeCharsetURL: - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffff3effffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff' - QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff' - QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' - QUAD $0x161514131211100f; QUAD $0x3fffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff?' - QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'(' - QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - -TEXT ·__b64decode(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_b64decode: - MOVQ out+0(FP), DI - MOVQ src+8(FP), SI - MOVQ len+16(FP), DX - MOVQ mode+24(FP), CX - CALL ·__native_entry__+1563(SB) // _b64decode - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__b64encode(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -40(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_b64encode: - MOVQ out+0(FP), DI - MOVQ src+8(FP), SI - MOVQ mode+16(FP), DX - LEAQ ·__native_entry__+301(SB), AX // _b64encode - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry diff --git a/vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go b/vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go index f18de543..3bcb0900 100644 --- a/vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go +++ b/vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go @@ -3,27 +3,61 @@ package base64x -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr +import ( + `github.com/bytedance/sonic/loader` +) -var ( - _subr__b64decode = __native_entry__() + 1563 - _subr__b64encode = __native_entry__() + 301 +const ( + _entry__b64decode = 1328 + _entry__b64encode = 256 ) const ( - _stack__b64decode = 128 + _stack__b64decode = 152 _stack__b64encode = 40 ) -var ( - _ = _subr__b64decode - _ = _subr__b64encode +const ( + _size__b64decode = 17616 + _size__b64encode = 864 ) -const ( - _ = _stack__b64decode - _ = _stack__b64encode +var ( + _pcsp__b64decode = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {17560, 152}, + {17564, 48}, + {17565, 40}, + {17567, 32}, + {17569, 24}, + {17571, 16}, + {17573, 8}, + {17577, 0}, + {17608, 152}, + } + _pcsp__b64encode = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {852, 40}, + {853, 32}, + {855, 24}, + {857, 16}, + {859, 8}, + {864, 0}, + } ) + +var funcs = []loader.CFunc{ + {"__native_entry__", 0, 67, 0, nil}, + {"_b64decode", _entry__b64decode, _size__b64decode, _stack__b64decode, _pcsp__b64decode}, + {"_b64encode", _entry__b64encode, _size__b64encode, _stack__b64encode, _pcsp__b64encode}, +} diff --git a/vendor/github.com/chenzhuoyu/base64x/native_text_amd64.go b/vendor/github.com/chenzhuoyu/base64x/native_text_amd64.go new file mode 100644 index 00000000..fcfb2194 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/base64x/native_text_amd64.go @@ -0,0 +1,5305 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package base64x + +var text__native_entry__ = []byte{ + 0x48, 0x8d, 0x05, 0xf9, 0xff, 0xff, 0xff, // leaq $-7(%rip), %rax + 0x48, 0x89, 0x44, 0x24, 0x08, //0x00000007 movq %rax, $8(%rsp) + 0xc3, //0x0000000c retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000000d .p2align 5, 0x00 + //0x00000020 LCPI0_0 + 0x01, //0x00000020 .byte 1 + 0x00, //0x00000021 .byte 0 + 0x02, //0x00000022 .byte 2 + 0x01, //0x00000023 .byte 1 + 0x04, //0x00000024 .byte 4 + 0x03, //0x00000025 .byte 3 + 0x05, //0x00000026 .byte 5 + 0x04, //0x00000027 .byte 4 + 0x07, //0x00000028 .byte 7 + 0x06, //0x00000029 .byte 6 + 0x08, //0x0000002a .byte 8 + 0x07, //0x0000002b .byte 7 + 0x0a, //0x0000002c .byte 10 + 0x09, //0x0000002d .byte 9 + 0x0b, //0x0000002e .byte 11 + 0x0a, //0x0000002f .byte 10 + 0x01, //0x00000030 .byte 1 + 0x00, //0x00000031 .byte 0 + 0x02, //0x00000032 .byte 2 + 0x01, //0x00000033 .byte 1 + 0x04, //0x00000034 .byte 4 + 0x03, //0x00000035 .byte 3 + 0x05, //0x00000036 .byte 5 + 0x04, //0x00000037 .byte 4 + 0x07, //0x00000038 .byte 7 + 0x06, //0x00000039 .byte 6 + 0x08, //0x0000003a .byte 8 + 0x07, //0x0000003b .byte 7 + 0x0a, //0x0000003c .byte 10 + 0x09, //0x0000003d .byte 9 + 0x0b, //0x0000003e .byte 11 + 0x0a, //0x0000003f .byte 10 + //0x00000040 LCPI0_1 + 0x00, 0xfc, //0x00000040 .word 64512 + 0xc0, 0x0f, //0x00000042 .word 4032 + 0x00, 0xfc, //0x00000044 .word 64512 + 0xc0, 0x0f, //0x00000046 .word 4032 + 0x00, 0xfc, //0x00000048 .word 64512 + 0xc0, 0x0f, //0x0000004a .word 4032 + 0x00, 0xfc, //0x0000004c .word 64512 + 0xc0, 0x0f, //0x0000004e .word 4032 + 0x00, 0xfc, //0x00000050 .word 64512 + 0xc0, 0x0f, //0x00000052 .word 4032 + 0x00, 0xfc, //0x00000054 .word 64512 + 0xc0, 0x0f, //0x00000056 .word 4032 + 0x00, 0xfc, //0x00000058 .word 64512 + 0xc0, 0x0f, //0x0000005a .word 4032 + 0x00, 0xfc, //0x0000005c .word 64512 + 0xc0, 0x0f, //0x0000005e .word 4032 + //0x00000060 LCPI0_2 + 0x40, 0x00, //0x00000060 .word 64 + 0x00, 0x04, //0x00000062 .word 1024 + 0x40, 0x00, //0x00000064 .word 64 + 0x00, 0x04, //0x00000066 .word 1024 + 0x40, 0x00, //0x00000068 .word 64 + 0x00, 0x04, //0x0000006a .word 1024 + 0x40, 0x00, //0x0000006c .word 64 + 0x00, 0x04, //0x0000006e .word 1024 + 0x40, 0x00, //0x00000070 .word 64 + 0x00, 0x04, //0x00000072 .word 1024 + 0x40, 0x00, //0x00000074 .word 64 + 0x00, 0x04, //0x00000076 .word 1024 + 0x40, 0x00, //0x00000078 .word 64 + 0x00, 0x04, //0x0000007a .word 1024 + 0x40, 0x00, //0x0000007c .word 64 + 0x00, 0x04, //0x0000007e .word 1024 + //0x00000080 LCPI0_3 + 0xf0, 0x03, //0x00000080 .word 1008 + 0x3f, 0x00, //0x00000082 .word 63 + 0xf0, 0x03, //0x00000084 .word 1008 + 0x3f, 0x00, //0x00000086 .word 63 + 0xf0, 0x03, //0x00000088 .word 1008 + 0x3f, 0x00, //0x0000008a .word 63 + 0xf0, 0x03, //0x0000008c .word 1008 + 0x3f, 0x00, //0x0000008e .word 63 + 0xf0, 0x03, //0x00000090 .word 1008 + 0x3f, 0x00, //0x00000092 .word 63 + 0xf0, 0x03, //0x00000094 .word 1008 + 0x3f, 0x00, //0x00000096 .word 63 + 0xf0, 0x03, //0x00000098 .word 1008 + 0x3f, 0x00, //0x0000009a .word 63 + 0xf0, 0x03, //0x0000009c .word 1008 + 0x3f, 0x00, //0x0000009e .word 63 + //0x000000a0 LCPI0_4 + 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, //0x000000a0 QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a' + 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, //0x000000b0 QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a' + //0x000000c0 LCPI0_5 + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000000c0 QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333' + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000000d0 QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333' + //0x000000e0 LCPI0_6 + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, //0x000000e0 QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r' + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, //0x000000f0 QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r' + //0x00000100 .p2align 4, 0x90 + //0x00000100 _b64encode + 0x55, //0x00000100 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000101 movq %rsp, %rbp + 0x41, 0x57, //0x00000104 pushq %r15 + 0x41, 0x56, //0x00000106 pushq %r14 + 0x41, 0x54, //0x00000108 pushq %r12 + 0x53, //0x0000010a pushq %rbx + 0x4c, 0x8b, 0x4e, 0x08, //0x0000010b movq $8(%rsi), %r9 + 0x4d, 0x85, 0xc9, //0x0000010f testq %r9, %r9 + 0x0f, 0x84, 0x3c, 0x03, 0x00, 0x00, //0x00000112 je LBB0_26 + 0x4c, 0x8b, 0x07, //0x00000118 movq (%rdi), %r8 + 0x4c, 0x03, 0x47, 0x08, //0x0000011b addq $8(%rdi), %r8 + 0x4c, 0x8b, 0x26, //0x0000011f movq (%rsi), %r12 + 0x4d, 0x01, 0xe1, //0x00000122 addq %r12, %r9 + 0xf6, 0xc2, 0x01, //0x00000125 testb $1, %dl + 0x48, 0x8d, 0x0d, 0x11, 0x49, 0x00, 0x00, //0x00000128 leaq $18705(%rip), %rcx /* _VecEncodeCharsetStd+0(%rip) */ + 0x4c, 0x8d, 0x15, 0x6a, 0x49, 0x00, 0x00, //0x0000012f leaq $18794(%rip), %r10 /* _VecEncodeCharsetURL+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xd1, //0x00000136 cmoveq %rcx, %r10 + 0x48, 0x8d, 0x0d, 0xbf, 0x48, 0x00, 0x00, //0x0000013a leaq $18623(%rip), %rcx /* _TabEncodeCharsetStd+0(%rip) */ + 0x4c, 0x8d, 0x1d, 0x18, 0x49, 0x00, 0x00, //0x00000141 leaq $18712(%rip), %r11 /* _TabEncodeCharsetURL+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xd9, //0x00000148 cmoveq %rcx, %r11 + 0xf6, 0xc2, 0x04, //0x0000014c testb $4, %dl + 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x0000014f je LBB0_2 + 0x49, 0x8d, 0x71, 0xe4, //0x00000155 leaq $-28(%r9), %rsi + 0x49, 0x39, 0xf4, //0x00000159 cmpq %rsi, %r12 + 0x0f, 0x87, 0x4e, 0x02, 0x00, 0x00, //0x0000015c ja LBB0_4 + 0xc4, 0xc1, 0x7e, 0x6f, 0x02, //0x00000162 vmovdqu (%r10), %ymm0 + 0xc5, 0xfd, 0x6f, 0x0d, 0xb1, 0xfe, 0xff, 0xff, //0x00000167 vmovdqa $-335(%rip), %ymm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0xc9, 0xfe, 0xff, 0xff, //0x0000016f vmovdqa $-311(%rip), %ymm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x1d, 0xe1, 0xfe, 0xff, 0xff, //0x00000177 vmovdqa $-287(%rip), %ymm3 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0xf9, 0xfe, 0xff, 0xff, //0x0000017f vmovdqa $-263(%rip), %ymm4 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x11, 0xff, 0xff, 0xff, //0x00000187 vmovdqa $-239(%rip), %ymm5 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x29, 0xff, 0xff, 0xff, //0x0000018f vmovdqa $-215(%rip), %ymm6 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x3d, 0x41, 0xff, 0xff, 0xff, //0x00000197 vmovdqa $-191(%rip), %ymm7 /* LCPI0_6+0(%rip) */ + 0x4d, 0x89, 0xc6, //0x0000019f movq %r8, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001a2 .p2align 4, 0x90 + //0x000001b0 LBB0_6 + 0xc4, 0x41, 0x7a, 0x6f, 0x04, 0x24, //0x000001b0 vmovdqu (%r12), %xmm8 + 0xc4, 0x43, 0x3d, 0x38, 0x44, 0x24, 0x0c, 0x01, //0x000001b6 vinserti128 $1, $12(%r12), %ymm8, %ymm8 + 0xc4, 0x62, 0x3d, 0x00, 0xc1, //0x000001be vpshufb %ymm1, %ymm8, %ymm8 + 0xc5, 0x3d, 0xdb, 0xca, //0x000001c3 vpand %ymm2, %ymm8, %ymm9 + 0xc5, 0x35, 0xe4, 0xcb, //0x000001c7 vpmulhuw %ymm3, %ymm9, %ymm9 + 0xc5, 0x3d, 0xdb, 0xc4, //0x000001cb vpand %ymm4, %ymm8, %ymm8 + 0xc4, 0xc1, 0x2d, 0x71, 0xf0, 0x08, //0x000001cf vpsllw $8, %ymm8, %ymm10 + 0xc4, 0xc1, 0x3d, 0x71, 0xf0, 0x04, //0x000001d5 vpsllw $4, %ymm8, %ymm8 + 0xc4, 0x43, 0x3d, 0x0e, 0xc2, 0xaa, //0x000001db vpblendw $170, %ymm10, %ymm8, %ymm8 + 0xc4, 0x41, 0x3d, 0xeb, 0xc1, //0x000001e1 vpor %ymm9, %ymm8, %ymm8 + 0xc4, 0x41, 0x55, 0x64, 0xc8, //0x000001e6 vpcmpgtb %ymm8, %ymm5, %ymm9 + 0xc5, 0x35, 0xdb, 0xcf, //0x000001eb vpand %ymm7, %ymm9, %ymm9 + 0xc5, 0x3d, 0xd8, 0xd6, //0x000001ef vpsubusb %ymm6, %ymm8, %ymm10 + 0xc4, 0x41, 0x35, 0xeb, 0xca, //0x000001f3 vpor %ymm10, %ymm9, %ymm9 + 0xc4, 0x42, 0x7d, 0x00, 0xc9, //0x000001f8 vpshufb %ymm9, %ymm0, %ymm9 + 0xc4, 0x41, 0x35, 0xfc, 0xc0, //0x000001fd vpaddb %ymm8, %ymm9, %ymm8 + 0xc4, 0x41, 0x7e, 0x7f, 0x06, //0x00000202 vmovdqu %ymm8, (%r14) + 0x49, 0x83, 0xc6, 0x20, //0x00000207 addq $32, %r14 + 0x49, 0x83, 0xc4, 0x18, //0x0000020b addq $24, %r12 + 0x49, 0x39, 0xf4, //0x0000020f cmpq %rsi, %r12 + 0x0f, 0x86, 0x98, 0xff, 0xff, 0xff, //0x00000212 jbe LBB0_6 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00000218 jmp LBB0_7 + //0x0000021d LBB0_2 + 0x4d, 0x89, 0xc6, //0x0000021d movq %r8, %r14 + //0x00000220 LBB0_7 + 0x49, 0x8d, 0x71, 0xe8, //0x00000220 leaq $-24(%r9), %rsi + 0x49, 0x39, 0xf4, //0x00000224 cmpq %rsi, %r12 + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00000227 ja LBB0_10 + //0x0000022d LBB0_8 + 0x89, 0xd6, //0x0000022d movl %edx, %esi + 0x83, 0xe6, 0x04, //0x0000022f andl $4, %esi + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00000232 je LBB0_10 + 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x24, //0x00000238 vmovdqu (%r12), %xmm0 + 0xc4, 0xc1, 0x7a, 0x6f, 0x4c, 0x24, 0x08, //0x0000023e vmovdqu $8(%r12), %xmm1 + 0xc5, 0xf1, 0x73, 0xd9, 0x04, //0x00000245 vpsrldq $4, %xmm1, %xmm1 + 0xc4, 0xe3, 0x7d, 0x38, 0xc1, 0x01, //0x0000024a vinserti128 $1, %xmm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x00, 0x05, 0xc7, 0xfd, 0xff, 0xff, //0x00000250 vpshufb $-569(%rip), %ymm0, %ymm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfd, 0xdb, 0x0d, 0xdf, 0xfd, 0xff, 0xff, //0x00000259 vpand $-545(%rip), %ymm0, %ymm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf5, 0xe4, 0x0d, 0xf7, 0xfd, 0xff, 0xff, //0x00000261 vpmulhuw $-521(%rip), %ymm1, %ymm1 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfd, 0xdb, 0x05, 0x0f, 0xfe, 0xff, 0xff, //0x00000269 vpand $-497(%rip), %ymm0, %ymm0 /* LCPI0_3+0(%rip) */ + 0xc5, 0xed, 0x71, 0xf0, 0x08, //0x00000271 vpsllw $8, %ymm0, %ymm2 + 0xc5, 0xfd, 0x71, 0xf0, 0x04, //0x00000276 vpsllw $4, %ymm0, %ymm0 + 0xc4, 0xe3, 0x7d, 0x0e, 0xc2, 0xaa, //0x0000027b vpblendw $170, %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00000281 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0x6f, 0x0d, 0x13, 0xfe, 0xff, 0xff, //0x00000285 vmovdqa $-493(%rip), %ymm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0xf5, 0x64, 0xc8, //0x0000028d vpcmpgtb %ymm0, %ymm1, %ymm1 + 0xc4, 0xc1, 0x7e, 0x6f, 0x12, //0x00000291 vmovdqu (%r10), %ymm2 + 0xc5, 0xfd, 0xd8, 0x1d, 0x22, 0xfe, 0xff, 0xff, //0x00000296 vpsubusb $-478(%rip), %ymm0, %ymm3 /* LCPI0_5+0(%rip) */ + 0xc5, 0xf5, 0xdb, 0x0d, 0x3a, 0xfe, 0xff, 0xff, //0x0000029e vpand $-454(%rip), %ymm1, %ymm1 /* LCPI0_6+0(%rip) */ + 0xc5, 0xf5, 0xeb, 0xcb, //0x000002a6 vpor %ymm3, %ymm1, %ymm1 + 0xc4, 0xe2, 0x6d, 0x00, 0xc9, //0x000002aa vpshufb %ymm1, %ymm2, %ymm1 + 0xc5, 0xf5, 0xfc, 0xc0, //0x000002af vpaddb %ymm0, %ymm1, %ymm0 + 0xc4, 0xc1, 0x7e, 0x7f, 0x06, //0x000002b3 vmovdqu %ymm0, (%r14) + 0x49, 0x83, 0xc6, 0x20, //0x000002b8 addq $32, %r14 + 0x49, 0x83, 0xc4, 0x18, //0x000002bc addq $24, %r12 + //0x000002c0 LBB0_10 + 0x4d, 0x39, 0xcc, //0x000002c0 cmpq %r9, %r12 + 0x0f, 0x84, 0x84, 0x01, 0x00, 0x00, //0x000002c3 je LBB0_25 + 0x4d, 0x8d, 0x51, 0xfc, //0x000002c9 leaq $-4(%r9), %r10 + 0x4d, 0x39, 0xd4, //0x000002cd cmpq %r10, %r12 + 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x000002d0 ja LBB0_14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002d6 .p2align 4, 0x90 + //0x000002e0 LBB0_12 + 0x41, 0x8b, 0x34, 0x24, //0x000002e0 movl (%r12), %esi + 0x0f, 0xce, //0x000002e4 bswapl %esi + 0x49, 0x89, 0xf7, //0x000002e6 movq %rsi, %r15 + 0x49, 0xc1, 0xef, 0x1a, //0x000002e9 shrq $26, %r15 + 0x89, 0xf1, //0x000002ed movl %esi, %ecx + 0xc1, 0xe9, 0x14, //0x000002ef shrl $20, %ecx + 0x83, 0xe1, 0x3f, //0x000002f2 andl $63, %ecx + 0x89, 0xf3, //0x000002f5 movl %esi, %ebx + 0xc1, 0xeb, 0x0e, //0x000002f7 shrl $14, %ebx + 0x83, 0xe3, 0x3f, //0x000002fa andl $63, %ebx + 0xc1, 0xee, 0x08, //0x000002fd shrl $8, %esi + 0x83, 0xe6, 0x3f, //0x00000300 andl $63, %esi + 0x49, 0x83, 0xc4, 0x03, //0x00000303 addq $3, %r12 + 0x43, 0x0f, 0xb6, 0x04, 0x3b, //0x00000307 movzbl (%r11,%r15), %eax + 0x41, 0x88, 0x06, //0x0000030c movb %al, (%r14) + 0x41, 0x0f, 0xb6, 0x04, 0x0b, //0x0000030f movzbl (%r11,%rcx), %eax + 0x41, 0x88, 0x46, 0x01, //0x00000314 movb %al, $1(%r14) + 0x41, 0x0f, 0xb6, 0x04, 0x1b, //0x00000318 movzbl (%r11,%rbx), %eax + 0x41, 0x88, 0x46, 0x02, //0x0000031d movb %al, $2(%r14) + 0x41, 0x0f, 0xb6, 0x04, 0x33, //0x00000321 movzbl (%r11,%rsi), %eax + 0x41, 0x88, 0x46, 0x03, //0x00000326 movb %al, $3(%r14) + 0x49, 0x83, 0xc6, 0x04, //0x0000032a addq $4, %r14 + 0x4d, 0x39, 0xd4, //0x0000032e cmpq %r10, %r12 + 0x0f, 0x86, 0xa9, 0xff, 0xff, 0xff, //0x00000331 jbe LBB0_12 + //0x00000337 LBB0_14 + 0x4d, 0x29, 0xe1, //0x00000337 subq %r12, %r9 + 0x45, 0x0f, 0xb6, 0x14, 0x24, //0x0000033a movzbl (%r12), %r10d + 0x49, 0x83, 0xf9, 0x01, //0x0000033f cmpq $1, %r9 + 0x0f, 0x84, 0xc0, 0x00, 0x00, 0x00, //0x00000343 je LBB0_21 + 0x4c, 0x89, 0xd6, //0x00000349 movq %r10, %rsi + 0x48, 0xc1, 0xe6, 0x10, //0x0000034c shlq $16, %rsi + 0x49, 0x83, 0xf9, 0x02, //0x00000350 cmpq $2, %r9 + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00000354 je LBB0_18 + 0x49, 0x83, 0xf9, 0x03, //0x0000035a cmpq $3, %r9 + 0x0f, 0x85, 0xe9, 0x00, 0x00, 0x00, //0x0000035e jne LBB0_25 + 0x41, 0x0f, 0xb6, 0x54, 0x24, 0x02, //0x00000364 movzbl $2(%r12), %edx + 0x09, 0xd6, //0x0000036a orl %edx, %esi + 0x41, 0x0f, 0xb6, 0x44, 0x24, 0x01, //0x0000036c movzbl $1(%r12), %eax + 0xc1, 0xe0, 0x08, //0x00000372 shll $8, %eax + 0x09, 0xf0, //0x00000375 orl %esi, %eax + 0x49, 0xc1, 0xea, 0x02, //0x00000377 shrq $2, %r10 + 0x43, 0x8a, 0x0c, 0x13, //0x0000037b movb (%r11,%r10), %cl + 0x41, 0x88, 0x0e, //0x0000037f movb %cl, (%r14) + 0x89, 0xc1, //0x00000382 movl %eax, %ecx + 0xc1, 0xe9, 0x0c, //0x00000384 shrl $12, %ecx + 0x83, 0xe1, 0x3f, //0x00000387 andl $63, %ecx + 0x41, 0x8a, 0x0c, 0x0b, //0x0000038a movb (%r11,%rcx), %cl + 0x41, 0x88, 0x4e, 0x01, //0x0000038e movb %cl, $1(%r14) + 0xc1, 0xe8, 0x06, //0x00000392 shrl $6, %eax + 0x83, 0xe0, 0x3f, //0x00000395 andl $63, %eax + 0x41, 0x8a, 0x04, 0x03, //0x00000398 movb (%r11,%rax), %al + 0x41, 0x88, 0x46, 0x02, //0x0000039c movb %al, $2(%r14) + 0x83, 0xe2, 0x3f, //0x000003a0 andl $63, %edx + 0x41, 0x8a, 0x04, 0x13, //0x000003a3 movb (%r11,%rdx), %al + 0x41, 0x88, 0x46, 0x03, //0x000003a7 movb %al, $3(%r14) + 0xe9, 0x87, 0x00, 0x00, 0x00, //0x000003ab jmp LBB0_24 + //0x000003b0 LBB0_4 + 0x4d, 0x89, 0xc6, //0x000003b0 movq %r8, %r14 + 0x49, 0x8d, 0x71, 0xe8, //0x000003b3 leaq $-24(%r9), %rsi + 0x49, 0x39, 0xf4, //0x000003b7 cmpq %rsi, %r12 + 0x0f, 0x86, 0x6d, 0xfe, 0xff, 0xff, //0x000003ba jbe LBB0_8 + 0xe9, 0xfb, 0xfe, 0xff, 0xff, //0x000003c0 jmp LBB0_10 + //0x000003c5 LBB0_18 + 0x41, 0x0f, 0xb6, 0x44, 0x24, 0x01, //0x000003c5 movzbl $1(%r12), %eax + 0x89, 0xc1, //0x000003cb movl %eax, %ecx + 0xc1, 0xe1, 0x08, //0x000003cd shll $8, %ecx + 0x09, 0xf1, //0x000003d0 orl %esi, %ecx + 0x49, 0xc1, 0xea, 0x02, //0x000003d2 shrq $2, %r10 + 0x43, 0x8a, 0x1c, 0x13, //0x000003d6 movb (%r11,%r10), %bl + 0x41, 0x88, 0x1e, //0x000003da movb %bl, (%r14) + 0xc1, 0xe9, 0x0c, //0x000003dd shrl $12, %ecx + 0x83, 0xe1, 0x3f, //0x000003e0 andl $63, %ecx + 0x41, 0x8a, 0x0c, 0x0b, //0x000003e3 movb (%r11,%rcx), %cl + 0x41, 0x88, 0x4e, 0x01, //0x000003e7 movb %cl, $1(%r14) + 0x83, 0xe0, 0x0f, //0x000003eb andl $15, %eax + 0x41, 0x8a, 0x04, 0x83, //0x000003ee movb (%r11,%rax,4), %al + 0x41, 0x88, 0x46, 0x02, //0x000003f2 movb %al, $2(%r14) + 0xf6, 0xc2, 0x02, //0x000003f6 testb $2, %dl + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x000003f9 jne LBB0_19 + 0x41, 0xc6, 0x46, 0x03, 0x3d, //0x000003ff movb $61, $3(%r14) + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00000404 jmp LBB0_24 + //0x00000409 LBB0_21 + 0x4c, 0x89, 0xd0, //0x00000409 movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x02, //0x0000040c shrq $2, %rax + 0x41, 0x8a, 0x04, 0x03, //0x00000410 movb (%r11,%rax), %al + 0x41, 0x88, 0x06, //0x00000414 movb %al, (%r14) + 0x41, 0xc1, 0xe2, 0x04, //0x00000417 shll $4, %r10d + 0x41, 0x83, 0xe2, 0x30, //0x0000041b andl $48, %r10d + 0x43, 0x8a, 0x04, 0x13, //0x0000041f movb (%r11,%r10), %al + 0x41, 0x88, 0x46, 0x01, //0x00000423 movb %al, $1(%r14) + 0xf6, 0xc2, 0x02, //0x00000427 testb $2, %dl + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x0000042a jne LBB0_22 + 0x66, 0x41, 0xc7, 0x46, 0x02, 0x3d, 0x3d, //0x00000430 movw $15677, $2(%r14) + //0x00000437 LBB0_24 + 0x49, 0x83, 0xc6, 0x04, //0x00000437 addq $4, %r14 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x0000043b jmp LBB0_25 + //0x00000440 LBB0_19 + 0x49, 0x83, 0xc6, 0x03, //0x00000440 addq $3, %r14 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00000444 jmp LBB0_25 + //0x00000449 LBB0_22 + 0x49, 0x83, 0xc6, 0x02, //0x00000449 addq $2, %r14 + //0x0000044d LBB0_25 + 0x4d, 0x29, 0xc6, //0x0000044d subq %r8, %r14 + 0x4c, 0x01, 0x77, 0x08, //0x00000450 addq %r14, $8(%rdi) + //0x00000454 LBB0_26 + 0x5b, //0x00000454 popq %rbx + 0x41, 0x5c, //0x00000455 popq %r12 + 0x41, 0x5e, //0x00000457 popq %r14 + 0x41, 0x5f, //0x00000459 popq %r15 + 0x5d, //0x0000045b popq %rbp + 0xc5, 0xf8, 0x77, //0x0000045c vzeroupper + 0xc3, //0x0000045f retq + //0x00000460 .p2align 5, 0x00 + //0x00000460 LCPI1_0 + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000460 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000470 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + //0x00000480 LCPI1_1 + 0x01, //0x00000480 .byte 1 + 0x02, //0x00000481 .byte 2 + 0x04, //0x00000482 .byte 4 + 0x08, //0x00000483 .byte 8 + 0x10, //0x00000484 .byte 16 + 0x20, //0x00000485 .byte 32 + 0x40, //0x00000486 .byte 64 + 0x80, //0x00000487 .byte 128 + 0x00, //0x00000488 .byte 0 + 0x00, //0x00000489 .byte 0 + 0x00, //0x0000048a .byte 0 + 0x00, //0x0000048b .byte 0 + 0x00, //0x0000048c .byte 0 + 0x00, //0x0000048d .byte 0 + 0x00, //0x0000048e .byte 0 + 0x00, //0x0000048f .byte 0 + 0x01, //0x00000490 .byte 1 + 0x02, //0x00000491 .byte 2 + 0x04, //0x00000492 .byte 4 + 0x08, //0x00000493 .byte 8 + 0x10, //0x00000494 .byte 16 + 0x20, //0x00000495 .byte 32 + 0x40, //0x00000496 .byte 64 + 0x80, //0x00000497 .byte 128 + 0x00, //0x00000498 .byte 0 + 0x00, //0x00000499 .byte 0 + 0x00, //0x0000049a .byte 0 + 0x00, //0x0000049b .byte 0 + 0x00, //0x0000049c .byte 0 + 0x00, //0x0000049d .byte 0 + 0x00, //0x0000049e .byte 0 + 0x00, //0x0000049f .byte 0 + //0x000004a0 LCPI1_2 + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, //0x000004a0 QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????' + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, //0x000004b0 QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????' + //0x000004c0 LCPI1_3 + 0x40, //0x000004c0 .byte 64 + 0x01, //0x000004c1 .byte 1 + 0x40, //0x000004c2 .byte 64 + 0x01, //0x000004c3 .byte 1 + 0x40, //0x000004c4 .byte 64 + 0x01, //0x000004c5 .byte 1 + 0x40, //0x000004c6 .byte 64 + 0x01, //0x000004c7 .byte 1 + 0x40, //0x000004c8 .byte 64 + 0x01, //0x000004c9 .byte 1 + 0x40, //0x000004ca .byte 64 + 0x01, //0x000004cb .byte 1 + 0x40, //0x000004cc .byte 64 + 0x01, //0x000004cd .byte 1 + 0x40, //0x000004ce .byte 64 + 0x01, //0x000004cf .byte 1 + 0x40, //0x000004d0 .byte 64 + 0x01, //0x000004d1 .byte 1 + 0x40, //0x000004d2 .byte 64 + 0x01, //0x000004d3 .byte 1 + 0x40, //0x000004d4 .byte 64 + 0x01, //0x000004d5 .byte 1 + 0x40, //0x000004d6 .byte 64 + 0x01, //0x000004d7 .byte 1 + 0x40, //0x000004d8 .byte 64 + 0x01, //0x000004d9 .byte 1 + 0x40, //0x000004da .byte 64 + 0x01, //0x000004db .byte 1 + 0x40, //0x000004dc .byte 64 + 0x01, //0x000004dd .byte 1 + 0x40, //0x000004de .byte 64 + 0x01, //0x000004df .byte 1 + //0x000004e0 LCPI1_4 + 0x00, 0x10, //0x000004e0 .word 4096 + 0x01, 0x00, //0x000004e2 .word 1 + 0x00, 0x10, //0x000004e4 .word 4096 + 0x01, 0x00, //0x000004e6 .word 1 + 0x00, 0x10, //0x000004e8 .word 4096 + 0x01, 0x00, //0x000004ea .word 1 + 0x00, 0x10, //0x000004ec .word 4096 + 0x01, 0x00, //0x000004ee .word 1 + 0x00, 0x10, //0x000004f0 .word 4096 + 0x01, 0x00, //0x000004f2 .word 1 + 0x00, 0x10, //0x000004f4 .word 4096 + 0x01, 0x00, //0x000004f6 .word 1 + 0x00, 0x10, //0x000004f8 .word 4096 + 0x01, 0x00, //0x000004fa .word 1 + 0x00, 0x10, //0x000004fc .word 4096 + 0x01, 0x00, //0x000004fe .word 1 + //0x00000500 LCPI1_6 + 0x02, //0x00000500 .byte 2 + 0x01, //0x00000501 .byte 1 + 0x00, //0x00000502 .byte 0 + 0x06, //0x00000503 .byte 6 + 0x05, //0x00000504 .byte 5 + 0x04, //0x00000505 .byte 4 + 0x0a, //0x00000506 .byte 10 + 0x09, //0x00000507 .byte 9 + 0x08, //0x00000508 .byte 8 + 0x0e, //0x00000509 .byte 14 + 0x0d, //0x0000050a .byte 13 + 0x0c, //0x0000050b .byte 12 + 0x00, //0x0000050c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000050d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000050e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000050f BYTE $0x00 // .space 1, '\x00' + 0x05, //0x00000510 .byte 5 + 0x04, //0x00000511 .byte 4 + 0x0a, //0x00000512 .byte 10 + 0x09, //0x00000513 .byte 9 + 0x08, //0x00000514 .byte 8 + 0x0e, //0x00000515 .byte 14 + 0x0d, //0x00000516 .byte 13 + 0x0c, //0x00000517 .byte 12 + 0x00, //0x00000518 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000519 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051b BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051f BYTE $0x00 // .space 1, '\x00' + //0x00000520 .p2align 4, 0x00 + //0x00000520 LCPI1_5 + 0x00, //0x00000520 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000521 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000522 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000523 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000524 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000525 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000526 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000527 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000528 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000529 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000052a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000052b BYTE $0x00 // .space 1, '\x00' + 0x02, //0x0000052c .byte 2 + 0x01, //0x0000052d .byte 1 + 0x00, //0x0000052e .byte 0 + 0x06, //0x0000052f .byte 6 + //0x00000530 .p2align 4, 0x90 + //0x00000530 _b64decode + 0x55, //0x00000530 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000531 movq %rsp, %rbp + 0x41, 0x57, //0x00000534 pushq %r15 + 0x41, 0x56, //0x00000536 pushq %r14 + 0x41, 0x55, //0x00000538 pushq %r13 + 0x41, 0x54, //0x0000053a pushq %r12 + 0x53, //0x0000053c pushq %rbx + 0x48, 0x83, 0xec, 0x68, //0x0000053d subq $104, %rsp + 0x48, 0x85, 0xd2, //0x00000541 testq %rdx, %rdx + 0x0f, 0x84, 0x3e, 0x11, 0x00, 0x00, //0x00000544 je LBB1_282 + 0x48, 0x8b, 0x1f, //0x0000054a movq (%rdi), %rbx + 0x48, 0x8b, 0x47, 0x08, //0x0000054d movq $8(%rdi), %rax + 0x48, 0x01, 0xd8, //0x00000551 addq %rbx, %rax + 0x48, 0x89, 0xbd, 0x70, 0xff, 0xff, 0xff, //0x00000554 movq %rdi, $-144(%rbp) + 0x48, 0x03, 0x5f, 0x10, //0x0000055b addq $16(%rdi), %rbx + 0x48, 0x89, 0x5d, 0x90, //0x0000055f movq %rbx, $-112(%rbp) + 0x48, 0x89, 0x55, 0x88, //0x00000563 movq %rdx, $-120(%rbp) + 0x48, 0x8d, 0x1c, 0x16, //0x00000567 leaq (%rsi,%rdx), %rbx + 0xf6, 0xc1, 0x01, //0x0000056b testb $1, %cl + 0x48, 0x8d, 0x15, 0xcb, 0x45, 0x00, 0x00, //0x0000056e leaq $17867(%rip), %rdx /* _VecDecodeCharsetStd+0(%rip) */ + 0x48, 0x8d, 0x3d, 0x44, 0x47, 0x00, 0x00, //0x00000575 leaq $18244(%rip), %rdi /* _VecDecodeCharsetURL+0(%rip) */ + 0x48, 0x0f, 0x44, 0xfa, //0x0000057c cmoveq %rdx, %rdi + 0x48, 0x89, 0x7d, 0xc0, //0x00000580 movq %rdi, $-64(%rbp) + 0x48, 0x8d, 0x15, 0x35, 0x45, 0x00, 0x00, //0x00000584 leaq $17717(%rip), %rdx /* _VecDecodeTableStd+0(%rip) */ + 0x4c, 0x8d, 0x0d, 0xae, 0x46, 0x00, 0x00, //0x0000058b leaq $18094(%rip), %r9 /* _VecDecodeTableURL+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xca, //0x00000592 cmoveq %rdx, %r9 + 0x48, 0x89, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00000596 movq %rax, $-136(%rbp) + 0x48, 0x89, 0x45, 0xb0, //0x0000059d movq %rax, $-80(%rbp) + 0x48, 0x89, 0x75, 0xa8, //0x000005a1 movq %rsi, $-88(%rbp) + 0x49, 0x89, 0xf7, //0x000005a5 movq %rsi, %r15 + 0x89, 0x4d, 0xbc, //0x000005a8 movl %ecx, $-68(%rbp) + 0xf6, 0xc1, 0x04, //0x000005ab testb $4, %cl + 0x48, 0x89, 0x5d, 0xd0, //0x000005ae movq %rbx, $-48(%rbp) + 0x0f, 0x85, 0xd7, 0x10, 0x00, 0x00, //0x000005b2 jne LBB1_283 + //0x000005b8 LBB1_2 + 0x48, 0x8b, 0x45, 0x90, //0x000005b8 movq $-112(%rbp), %rax + 0x48, 0x83, 0xc0, 0xf8, //0x000005bc addq $-8, %rax + 0x48, 0x89, 0x45, 0xc8, //0x000005c0 movq %rax, $-56(%rbp) + 0x48, 0x3b, 0x45, 0xb0, //0x000005c4 cmpq $-80(%rbp), %rax + 0x0f, 0x82, 0xfe, 0x22, 0x00, 0x00, //0x000005c8 jb LBB1_574 + 0x48, 0x8d, 0x43, 0xf8, //0x000005ce leaq $-8(%rbx), %rax + 0x48, 0x89, 0x45, 0xa0, //0x000005d2 movq %rax, $-96(%rbp) + 0x4c, 0x39, 0xf8, //0x000005d6 cmpq %r15, %rax + 0x0f, 0x82, 0xed, 0x22, 0x00, 0x00, //0x000005d9 jb LBB1_574 + 0x48, 0x8b, 0x45, 0xa8, //0x000005df movq $-88(%rbp), %rax + 0x48, 0x8b, 0x4d, 0x88, //0x000005e3 movq $-120(%rbp), %rcx + 0x48, 0x8d, 0x54, 0x01, 0xfe, //0x000005e7 leaq $-2(%rcx,%rax), %rdx + 0x48, 0x89, 0x55, 0x80, //0x000005ec movq %rdx, $-128(%rbp) + 0x48, 0x8d, 0x44, 0x01, 0xfd, //0x000005f0 leaq $-3(%rcx,%rax), %rax + 0x48, 0x89, 0x45, 0x98, //0x000005f5 movq %rax, $-104(%rbp) + 0x4d, 0x89, 0xf9, //0x000005f9 movq %r15, %r9 + 0xe9, 0x71, 0x00, 0x00, 0x00, //0x000005fc jmp LBB1_5 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000601 .p2align 4, 0x90 + //0x00000610 LBB1_6 + 0x49, 0xc1, 0xe3, 0x3a, //0x00000610 shlq $58, %r11 + 0x49, 0xc1, 0xe0, 0x34, //0x00000614 shlq $52, %r8 + 0x4d, 0x09, 0xd8, //0x00000618 orq %r11, %r8 + 0x49, 0xc1, 0xe6, 0x2e, //0x0000061b shlq $46, %r14 + 0x48, 0xc1, 0xe1, 0x28, //0x0000061f shlq $40, %rcx + 0x4c, 0x09, 0xf1, //0x00000623 orq %r14, %rcx + 0x4c, 0x09, 0xc1, //0x00000626 orq %r8, %rcx + 0x49, 0xc1, 0xe2, 0x22, //0x00000629 shlq $34, %r10 + 0x48, 0xc1, 0xe6, 0x1c, //0x0000062d shlq $28, %rsi + 0x4c, 0x09, 0xd6, //0x00000631 orq %r10, %rsi + 0x48, 0xc1, 0xe3, 0x16, //0x00000634 shlq $22, %rbx + 0x48, 0x09, 0xf3, //0x00000638 orq %rsi, %rbx + 0x48, 0x09, 0xcb, //0x0000063b orq %rcx, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x0000063e shlq $16, %rax + 0x48, 0x09, 0xd8, //0x00000642 orq %rbx, %rax + 0x48, 0x0f, 0xc8, //0x00000645 bswapq %rax + 0x48, 0x8b, 0x4d, 0xb0, //0x00000648 movq $-80(%rbp), %rcx + 0x48, 0x89, 0x01, //0x0000064c movq %rax, (%rcx) + 0x49, 0x83, 0xc1, 0x08, //0x0000064f addq $8, %r9 + 0x48, 0x83, 0xc1, 0x06, //0x00000653 addq $6, %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00000657 movq %rcx, $-80(%rbp) + 0x48, 0x39, 0x4d, 0xc8, //0x0000065b cmpq %rcx, $-56(%rbp) + 0x0f, 0x82, 0x81, 0x22, 0x00, 0x00, //0x0000065f jb LBB1_572 + //0x00000665 LBB1_223 + 0x4d, 0x89, 0xcf, //0x00000665 movq %r9, %r15 + 0x4c, 0x39, 0x4d, 0xa0, //0x00000668 cmpq %r9, $-96(%rbp) + 0x0f, 0x82, 0x74, 0x22, 0x00, 0x00, //0x0000066c jb LBB1_572 + //0x00000672 LBB1_5 + 0x41, 0x0f, 0xb6, 0x01, //0x00000672 movzbl (%r9), %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00000676 movq $-64(%rbp), %rdx + 0x44, 0x0f, 0xb6, 0x1c, 0x02, //0x0000067a movzbl (%rdx,%rax), %r11d + 0x41, 0x0f, 0xb6, 0x41, 0x01, //0x0000067f movzbl $1(%r9), %eax + 0x44, 0x0f, 0xb6, 0x04, 0x02, //0x00000684 movzbl (%rdx,%rax), %r8d + 0x41, 0x0f, 0xb6, 0x41, 0x02, //0x00000689 movzbl $2(%r9), %eax + 0x44, 0x0f, 0xb6, 0x34, 0x02, //0x0000068e movzbl (%rdx,%rax), %r14d + 0x41, 0x0f, 0xb6, 0x41, 0x03, //0x00000693 movzbl $3(%r9), %eax + 0x0f, 0xb6, 0x0c, 0x02, //0x00000698 movzbl (%rdx,%rax), %ecx + 0x41, 0x0f, 0xb6, 0x41, 0x04, //0x0000069c movzbl $4(%r9), %eax + 0x44, 0x0f, 0xb6, 0x14, 0x02, //0x000006a1 movzbl (%rdx,%rax), %r10d + 0x41, 0x0f, 0xb6, 0x41, 0x05, //0x000006a6 movzbl $5(%r9), %eax + 0x0f, 0xb6, 0x34, 0x02, //0x000006ab movzbl (%rdx,%rax), %esi + 0x41, 0x0f, 0xb6, 0x41, 0x06, //0x000006af movzbl $6(%r9), %eax + 0x0f, 0xb6, 0x1c, 0x02, //0x000006b4 movzbl (%rdx,%rax), %ebx + 0x41, 0x0f, 0xb6, 0x41, 0x07, //0x000006b8 movzbl $7(%r9), %eax + 0x0f, 0xb6, 0x04, 0x02, //0x000006bd movzbl (%rdx,%rax), %eax + 0x45, 0x89, 0xc5, //0x000006c1 movl %r8d, %r13d + 0x45, 0x09, 0xdd, //0x000006c4 orl %r11d, %r13d + 0x41, 0x89, 0xcc, //0x000006c7 movl %ecx, %r12d + 0x45, 0x09, 0xf4, //0x000006ca orl %r14d, %r12d + 0x45, 0x09, 0xec, //0x000006cd orl %r13d, %r12d + 0x89, 0xf7, //0x000006d0 movl %esi, %edi + 0x44, 0x09, 0xd7, //0x000006d2 orl %r10d, %edi + 0x89, 0xda, //0x000006d5 movl %ebx, %edx + 0x09, 0xfa, //0x000006d7 orl %edi, %edx + 0x44, 0x09, 0xe2, //0x000006d9 orl %r12d, %edx + 0x89, 0xc7, //0x000006dc movl %eax, %edi + 0x09, 0xd7, //0x000006de orl %edx, %edi + 0x40, 0x80, 0xff, 0xff, //0x000006e0 cmpb $-1, %dil + 0x0f, 0x85, 0x26, 0xff, 0xff, 0xff, //0x000006e4 jne LBB1_6 + 0x48, 0x8b, 0x5d, 0xd0, //0x000006ea movq $-48(%rbp), %rbx + 0x4c, 0x39, 0xcb, //0x000006ee cmpq %r9, %rbx + 0x44, 0x8b, 0x55, 0xbc, //0x000006f1 movl $-68(%rbp), %r10d + 0x0f, 0x86, 0x15, 0x02, 0x00, 0x00, //0x000006f5 jbe LBB1_39 + 0x41, 0xf6, 0xc2, 0x08, //0x000006fb testb $8, %r10b + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000006ff je LBB1_11 + 0x4c, 0x89, 0xca, //0x00000705 movq %r9, %rdx + 0xe9, 0xbf, 0x00, 0x00, 0x00, //0x00000708 jmp LBB1_22 + 0x90, 0x90, 0x90, //0x0000070d .p2align 4, 0x90 + //0x00000710 LBB1_10 + 0x49, 0xff, 0xc1, //0x00000710 incq %r9 + 0x49, 0x39, 0xd9, //0x00000713 cmpq %rbx, %r9 + 0x0f, 0x83, 0xde, 0x01, 0x00, 0x00, //0x00000716 jae LBB1_37 + //0x0000071c LBB1_11 + 0x41, 0x0f, 0xb6, 0x09, //0x0000071c movzbl (%r9), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00000720 cmpq $13, %rcx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000724 je LBB1_10 + 0x80, 0xf9, 0x0a, //0x0000072a cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x0000072d je LBB1_10 + 0x48, 0x8b, 0x45, 0xc0, //0x00000733 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x14, 0x08, //0x00000737 movzbl (%rax,%rcx), %edx + 0x49, 0xff, 0xc1, //0x0000073b incq %r9 + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x0000073e cmpl $255, %edx + 0x0f, 0x84, 0x81, 0x02, 0x00, 0x00, //0x00000744 je LBB1_51 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000074a movl $1, %r11d + 0x49, 0x39, 0xd9, //0x00000750 cmpq %rbx, %r9 + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00000753 jb LBB1_16 + 0xe9, 0x8b, 0x0b, 0x00, 0x00, //0x00000759 jmp LBB1_209 + 0x90, 0x90, //0x0000075e .p2align 4, 0x90 + //0x00000760 LBB1_15 + 0x49, 0xff, 0xc1, //0x00000760 incq %r9 + 0x49, 0x39, 0xd9, //0x00000763 cmpq %rbx, %r9 + 0x0f, 0x83, 0x3d, 0x04, 0x00, 0x00, //0x00000766 jae LBB1_82 + //0x0000076c LBB1_16 + 0x41, 0x0f, 0xb6, 0x09, //0x0000076c movzbl (%r9), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00000770 cmpq $13, %rcx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000774 je LBB1_15 + 0x80, 0xf9, 0x0a, //0x0000077a cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x0000077d je LBB1_15 + 0x48, 0x8b, 0x45, 0xc0, //0x00000783 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00000787 movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc1, //0x0000078b incq %r9 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x0000078e cmpl $255, %eax + 0x0f, 0x84, 0x30, 0x06, 0x00, 0x00, //0x00000793 je LBB1_115 + 0xc1, 0xe2, 0x06, //0x00000799 shll $6, %edx + 0x09, 0xc2, //0x0000079c orl %eax, %edx + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000079e movl $2, %r11d + 0x49, 0x39, 0xd9, //0x000007a4 cmpq %rbx, %r9 + 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x000007a7 jb LBB1_41 + 0xe9, 0x37, 0x0b, 0x00, 0x00, //0x000007ad jmp LBB1_209 + //0x000007b2 LBB1_20 + 0x3c, 0x6e, //0x000007b2 cmpb $110, %al + 0x0f, 0x85, 0xd6, 0x01, 0x00, 0x00, //0x000007b4 jne LBB1_46 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007ba .p2align 4, 0x90 + //0x000007c0 LBB1_21 + 0x4c, 0x89, 0xca, //0x000007c0 movq %r9, %rdx + 0x49, 0x39, 0xd9, //0x000007c3 cmpq %rbx, %r9 + 0x0f, 0x83, 0x2e, 0x01, 0x00, 0x00, //0x000007c6 jae LBB1_37 + //0x000007cc LBB1_22 + 0x48, 0x8d, 0x42, 0x01, //0x000007cc leaq $1(%rdx), %rax + 0x0f, 0xb6, 0x0a, //0x000007d0 movzbl (%rdx), %ecx + 0x80, 0xf9, 0x5c, //0x000007d3 cmpb $92, %cl + 0x0f, 0x85, 0x04, 0x01, 0x00, 0x00, //0x000007d6 jne LBB1_35 + 0x4c, 0x8d, 0x4a, 0x02, //0x000007dc leaq $2(%rdx), %r9 + 0xb1, 0xff, //0x000007e0 movb $-1, %cl + 0x49, 0x39, 0xd9, //0x000007e2 cmpq %rbx, %r9 + 0x0f, 0x87, 0x9d, 0x01, 0x00, 0x00, //0x000007e5 ja LBB1_45 + 0x0f, 0xb6, 0x00, //0x000007eb movzbl (%rax), %eax + 0x3c, 0x71, //0x000007ee cmpb $113, %al + 0x0f, 0x8e, 0xbc, 0xff, 0xff, 0xff, //0x000007f0 jle LBB1_20 + 0x3c, 0x72, //0x000007f6 cmpb $114, %al + 0x0f, 0x84, 0xc2, 0xff, 0xff, 0xff, //0x000007f8 je LBB1_21 + 0x3c, 0x75, //0x000007fe cmpb $117, %al + 0x0f, 0x85, 0x94, 0x01, 0x00, 0x00, //0x00000800 jne LBB1_48 + 0x48, 0x89, 0xd8, //0x00000806 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00000809 subq %r9, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000080c cmpq $4, %rax + 0x0f, 0x8c, 0x84, 0x01, 0x00, 0x00, //0x00000810 jl LBB1_48 + 0x41, 0x8b, 0x01, //0x00000816 movl (%r9), %eax + 0x89, 0xc6, //0x00000819 movl %eax, %esi + 0xf7, 0xd6, //0x0000081b notl %esi + 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000081d leal $-808464432(%rax), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000823 andl $-2139062144, %esi + 0x85, 0xfe, //0x00000829 testl %edi, %esi + 0x0f, 0x85, 0x69, 0x01, 0x00, 0x00, //0x0000082b jne LBB1_48 + 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x00000831 leal $421075225(%rax), %edi + 0x09, 0xc7, //0x00000837 orl %eax, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00000839 testl $-2139062144, %edi + 0x0f, 0x85, 0x55, 0x01, 0x00, 0x00, //0x0000083f jne LBB1_48 + 0x89, 0xc7, //0x00000845 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000847 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000084d movl $-1061109568, %ebx + 0x29, 0xfb, //0x00000852 subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00000854 leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x0000085b andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x0000085d testl %r8d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x00000860 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x30, 0x01, 0x00, 0x00, //0x00000864 jne LBB1_48 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000086a movl $-522133280, %ebx + 0x29, 0xfb, //0x0000086f subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00000871 addl $960051513, %edi + 0x21, 0xde, //0x00000877 andl %ebx, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x00000879 movq $-48(%rbp), %rbx + 0x85, 0xfe, //0x0000087d testl %edi, %esi + 0x0f, 0x85, 0x15, 0x01, 0x00, 0x00, //0x0000087f jne LBB1_48 + 0x0f, 0xc8, //0x00000885 bswapl %eax + 0x89, 0xc1, //0x00000887 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000889 shrl $4, %ecx + 0xf7, 0xd1, //0x0000088c notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000088e andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000894 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000897 andl $252645135, %eax + 0x01, 0xc8, //0x0000089c addl %ecx, %eax + 0x89, 0xc1, //0x0000089e movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x000008a0 shrl $4, %ecx + 0x09, 0xc1, //0x000008a3 orl %eax, %ecx + 0x89, 0xc8, //0x000008a5 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000008a7 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000008aa andl $65280, %eax + 0x89, 0xce, //0x000008af movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x000008b1 andl $128, %esi + 0x09, 0xc6, //0x000008b7 orl %eax, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000008b9 je LBB1_34 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000008bf movl $255, %ecx + //0x000008c4 LBB1_34 + 0x48, 0x83, 0xc2, 0x06, //0x000008c4 addq $6, %rdx + 0x49, 0x89, 0xd1, //0x000008c8 movq %rdx, %r9 + 0x80, 0xf9, 0x0d, //0x000008cb cmpb $13, %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000008ce jne LBB1_36 + 0xe9, 0xe7, 0xfe, 0xff, 0xff, //0x000008d4 jmp LBB1_21 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008d9 .p2align 4, 0x90 + //0x000008e0 LBB1_35 + 0x49, 0x89, 0xc1, //0x000008e0 movq %rax, %r9 + 0x80, 0xf9, 0x0d, //0x000008e3 cmpb $13, %cl + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x000008e6 je LBB1_21 + //0x000008ec LBB1_36 + 0x80, 0xf9, 0x0a, //0x000008ec cmpb $10, %cl + 0x0f, 0x84, 0xcb, 0xfe, 0xff, 0xff, //0x000008ef je LBB1_21 + 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x000008f5 jmp LBB1_48 + //0x000008fa LBB1_37 + 0x31, 0xd2, //0x000008fa xorl %edx, %edx + 0x45, 0x31, 0xdb, //0x000008fc xorl %r11d, %r11d + //0x000008ff LBB1_38 + 0x45, 0x85, 0xdb, //0x000008ff testl %r11d, %r11d + 0x0f, 0x85, 0xe1, 0x09, 0x00, 0x00, //0x00000902 jne LBB1_209 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000908 .p2align 4, 0x90 + //0x00000910 LBB1_39 + 0x48, 0x8b, 0x4d, 0xb0, //0x00000910 movq $-80(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00000914 movq %rcx, $-80(%rbp) + 0x48, 0x39, 0x4d, 0xc8, //0x00000918 cmpq %rcx, $-56(%rbp) + 0x0f, 0x83, 0x43, 0xfd, 0xff, 0xff, //0x0000091c jae LBB1_223 + 0xe9, 0xbf, 0x1f, 0x00, 0x00, //0x00000922 jmp LBB1_572 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000927 .p2align 4, 0x90 + //0x00000930 LBB1_40 + 0x49, 0xff, 0xc1, //0x00000930 incq %r9 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000933 movl $2, %r11d + 0x49, 0x39, 0xd9, //0x00000939 cmpq %rbx, %r9 + 0x0f, 0x83, 0xbd, 0xff, 0xff, 0xff, //0x0000093c jae LBB1_38 + //0x00000942 LBB1_41 + 0x41, 0x0f, 0xb6, 0x09, //0x00000942 movzbl (%r9), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00000946 cmpq $13, %rcx + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x0000094a je LBB1_40 + 0x80, 0xf9, 0x0a, //0x00000950 cmpb $10, %cl + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00000953 je LBB1_40 + 0x48, 0x8b, 0x45, 0xc0, //0x00000959 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x0000095d movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc1, //0x00000961 incq %r9 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000964 cmpl $255, %eax + 0x0f, 0x84, 0xea, 0x08, 0x00, 0x00, //0x00000969 je LBB1_176 + 0xc1, 0xe2, 0x06, //0x0000096f shll $6, %edx + 0x09, 0xc2, //0x00000972 orl %eax, %edx + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000974 movl $3, %r11d + 0x49, 0x39, 0xd9, //0x0000097a cmpq %rbx, %r9 + 0x0f, 0x82, 0xba, 0x03, 0x00, 0x00, //0x0000097d jb LBB1_105 + 0xe9, 0x61, 0x09, 0x00, 0x00, //0x00000983 jmp LBB1_209 + //0x00000988 LBB1_45 + 0x49, 0x89, 0xc1, //0x00000988 movq %rax, %r9 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000098b jmp LBB1_48 + //0x00000990 LBB1_46 + 0x3c, 0x2f, //0x00000990 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00000992 jne LBB1_48 + 0x89, 0xc1, //0x00000998 movl %eax, %ecx + //0x0000099a LBB1_48 + 0x0f, 0xb6, 0xc1, //0x0000099a movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x0000099d movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x14, 0x02, //0x000009a1 movzbl (%rdx,%rax), %edx + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x000009a5 cmpl $255, %edx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000009ab je LBB1_51 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000009b1 movl $1, %r11d + 0x49, 0x39, 0xd9, //0x000009b7 cmpq %rbx, %r9 + 0x0f, 0x83, 0x29, 0x09, 0x00, 0x00, //0x000009ba jae LBB1_209 + 0x41, 0x89, 0xd4, //0x000009c0 movl %edx, %r12d + 0x4c, 0x89, 0xca, //0x000009c3 movq %r9, %rdx + 0xe9, 0xcd, 0x00, 0x00, 0x00, //0x000009c6 jmp LBB1_67 + //0x000009cb LBB1_51 + 0x45, 0x31, 0xe4, //0x000009cb xorl %r12d, %r12d + 0x45, 0x31, 0xdb, //0x000009ce xorl %r11d, %r11d + //0x000009d1 LBB1_52 + 0x41, 0xf6, 0xc2, 0x02, //0x000009d1 testb $2, %r10b + 0x0f, 0x85, 0x3a, 0x09, 0x00, 0x00, //0x000009d5 jne LBB1_212 + 0x41, 0x83, 0xfb, 0x02, //0x000009db cmpl $2, %r11d + 0x0f, 0x82, 0x30, 0x09, 0x00, 0x00, //0x000009df jb LBB1_212 + 0x80, 0xf9, 0x3d, //0x000009e5 cmpb $61, %cl + 0x0f, 0x85, 0x27, 0x09, 0x00, 0x00, //0x000009e8 jne LBB1_212 + 0x41, 0xbe, 0x05, 0x00, 0x00, 0x00, //0x000009ee movl $5, %r14d + 0x45, 0x29, 0xde, //0x000009f4 subl %r11d, %r14d + 0x41, 0xf6, 0xc2, 0x08, //0x000009f7 testb $8, %r10b + 0x0f, 0x85, 0xb3, 0x01, 0x00, 0x00, //0x000009fb jne LBB1_83 + 0x4c, 0x39, 0x4d, 0xd0, //0x00000a01 cmpq %r9, $-48(%rbp) + 0x0f, 0x86, 0x6f, 0x09, 0x00, 0x00, //0x00000a05 jbe LBB1_216 + 0x49, 0x8d, 0x49, 0x03, //0x00000a0b leaq $3(%r9), %rcx + 0x48, 0x8b, 0x5d, 0x80, //0x00000a0f movq $-128(%rbp), %rbx + 0x4c, 0x29, 0xcb, //0x00000a13 subq %r9, %rbx + 0x49, 0x8d, 0x51, 0x04, //0x00000a16 leaq $4(%r9), %rdx + 0x48, 0x8b, 0x7d, 0x98, //0x00000a1a movq $-104(%rbp), %rdi + 0x4c, 0x29, 0xcf, //0x00000a1e subq %r9, %rdi + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00000a21 jmp LBB1_59 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a26 .p2align 4, 0x90 + //0x00000a30 LBB1_58 + 0x49, 0xff, 0xc1, //0x00000a30 incq %r9 + 0x48, 0xff, 0xc1, //0x00000a33 incq %rcx + 0x48, 0xff, 0xcb, //0x00000a36 decq %rbx + 0x48, 0xff, 0xc2, //0x00000a39 incq %rdx + 0x48, 0xff, 0xcf, //0x00000a3c decq %rdi + 0x4c, 0x39, 0x4d, 0xd0, //0x00000a3f cmpq %r9, $-48(%rbp) + 0x0f, 0x84, 0x2d, 0x09, 0x00, 0x00, //0x00000a43 je LBB1_215 + //0x00000a49 LBB1_59 + 0x41, 0x0f, 0xb6, 0x01, //0x00000a49 movzbl (%r9), %eax + 0x3c, 0x0a, //0x00000a4d cmpb $10, %al + 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00000a4f je LBB1_58 + 0x3c, 0x0d, //0x00000a55 cmpb $13, %al + 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00000a57 je LBB1_58 + 0x3c, 0x3d, //0x00000a5d cmpb $61, %al + 0x0f, 0x85, 0x04, 0x05, 0x00, 0x00, //0x00000a5f jne LBB1_144 + 0x49, 0xff, 0xc1, //0x00000a65 incq %r9 + 0x41, 0x83, 0xfe, 0x02, //0x00000a68 cmpl $2, %r14d + 0x0f, 0x84, 0xa3, 0x08, 0x00, 0x00, //0x00000a6c je LBB1_212 + 0x4c, 0x39, 0x4d, 0xd0, //0x00000a72 cmpq %r9, $-48(%rbp) + 0x0f, 0x87, 0x15, 0x03, 0x00, 0x00, //0x00000a76 ja LBB1_110 + 0xe9, 0xf9, 0x08, 0x00, 0x00, //0x00000a7c jmp LBB1_216 + //0x00000a81 LBB1_64 + 0x3c, 0x6e, //0x00000a81 cmpb $110, %al + 0x0f, 0x85, 0x4e, 0x03, 0x00, 0x00, //0x00000a83 jne LBB1_116 + //0x00000a89 LBB1_65 + 0x4d, 0x89, 0xc1, //0x00000a89 movq %r8, %r9 + //0x00000a8c LBB1_66 + 0x4c, 0x89, 0xca, //0x00000a8c movq %r9, %rdx + 0x49, 0x39, 0xd9, //0x00000a8f cmpq %rbx, %r9 + 0x0f, 0x83, 0x85, 0x02, 0x00, 0x00, //0x00000a92 jae LBB1_103 + //0x00000a98 LBB1_67 + 0x4c, 0x8d, 0x4a, 0x01, //0x00000a98 leaq $1(%rdx), %r9 + 0x0f, 0xb6, 0x0a, //0x00000a9c movzbl (%rdx), %ecx + 0x80, 0xf9, 0x5c, //0x00000a9f cmpb $92, %cl + 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x00000aa2 jne LBB1_80 + 0x4c, 0x8d, 0x42, 0x02, //0x00000aa8 leaq $2(%rdx), %r8 + 0xb1, 0xff, //0x00000aac movb $-1, %cl + 0x49, 0x39, 0xd8, //0x00000aae cmpq %rbx, %r8 + 0x0f, 0x87, 0x31, 0x03, 0x00, 0x00, //0x00000ab1 ja LBB1_119 + 0x41, 0x0f, 0xb6, 0x01, //0x00000ab7 movzbl (%r9), %eax + 0x3c, 0x71, //0x00000abb cmpb $113, %al + 0x0f, 0x8e, 0xbe, 0xff, 0xff, 0xff, //0x00000abd jle LBB1_64 + 0x3c, 0x72, //0x00000ac3 cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00000ac5 je LBB1_65 + 0x3c, 0x75, //0x00000acb cmpb $117, %al + 0x0f, 0x85, 0x0e, 0x03, 0x00, 0x00, //0x00000acd jne LBB1_118 + 0x48, 0x8b, 0x45, 0xd0, //0x00000ad3 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xc0, //0x00000ad7 subq %r8, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000ada cmpq $4, %rax + 0x0f, 0x8c, 0xfd, 0x02, 0x00, 0x00, //0x00000ade jl LBB1_118 + 0x41, 0x8b, 0x18, //0x00000ae4 movl (%r8), %ebx + 0x89, 0xde, //0x00000ae7 movl %ebx, %esi + 0xf7, 0xd6, //0x00000ae9 notl %esi + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000aeb leal $-808464432(%rbx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000af1 andl $-2139062144, %esi + 0x85, 0xc6, //0x00000af7 testl %eax, %esi + 0x0f, 0x85, 0xe2, 0x02, 0x00, 0x00, //0x00000af9 jne LBB1_118 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00000aff leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00000b05 orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00000b07 testl $-2139062144, %eax + 0x0f, 0x85, 0xcf, 0x02, 0x00, 0x00, //0x00000b0c jne LBB1_118 + 0x89, 0xd8, //0x00000b12 movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000b14 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000b19 movl $-1061109568, %edi + 0x29, 0xc7, //0x00000b1e subl %eax, %edi + 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x00000b20 leal $1179010630(%rax), %r9d + 0x21, 0xf7, //0x00000b27 andl %esi, %edi + 0x44, 0x85, 0xcf, //0x00000b29 testl %r9d, %edi + 0x0f, 0x85, 0xaf, 0x02, 0x00, 0x00, //0x00000b2c jne LBB1_118 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000b32 movl $-522133280, %edi + 0x29, 0xc7, //0x00000b37 subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00000b39 addl $960051513, %eax + 0x21, 0xfe, //0x00000b3e andl %edi, %esi + 0x85, 0xc6, //0x00000b40 testl %eax, %esi + 0x0f, 0x85, 0x99, 0x02, 0x00, 0x00, //0x00000b42 jne LBB1_118 + 0x0f, 0xcb, //0x00000b48 bswapl %ebx + 0x89, 0xd8, //0x00000b4a movl %ebx, %eax + 0xc1, 0xe8, 0x04, //0x00000b4c shrl $4, %eax + 0xf7, 0xd0, //0x00000b4f notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00000b51 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00000b56 leal (%rax,%rax,8), %eax + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000b59 andl $252645135, %ebx + 0x01, 0xc3, //0x00000b5f addl %eax, %ebx + 0x89, 0xd9, //0x00000b61 movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00000b63 shrl $4, %ecx + 0x09, 0xd9, //0x00000b66 orl %ebx, %ecx + 0x89, 0xc8, //0x00000b68 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00000b6a shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000b6d andl $65280, %eax + 0x89, 0xce, //0x00000b72 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00000b74 andl $128, %esi + 0x09, 0xc6, //0x00000b7a orl %eax, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000b7c je LBB1_79 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00000b82 movl $255, %ecx + //0x00000b87 LBB1_79 + 0x48, 0x83, 0xc2, 0x06, //0x00000b87 addq $6, %rdx + 0x49, 0x89, 0xd1, //0x00000b8b movq %rdx, %r9 + 0x48, 0x8b, 0x5d, 0xd0, //0x00000b8e movq $-48(%rbp), %rbx + //0x00000b92 LBB1_80 + 0x80, 0xf9, 0x0a, //0x00000b92 cmpb $10, %cl + 0x0f, 0x84, 0xf1, 0xfe, 0xff, 0xff, //0x00000b95 je LBB1_66 + 0x80, 0xf9, 0x0d, //0x00000b9b cmpb $13, %cl + 0x0f, 0x84, 0xe8, 0xfe, 0xff, 0xff, //0x00000b9e je LBB1_66 + 0xe9, 0x3f, 0x02, 0x00, 0x00, //0x00000ba4 jmp LBB1_119 + //0x00000ba9 LBB1_82 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000ba9 movl $1, %r11d + 0xe9, 0x4b, 0xfd, 0xff, 0xff, //0x00000baf jmp LBB1_38 + //0x00000bb4 LBB1_83 + 0x48, 0x8b, 0x55, 0xd0, //0x00000bb4 movq $-48(%rbp), %rdx + 0x4c, 0x39, 0xca, //0x00000bb8 cmpq %r9, %rdx + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00000bbb ja LBB1_86 + 0xe9, 0xb4, 0x07, 0x00, 0x00, //0x00000bc1 jmp LBB1_216 + //0x00000bc6 LBB1_102 + 0x48, 0x89, 0xc1, //0x00000bc6 movq %rax, %rcx + 0x49, 0x89, 0xc9, //0x00000bc9 movq %rcx, %r9 + 0x48, 0x39, 0xd1, //0x00000bcc cmpq %rdx, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00000bcf jb LBB1_86 + 0xe9, 0x3b, 0x01, 0x00, 0x00, //0x00000bd5 jmp LBB1_143 + //0x00000bda LBB1_84 + 0x48, 0x89, 0xc8, //0x00000bda movq %rcx, %rax + 0x49, 0x89, 0xc9, //0x00000bdd movq %rcx, %r9 + 0x48, 0x39, 0xd1, //0x00000be0 cmpq %rdx, %rcx + 0x0f, 0x83, 0x2c, 0x01, 0x00, 0x00, //0x00000be3 jae LBB1_143 + //0x00000be9 LBB1_86 + 0x49, 0x8d, 0x41, 0x01, //0x00000be9 leaq $1(%r9), %rax + 0x41, 0x0f, 0xb6, 0x09, //0x00000bed movzbl (%r9), %ecx + 0x80, 0xf9, 0x5c, //0x00000bf1 cmpb $92, %cl + 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00000bf4 jne LBB1_99 + 0x49, 0x8d, 0x49, 0x02, //0x00000bfa leaq $2(%r9), %rcx + 0x48, 0x39, 0xd1, //0x00000bfe cmpq %rdx, %rcx + 0x0f, 0x87, 0x79, 0x0a, 0x00, 0x00, //0x00000c01 ja LBB1_258 + 0x0f, 0xb6, 0x00, //0x00000c07 movzbl (%rax), %eax + 0x3c, 0x6e, //0x00000c0a cmpb $110, %al + 0x0f, 0x84, 0xc8, 0xff, 0xff, 0xff, //0x00000c0c je LBB1_84 + 0x3c, 0x72, //0x00000c12 cmpb $114, %al + 0x0f, 0x84, 0xc0, 0xff, 0xff, 0xff, //0x00000c14 je LBB1_84 + 0x3c, 0x75, //0x00000c1a cmpb $117, %al + 0x0f, 0x85, 0x53, 0x0a, 0x00, 0x00, //0x00000c1c jne LBB1_278 + 0x48, 0x89, 0xd0, //0x00000c22 movq %rdx, %rax + 0x48, 0x29, 0xc8, //0x00000c25 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000c28 cmpq $4, %rax + 0x0f, 0x8c, 0x43, 0x0a, 0x00, 0x00, //0x00000c2c jl LBB1_278 + 0x8b, 0x01, //0x00000c32 movl (%rcx), %eax + 0x89, 0xc2, //0x00000c34 movl %eax, %edx + 0xf7, 0xd2, //0x00000c36 notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000c38 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x00000c3e andl $-2139062144, %edx + 0x85, 0xf2, //0x00000c44 testl %esi, %edx + 0x0f, 0x85, 0x29, 0x0a, 0x00, 0x00, //0x00000c46 jne LBB1_278 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x00000c4c leal $421075225(%rax), %esi + 0x09, 0xc6, //0x00000c52 orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00000c54 testl $-2139062144, %esi + 0x0f, 0x85, 0x15, 0x0a, 0x00, 0x00, //0x00000c5a jne LBB1_278 + 0x89, 0xc6, //0x00000c60 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000c62 andl $2139062143, %esi + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000c68 movl $-1061109568, %edi + 0x29, 0xf7, //0x00000c6d subl %esi, %edi + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00000c6f leal $1179010630(%rsi), %ebx + 0x21, 0xd7, //0x00000c75 andl %edx, %edi + 0x85, 0xdf, //0x00000c77 testl %ebx, %edi + 0x0f, 0x85, 0xf6, 0x09, 0x00, 0x00, //0x00000c79 jne LBB1_278 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000c7f movl $-522133280, %edi + 0x29, 0xf7, //0x00000c84 subl %esi, %edi + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00000c86 addl $960051513, %esi + 0x21, 0xfa, //0x00000c8c andl %edi, %edx + 0x85, 0xf2, //0x00000c8e testl %esi, %edx + 0x0f, 0x85, 0xdf, 0x09, 0x00, 0x00, //0x00000c90 jne LBB1_278 + 0x0f, 0xc8, //0x00000c96 bswapl %eax + 0x89, 0xc1, //0x00000c98 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000c9a shrl $4, %ecx + 0xf7, 0xd1, //0x00000c9d notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000c9f andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000ca5 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000ca8 andl $252645135, %eax + 0x01, 0xc8, //0x00000cad addl %ecx, %eax + 0x89, 0xc1, //0x00000caf movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000cb1 shrl $4, %ecx + 0x09, 0xc1, //0x00000cb4 orl %eax, %ecx + 0x89, 0xc8, //0x00000cb6 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00000cb8 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000cbb andl $65280, %eax + 0x89, 0xca, //0x00000cc0 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00000cc2 andl $128, %edx + 0x09, 0xc2, //0x00000cc8 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000cca je LBB1_98 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00000cd0 movl $255, %ecx + //0x00000cd5 LBB1_98 + 0x49, 0x83, 0xc1, 0x06, //0x00000cd5 addq $6, %r9 + 0x4c, 0x89, 0xc8, //0x00000cd9 movq %r9, %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00000cdc movq $-48(%rbp), %rdx + //0x00000ce0 LBB1_99 + 0x80, 0xf9, 0x0a, //0x00000ce0 cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x00000ce3 je LBB1_102 + 0x80, 0xf9, 0x0d, //0x00000ce9 cmpb $13, %cl + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00000cec je LBB1_102 + 0x80, 0xf9, 0x3d, //0x00000cf2 cmpb $61, %cl + 0x0f, 0x85, 0x85, 0x09, 0x00, 0x00, //0x00000cf5 jne LBB1_258 + 0x49, 0x89, 0xc1, //0x00000cfb movq %rax, %r9 + 0x41, 0x83, 0xfe, 0x02, //0x00000cfe cmpl $2, %r14d + 0x0f, 0x84, 0x0d, 0x06, 0x00, 0x00, //0x00000d02 je LBB1_212 + 0x48, 0x8b, 0x75, 0xd0, //0x00000d08 movq $-48(%rbp), %rsi + 0x48, 0x39, 0xc6, //0x00000d0c cmpq %rax, %rsi + 0x0f, 0x87, 0x0e, 0x04, 0x00, 0x00, //0x00000d0f ja LBB1_179 + //0x00000d15 LBB1_143 + 0x49, 0x89, 0xc1, //0x00000d15 movq %rax, %r9 + 0xe9, 0x5d, 0x06, 0x00, 0x00, //0x00000d18 jmp LBB1_216 + //0x00000d1d LBB1_103 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000d1d movl $1, %r11d + 0x44, 0x89, 0xe2, //0x00000d23 movl %r12d, %edx + 0xe9, 0xd4, 0xfb, 0xff, 0xff, //0x00000d26 jmp LBB1_38 + //0x00000d2b LBB1_104 + 0x49, 0xff, 0xc1, //0x00000d2b incq %r9 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000d2e movl $3, %r11d + 0x49, 0x39, 0xd9, //0x00000d34 cmpq %rbx, %r9 + 0x0f, 0x83, 0xc2, 0xfb, 0xff, 0xff, //0x00000d37 jae LBB1_38 + //0x00000d3d LBB1_105 + 0x41, 0x0f, 0xb6, 0x09, //0x00000d3d movzbl (%r9), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00000d41 cmpq $13, %rcx + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00000d45 je LBB1_104 + 0x80, 0xf9, 0x0a, //0x00000d4b cmpb $10, %cl + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00000d4e je LBB1_104 + 0x48, 0x8b, 0x45, 0xc0, //0x00000d54 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00000d58 movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc1, //0x00000d5c incq %r9 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000d5f cmpl $255, %eax + 0x0f, 0x85, 0x74, 0x05, 0x00, 0x00, //0x00000d64 jne LBB1_208 + 0x41, 0x89, 0xd4, //0x00000d6a movl %edx, %r12d + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000d6d movl $3, %r11d + 0xe9, 0x59, 0xfc, 0xff, 0xff, //0x00000d73 jmp LBB1_52 + //0x00000d78 LBB1_109 + 0x49, 0xff, 0xc1, //0x00000d78 incq %r9 + 0x48, 0xff, 0xc1, //0x00000d7b incq %rcx + 0x48, 0xff, 0xcb, //0x00000d7e decq %rbx + 0x48, 0xff, 0xc2, //0x00000d81 incq %rdx + 0x48, 0xff, 0xcf, //0x00000d84 decq %rdi + 0x4c, 0x39, 0x4d, 0xd0, //0x00000d87 cmpq %r9, $-48(%rbp) + 0x0f, 0x84, 0xe5, 0x05, 0x00, 0x00, //0x00000d8b je LBB1_215 + //0x00000d91 LBB1_110 + 0x41, 0x0f, 0xb6, 0x01, //0x00000d91 movzbl (%r9), %eax + 0x3c, 0x0a, //0x00000d95 cmpb $10, %al + 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00000d97 je LBB1_109 + 0x3c, 0x0d, //0x00000d9d cmpb $13, %al + 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00000d9f je LBB1_109 + 0x3c, 0x3d, //0x00000da5 cmpb $61, %al + 0x0f, 0x85, 0xbc, 0x01, 0x00, 0x00, //0x00000da7 jne LBB1_144 + 0x49, 0xff, 0xc1, //0x00000dad incq %r9 + 0x41, 0x83, 0xfe, 0x03, //0x00000db0 cmpl $3, %r14d + 0x0f, 0x84, 0x5b, 0x05, 0x00, 0x00, //0x00000db4 je LBB1_212 + 0x4c, 0x39, 0x4d, 0xd0, //0x00000dba cmpq %r9, $-48(%rbp) + 0x0f, 0x87, 0xb5, 0x04, 0x00, 0x00, //0x00000dbe ja LBB1_197 + 0xe9, 0xb1, 0x05, 0x00, 0x00, //0x00000dc4 jmp LBB1_216 + //0x00000dc9 LBB1_115 + 0x41, 0x89, 0xd4, //0x00000dc9 movl %edx, %r12d + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000dcc movl $1, %r11d + 0xe9, 0xfa, 0xfb, 0xff, 0xff, //0x00000dd2 jmp LBB1_52 + //0x00000dd7 LBB1_116 + 0x3c, 0x2f, //0x00000dd7 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00000dd9 jne LBB1_118 + 0x89, 0xc1, //0x00000ddf movl %eax, %ecx + //0x00000de1 LBB1_118 + 0x4d, 0x89, 0xc1, //0x00000de1 movq %r8, %r9 + 0x48, 0x8b, 0x5d, 0xd0, //0x00000de4 movq $-48(%rbp), %rbx + //0x00000de8 LBB1_119 + 0x0f, 0xb6, 0xc1, //0x00000de8 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00000deb movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x00000def movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000df3 cmpl $255, %eax + 0x0f, 0x84, 0x58, 0x01, 0x00, 0x00, //0x00000df8 je LBB1_140 + 0x44, 0x89, 0xe2, //0x00000dfe movl %r12d, %edx + 0xc1, 0xe2, 0x06, //0x00000e01 shll $6, %edx + 0x09, 0xc2, //0x00000e04 orl %eax, %edx + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000e06 movl $2, %r11d + 0x49, 0x39, 0xd9, //0x00000e0c cmpq %rbx, %r9 + 0x0f, 0x83, 0xd4, 0x04, 0x00, 0x00, //0x00000e0f jae LBB1_209 + 0x41, 0x89, 0xd4, //0x00000e15 movl %edx, %r12d + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00000e18 jmp LBB1_125 + //0x00000e1d LBB1_122 + 0x3c, 0x6e, //0x00000e1d cmpb $110, %al + 0x0f, 0x85, 0x52, 0x01, 0x00, 0x00, //0x00000e1f jne LBB1_150 + //0x00000e25 LBB1_123 + 0x48, 0x89, 0xd7, //0x00000e25 movq %rdx, %rdi + 0x44, 0x89, 0xe2, //0x00000e28 movl %r12d, %edx + //0x00000e2b LBB1_124 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000e2b movl $2, %r11d + 0x49, 0x89, 0xf9, //0x00000e31 movq %rdi, %r9 + 0x48, 0x39, 0xdf, //0x00000e34 cmpq %rbx, %rdi + 0x0f, 0x83, 0x24, 0x01, 0x00, 0x00, //0x00000e37 jae LBB1_142 + //0x00000e3d LBB1_125 + 0x49, 0x8d, 0x79, 0x01, //0x00000e3d leaq $1(%r9), %rdi + 0x41, 0x0f, 0xb6, 0x09, //0x00000e41 movzbl (%r9), %ecx + 0x80, 0xf9, 0x5c, //0x00000e45 cmpb $92, %cl + 0x0f, 0x85, 0xf1, 0x00, 0x00, 0x00, //0x00000e48 jne LBB1_138 + 0x49, 0x8d, 0x51, 0x02, //0x00000e4e leaq $2(%r9), %rdx + 0xb1, 0xff, //0x00000e52 movb $-1, %cl + 0x48, 0x39, 0xda, //0x00000e54 cmpq %rbx, %rdx + 0x0f, 0x87, 0x27, 0x01, 0x00, 0x00, //0x00000e57 ja LBB1_153 + 0x0f, 0xb6, 0x07, //0x00000e5d movzbl (%rdi), %eax + 0x3c, 0x71, //0x00000e60 cmpb $113, %al + 0x0f, 0x8e, 0xb5, 0xff, 0xff, 0xff, //0x00000e62 jle LBB1_122 + 0x3c, 0x72, //0x00000e68 cmpb $114, %al + 0x0f, 0x84, 0xb5, 0xff, 0xff, 0xff, //0x00000e6a je LBB1_123 + 0x3c, 0x75, //0x00000e70 cmpb $117, %al + 0x0f, 0x85, 0x09, 0x01, 0x00, 0x00, //0x00000e72 jne LBB1_152 + 0x48, 0x89, 0xd8, //0x00000e78 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00000e7b subq %rdx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000e7e cmpq $4, %rax + 0x0f, 0x8c, 0xf9, 0x00, 0x00, 0x00, //0x00000e82 jl LBB1_152 + 0x8b, 0x02, //0x00000e88 movl (%rdx), %eax + 0x89, 0xc6, //0x00000e8a movl %eax, %esi + 0xf7, 0xd6, //0x00000e8c notl %esi + 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000e8e leal $-808464432(%rax), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000e94 andl $-2139062144, %esi + 0x85, 0xfe, //0x00000e9a testl %edi, %esi + 0x0f, 0x85, 0xdf, 0x00, 0x00, 0x00, //0x00000e9c jne LBB1_152 + 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x00000ea2 leal $421075225(%rax), %edi + 0x09, 0xc7, //0x00000ea8 orl %eax, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00000eaa testl $-2139062144, %edi + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x00000eb0 jne LBB1_152 + 0x89, 0xc7, //0x00000eb6 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000eb8 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000ebe movl $-1061109568, %ebx + 0x29, 0xfb, //0x00000ec3 subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00000ec5 leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x00000ecc andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x00000ece testl %r8d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x00000ed1 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00000ed5 jne LBB1_152 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000edb movl $-522133280, %ebx + 0x29, 0xfb, //0x00000ee0 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00000ee2 addl $960051513, %edi + 0x21, 0xde, //0x00000ee8 andl %ebx, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x00000eea movq $-48(%rbp), %rbx + 0x85, 0xfe, //0x00000eee testl %edi, %esi + 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x00000ef0 jne LBB1_152 + 0x0f, 0xc8, //0x00000ef6 bswapl %eax + 0x89, 0xc1, //0x00000ef8 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000efa shrl $4, %ecx + 0xf7, 0xd1, //0x00000efd notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000eff andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000f05 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000f08 andl $252645135, %eax + 0x01, 0xc8, //0x00000f0d addl %ecx, %eax + 0x89, 0xc1, //0x00000f0f movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000f11 shrl $4, %ecx + 0x09, 0xc1, //0x00000f14 orl %eax, %ecx + 0x89, 0xc8, //0x00000f16 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00000f18 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000f1b andl $65280, %eax + 0x89, 0xca, //0x00000f20 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00000f22 andl $128, %edx + 0x09, 0xc2, //0x00000f28 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000f2a je LBB1_137 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00000f30 movl $255, %ecx + //0x00000f35 LBB1_137 + 0x49, 0x83, 0xc1, 0x06, //0x00000f35 addq $6, %r9 + 0x4c, 0x89, 0xcf, //0x00000f39 movq %r9, %rdi + 0x44, 0x89, 0xe2, //0x00000f3c movl %r12d, %edx + //0x00000f3f LBB1_138 + 0x80, 0xf9, 0x0a, //0x00000f3f cmpb $10, %cl + 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x00000f42 je LBB1_124 + 0x80, 0xf9, 0x0d, //0x00000f48 cmpb $13, %cl + 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x00000f4b je LBB1_124 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00000f51 jmp LBB1_153 + //0x00000f56 LBB1_140 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000f56 movl $1, %r11d + 0xe9, 0x70, 0xfa, 0xff, 0xff, //0x00000f5c jmp LBB1_52 + //0x00000f61 LBB1_142 + 0x49, 0x89, 0xf9, //0x00000f61 movq %rdi, %r9 + 0xe9, 0x96, 0xf9, 0xff, 0xff, //0x00000f64 jmp LBB1_38 + //0x00000f69 LBB1_144 + 0x49, 0xff, 0xc1, //0x00000f69 incq %r9 + 0x4c, 0x89, 0xca, //0x00000f6c movq %r9, %rdx + //0x00000f6f LBB1_145 + 0x49, 0x89, 0xd1, //0x00000f6f movq %rdx, %r9 + 0xe9, 0x9e, 0x03, 0x00, 0x00, //0x00000f72 jmp LBB1_212 + //0x00000f77 LBB1_150 + 0x3c, 0x2f, //0x00000f77 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00000f79 jne LBB1_152 + 0x89, 0xc1, //0x00000f7f movl %eax, %ecx + //0x00000f81 LBB1_152 + 0x48, 0x89, 0xd7, //0x00000f81 movq %rdx, %rdi + //0x00000f84 LBB1_153 + 0x0f, 0xb6, 0xc1, //0x00000f84 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00000f87 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x00000f8b movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000f8f cmpl $255, %eax + 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00000f94 je LBB1_174 + 0x44, 0x89, 0xe2, //0x00000f9a movl %r12d, %edx + 0xc1, 0xe2, 0x06, //0x00000f9d shll $6, %edx + 0x09, 0xc2, //0x00000fa0 orl %eax, %edx + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000fa2 movl $3, %r11d + 0x48, 0x39, 0xdf, //0x00000fa8 cmpq %rbx, %rdi + 0x0f, 0x83, 0x47, 0x01, 0x00, 0x00, //0x00000fab jae LBB1_175 + 0x41, 0x89, 0xd4, //0x00000fb1 movl %edx, %r12d + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00000fb4 jmp LBB1_159 + //0x00000fb9 LBB1_156 + 0x3c, 0x6e, //0x00000fb9 cmpb $110, %al + 0x0f, 0x85, 0xf3, 0x02, 0x00, 0x00, //0x00000fbb jne LBB1_203 + //0x00000fc1 LBB1_157 + 0x4d, 0x89, 0xc1, //0x00000fc1 movq %r8, %r9 + //0x00000fc4 LBB1_158 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000fc4 movl $3, %r11d + 0x4c, 0x89, 0xcf, //0x00000fca movq %r9, %rdi + 0x49, 0x39, 0xd9, //0x00000fcd cmpq %rbx, %r9 + 0x0f, 0x83, 0x29, 0xf9, 0xff, 0xff, //0x00000fd0 jae LBB1_38 + //0x00000fd6 LBB1_159 + 0x4c, 0x8d, 0x4f, 0x01, //0x00000fd6 leaq $1(%rdi), %r9 + 0x0f, 0xb6, 0x0f, //0x00000fda movzbl (%rdi), %ecx + 0x80, 0xf9, 0x5c, //0x00000fdd cmpb $92, %cl + 0x0f, 0x85, 0xed, 0x00, 0x00, 0x00, //0x00000fe0 jne LBB1_172 + 0x4c, 0x8d, 0x47, 0x02, //0x00000fe6 leaq $2(%rdi), %r8 + 0xb1, 0xff, //0x00000fea movb $-1, %cl + 0x49, 0x39, 0xd8, //0x00000fec cmpq %rbx, %r8 + 0x0f, 0x87, 0xd0, 0x02, 0x00, 0x00, //0x00000fef ja LBB1_206 + 0x41, 0x0f, 0xb6, 0x01, //0x00000ff5 movzbl (%r9), %eax + 0x3c, 0x71, //0x00000ff9 cmpb $113, %al + 0x0f, 0x8e, 0xb8, 0xff, 0xff, 0xff, //0x00000ffb jle LBB1_156 + 0x3c, 0x72, //0x00001001 cmpb $114, %al + 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x00001003 je LBB1_157 + 0x3c, 0x75, //0x00001009 cmpb $117, %al + 0x0f, 0x85, 0xad, 0x02, 0x00, 0x00, //0x0000100b jne LBB1_205 + 0x48, 0x8b, 0x45, 0xd0, //0x00001011 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xc0, //0x00001015 subq %r8, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00001018 cmpq $4, %rax + 0x0f, 0x8c, 0x9c, 0x02, 0x00, 0x00, //0x0000101c jl LBB1_205 + 0x41, 0x8b, 0x18, //0x00001022 movl (%r8), %ebx + 0x89, 0xde, //0x00001025 movl %ebx, %esi + 0xf7, 0xd6, //0x00001027 notl %esi + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001029 leal $-808464432(%rbx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000102f andl $-2139062144, %esi + 0x85, 0xc6, //0x00001035 testl %eax, %esi + 0x0f, 0x85, 0x81, 0x02, 0x00, 0x00, //0x00001037 jne LBB1_205 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x0000103d leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00001043 orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00001045 testl $-2139062144, %eax + 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x0000104a jne LBB1_205 + 0x89, 0xd8, //0x00001050 movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001052 andl $2139062143, %eax + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001057 movl $-1061109568, %edx + 0x29, 0xc2, //0x0000105c subl %eax, %edx + 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x0000105e leal $1179010630(%rax), %r9d + 0x21, 0xf2, //0x00001065 andl %esi, %edx + 0x44, 0x85, 0xca, //0x00001067 testl %r9d, %edx + 0x0f, 0x85, 0x4e, 0x02, 0x00, 0x00, //0x0000106a jne LBB1_205 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001070 movl $-522133280, %edx + 0x29, 0xc2, //0x00001075 subl %eax, %edx + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00001077 addl $960051513, %eax + 0x21, 0xd6, //0x0000107c andl %edx, %esi + 0x85, 0xc6, //0x0000107e testl %eax, %esi + 0x0f, 0x85, 0x38, 0x02, 0x00, 0x00, //0x00001080 jne LBB1_205 + 0x0f, 0xcb, //0x00001086 bswapl %ebx + 0x89, 0xd8, //0x00001088 movl %ebx, %eax + 0xc1, 0xe8, 0x04, //0x0000108a shrl $4, %eax + 0xf7, 0xd0, //0x0000108d notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000108f andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00001094 leal (%rax,%rax,8), %eax + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001097 andl $252645135, %ebx + 0x01, 0xc3, //0x0000109d addl %eax, %ebx + 0x89, 0xd9, //0x0000109f movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x000010a1 shrl $4, %ecx + 0x09, 0xd9, //0x000010a4 orl %ebx, %ecx + 0x89, 0xc8, //0x000010a6 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000010a8 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000010ab andl $65280, %eax + 0x89, 0xca, //0x000010b0 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000010b2 andl $128, %edx + 0x09, 0xc2, //0x000010b8 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000010ba je LBB1_171 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000010c0 movl $255, %ecx + //0x000010c5 LBB1_171 + 0x48, 0x83, 0xc7, 0x06, //0x000010c5 addq $6, %rdi + 0x49, 0x89, 0xf9, //0x000010c9 movq %rdi, %r9 + 0x48, 0x8b, 0x5d, 0xd0, //0x000010cc movq $-48(%rbp), %rbx + 0x44, 0x89, 0xe2, //0x000010d0 movl %r12d, %edx + //0x000010d3 LBB1_172 + 0x80, 0xf9, 0x0a, //0x000010d3 cmpb $10, %cl + 0x0f, 0x84, 0xe8, 0xfe, 0xff, 0xff, //0x000010d6 je LBB1_158 + 0x80, 0xf9, 0x0d, //0x000010dc cmpb $13, %cl + 0x0f, 0x84, 0xdf, 0xfe, 0xff, 0xff, //0x000010df je LBB1_158 + 0xe9, 0xdb, 0x01, 0x00, 0x00, //0x000010e5 jmp LBB1_206 + //0x000010ea LBB1_174 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000010ea movl $2, %r11d + 0x49, 0x89, 0xf9, //0x000010f0 movq %rdi, %r9 + 0xe9, 0xd9, 0xf8, 0xff, 0xff, //0x000010f3 jmp LBB1_52 + //0x000010f8 LBB1_175 + 0x49, 0x89, 0xf9, //0x000010f8 movq %rdi, %r9 + 0xe9, 0xe9, 0x01, 0x00, 0x00, //0x000010fb jmp LBB1_209 + //0x00001100 LBB1_195 + 0x4c, 0x89, 0xc9, //0x00001100 movq %r9, %rcx + 0x48, 0x89, 0xc8, //0x00001103 movq %rcx, %rax + 0x48, 0x39, 0xf1, //0x00001106 cmpq %rsi, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00001109 jb LBB1_179 + 0xe9, 0x66, 0x02, 0x00, 0x00, //0x0000110f jmp LBB1_216 + //0x00001114 LBB1_177 + 0x49, 0x89, 0xc9, //0x00001114 movq %rcx, %r9 + 0x48, 0x89, 0xc8, //0x00001117 movq %rcx, %rax + 0x48, 0x39, 0xf1, //0x0000111a cmpq %rsi, %rcx + 0x0f, 0x83, 0x57, 0x02, 0x00, 0x00, //0x0000111d jae LBB1_216 + //0x00001123 LBB1_179 + 0x4c, 0x8d, 0x48, 0x01, //0x00001123 leaq $1(%rax), %r9 + 0x0f, 0xb6, 0x08, //0x00001127 movzbl (%rax), %ecx + 0x80, 0xf9, 0x5c, //0x0000112a cmpb $92, %cl + 0x0f, 0x85, 0xee, 0x00, 0x00, 0x00, //0x0000112d jne LBB1_192 + 0x48, 0x8d, 0x48, 0x02, //0x00001133 leaq $2(%rax), %rcx + 0x48, 0x39, 0xf1, //0x00001137 cmpq %rsi, %rcx + 0x0f, 0x87, 0x3d, 0x05, 0x00, 0x00, //0x0000113a ja LBB1_279 + 0x41, 0x0f, 0xb6, 0x11, //0x00001140 movzbl (%r9), %edx + 0x80, 0xfa, 0x6e, //0x00001144 cmpb $110, %dl + 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x00001147 je LBB1_177 + 0x80, 0xfa, 0x72, //0x0000114d cmpb $114, %dl + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00001150 je LBB1_177 + 0x80, 0xfa, 0x75, //0x00001156 cmpb $117, %dl + 0x0f, 0x85, 0x16, 0x05, 0x00, 0x00, //0x00001159 jne LBB1_278 + 0x48, 0x89, 0xf2, //0x0000115f movq %rsi, %rdx + 0x48, 0x29, 0xca, //0x00001162 subq %rcx, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00001165 cmpq $4, %rdx + 0x0f, 0x8c, 0x06, 0x05, 0x00, 0x00, //0x00001169 jl LBB1_278 + 0x8b, 0x11, //0x0000116f movl (%rcx), %edx + 0x89, 0xd6, //0x00001171 movl %edx, %esi + 0xf7, 0xd6, //0x00001173 notl %esi + 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001175 leal $-808464432(%rdx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000117b andl $-2139062144, %esi + 0x85, 0xfe, //0x00001181 testl %edi, %esi + 0x0f, 0x85, 0xec, 0x04, 0x00, 0x00, //0x00001183 jne LBB1_278 + 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x00001189 leal $421075225(%rdx), %edi + 0x09, 0xd7, //0x0000118f orl %edx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00001191 testl $-2139062144, %edi + 0x0f, 0x85, 0xd8, 0x04, 0x00, 0x00, //0x00001197 jne LBB1_278 + 0x89, 0xd7, //0x0000119d movl %edx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000119f andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000011a5 movl $-1061109568, %ebx + 0x29, 0xfb, //0x000011aa subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000011ac leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x000011b3 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x000011b5 testl %r8d, %ebx + 0x0f, 0x85, 0xb7, 0x04, 0x00, 0x00, //0x000011b8 jne LBB1_278 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000011be movl $-522133280, %ebx + 0x29, 0xfb, //0x000011c3 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x000011c5 addl $960051513, %edi + 0x21, 0xde, //0x000011cb andl %ebx, %esi + 0x85, 0xfe, //0x000011cd testl %edi, %esi + 0x0f, 0x85, 0xa0, 0x04, 0x00, 0x00, //0x000011cf jne LBB1_278 + 0x0f, 0xca, //0x000011d5 bswapl %edx + 0x89, 0xd1, //0x000011d7 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000011d9 shrl $4, %ecx + 0xf7, 0xd1, //0x000011dc notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000011de andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000011e4 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000011e7 andl $252645135, %edx + 0x01, 0xca, //0x000011ed addl %ecx, %edx + 0x89, 0xd1, //0x000011ef movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000011f1 shrl $4, %ecx + 0x09, 0xd1, //0x000011f4 orl %edx, %ecx + 0x89, 0xca, //0x000011f6 movl %ecx, %edx + 0xc1, 0xea, 0x08, //0x000011f8 shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x000011fb andl $65280, %edx + 0x89, 0xce, //0x00001201 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00001203 andl $128, %esi + 0x09, 0xd6, //0x00001209 orl %edx, %esi + 0x48, 0x8b, 0x75, 0xd0, //0x0000120b movq $-48(%rbp), %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000120f je LBB1_191 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00001215 movl $255, %ecx + //0x0000121a LBB1_191 + 0x48, 0x83, 0xc0, 0x06, //0x0000121a addq $6, %rax + 0x49, 0x89, 0xc1, //0x0000121e movq %rax, %r9 + //0x00001221 LBB1_192 + 0x80, 0xf9, 0x0a, //0x00001221 cmpb $10, %cl + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00001224 je LBB1_195 + 0x80, 0xf9, 0x0d, //0x0000122a cmpb $13, %cl + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x0000122d je LBB1_195 + 0x80, 0xf9, 0x3d, //0x00001233 cmpb $61, %cl + 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00001236 jne LBB1_212 + 0x41, 0x83, 0xfe, 0x03, //0x0000123c cmpl $3, %r14d + 0x0f, 0x84, 0xcf, 0x00, 0x00, 0x00, //0x00001240 je LBB1_212 + 0x4c, 0x39, 0x4d, 0xd0, //0x00001246 cmpq %r9, $-48(%rbp) + 0x0f, 0x86, 0x2a, 0x01, 0x00, 0x00, //0x0000124a jbe LBB1_216 + 0x48, 0x8b, 0x55, 0xd0, //0x00001250 movq $-48(%rbp), %rdx + 0xe9, 0x8e, 0x01, 0x00, 0x00, //0x00001254 jmp LBB1_234 + //0x00001259 LBB1_176 + 0x41, 0x89, 0xd4, //0x00001259 movl %edx, %r12d + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000125c movl $2, %r11d + 0xe9, 0x6a, 0xf7, 0xff, 0xff, //0x00001262 jmp LBB1_52 + //0x00001267 LBB1_196 + 0x48, 0xff, 0xc1, //0x00001267 incq %rcx + 0x48, 0xff, 0xc2, //0x0000126a incq %rdx + 0x48, 0xff, 0xcf, //0x0000126d decq %rdi + 0x48, 0xff, 0xcb, //0x00001270 decq %rbx + 0x0f, 0x84, 0xfd, 0x00, 0x00, 0x00, //0x00001273 je LBB1_215 + //0x00001279 LBB1_197 + 0x0f, 0xb6, 0x41, 0xff, //0x00001279 movzbl $-1(%rcx), %eax + 0x3c, 0x0a, //0x0000127d cmpb $10, %al + 0x0f, 0x84, 0xe2, 0xff, 0xff, 0xff, //0x0000127f je LBB1_196 + 0x3c, 0x0d, //0x00001285 cmpb $13, %al + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00001287 je LBB1_196 + 0x3c, 0x3d, //0x0000128d cmpb $61, %al + 0x0f, 0x85, 0x75, 0x02, 0x00, 0x00, //0x0000128f jne LBB1_252 + 0x49, 0x89, 0xc9, //0x00001295 movq %rcx, %r9 + 0x41, 0x83, 0xfe, 0x04, //0x00001298 cmpl $4, %r14d + 0x0f, 0x84, 0x73, 0x00, 0x00, 0x00, //0x0000129c je LBB1_212 + 0x48, 0x39, 0x4d, 0xd0, //0x000012a2 cmpq %rcx, $-48(%rbp) + 0x0f, 0x87, 0xaf, 0x00, 0x00, 0x00, //0x000012a6 ja LBB1_229 + 0x49, 0x89, 0xc9, //0x000012ac movq %rcx, %r9 + 0xe9, 0xc6, 0x00, 0x00, 0x00, //0x000012af jmp LBB1_216 + //0x000012b4 LBB1_203 + 0x3c, 0x2f, //0x000012b4 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000012b6 jne LBB1_205 + 0x89, 0xc1, //0x000012bc movl %eax, %ecx + //0x000012be LBB1_205 + 0x4d, 0x89, 0xc1, //0x000012be movq %r8, %r9 + 0x48, 0x8b, 0x5d, 0xd0, //0x000012c1 movq $-48(%rbp), %rbx + //0x000012c5 LBB1_206 + 0x0f, 0xb6, 0xc1, //0x000012c5 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x000012c8 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x000012cc movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x000012d0 cmpl $255, %eax + 0x0f, 0x84, 0x69, 0x00, 0x00, 0x00, //0x000012d5 je LBB1_214 + 0x44, 0x89, 0xe2, //0x000012db movl %r12d, %edx + //0x000012de LBB1_208 + 0xc1, 0xe2, 0x06, //0x000012de shll $6, %edx + 0x09, 0xc2, //0x000012e1 orl %eax, %edx + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000012e3 movl $4, %r11d + //0x000012e9 LBB1_209 + 0x41, 0x89, 0xd4, //0x000012e9 movl %edx, %r12d + 0x41, 0xf6, 0xc2, 0x02, //0x000012ec testb $2, %r10b + 0x0f, 0x94, 0xc0, //0x000012f0 sete %al + 0x41, 0x83, 0xfb, 0x01, //0x000012f3 cmpl $1, %r11d + 0x0f, 0x94, 0xc1, //0x000012f7 sete %cl + 0x49, 0x39, 0xd9, //0x000012fa cmpq %rbx, %r9 + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000012fd jb LBB1_216 + 0x41, 0x83, 0xfb, 0x04, //0x00001303 cmpl $4, %r11d + 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x00001307 je LBB1_216 + 0x08, 0xc8, //0x0000130d orb %cl, %al + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x0000130f je LBB1_216 + //0x00001315 LBB1_212 + 0x49, 0x8d, 0x49, 0x01, //0x00001315 leaq $1(%r9), %rcx + 0x4c, 0x39, 0x4d, 0xd0, //0x00001319 cmpq %r9, $-48(%rbp) + 0x49, 0x0f, 0x45, 0xc9, //0x0000131d cmovneq %r9, %rcx + 0x4c, 0x29, 0xf9, //0x00001321 subq %r15, %rcx + 0x0f, 0x85, 0xb0, 0x36, 0x00, 0x00, //0x00001324 jne LBB1_1140 + 0x4d, 0x89, 0xf9, //0x0000132a movq %r15, %r9 + 0x48, 0x8b, 0x4d, 0xb0, //0x0000132d movq $-80(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00001331 movq %rcx, $-80(%rbp) + 0x48, 0x39, 0x4d, 0xc8, //0x00001335 cmpq %rcx, $-56(%rbp) + 0x0f, 0x83, 0x26, 0xf3, 0xff, 0xff, //0x00001339 jae LBB1_223 + 0xe9, 0xa2, 0x15, 0x00, 0x00, //0x0000133f jmp LBB1_572 + //0x00001344 LBB1_214 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001344 movl $3, %r11d + 0xe9, 0x82, 0xf6, 0xff, 0xff, //0x0000134a jmp LBB1_52 + //0x0000134f LBB1_228 + 0x48, 0xff, 0xc2, //0x0000134f incq %rdx + 0x48, 0xff, 0xcf, //0x00001352 decq %rdi + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00001355 je LBB1_215 + //0x0000135b LBB1_229 + 0x0f, 0xb6, 0x42, 0xff, //0x0000135b movzbl $-1(%rdx), %eax + 0x3c, 0x0a, //0x0000135f cmpb $10, %al + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00001361 je LBB1_228 + 0x3c, 0x0d, //0x00001367 cmpb $13, %al + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00001369 je LBB1_228 + 0x3c, 0x3d, //0x0000136f cmpb $61, %al + 0xe9, 0xf9, 0xfb, 0xff, 0xff, //0x00001371 jmp LBB1_145 + //0x00001376 LBB1_215 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001376 movq $-48(%rbp), %r9 + //0x0000137a LBB1_216 + 0xb0, 0x04, //0x0000137a movb $4, %al + 0x44, 0x28, 0xd8, //0x0000137c subb %r11b, %al + 0x0f, 0xb6, 0xc0, //0x0000137f movzbl %al, %eax + 0x01, 0xc0, //0x00001382 addl %eax, %eax + 0x8d, 0x0c, 0x40, //0x00001384 leal (%rax,%rax,2), %ecx + 0x44, 0x89, 0xe0, //0x00001387 movl %r12d, %eax + 0xd3, 0xe0, //0x0000138a shll %cl, %eax + 0x41, 0x83, 0xfb, 0x02, //0x0000138c cmpl $2, %r11d + 0x48, 0x8b, 0x4d, 0xb0, //0x00001390 movq $-80(%rbp), %rcx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001394 je LBB1_221 + 0x41, 0x83, 0xfb, 0x03, //0x0000139a cmpl $3, %r11d + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000139e je LBB1_220 + 0x41, 0x83, 0xfb, 0x04, //0x000013a4 cmpl $4, %r11d + 0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x000013a8 jne LBB1_222 + 0x88, 0x41, 0x02, //0x000013ae movb %al, $2(%rcx) + //0x000013b1 LBB1_220 + 0x88, 0x61, 0x01, //0x000013b1 movb %ah, $1(%rcx) + //0x000013b4 LBB1_221 + 0xc1, 0xe8, 0x10, //0x000013b4 shrl $16, %eax + 0x88, 0x01, //0x000013b7 movb %al, (%rcx) + //0x000013b9 LBB1_222 + 0x44, 0x89, 0xd8, //0x000013b9 movl %r11d, %eax + 0x48, 0x8d, 0x4c, 0x01, 0xff, //0x000013bc leaq $-1(%rcx,%rax), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x000013c1 movq %rcx, $-80(%rbp) + 0x48, 0x39, 0x4d, 0xc8, //0x000013c5 cmpq %rcx, $-56(%rbp) + 0x0f, 0x83, 0x96, 0xf2, 0xff, 0xff, //0x000013c9 jae LBB1_223 + 0xe9, 0x12, 0x15, 0x00, 0x00, //0x000013cf jmp LBB1_572 + //0x000013d4 LBB1_233 + 0x48, 0x89, 0xc1, //0x000013d4 movq %rax, %rcx + 0x48, 0x8b, 0x55, 0xd0, //0x000013d7 movq $-48(%rbp), %rdx + 0x49, 0x89, 0xc9, //0x000013db movq %rcx, %r9 + 0x48, 0x39, 0xd1, //0x000013de cmpq %rdx, %rcx + 0x0f, 0x83, 0x2e, 0xf9, 0xff, 0xff, //0x000013e1 jae LBB1_143 + //0x000013e7 LBB1_234 + 0x49, 0x8d, 0x41, 0x01, //0x000013e7 leaq $1(%r9), %rax + 0x41, 0x0f, 0xb6, 0x09, //0x000013eb movzbl (%r9), %ecx + 0x80, 0xf9, 0x5c, //0x000013ef cmpb $92, %cl + 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x000013f2 jne LBB1_247 + 0x49, 0x8d, 0x49, 0x02, //0x000013f8 leaq $2(%r9), %rcx + 0x48, 0x39, 0xd1, //0x000013fc cmpq %rdx, %rcx + 0x0f, 0x87, 0x7b, 0x02, 0x00, 0x00, //0x000013ff ja LBB1_258 + 0x0f, 0xb6, 0x00, //0x00001405 movzbl (%rax), %eax + 0x3c, 0x6e, //0x00001408 cmpb $110, %al + 0x0f, 0x84, 0xe2, 0x00, 0x00, 0x00, //0x0000140a je LBB1_249 + 0x3c, 0x72, //0x00001410 cmpb $114, %al + 0x0f, 0x84, 0xda, 0x00, 0x00, 0x00, //0x00001412 je LBB1_249 + 0x3c, 0x75, //0x00001418 cmpb $117, %al + 0x0f, 0x85, 0x55, 0x02, 0x00, 0x00, //0x0000141a jne LBB1_278 + 0x48, 0x8b, 0x45, 0xd0, //0x00001420 movq $-48(%rbp), %rax + 0x48, 0x29, 0xc8, //0x00001424 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00001427 cmpq $4, %rax + 0x0f, 0x8c, 0x44, 0x02, 0x00, 0x00, //0x0000142b jl LBB1_278 + 0x8b, 0x01, //0x00001431 movl (%rcx), %eax + 0x89, 0xc2, //0x00001433 movl %eax, %edx + 0xf7, 0xd2, //0x00001435 notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001437 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x0000143d andl $-2139062144, %edx + 0x85, 0xf2, //0x00001443 testl %esi, %edx + 0x0f, 0x85, 0x2a, 0x02, 0x00, 0x00, //0x00001445 jne LBB1_278 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x0000144b leal $421075225(%rax), %esi + 0x09, 0xc6, //0x00001451 orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00001453 testl $-2139062144, %esi + 0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x00001459 jne LBB1_278 + 0x89, 0xc6, //0x0000145f movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001461 andl $2139062143, %esi + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001467 movl $-1061109568, %edi + 0x29, 0xf7, //0x0000146c subl %esi, %edi + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x0000146e leal $1179010630(%rsi), %ebx + 0x21, 0xd7, //0x00001474 andl %edx, %edi + 0x85, 0xdf, //0x00001476 testl %ebx, %edi + 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x00001478 jne LBB1_278 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000147e movl $-522133280, %edi + 0x29, 0xf7, //0x00001483 subl %esi, %edi + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00001485 addl $960051513, %esi + 0x21, 0xfa, //0x0000148b andl %edi, %edx + 0x85, 0xf2, //0x0000148d testl %esi, %edx + 0x0f, 0x85, 0xe0, 0x01, 0x00, 0x00, //0x0000148f jne LBB1_278 + 0x0f, 0xc8, //0x00001495 bswapl %eax + 0x89, 0xc1, //0x00001497 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00001499 shrl $4, %ecx + 0xf7, 0xd1, //0x0000149c notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000149e andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000014a4 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x000014a7 andl $252645135, %eax + 0x01, 0xc8, //0x000014ac addl %ecx, %eax + 0x89, 0xc1, //0x000014ae movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x000014b0 shrl $4, %ecx + 0x09, 0xc1, //0x000014b3 orl %eax, %ecx + 0x89, 0xc8, //0x000014b5 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000014b7 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000014ba andl $65280, %eax + 0x89, 0xca, //0x000014bf movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000014c1 andl $128, %edx + 0x09, 0xc2, //0x000014c7 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000014c9 je LBB1_246 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000014cf movl $255, %ecx + //0x000014d4 LBB1_246 + 0x49, 0x83, 0xc1, 0x06, //0x000014d4 addq $6, %r9 + 0x4c, 0x89, 0xc8, //0x000014d8 movq %r9, %rax + //0x000014db LBB1_247 + 0x80, 0xf9, 0x0a, //0x000014db cmpb $10, %cl + 0x0f, 0x84, 0xf0, 0xfe, 0xff, 0xff, //0x000014de je LBB1_233 + 0x80, 0xf9, 0x0d, //0x000014e4 cmpb $13, %cl + 0x0f, 0x84, 0xe7, 0xfe, 0xff, 0xff, //0x000014e7 je LBB1_233 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x000014ed jmp LBB1_254 + //0x000014f2 LBB1_249 + 0x48, 0x89, 0xc8, //0x000014f2 movq %rcx, %rax + 0x48, 0x8b, 0x55, 0xd0, //0x000014f5 movq $-48(%rbp), %rdx + 0x49, 0x89, 0xc9, //0x000014f9 movq %rcx, %r9 + 0x48, 0x39, 0xd1, //0x000014fc cmpq %rdx, %rcx + 0x0f, 0x82, 0xe2, 0xfe, 0xff, 0xff, //0x000014ff jb LBB1_234 + 0xe9, 0x0b, 0xf8, 0xff, 0xff, //0x00001505 jmp LBB1_143 + //0x0000150a LBB1_252 + 0x48, 0x89, 0xca, //0x0000150a movq %rcx, %rdx + 0x49, 0x89, 0xc9, //0x0000150d movq %rcx, %r9 + 0xe9, 0x00, 0xfe, 0xff, 0xff, //0x00001510 jmp LBB1_212 + //0x00001515 LBB1_254 + 0x80, 0xf9, 0x3d, //0x00001515 cmpb $61, %cl + 0x0f, 0x85, 0x62, 0x01, 0x00, 0x00, //0x00001518 jne LBB1_258 + 0x49, 0x89, 0xc1, //0x0000151e movq %rax, %r9 + 0x41, 0x83, 0xfe, 0x04, //0x00001521 cmpl $4, %r14d + 0x0f, 0x84, 0xea, 0xfd, 0xff, 0xff, //0x00001525 je LBB1_212 + 0x48, 0x39, 0x45, 0xd0, //0x0000152b cmpq %rax, $-48(%rbp) + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x0000152f ja LBB1_261 + 0xe9, 0xdb, 0xf7, 0xff, 0xff, //0x00001535 jmp LBB1_143 + //0x0000153a LBB1_277 + 0x4c, 0x89, 0xc9, //0x0000153a movq %r9, %rcx + 0x48, 0x89, 0xc8, //0x0000153d movq %rcx, %rax + 0x48, 0x3b, 0x4d, 0xd0, //0x00001540 cmpq $-48(%rbp), %rcx + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00001544 jb LBB1_261 + 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x0000154a jmp LBB1_216 + //0x0000154f LBB1_259 + 0x49, 0x89, 0xc9, //0x0000154f movq %rcx, %r9 + 0x48, 0x89, 0xc8, //0x00001552 movq %rcx, %rax + 0x48, 0x3b, 0x4d, 0xd0, //0x00001555 cmpq $-48(%rbp), %rcx + 0x0f, 0x83, 0x1b, 0xfe, 0xff, 0xff, //0x00001559 jae LBB1_216 + //0x0000155f LBB1_261 + 0x4c, 0x8d, 0x48, 0x01, //0x0000155f leaq $1(%rax), %r9 + 0x0f, 0xb6, 0x08, //0x00001563 movzbl (%rax), %ecx + 0x80, 0xf9, 0x5c, //0x00001566 cmpb $92, %cl + 0x0f, 0x85, 0xec, 0x00, 0x00, 0x00, //0x00001569 jne LBB1_274 + 0x48, 0x8d, 0x48, 0x02, //0x0000156f leaq $2(%rax), %rcx + 0x48, 0x3b, 0x4d, 0xd0, //0x00001573 cmpq $-48(%rbp), %rcx + 0x0f, 0x87, 0x00, 0x01, 0x00, 0x00, //0x00001577 ja LBB1_279 + 0x41, 0x0f, 0xb6, 0x11, //0x0000157d movzbl (%r9), %edx + 0x80, 0xfa, 0x6e, //0x00001581 cmpb $110, %dl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00001584 je LBB1_259 + 0x80, 0xfa, 0x72, //0x0000158a cmpb $114, %dl + 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000158d je LBB1_259 + 0x80, 0xfa, 0x75, //0x00001593 cmpb $117, %dl + 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00001596 jne LBB1_278 + 0x48, 0x8b, 0x55, 0xd0, //0x0000159c movq $-48(%rbp), %rdx + 0x48, 0x29, 0xca, //0x000015a0 subq %rcx, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x000015a3 cmpq $4, %rdx + 0x0f, 0x8c, 0xc8, 0x00, 0x00, 0x00, //0x000015a7 jl LBB1_278 + 0x8b, 0x11, //0x000015ad movl (%rcx), %edx + 0x89, 0xd6, //0x000015af movl %edx, %esi + 0xf7, 0xd6, //0x000015b1 notl %esi + 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x000015b3 leal $-808464432(%rdx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x000015b9 andl $-2139062144, %esi + 0x85, 0xfe, //0x000015bf testl %edi, %esi + 0x0f, 0x85, 0xae, 0x00, 0x00, 0x00, //0x000015c1 jne LBB1_278 + 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x000015c7 leal $421075225(%rdx), %edi + 0x09, 0xd7, //0x000015cd orl %edx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x000015cf testl $-2139062144, %edi + 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x000015d5 jne LBB1_278 + 0x89, 0xd7, //0x000015db movl %edx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x000015dd andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000015e3 movl $-1061109568, %ebx + 0x29, 0xfb, //0x000015e8 subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000015ea leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x000015f1 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x000015f3 testl %r8d, %ebx + 0x0f, 0x85, 0x79, 0x00, 0x00, 0x00, //0x000015f6 jne LBB1_278 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000015fc movl $-522133280, %ebx + 0x29, 0xfb, //0x00001601 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00001603 addl $960051513, %edi + 0x21, 0xde, //0x00001609 andl %ebx, %esi + 0x85, 0xfe, //0x0000160b testl %edi, %esi + 0x0f, 0x85, 0x62, 0x00, 0x00, 0x00, //0x0000160d jne LBB1_278 + 0x0f, 0xca, //0x00001613 bswapl %edx + 0x89, 0xd1, //0x00001615 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x00001617 shrl $4, %ecx + 0xf7, 0xd1, //0x0000161a notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000161c andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001622 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001625 andl $252645135, %edx + 0x01, 0xca, //0x0000162b addl %ecx, %edx + 0x89, 0xd1, //0x0000162d movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x0000162f shrl $4, %ecx + 0x09, 0xd1, //0x00001632 orl %edx, %ecx + 0x89, 0xca, //0x00001634 movl %ecx, %edx + 0xc1, 0xea, 0x08, //0x00001636 shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x00001639 andl $65280, %edx + 0x89, 0xce, //0x0000163f movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00001641 andl $128, %esi + 0x09, 0xd6, //0x00001647 orl %edx, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00001649 je LBB1_273 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x0000164f movl $255, %ecx + //0x00001654 LBB1_273 + 0x48, 0x83, 0xc0, 0x06, //0x00001654 addq $6, %rax + 0x49, 0x89, 0xc1, //0x00001658 movq %rax, %r9 + //0x0000165b LBB1_274 + 0x80, 0xf9, 0x0a, //0x0000165b cmpb $10, %cl + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x0000165e je LBB1_277 + 0x80, 0xf9, 0x0d, //0x00001664 cmpb $13, %cl + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x00001667 je LBB1_277 + 0x80, 0xf9, 0x3d, //0x0000166d cmpb $61, %cl + 0xe9, 0xa0, 0xfc, 0xff, 0xff, //0x00001670 jmp LBB1_212 + //0x00001675 LBB1_278 + 0x49, 0x89, 0xc9, //0x00001675 movq %rcx, %r9 + 0xe9, 0x98, 0xfc, 0xff, 0xff, //0x00001678 jmp LBB1_212 + //0x0000167d LBB1_279 + 0x4c, 0x89, 0xc8, //0x0000167d movq %r9, %rax + //0x00001680 LBB1_258 + 0x49, 0x89, 0xc1, //0x00001680 movq %rax, %r9 + 0xe9, 0x8d, 0xfc, 0xff, 0xff, //0x00001683 jmp LBB1_212 + //0x00001688 LBB1_282 + 0x31, 0xc0, //0x00001688 xorl %eax, %eax + 0xe9, 0x39, 0x33, 0x00, 0x00, //0x0000168a jmp LBB1_1139 + //0x0000168f LBB1_283 + 0x48, 0x8b, 0x45, 0x90, //0x0000168f movq $-112(%rbp), %rax + 0x4c, 0x8d, 0x60, 0xe0, //0x00001693 leaq $-32(%rax), %r12 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00001697 movq $-136(%rbp), %rax + 0x49, 0x39, 0xc4, //0x0000169e cmpq %rax, %r12 + 0x0f, 0x82, 0xad, 0x22, 0x00, 0x00, //0x000016a1 jb LBB1_854 + 0x4c, 0x8d, 0x53, 0xe0, //0x000016a7 leaq $-32(%rbx), %r10 + 0x48, 0x89, 0x45, 0xb0, //0x000016ab movq %rax, $-80(%rbp) + 0x48, 0x8b, 0x45, 0xa8, //0x000016af movq $-88(%rbp), %rax + 0x49, 0x89, 0xc7, //0x000016b3 movq %rax, %r15 + 0x49, 0x39, 0xc2, //0x000016b6 cmpq %rax, %r10 + 0x0f, 0x82, 0xf9, 0xee, 0xff, 0xff, //0x000016b9 jb LBB1_2 + 0xc4, 0xc1, 0x7e, 0x6f, 0x41, 0x20, //0x000016bf vmovdqu $32(%r9), %ymm0 + 0x4c, 0x8b, 0x6d, 0xa8, //0x000016c5 movq $-88(%rbp), %r13 + 0x48, 0x8b, 0x45, 0x88, //0x000016c9 movq $-120(%rbp), %rax + 0x4a, 0x8d, 0x4c, 0x28, 0xfe, //0x000016cd leaq $-2(%rax,%r13), %rcx + 0x48, 0x89, 0x4d, 0xa0, //0x000016d2 movq %rcx, $-96(%rbp) + 0x4a, 0x8d, 0x44, 0x28, 0xfd, //0x000016d6 leaq $-3(%rax,%r13), %rax + 0x48, 0x89, 0x45, 0x80, //0x000016db movq %rax, $-128(%rbp) + 0xc5, 0xfd, 0x6f, 0x0d, 0x79, 0xed, 0xff, 0xff, //0x000016df vmovdqa $-4743(%rip), %ymm1 /* LCPI1_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x91, 0xed, 0xff, 0xff, //0x000016e7 vmovdqa $-4719(%rip), %ymm2 /* LCPI1_1+0(%rip) */ + 0xc5, 0xe1, 0xef, 0xdb, //0x000016ef vpxor %xmm3, %xmm3, %xmm3 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000016f3 movabsq $-4294967296, %r8 + 0xc5, 0x7d, 0x6f, 0x2d, 0x9b, 0xed, 0xff, 0xff, //0x000016fd vmovdqa $-4709(%rip), %ymm13 /* LCPI1_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0xb3, 0xed, 0xff, 0xff, //0x00001705 vmovdqa $-4685(%rip), %ymm5 /* LCPI1_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xcb, 0xed, 0xff, 0xff, //0x0000170d vmovdqa $-4661(%rip), %ymm6 /* LCPI1_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x3d, 0x03, 0xee, 0xff, 0xff, //0x00001715 vmovdqa $-4605(%rip), %xmm7 /* LCPI1_5+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x05, 0xdb, 0xed, 0xff, 0xff, //0x0000171d vmovdqa $-4645(%rip), %ymm8 /* LCPI1_6+0(%rip) */ + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00001725 movq $-136(%rbp), %rax + 0x48, 0x89, 0x45, 0xb0, //0x0000172c movq %rax, $-80(%rbp) + 0x4d, 0x89, 0xef, //0x00001730 movq %r13, %r15 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00001733 jmp LBB1_286 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001738 .p2align 4, 0x90 + //0x00001740 LBB1_295 + 0xc4, 0x41, 0x35, 0x74, 0x59, 0x40, //0x00001740 vpcmpeqb $64(%r9), %ymm9, %ymm11 + 0xc4, 0x41, 0x7e, 0x6f, 0x21, //0x00001746 vmovdqu (%r9), %ymm12 + 0xc4, 0x42, 0x1d, 0x00, 0xd2, //0x0000174b vpshufb %ymm10, %ymm12, %ymm10 + 0xc4, 0x43, 0x2d, 0x4c, 0x51, 0x60, 0xb0, //0x00001750 vpblendvb %ymm11, $96(%r9), %ymm10, %ymm10 + 0xc4, 0x41, 0x2d, 0xfc, 0xc9, //0x00001757 vpaddb %ymm9, %ymm10, %ymm9 + 0xc4, 0x41, 0x35, 0xdb, 0xcd, //0x0000175c vpand %ymm13, %ymm9, %ymm9 + 0xc4, 0x62, 0x35, 0x04, 0xcd, //0x00001761 vpmaddubsw %ymm5, %ymm9, %ymm9 + 0xc5, 0x35, 0xf5, 0xce, //0x00001766 vpmaddwd %ymm6, %ymm9, %ymm9 + 0xc4, 0x63, 0x7d, 0x39, 0xcc, 0x01, //0x0000176a vextracti128 $1, %ymm9, %xmm4 + 0xc4, 0xe2, 0x59, 0x00, 0xe7, //0x00001770 vpshufb %xmm7, %xmm4, %xmm4 + 0xc4, 0x42, 0x35, 0x00, 0xc8, //0x00001775 vpshufb %ymm8, %ymm9, %ymm9 + 0xc4, 0xe3, 0x35, 0x02, 0xe4, 0x08, //0x0000177a vpblendd $8, %ymm4, %ymm9, %ymm4 + 0xc4, 0xe3, 0x5d, 0x02, 0xe3, 0xc0, //0x00001780 vpblendd $192, %ymm3, %ymm4, %ymm4 + 0x48, 0x8b, 0x4d, 0xb0, //0x00001786 movq $-80(%rbp), %rcx + 0xc5, 0xfe, 0x7f, 0x21, //0x0000178a vmovdqu %ymm4, (%rcx) + 0x49, 0x83, 0xc7, 0x20, //0x0000178e addq $32, %r15 + 0x48, 0x83, 0xc1, 0x18, //0x00001792 addq $24, %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00001796 movq %rcx, $-80(%rbp) + 0x49, 0x39, 0xcc, //0x0000179a cmpq %rcx, %r12 + 0x0f, 0x82, 0x15, 0xee, 0xff, 0xff, //0x0000179d jb LBB1_2 + //0x000017a3 LBB1_506 + 0x4d, 0x89, 0xfd, //0x000017a3 movq %r15, %r13 + 0x4d, 0x39, 0xfa, //0x000017a6 cmpq %r15, %r10 + 0x0f, 0x82, 0x09, 0xee, 0xff, 0xff, //0x000017a9 jb LBB1_2 + //0x000017af LBB1_286 + 0xc4, 0x41, 0x7e, 0x6f, 0x4d, 0x00, //0x000017af vmovdqu (%r13), %ymm9 + 0xc4, 0xc1, 0x2d, 0x72, 0xd1, 0x04, //0x000017b5 vpsrld $4, %ymm9, %ymm10 + 0xc5, 0x2d, 0xdb, 0xd1, //0x000017bb vpand %ymm1, %ymm10, %ymm10 + 0xc5, 0x35, 0xdb, 0xd9, //0x000017bf vpand %ymm1, %ymm9, %ymm11 + 0xc4, 0x42, 0x7d, 0x00, 0xdb, //0x000017c3 vpshufb %ymm11, %ymm0, %ymm11 + 0xc4, 0x42, 0x6d, 0x00, 0xe2, //0x000017c8 vpshufb %ymm10, %ymm2, %ymm12 + 0xc4, 0x41, 0x1d, 0xdb, 0xdb, //0x000017cd vpand %ymm11, %ymm12, %ymm11 + 0xc5, 0x25, 0x74, 0xdb, //0x000017d2 vpcmpeqb %ymm3, %ymm11, %ymm11 + 0xc4, 0xc1, 0x7d, 0xd7, 0xc3, //0x000017d6 vpmovmskb %ymm11, %eax + 0x4c, 0x09, 0xc0, //0x000017db orq %r8, %rax + 0x48, 0x0f, 0xbc, 0xc0, //0x000017de bsfq %rax, %rax + 0x83, 0xf8, 0x1f, //0x000017e2 cmpl $31, %eax + 0x0f, 0x87, 0x55, 0xff, 0xff, 0xff, //0x000017e5 ja LBB1_295 + 0x4c, 0x39, 0xfb, //0x000017eb cmpq %r15, %rbx + 0x0f, 0x86, 0x3c, 0x02, 0x00, 0x00, //0x000017ee jbe LBB1_320 + 0xf6, 0x45, 0xbc, 0x08, //0x000017f4 testb $8, $-68(%rbp) + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000017f8 je LBB1_291 + 0x4c, 0x89, 0xf8, //0x000017fe movq %r15, %rax + 0xe9, 0xd6, 0x00, 0x00, 0x00, //0x00001801 jmp LBB1_303 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001806 .p2align 4, 0x90 + //0x00001810 LBB1_290 + 0x49, 0xff, 0xc7, //0x00001810 incq %r15 + 0x49, 0x39, 0xdf, //0x00001813 cmpq %rbx, %r15 + 0x0f, 0x83, 0x00, 0x02, 0x00, 0x00, //0x00001816 jae LBB1_318 + //0x0000181c LBB1_291 + 0x45, 0x0f, 0xb6, 0x37, //0x0000181c movzbl (%r15), %r14d + 0x49, 0x83, 0xfe, 0x0d, //0x00001820 cmpq $13, %r14 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00001824 je LBB1_290 + 0x41, 0x80, 0xfe, 0x0a, //0x0000182a cmpb $10, %r14b + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x0000182e je LBB1_290 + 0x48, 0x8b, 0x45, 0xc0, //0x00001834 movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x00001838 movzbl (%rax,%r14), %eax + 0x49, 0xff, 0xc7, //0x0000183d incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001840 cmpl $255, %eax + 0x0f, 0x84, 0xb0, 0x02, 0x00, 0x00, //0x00001845 je LBB1_333 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000184b movl $1, %r11d + 0x49, 0x39, 0xdf, //0x00001851 cmpq %rbx, %r15 + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001854 jb LBB1_297 + 0xe9, 0x4e, 0x0c, 0x00, 0x00, //0x0000185a jmp LBB1_492 + 0x90, //0x0000185f .p2align 4, 0x90 + //0x00001860 LBB1_296 + 0x49, 0xff, 0xc7, //0x00001860 incq %r15 + 0x49, 0x39, 0xdf, //0x00001863 cmpq %rbx, %r15 + 0x0f, 0x83, 0x90, 0x04, 0x00, 0x00, //0x00001866 jae LBB1_364 + //0x0000186c LBB1_297 + 0x45, 0x0f, 0xb6, 0x37, //0x0000186c movzbl (%r15), %r14d + 0x49, 0x83, 0xfe, 0x0d, //0x00001870 cmpq $13, %r14 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00001874 je LBB1_296 + 0x41, 0x80, 0xfe, 0x0a, //0x0000187a cmpb $10, %r14b + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x0000187e je LBB1_296 + 0x89, 0x45, 0xc8, //0x00001884 movl %eax, $-56(%rbp) + 0x48, 0x8b, 0x45, 0xc0, //0x00001887 movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x0000188b movzbl (%rax,%r14), %eax + 0x49, 0xff, 0xc7, //0x00001890 incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001893 cmpl $255, %eax + 0x0f, 0x84, 0xe0, 0x06, 0x00, 0x00, //0x00001898 je LBB1_422 + 0x8b, 0x4d, 0xc8, //0x0000189e movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x000018a1 shll $6, %ecx + 0x09, 0xc1, //0x000018a4 orl %eax, %ecx + 0x89, 0xc8, //0x000018a6 movl %ecx, %eax + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000018a8 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x000018ae cmpq %rbx, %r15 + 0x0f, 0x82, 0xab, 0x01, 0x00, 0x00, //0x000018b1 jb LBB1_322 + 0xe9, 0xf1, 0x0b, 0x00, 0x00, //0x000018b7 jmp LBB1_492 + //0x000018bc LBB1_301 + 0x80, 0xfa, 0x6e, //0x000018bc cmpb $110, %dl + 0x0f, 0x85, 0xf5, 0x01, 0x00, 0x00, //0x000018bf jne LBB1_327 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018c5 .p2align 4, 0x90 + //0x000018d0 LBB1_302 + 0x4c, 0x89, 0xf8, //0x000018d0 movq %r15, %rax + 0x49, 0x39, 0xdf, //0x000018d3 cmpq %rbx, %r15 + 0x0f, 0x83, 0x40, 0x01, 0x00, 0x00, //0x000018d6 jae LBB1_318 + //0x000018dc LBB1_303 + 0x48, 0x8d, 0x50, 0x01, //0x000018dc leaq $1(%rax), %rdx + 0x44, 0x0f, 0xb6, 0x30, //0x000018e0 movzbl (%rax), %r14d + 0x41, 0x80, 0xfe, 0x5c, //0x000018e4 cmpb $92, %r14b + 0x0f, 0x85, 0x12, 0x01, 0x00, 0x00, //0x000018e8 jne LBB1_316 + 0x4c, 0x8d, 0x78, 0x02, //0x000018ee leaq $2(%rax), %r15 + 0x41, 0xb6, 0xff, //0x000018f2 movb $-1, %r14b + 0x49, 0x39, 0xdf, //0x000018f5 cmpq %rbx, %r15 + 0x0f, 0x87, 0xb4, 0x01, 0x00, 0x00, //0x000018f8 ja LBB1_326 + 0x0f, 0xb6, 0x12, //0x000018fe movzbl (%rdx), %edx + 0x80, 0xfa, 0x71, //0x00001901 cmpb $113, %dl + 0x0f, 0x8e, 0xb2, 0xff, 0xff, 0xff, //0x00001904 jle LBB1_301 + 0x80, 0xfa, 0x72, //0x0000190a cmpb $114, %dl + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x0000190d je LBB1_302 + 0x80, 0xfa, 0x75, //0x00001913 cmpb $117, %dl + 0x0f, 0x85, 0xaa, 0x01, 0x00, 0x00, //0x00001916 jne LBB1_329 + 0x48, 0x8b, 0x4d, 0xd0, //0x0000191c movq $-48(%rbp), %rcx + 0x4c, 0x29, 0xf9, //0x00001920 subq %r15, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00001923 cmpq $4, %rcx + 0x0f, 0x8c, 0x99, 0x01, 0x00, 0x00, //0x00001927 jl LBB1_329 + 0x41, 0x8b, 0x1f, //0x0000192d movl (%r15), %ebx + 0x89, 0xdf, //0x00001930 movl %ebx, %edi + 0xf7, 0xd7, //0x00001932 notl %edi + 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001934 leal $-808464432(%rbx), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000193a andl $-2139062144, %edi + 0x85, 0xcf, //0x00001940 testl %ecx, %edi + 0x0f, 0x85, 0x7e, 0x01, 0x00, 0x00, //0x00001942 jne LBB1_329 + 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x00001948 leal $421075225(%rbx), %ecx + 0x09, 0xd9, //0x0000194e orl %ebx, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00001950 testl $-2139062144, %ecx + 0x0f, 0x85, 0x6a, 0x01, 0x00, 0x00, //0x00001956 jne LBB1_329 + 0x89, 0xda, //0x0000195c movl %ebx, %edx + 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000195e andl $2139062143, %edx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001964 movl $-1061109568, %ecx + 0x29, 0xd1, //0x00001969 subl %edx, %ecx + 0x8d, 0xb2, 0x46, 0x46, 0x46, 0x46, //0x0000196b leal $1179010630(%rdx), %esi + 0x21, 0xf9, //0x00001971 andl %edi, %ecx + 0x85, 0xf1, //0x00001973 testl %esi, %ecx + 0x0f, 0x85, 0x4b, 0x01, 0x00, 0x00, //0x00001975 jne LBB1_329 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000197b movl $-522133280, %ecx + 0x29, 0xd1, //0x00001980 subl %edx, %ecx + 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x00001982 addl $960051513, %edx + 0x21, 0xcf, //0x00001988 andl %ecx, %edi + 0x85, 0xd7, //0x0000198a testl %edx, %edi + 0x0f, 0x85, 0x34, 0x01, 0x00, 0x00, //0x0000198c jne LBB1_329 + 0x0f, 0xcb, //0x00001992 bswapl %ebx + 0x89, 0xd9, //0x00001994 movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00001996 shrl $4, %ecx + 0xf7, 0xd1, //0x00001999 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000199b andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000019a1 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x000019a4 andl $252645135, %ebx + 0x01, 0xcb, //0x000019aa addl %ecx, %ebx + 0x41, 0x89, 0xde, //0x000019ac movl %ebx, %r14d + 0x41, 0xc1, 0xee, 0x04, //0x000019af shrl $4, %r14d + 0x41, 0x09, 0xde, //0x000019b3 orl %ebx, %r14d + 0x44, 0x89, 0xf1, //0x000019b6 movl %r14d, %ecx + 0xc1, 0xe9, 0x08, //0x000019b9 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000019bc andl $65280, %ecx + 0x44, 0x89, 0xf2, //0x000019c2 movl %r14d, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000019c5 andl $128, %edx + 0x09, 0xca, //0x000019cb orl %ecx, %edx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000019cd je LBB1_315 + 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x000019d3 movl $255, %r14d + //0x000019d9 LBB1_315 + 0x48, 0x83, 0xc0, 0x06, //0x000019d9 addq $6, %rax + 0x49, 0x89, 0xc7, //0x000019dd movq %rax, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x000019e0 movq $-48(%rbp), %rbx + 0x41, 0x80, 0xfe, 0x0d, //0x000019e4 cmpb $13, %r14b + 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x000019e8 jne LBB1_317 + 0xe9, 0xdd, 0xfe, 0xff, 0xff, //0x000019ee jmp LBB1_302 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000019f3 .p2align 4, 0x90 + //0x00001a00 LBB1_316 + 0x49, 0x89, 0xd7, //0x00001a00 movq %rdx, %r15 + 0x41, 0x80, 0xfe, 0x0d, //0x00001a03 cmpb $13, %r14b + 0x0f, 0x84, 0xc3, 0xfe, 0xff, 0xff, //0x00001a07 je LBB1_302 + //0x00001a0d LBB1_317 + 0x41, 0x80, 0xfe, 0x0a, //0x00001a0d cmpb $10, %r14b + 0x0f, 0x84, 0xb9, 0xfe, 0xff, 0xff, //0x00001a11 je LBB1_302 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x00001a17 jmp LBB1_330 + //0x00001a1c LBB1_318 + 0x31, 0xc0, //0x00001a1c xorl %eax, %eax + 0x45, 0x31, 0xdb, //0x00001a1e xorl %r11d, %r11d + //0x00001a21 LBB1_319 + 0x45, 0x85, 0xdb, //0x00001a21 testl %r11d, %r11d + 0x0f, 0x85, 0x83, 0x0a, 0x00, 0x00, //0x00001a24 jne LBB1_492 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a2a .p2align 4, 0x90 + //0x00001a30 LBB1_320 + 0x48, 0x8b, 0x4d, 0xb0, //0x00001a30 movq $-80(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00001a34 movq %rcx, $-80(%rbp) + 0x49, 0x39, 0xcc, //0x00001a38 cmpq %rcx, %r12 + 0x0f, 0x83, 0x62, 0xfd, 0xff, 0xff, //0x00001a3b jae LBB1_506 + 0xe9, 0x72, 0xeb, 0xff, 0xff, //0x00001a41 jmp LBB1_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a46 .p2align 4, 0x90 + //0x00001a50 LBB1_321 + 0x49, 0xff, 0xc7, //0x00001a50 incq %r15 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00001a53 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x00001a59 cmpq %rbx, %r15 + 0x0f, 0x83, 0xbf, 0xff, 0xff, 0xff, //0x00001a5c jae LBB1_319 + //0x00001a62 LBB1_322 + 0x45, 0x0f, 0xb6, 0x37, //0x00001a62 movzbl (%r15), %r14d + 0x49, 0x83, 0xfe, 0x0d, //0x00001a66 cmpq $13, %r14 + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00001a6a je LBB1_321 + 0x41, 0x80, 0xfe, 0x0a, //0x00001a70 cmpb $10, %r14b + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00001a74 je LBB1_321 + 0x89, 0x45, 0xc8, //0x00001a7a movl %eax, $-56(%rbp) + 0x48, 0x8b, 0x45, 0xc0, //0x00001a7d movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x00001a81 movzbl (%rax,%r14), %eax + 0x49, 0xff, 0xc7, //0x00001a86 incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001a89 cmpl $255, %eax + 0x0f, 0x84, 0x67, 0x09, 0x00, 0x00, //0x00001a8e je LBB1_458 + 0x8b, 0x4d, 0xc8, //0x00001a94 movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00001a97 shll $6, %ecx + 0x09, 0xc1, //0x00001a9a orl %eax, %ecx + 0x89, 0xc8, //0x00001a9c movl %ecx, %eax + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001a9e movl $3, %r11d + 0x49, 0x39, 0xdf, //0x00001aa4 cmpq %rbx, %r15 + 0x0f, 0x82, 0xec, 0x03, 0x00, 0x00, //0x00001aa7 jb LBB1_387 + 0xe9, 0xfb, 0x09, 0x00, 0x00, //0x00001aad jmp LBB1_492 + //0x00001ab2 LBB1_326 + 0x49, 0x89, 0xd7, //0x00001ab2 movq %rdx, %r15 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001ab5 jmp LBB1_330 + //0x00001aba LBB1_327 + 0x80, 0xfa, 0x2f, //0x00001aba cmpb $47, %dl + 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x00001abd jne LBB1_329 + 0x41, 0x89, 0xd6, //0x00001ac3 movl %edx, %r14d + //0x00001ac6 LBB1_329 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001ac6 movq $-48(%rbp), %rbx + //0x00001aca LBB1_330 + 0x41, 0x0f, 0xb6, 0xc6, //0x00001aca movzbl %r14b, %eax + 0x48, 0x8b, 0x4d, 0xc0, //0x00001ace movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x04, 0x01, //0x00001ad2 movzbl (%rcx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001ad6 cmpl $255, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001adb je LBB1_333 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001ae1 movl $1, %r11d + 0x49, 0x39, 0xdf, //0x00001ae7 cmpq %rbx, %r15 + 0x0f, 0x83, 0xbd, 0x09, 0x00, 0x00, //0x00001aea jae LBB1_492 + 0x89, 0x45, 0xc8, //0x00001af0 movl %eax, $-56(%rbp) + 0x4c, 0x89, 0xf8, //0x00001af3 movq %r15, %rax + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00001af6 jmp LBB1_349 + //0x00001afb LBB1_333 + 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00001afb movl $0, $-56(%rbp) + 0x45, 0x31, 0xdb, //0x00001b02 xorl %r11d, %r11d + //0x00001b05 LBB1_334 + 0xf6, 0x45, 0xbc, 0x02, //0x00001b05 testb $2, $-68(%rbp) + 0x0f, 0x85, 0xca, 0x09, 0x00, 0x00, //0x00001b09 jne LBB1_495 + 0x41, 0x83, 0xfb, 0x02, //0x00001b0f cmpl $2, %r11d + 0x0f, 0x82, 0xc0, 0x09, 0x00, 0x00, //0x00001b13 jb LBB1_495 + 0x41, 0x80, 0xfe, 0x3d, //0x00001b19 cmpb $61, %r14b + 0x0f, 0x85, 0xb6, 0x09, 0x00, 0x00, //0x00001b1d jne LBB1_495 + 0xbe, 0x05, 0x00, 0x00, 0x00, //0x00001b23 movl $5, %esi + 0x44, 0x29, 0xde, //0x00001b28 subl %r11d, %esi + 0xf6, 0x45, 0xbc, 0x08, //0x00001b2b testb $8, $-68(%rbp) + 0x0f, 0x85, 0xd2, 0x01, 0x00, 0x00, //0x00001b2f jne LBB1_365 + 0x4c, 0x39, 0x7d, 0xd0, //0x00001b35 cmpq %r15, $-48(%rbp) + 0x0f, 0x86, 0x74, 0x0b, 0x00, 0x00, //0x00001b39 jbe LBB1_499 + 0x49, 0x8d, 0x57, 0x03, //0x00001b3f leaq $3(%r15), %rdx + 0x48, 0x8b, 0x45, 0xa0, //0x00001b43 movq $-96(%rbp), %rax + 0x4c, 0x29, 0xf8, //0x00001b47 subq %r15, %rax + 0x49, 0x8d, 0x5f, 0x04, //0x00001b4a leaq $4(%r15), %rbx + 0x48, 0x8b, 0x7d, 0x80, //0x00001b4e movq $-128(%rbp), %rdi + 0x4c, 0x29, 0xff, //0x00001b52 subq %r15, %rdi + 0xe9, 0x1f, 0x00, 0x00, 0x00, //0x00001b55 jmp LBB1_341 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b5a .p2align 4, 0x90 + //0x00001b60 LBB1_340 + 0x49, 0xff, 0xc7, //0x00001b60 incq %r15 + 0x48, 0xff, 0xc2, //0x00001b63 incq %rdx + 0x48, 0xff, 0xc8, //0x00001b66 decq %rax + 0x48, 0xff, 0xc3, //0x00001b69 incq %rbx + 0x48, 0xff, 0xcf, //0x00001b6c decq %rdi + 0x4c, 0x39, 0x7d, 0xd0, //0x00001b6f cmpq %r15, $-48(%rbp) + 0x0f, 0x84, 0x51, 0x05, 0x00, 0x00, //0x00001b73 je LBB1_498 + //0x00001b79 LBB1_341 + 0x41, 0x0f, 0xb6, 0x0f, //0x00001b79 movzbl (%r15), %ecx + 0x80, 0xf9, 0x0a, //0x00001b7d cmpb $10, %cl + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00001b80 je LBB1_340 + 0x80, 0xf9, 0x0d, //0x00001b86 cmpb $13, %cl + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00001b89 je LBB1_340 + 0x80, 0xf9, 0x3d, //0x00001b8f cmpb $61, %cl + 0x0f, 0x85, 0x43, 0x05, 0x00, 0x00, //0x00001b92 jne LBB1_426 + 0x49, 0xff, 0xc7, //0x00001b98 incq %r15 + 0x83, 0xfe, 0x02, //0x00001b9b cmpl $2, %esi + 0x0f, 0x84, 0x35, 0x09, 0x00, 0x00, //0x00001b9e je LBB1_495 + 0x4c, 0x39, 0x7d, 0xd0, //0x00001ba4 cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0x41, 0x03, 0x00, 0x00, //0x00001ba8 ja LBB1_392 + 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x00001bae jmp LBB1_499 + //0x00001bb3 LBB1_346 + 0x80, 0xfb, 0x6e, //0x00001bb3 cmpb $110, %bl + 0x0f, 0x85, 0x6d, 0x03, 0x00, 0x00, //0x00001bb6 jne LBB1_398 + //0x00001bbc LBB1_347 + 0x49, 0x89, 0xd7, //0x00001bbc movq %rdx, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001bbf movq $-48(%rbp), %rbx + //0x00001bc3 LBB1_348 + 0x4c, 0x89, 0xf8, //0x00001bc3 movq %r15, %rax + 0x49, 0x39, 0xdf, //0x00001bc6 cmpq %rbx, %r15 + 0x0f, 0x83, 0xaa, 0x02, 0x00, 0x00, //0x00001bc9 jae LBB1_385 + //0x00001bcf LBB1_349 + 0x4c, 0x8d, 0x78, 0x01, //0x00001bcf leaq $1(%rax), %r15 + 0x44, 0x0f, 0xb6, 0x30, //0x00001bd3 movzbl (%rax), %r14d + 0x41, 0x80, 0xfe, 0x5c, //0x00001bd7 cmpb $92, %r14b + 0x0f, 0x85, 0x02, 0x01, 0x00, 0x00, //0x00001bdb jne LBB1_362 + 0x48, 0x8d, 0x50, 0x02, //0x00001be1 leaq $2(%rax), %rdx + 0x41, 0xb6, 0xff, //0x00001be5 movb $-1, %r14b + 0x48, 0x39, 0xda, //0x00001be8 cmpq %rbx, %rdx + 0x0f, 0x87, 0x55, 0x03, 0x00, 0x00, //0x00001beb ja LBB1_401 + 0x41, 0x0f, 0xb6, 0x1f, //0x00001bf1 movzbl (%r15), %ebx + 0x80, 0xfb, 0x71, //0x00001bf5 cmpb $113, %bl + 0x0f, 0x8e, 0xb5, 0xff, 0xff, 0xff, //0x00001bf8 jle LBB1_346 + 0x80, 0xfb, 0x72, //0x00001bfe cmpb $114, %bl + 0x0f, 0x84, 0xb5, 0xff, 0xff, 0xff, //0x00001c01 je LBB1_347 + 0x80, 0xfb, 0x75, //0x00001c07 cmpb $117, %bl + 0x0f, 0x85, 0x25, 0x03, 0x00, 0x00, //0x00001c0a jne LBB1_400 + 0x48, 0x8b, 0x4d, 0xd0, //0x00001c10 movq $-48(%rbp), %rcx + 0x48, 0x29, 0xd1, //0x00001c14 subq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00001c17 cmpq $4, %rcx + 0x0f, 0x8c, 0x14, 0x03, 0x00, 0x00, //0x00001c1b jl LBB1_400 + 0x8b, 0x32, //0x00001c21 movl (%rdx), %esi + 0x89, 0xf3, //0x00001c23 movl %esi, %ebx + 0xf7, 0xd3, //0x00001c25 notl %ebx + 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001c27 leal $-808464432(%rsi), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00001c2d andl $-2139062144, %ebx + 0x85, 0xcb, //0x00001c33 testl %ecx, %ebx + 0x0f, 0x85, 0xfa, 0x02, 0x00, 0x00, //0x00001c35 jne LBB1_400 + 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x00001c3b leal $421075225(%rsi), %ecx + 0x09, 0xf1, //0x00001c41 orl %esi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00001c43 testl $-2139062144, %ecx + 0x0f, 0x85, 0xe6, 0x02, 0x00, 0x00, //0x00001c49 jne LBB1_400 + 0x89, 0xf7, //0x00001c4f movl %esi, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001c51 andl $2139062143, %edi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c57 movl $-1061109568, %ecx + 0x29, 0xf9, //0x00001c5c subl %edi, %ecx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00001c5e leal $1179010630(%rdi), %r8d + 0x21, 0xd9, //0x00001c65 andl %ebx, %ecx + 0x44, 0x85, 0xc1, //0x00001c67 testl %r8d, %ecx + 0x0f, 0x85, 0xc5, 0x02, 0x00, 0x00, //0x00001c6a jne LBB1_400 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001c70 movl $-522133280, %ecx + 0x29, 0xf9, //0x00001c75 subl %edi, %ecx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00001c77 addl $960051513, %edi + 0x21, 0xcb, //0x00001c7d andl %ecx, %ebx + 0x85, 0xfb, //0x00001c7f testl %edi, %ebx + 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x00001c81 jne LBB1_400 + 0x0f, 0xce, //0x00001c87 bswapl %esi + 0x89, 0xf1, //0x00001c89 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001c8b shrl $4, %ecx + 0xf7, 0xd1, //0x00001c8e notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001c90 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001c96 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001c99 andl $252645135, %esi + 0x01, 0xce, //0x00001c9f addl %ecx, %esi + 0x41, 0x89, 0xf6, //0x00001ca1 movl %esi, %r14d + 0x41, 0xc1, 0xee, 0x04, //0x00001ca4 shrl $4, %r14d + 0x41, 0x09, 0xf6, //0x00001ca8 orl %esi, %r14d + 0x44, 0x89, 0xf1, //0x00001cab movl %r14d, %ecx + 0xc1, 0xe9, 0x08, //0x00001cae shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001cb1 andl $65280, %ecx + 0x44, 0x89, 0xf2, //0x00001cb7 movl %r14d, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00001cba andl $128, %edx + 0x09, 0xca, //0x00001cc0 orl %ecx, %edx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001cc2 je LBB1_361 + 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x00001cc8 movl $255, %r14d + //0x00001cce LBB1_361 + 0x48, 0x83, 0xc0, 0x06, //0x00001cce addq $6, %rax + 0x49, 0x89, 0xc7, //0x00001cd2 movq %rax, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001cd5 movq $-48(%rbp), %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001cd9 movabsq $-4294967296, %r8 + //0x00001ce3 LBB1_362 + 0x41, 0x80, 0xfe, 0x0a, //0x00001ce3 cmpb $10, %r14b + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00001ce7 je LBB1_348 + 0x41, 0x80, 0xfe, 0x0d, //0x00001ced cmpb $13, %r14b + 0x0f, 0x84, 0xcc, 0xfe, 0xff, 0xff, //0x00001cf1 je LBB1_348 + 0xe9, 0x4a, 0x02, 0x00, 0x00, //0x00001cf7 jmp LBB1_401 + //0x00001cfc LBB1_364 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001cfc movl $1, %r11d + 0xe9, 0x1a, 0xfd, 0xff, 0xff, //0x00001d02 jmp LBB1_319 + //0x00001d07 LBB1_365 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001d07 movq $-48(%rbp), %rbx + 0x4c, 0x39, 0xfb, //0x00001d0b cmpq %r15, %rbx + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00001d0e ja LBB1_368 + 0xe9, 0x9a, 0x09, 0x00, 0x00, //0x00001d14 jmp LBB1_499 + //0x00001d19 LBB1_384 + 0x49, 0x89, 0xd6, //0x00001d19 movq %rdx, %r14 + 0x4d, 0x89, 0xf7, //0x00001d1c movq %r14, %r15 + 0x49, 0x39, 0xde, //0x00001d1f cmpq %rbx, %r14 + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00001d22 jb LBB1_368 + 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00001d28 jmp LBB1_425 + //0x00001d2d LBB1_366 + 0x4c, 0x89, 0xf2, //0x00001d2d movq %r14, %rdx + 0x4d, 0x89, 0xf7, //0x00001d30 movq %r14, %r15 + 0x49, 0x39, 0xde, //0x00001d33 cmpq %rbx, %r14 + 0x0f, 0x83, 0x35, 0x01, 0x00, 0x00, //0x00001d36 jae LBB1_425 + //0x00001d3c LBB1_368 + 0x49, 0x8d, 0x57, 0x01, //0x00001d3c leaq $1(%r15), %rdx + 0x41, 0x0f, 0xb6, 0x3f, //0x00001d40 movzbl (%r15), %edi + 0x40, 0x80, 0xff, 0x5c, //0x00001d44 cmpb $92, %dil + 0x0f, 0x85, 0xe9, 0x00, 0x00, 0x00, //0x00001d48 jne LBB1_381 + 0x4d, 0x8d, 0x77, 0x02, //0x00001d4e leaq $2(%r15), %r14 + 0x49, 0x39, 0xde, //0x00001d52 cmpq %rbx, %r14 + 0x0f, 0x87, 0xe2, 0x07, 0x00, 0x00, //0x00001d55 ja LBB1_459 + 0x0f, 0xb6, 0x02, //0x00001d5b movzbl (%rdx), %eax + 0x3c, 0x6e, //0x00001d5e cmpb $110, %al + 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x00001d60 je LBB1_366 + 0x3c, 0x72, //0x00001d66 cmpb $114, %al + 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x00001d68 je LBB1_366 + 0x3c, 0x75, //0x00001d6e cmpb $117, %al + 0x0f, 0x85, 0x7d, 0x06, 0x00, 0x00, //0x00001d70 jne LBB1_479 + 0x48, 0x89, 0xd8, //0x00001d76 movq %rbx, %rax + 0x4c, 0x29, 0xf0, //0x00001d79 subq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00001d7c cmpq $4, %rax + 0x0f, 0x8c, 0x6d, 0x06, 0x00, 0x00, //0x00001d80 jl LBB1_479 + 0x41, 0x8b, 0x06, //0x00001d86 movl (%r14), %eax + 0x89, 0xc2, //0x00001d89 movl %eax, %edx + 0xf7, 0xd2, //0x00001d8b notl %edx + 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001d8d leal $-808464432(%rax), %ecx + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x00001d93 andl $-2139062144, %edx + 0x85, 0xca, //0x00001d99 testl %ecx, %edx + 0x0f, 0x85, 0x52, 0x06, 0x00, 0x00, //0x00001d9b jne LBB1_479 + 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x00001da1 leal $421075225(%rax), %ecx + 0x09, 0xc1, //0x00001da7 orl %eax, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00001da9 testl $-2139062144, %ecx + 0x0f, 0x85, 0x3e, 0x06, 0x00, 0x00, //0x00001daf jne LBB1_479 + 0x89, 0x75, 0x98, //0x00001db5 movl %esi, $-104(%rbp) + 0x89, 0xc7, //0x00001db8 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dba andl $2139062143, %edi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dc0 movl $-1061109568, %ecx + 0x29, 0xf9, //0x00001dc5 subl %edi, %ecx + 0x8d, 0xb7, 0x46, 0x46, 0x46, 0x46, //0x00001dc7 leal $1179010630(%rdi), %esi + 0x21, 0xd1, //0x00001dcd andl %edx, %ecx + 0x85, 0xf1, //0x00001dcf testl %esi, %ecx + 0x0f, 0x85, 0x1c, 0x06, 0x00, 0x00, //0x00001dd1 jne LBB1_479 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001dd7 movl $-522133280, %ecx + 0x29, 0xf9, //0x00001ddc subl %edi, %ecx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00001dde addl $960051513, %edi + 0x21, 0xca, //0x00001de4 andl %ecx, %edx + 0x85, 0xfa, //0x00001de6 testl %edi, %edx + 0x0f, 0x85, 0x05, 0x06, 0x00, 0x00, //0x00001de8 jne LBB1_479 + 0x0f, 0xc8, //0x00001dee bswapl %eax + 0x89, 0xc1, //0x00001df0 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00001df2 shrl $4, %ecx + 0xf7, 0xd1, //0x00001df5 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001df7 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001dfd leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e00 andl $252645135, %eax + 0x01, 0xc8, //0x00001e05 addl %ecx, %eax + 0x89, 0xc7, //0x00001e07 movl %eax, %edi + 0xc1, 0xef, 0x04, //0x00001e09 shrl $4, %edi + 0x09, 0xc7, //0x00001e0c orl %eax, %edi + 0x89, 0xf8, //0x00001e0e movl %edi, %eax + 0xc1, 0xe8, 0x08, //0x00001e10 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001e13 andl $65280, %eax + 0x89, 0xf9, //0x00001e18 movl %edi, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00001e1a andl $128, %ecx + 0x09, 0xc1, //0x00001e20 orl %eax, %ecx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00001e22 je LBB1_380 + 0xbf, 0xff, 0x00, 0x00, 0x00, //0x00001e28 movl $255, %edi + //0x00001e2d LBB1_380 + 0x49, 0x83, 0xc7, 0x06, //0x00001e2d addq $6, %r15 + 0x4c, 0x89, 0xfa, //0x00001e31 movq %r15, %rdx + 0x8b, 0x75, 0x98, //0x00001e34 movl $-104(%rbp), %esi + //0x00001e37 LBB1_381 + 0x40, 0x80, 0xff, 0x0a, //0x00001e37 cmpb $10, %dil + 0x0f, 0x84, 0xd8, 0xfe, 0xff, 0xff, //0x00001e3b je LBB1_384 + 0x40, 0x80, 0xff, 0x0d, //0x00001e41 cmpb $13, %dil + 0x0f, 0x84, 0xce, 0xfe, 0xff, 0xff, //0x00001e45 je LBB1_384 + 0x40, 0x80, 0xff, 0x3d, //0x00001e4b cmpb $61, %dil + 0x0f, 0x85, 0xe8, 0x06, 0x00, 0x00, //0x00001e4f jne LBB1_459 + 0x49, 0x89, 0xd7, //0x00001e55 movq %rdx, %r15 + 0x83, 0xfe, 0x02, //0x00001e58 cmpl $2, %esi + 0x0f, 0x84, 0x78, 0x06, 0x00, 0x00, //0x00001e5b je LBB1_495 + 0x89, 0x75, 0x98, //0x00001e61 movl %esi, $-104(%rbp) + 0x48, 0x8b, 0x75, 0xd0, //0x00001e64 movq $-48(%rbp), %rsi + 0x48, 0x39, 0xd6, //0x00001e68 cmpq %rdx, %rsi + 0x0f, 0x87, 0x48, 0x04, 0x00, 0x00, //0x00001e6b ja LBB1_462 + //0x00001e71 LBB1_425 + 0x49, 0x89, 0xd7, //0x00001e71 movq %rdx, %r15 + 0xe9, 0x3a, 0x08, 0x00, 0x00, //0x00001e74 jmp LBB1_499 + //0x00001e79 LBB1_385 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001e79 movl $1, %r11d + 0x8b, 0x45, 0xc8, //0x00001e7f movl $-56(%rbp), %eax + 0xe9, 0x9a, 0xfb, 0xff, 0xff, //0x00001e82 jmp LBB1_319 + //0x00001e87 LBB1_386 + 0x49, 0xff, 0xc7, //0x00001e87 incq %r15 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001e8a movl $3, %r11d + 0x49, 0x39, 0xdf, //0x00001e90 cmpq %rbx, %r15 + 0x0f, 0x83, 0x88, 0xfb, 0xff, 0xff, //0x00001e93 jae LBB1_319 + //0x00001e99 LBB1_387 + 0x45, 0x0f, 0xb6, 0x37, //0x00001e99 movzbl (%r15), %r14d + 0x49, 0x83, 0xfe, 0x0d, //0x00001e9d cmpq $13, %r14 + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00001ea1 je LBB1_386 + 0x41, 0x80, 0xfe, 0x0a, //0x00001ea7 cmpb $10, %r14b + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00001eab je LBB1_386 + 0x89, 0x45, 0xc8, //0x00001eb1 movl %eax, $-56(%rbp) + 0x48, 0x8b, 0x45, 0xc0, //0x00001eb4 movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x00001eb8 movzbl (%rax,%r14), %eax + 0x49, 0xff, 0xc7, //0x00001ebd incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001ec0 cmpl $255, %eax + 0x0f, 0x85, 0xd2, 0x05, 0x00, 0x00, //0x00001ec5 jne LBB1_491 + //0x00001ecb LBB1_497 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001ecb movl $3, %r11d + 0xe9, 0x2f, 0xfc, 0xff, 0xff, //0x00001ed1 jmp LBB1_334 + //0x00001ed6 LBB1_391 + 0x49, 0xff, 0xc7, //0x00001ed6 incq %r15 + 0x48, 0xff, 0xc2, //0x00001ed9 incq %rdx + 0x48, 0xff, 0xc8, //0x00001edc decq %rax + 0x48, 0xff, 0xc3, //0x00001edf incq %rbx + 0x48, 0xff, 0xcf, //0x00001ee2 decq %rdi + 0x4c, 0x39, 0x7d, 0xd0, //0x00001ee5 cmpq %r15, $-48(%rbp) + 0x0f, 0x84, 0xdb, 0x01, 0x00, 0x00, //0x00001ee9 je LBB1_498 + //0x00001eef LBB1_392 + 0x41, 0x0f, 0xb6, 0x0f, //0x00001eef movzbl (%r15), %ecx + 0x80, 0xf9, 0x0a, //0x00001ef3 cmpb $10, %cl + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00001ef6 je LBB1_391 + 0x80, 0xf9, 0x0d, //0x00001efc cmpb $13, %cl + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00001eff je LBB1_391 + 0x80, 0xf9, 0x3d, //0x00001f05 cmpb $61, %cl + 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x00001f08 jne LBB1_426 + 0x49, 0xff, 0xc7, //0x00001f0e incq %r15 + 0x83, 0xfe, 0x03, //0x00001f11 cmpl $3, %esi + 0x0f, 0x84, 0xbf, 0x05, 0x00, 0x00, //0x00001f14 je LBB1_495 + 0x4c, 0x39, 0x7d, 0xd0, //0x00001f1a cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0xf4, 0x04, 0x00, 0x00, //0x00001f1e ja LBB1_481 + 0xe9, 0x8a, 0x07, 0x00, 0x00, //0x00001f24 jmp LBB1_499 + //0x00001f29 LBB1_398 + 0x80, 0xfb, 0x2f, //0x00001f29 cmpb $47, %bl + 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x00001f2c jne LBB1_400 + 0x41, 0x89, 0xde, //0x00001f32 movl %ebx, %r14d + //0x00001f35 LBB1_400 + 0x49, 0x89, 0xd7, //0x00001f35 movq %rdx, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001f38 movq $-48(%rbp), %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001f3c movabsq $-4294967296, %r8 + //0x00001f46 LBB1_401 + 0x41, 0x0f, 0xb6, 0xc6, //0x00001f46 movzbl %r14b, %eax + 0x48, 0x8b, 0x4d, 0xc0, //0x00001f4a movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x04, 0x01, //0x00001f4e movzbl (%rcx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001f52 cmpl $255, %eax + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00001f57 je LBB1_422 + 0x8b, 0x4d, 0xc8, //0x00001f5d movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00001f60 shll $6, %ecx + 0x09, 0xc1, //0x00001f63 orl %eax, %ecx + 0x89, 0xc8, //0x00001f65 movl %ecx, %eax + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00001f67 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x00001f6d cmpq %rbx, %r15 + 0x0f, 0x83, 0x37, 0x05, 0x00, 0x00, //0x00001f70 jae LBB1_492 + 0x89, 0x45, 0xc8, //0x00001f76 movl %eax, $-56(%rbp) + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00001f79 jmp LBB1_407 + //0x00001f7e LBB1_422 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001f7e movl $1, %r11d + 0xe9, 0x7c, 0xfb, 0xff, 0xff, //0x00001f84 jmp LBB1_334 + //0x00001f89 LBB1_404 + 0x80, 0xfa, 0x6e, //0x00001f89 cmpb $110, %dl + 0x0f, 0x85, 0x54, 0x01, 0x00, 0x00, //0x00001f8c jne LBB1_432 + //0x00001f92 LBB1_405 + 0x48, 0x89, 0xc2, //0x00001f92 movq %rax, %rdx + 0x8b, 0x45, 0xc8, //0x00001f95 movl $-56(%rbp), %eax + //0x00001f98 LBB1_406 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00001f98 movl $2, %r11d + 0x49, 0x89, 0xd7, //0x00001f9e movq %rdx, %r15 + 0x48, 0x39, 0xda, //0x00001fa1 cmpq %rbx, %rdx + 0x0f, 0x83, 0x29, 0x01, 0x00, 0x00, //0x00001fa4 jae LBB1_424 + //0x00001faa LBB1_407 + 0x49, 0x8d, 0x57, 0x01, //0x00001faa leaq $1(%r15), %rdx + 0x45, 0x0f, 0xb6, 0x37, //0x00001fae movzbl (%r15), %r14d + 0x41, 0x80, 0xfe, 0x5c, //0x00001fb2 cmpb $92, %r14b + 0x0f, 0x85, 0xf5, 0x00, 0x00, 0x00, //0x00001fb6 jne LBB1_420 + 0x49, 0x8d, 0x47, 0x02, //0x00001fbc leaq $2(%r15), %rax + 0x41, 0xb6, 0xff, //0x00001fc0 movb $-1, %r14b + 0x48, 0x39, 0xd8, //0x00001fc3 cmpq %rbx, %rax + 0x0f, 0x87, 0x29, 0x01, 0x00, 0x00, //0x00001fc6 ja LBB1_435 + 0x0f, 0xb6, 0x12, //0x00001fcc movzbl (%rdx), %edx + 0x80, 0xfa, 0x71, //0x00001fcf cmpb $113, %dl + 0x0f, 0x8e, 0xb1, 0xff, 0xff, 0xff, //0x00001fd2 jle LBB1_404 + 0x80, 0xfa, 0x72, //0x00001fd8 cmpb $114, %dl + 0x0f, 0x84, 0xb1, 0xff, 0xff, 0xff, //0x00001fdb je LBB1_405 + 0x80, 0xfa, 0x75, //0x00001fe1 cmpb $117, %dl + 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00001fe4 jne LBB1_434 + 0x48, 0x89, 0xd9, //0x00001fea movq %rbx, %rcx + 0x48, 0x29, 0xc1, //0x00001fed subq %rax, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00001ff0 cmpq $4, %rcx + 0x0f, 0x8c, 0xf8, 0x00, 0x00, 0x00, //0x00001ff4 jl LBB1_434 + 0x8b, 0x10, //0x00001ffa movl (%rax), %edx + 0x89, 0xd7, //0x00001ffc movl %edx, %edi + 0xf7, 0xd7, //0x00001ffe notl %edi + 0x8d, 0x8a, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002000 leal $-808464432(%rdx), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00002006 andl $-2139062144, %edi + 0x85, 0xcf, //0x0000200c testl %ecx, %edi + 0x0f, 0x85, 0xde, 0x00, 0x00, 0x00, //0x0000200e jne LBB1_434 + 0x8d, 0x8a, 0x19, 0x19, 0x19, 0x19, //0x00002014 leal $421075225(%rdx), %ecx + 0x09, 0xd1, //0x0000201a orl %edx, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x0000201c testl $-2139062144, %ecx + 0x0f, 0x85, 0xca, 0x00, 0x00, 0x00, //0x00002022 jne LBB1_434 + 0x89, 0xd6, //0x00002028 movl %edx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000202a andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002030 movl $-1061109568, %ecx + 0x29, 0xf1, //0x00002035 subl %esi, %ecx + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00002037 leal $1179010630(%rsi), %ebx + 0x21, 0xf9, //0x0000203d andl %edi, %ecx + 0x85, 0xd9, //0x0000203f testl %ebx, %ecx + 0x48, 0x8b, 0x5d, 0xd0, //0x00002041 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x00002045 jne LBB1_434 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000204b movl $-522133280, %ecx + 0x29, 0xf1, //0x00002050 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002052 addl $960051513, %esi + 0x21, 0xcf, //0x00002058 andl %ecx, %edi + 0x85, 0xf7, //0x0000205a testl %esi, %edi + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x0000205c jne LBB1_434 + 0x0f, 0xca, //0x00002062 bswapl %edx + 0x89, 0xd0, //0x00002064 movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x00002066 shrl $4, %eax + 0xf7, 0xd0, //0x00002069 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000206b andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00002070 leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002073 andl $252645135, %edx + 0x01, 0xc2, //0x00002079 addl %eax, %edx + 0x41, 0x89, 0xd6, //0x0000207b movl %edx, %r14d + 0x41, 0xc1, 0xee, 0x04, //0x0000207e shrl $4, %r14d + 0x41, 0x09, 0xd6, //0x00002082 orl %edx, %r14d + 0x44, 0x89, 0xf0, //0x00002085 movl %r14d, %eax + 0xc1, 0xe8, 0x08, //0x00002088 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000208b andl $65280, %eax + 0x44, 0x89, 0xf1, //0x00002090 movl %r14d, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002093 andl $128, %ecx + 0x09, 0xc1, //0x00002099 orl %eax, %ecx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000209b je LBB1_419 + 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x000020a1 movl $255, %r14d + //0x000020a7 LBB1_419 + 0x49, 0x83, 0xc7, 0x06, //0x000020a7 addq $6, %r15 + 0x4c, 0x89, 0xfa, //0x000020ab movq %r15, %rdx + 0x8b, 0x45, 0xc8, //0x000020ae movl $-56(%rbp), %eax + //0x000020b1 LBB1_420 + 0x41, 0x80, 0xfe, 0x0a, //0x000020b1 cmpb $10, %r14b + 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x000020b5 je LBB1_406 + 0x41, 0x80, 0xfe, 0x0d, //0x000020bb cmpb $13, %r14b + 0x0f, 0x84, 0xd3, 0xfe, 0xff, 0xff, //0x000020bf je LBB1_406 + 0xe9, 0x2b, 0x00, 0x00, 0x00, //0x000020c5 jmp LBB1_435 + //0x000020ca LBB1_498 + 0x4c, 0x8b, 0x7d, 0xd0, //0x000020ca movq $-48(%rbp), %r15 + 0xe9, 0xe0, 0x05, 0x00, 0x00, //0x000020ce jmp LBB1_499 + //0x000020d3 LBB1_424 + 0x49, 0x89, 0xd7, //0x000020d3 movq %rdx, %r15 + 0xe9, 0x46, 0xf9, 0xff, 0xff, //0x000020d6 jmp LBB1_319 + //0x000020db LBB1_426 + 0x49, 0xff, 0xc7, //0x000020db incq %r15 + 0x4c, 0x89, 0xfb, //0x000020de movq %r15, %rbx + 0xe9, 0xf3, 0x03, 0x00, 0x00, //0x000020e1 jmp LBB1_495 + //0x000020e6 LBB1_432 + 0x80, 0xfa, 0x2f, //0x000020e6 cmpb $47, %dl + 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x000020e9 jne LBB1_434 + 0x41, 0x89, 0xd6, //0x000020ef movl %edx, %r14d + //0x000020f2 LBB1_434 + 0x48, 0x89, 0xc2, //0x000020f2 movq %rax, %rdx + //0x000020f5 LBB1_435 + 0x41, 0x0f, 0xb6, 0xc6, //0x000020f5 movzbl %r14b, %eax + 0x48, 0x8b, 0x4d, 0xc0, //0x000020f9 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x04, 0x01, //0x000020fd movzbl (%rcx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002101 cmpl $255, %eax + 0x0f, 0x84, 0x74, 0x01, 0x00, 0x00, //0x00002106 je LBB1_456 + 0x8b, 0x4d, 0xc8, //0x0000210c movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x0000210f shll $6, %ecx + 0x09, 0xc1, //0x00002112 orl %eax, %ecx + 0x89, 0xc8, //0x00002114 movl %ecx, %eax + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002116 movl $3, %r11d + 0x48, 0x39, 0xda, //0x0000211c cmpq %rbx, %rdx + 0x0f, 0x83, 0x69, 0x01, 0x00, 0x00, //0x0000211f jae LBB1_457 + 0x89, 0x45, 0xc8, //0x00002125 movl %eax, $-56(%rbp) + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002128 jmp LBB1_441 + //0x0000212d LBB1_438 + 0x80, 0xfb, 0x6e, //0x0000212d cmpb $110, %bl + 0x0f, 0x85, 0x33, 0x03, 0x00, 0x00, //0x00002130 jne LBB1_487 + //0x00002136 LBB1_439 + 0x49, 0x89, 0xc7, //0x00002136 movq %rax, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00002139 movq $-48(%rbp), %rbx + 0x8b, 0x45, 0xc8, //0x0000213d movl $-56(%rbp), %eax + //0x00002140 LBB1_440 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002140 movl $3, %r11d + 0x4c, 0x89, 0xfa, //0x00002146 movq %r15, %rdx + 0x49, 0x39, 0xdf, //0x00002149 cmpq %rbx, %r15 + 0x0f, 0x83, 0xcf, 0xf8, 0xff, 0xff, //0x0000214c jae LBB1_319 + //0x00002152 LBB1_441 + 0x4c, 0x8d, 0x7a, 0x01, //0x00002152 leaq $1(%rdx), %r15 + 0x44, 0x0f, 0xb6, 0x32, //0x00002156 movzbl (%rdx), %r14d + 0x41, 0x80, 0xfe, 0x5c, //0x0000215a cmpb $92, %r14b + 0x0f, 0x85, 0x03, 0x01, 0x00, 0x00, //0x0000215e jne LBB1_454 + 0x48, 0x8d, 0x42, 0x02, //0x00002164 leaq $2(%rdx), %rax + 0x41, 0xb6, 0xff, //0x00002168 movb $-1, %r14b + 0x48, 0x39, 0xd8, //0x0000216b cmpq %rbx, %rax + 0x0f, 0x87, 0x12, 0x03, 0x00, 0x00, //0x0000216e ja LBB1_490 + 0x41, 0x0f, 0xb6, 0x1f, //0x00002174 movzbl (%r15), %ebx + 0x80, 0xfb, 0x71, //0x00002178 cmpb $113, %bl + 0x0f, 0x8e, 0xac, 0xff, 0xff, 0xff, //0x0000217b jle LBB1_438 + 0x80, 0xfb, 0x72, //0x00002181 cmpb $114, %bl + 0x0f, 0x84, 0xac, 0xff, 0xff, 0xff, //0x00002184 je LBB1_439 + 0x80, 0xfb, 0x75, //0x0000218a cmpb $117, %bl + 0x0f, 0x85, 0xe2, 0x02, 0x00, 0x00, //0x0000218d jne LBB1_489 + 0x48, 0x8b, 0x4d, 0xd0, //0x00002193 movq $-48(%rbp), %rcx + 0x48, 0x29, 0xc1, //0x00002197 subq %rax, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x0000219a cmpq $4, %rcx + 0x0f, 0x8c, 0xd1, 0x02, 0x00, 0x00, //0x0000219e jl LBB1_489 + 0x8b, 0x38, //0x000021a4 movl (%rax), %edi + 0x89, 0xfb, //0x000021a6 movl %edi, %ebx + 0xf7, 0xd3, //0x000021a8 notl %ebx + 0x8d, 0x8f, 0xd0, 0xcf, 0xcf, 0xcf, //0x000021aa leal $-808464432(%rdi), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x000021b0 andl $-2139062144, %ebx + 0x85, 0xcb, //0x000021b6 testl %ecx, %ebx + 0x0f, 0x85, 0xb7, 0x02, 0x00, 0x00, //0x000021b8 jne LBB1_489 + 0x8d, 0x8f, 0x19, 0x19, 0x19, 0x19, //0x000021be leal $421075225(%rdi), %ecx + 0x09, 0xf9, //0x000021c4 orl %edi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000021c6 testl $-2139062144, %ecx + 0x0f, 0x85, 0xa3, 0x02, 0x00, 0x00, //0x000021cc jne LBB1_489 + 0x89, 0xfe, //0x000021d2 movl %edi, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000021d4 andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000021da movl $-1061109568, %ecx + 0x29, 0xf1, //0x000021df subl %esi, %ecx + 0x44, 0x8d, 0x86, 0x46, 0x46, 0x46, 0x46, //0x000021e1 leal $1179010630(%rsi), %r8d + 0x21, 0xd9, //0x000021e8 andl %ebx, %ecx + 0x44, 0x85, 0xc1, //0x000021ea testl %r8d, %ecx + 0x0f, 0x85, 0x82, 0x02, 0x00, 0x00, //0x000021ed jne LBB1_489 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x000021f3 movl $-522133280, %ecx + 0x29, 0xf1, //0x000021f8 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x000021fa addl $960051513, %esi + 0x21, 0xcb, //0x00002200 andl %ecx, %ebx + 0x85, 0xf3, //0x00002202 testl %esi, %ebx + 0x0f, 0x85, 0x6b, 0x02, 0x00, 0x00, //0x00002204 jne LBB1_489 + 0x0f, 0xcf, //0x0000220a bswapl %edi + 0x89, 0xf8, //0x0000220c movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x0000220e shrl $4, %eax + 0xf7, 0xd0, //0x00002211 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00002213 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00002218 leal (%rax,%rax,8), %eax + 0x81, 0xe7, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000221b andl $252645135, %edi + 0x01, 0xc7, //0x00002221 addl %eax, %edi + 0x41, 0x89, 0xfe, //0x00002223 movl %edi, %r14d + 0x41, 0xc1, 0xee, 0x04, //0x00002226 shrl $4, %r14d + 0x41, 0x09, 0xfe, //0x0000222a orl %edi, %r14d + 0x44, 0x89, 0xf0, //0x0000222d movl %r14d, %eax + 0xc1, 0xe8, 0x08, //0x00002230 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002233 andl $65280, %eax + 0x44, 0x89, 0xf1, //0x00002238 movl %r14d, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x0000223b andl $128, %ecx + 0x09, 0xc1, //0x00002241 orl %eax, %ecx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002243 je LBB1_453 + 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x00002249 movl $255, %r14d + //0x0000224f LBB1_453 + 0x48, 0x83, 0xc2, 0x06, //0x0000224f addq $6, %rdx + 0x49, 0x89, 0xd7, //0x00002253 movq %rdx, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00002256 movq $-48(%rbp), %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000225a movabsq $-4294967296, %r8 + 0x8b, 0x45, 0xc8, //0x00002264 movl $-56(%rbp), %eax + //0x00002267 LBB1_454 + 0x41, 0x80, 0xfe, 0x0a, //0x00002267 cmpb $10, %r14b + 0x0f, 0x84, 0xcf, 0xfe, 0xff, 0xff, //0x0000226b je LBB1_440 + 0x41, 0x80, 0xfe, 0x0d, //0x00002271 cmpb $13, %r14b + 0x0f, 0x84, 0xc5, 0xfe, 0xff, 0xff, //0x00002275 je LBB1_440 + 0xe9, 0x06, 0x02, 0x00, 0x00, //0x0000227b jmp LBB1_490 + //0x00002280 LBB1_456 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00002280 movl $2, %r11d + 0x49, 0x89, 0xd7, //0x00002286 movq %rdx, %r15 + 0xe9, 0x77, 0xf8, 0xff, 0xff, //0x00002289 jmp LBB1_334 + //0x0000228e LBB1_457 + 0x49, 0x89, 0xd7, //0x0000228e movq %rdx, %r15 + 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00002291 jmp LBB1_492 + //0x00002296 LBB1_478 + 0x4d, 0x89, 0xfe, //0x00002296 movq %r15, %r14 + 0x4c, 0x89, 0xf2, //0x00002299 movq %r14, %rdx + 0x49, 0x39, 0xf6, //0x0000229c cmpq %rsi, %r14 + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x0000229f jb LBB1_462 + 0xe9, 0x09, 0x04, 0x00, 0x00, //0x000022a5 jmp LBB1_499 + //0x000022aa LBB1_460 + 0x4d, 0x89, 0xf7, //0x000022aa movq %r14, %r15 + 0x4c, 0x89, 0xf2, //0x000022ad movq %r14, %rdx + 0x49, 0x39, 0xf6, //0x000022b0 cmpq %rsi, %r14 + 0x0f, 0x83, 0xfa, 0x03, 0x00, 0x00, //0x000022b3 jae LBB1_499 + //0x000022b9 LBB1_462 + 0x4c, 0x8d, 0x7a, 0x01, //0x000022b9 leaq $1(%rdx), %r15 + 0x0f, 0xb6, 0x3a, //0x000022bd movzbl (%rdx), %edi + 0x40, 0x80, 0xff, 0x5c, //0x000022c0 cmpb $92, %dil + 0x0f, 0x85, 0xe8, 0x00, 0x00, 0x00, //0x000022c4 jne LBB1_475 + 0x4c, 0x8d, 0x72, 0x02, //0x000022ca leaq $2(%rdx), %r14 + 0x49, 0x39, 0xf6, //0x000022ce cmpq %rsi, %r14 + 0x0f, 0x87, 0x63, 0x02, 0x00, 0x00, //0x000022d1 ja LBB1_517 + 0x41, 0x0f, 0xb6, 0x07, //0x000022d7 movzbl (%r15), %eax + 0x3c, 0x6e, //0x000022db cmpb $110, %al + 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x000022dd je LBB1_460 + 0x3c, 0x72, //0x000022e3 cmpb $114, %al + 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x000022e5 je LBB1_460 + 0x3c, 0x75, //0x000022eb cmpb $117, %al + 0x0f, 0x85, 0x00, 0x01, 0x00, 0x00, //0x000022ed jne LBB1_479 + 0x48, 0x89, 0xf0, //0x000022f3 movq %rsi, %rax + 0x4c, 0x29, 0xf0, //0x000022f6 subq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000022f9 cmpq $4, %rax + 0x0f, 0x8c, 0xf0, 0x00, 0x00, 0x00, //0x000022fd jl LBB1_479 + 0x41, 0x8b, 0x06, //0x00002303 movl (%r14), %eax + 0x89, 0xc7, //0x00002306 movl %eax, %edi + 0xf7, 0xd7, //0x00002308 notl %edi + 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000230a leal $-808464432(%rax), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00002310 andl $-2139062144, %edi + 0x85, 0xcf, //0x00002316 testl %ecx, %edi + 0x0f, 0x85, 0xd5, 0x00, 0x00, 0x00, //0x00002318 jne LBB1_479 + 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x0000231e leal $421075225(%rax), %ecx + 0x09, 0xc1, //0x00002324 orl %eax, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00002326 testl $-2139062144, %ecx + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x0000232c jne LBB1_479 + 0x89, 0xc6, //0x00002332 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002334 andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000233a movl $-1061109568, %ecx + 0x29, 0xf1, //0x0000233f subl %esi, %ecx + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00002341 leal $1179010630(%rsi), %ebx + 0x21, 0xf9, //0x00002347 andl %edi, %ecx + 0x85, 0xd9, //0x00002349 testl %ebx, %ecx + 0x0f, 0x85, 0xa2, 0x00, 0x00, 0x00, //0x0000234b jne LBB1_479 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002351 movl $-522133280, %ecx + 0x29, 0xf1, //0x00002356 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002358 addl $960051513, %esi + 0x21, 0xcf, //0x0000235e andl %ecx, %edi + 0x85, 0xf7, //0x00002360 testl %esi, %edi + 0x48, 0x8b, 0x75, 0xd0, //0x00002362 movq $-48(%rbp), %rsi + 0x0f, 0x85, 0x87, 0x00, 0x00, 0x00, //0x00002366 jne LBB1_479 + 0x0f, 0xc8, //0x0000236c bswapl %eax + 0x89, 0xc1, //0x0000236e movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002370 shrl $4, %ecx + 0xf7, 0xd1, //0x00002373 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002375 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000237b leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000237e andl $252645135, %eax + 0x01, 0xc8, //0x00002383 addl %ecx, %eax + 0x89, 0xc7, //0x00002385 movl %eax, %edi + 0xc1, 0xef, 0x04, //0x00002387 shrl $4, %edi + 0x09, 0xc7, //0x0000238a orl %eax, %edi + 0x89, 0xf8, //0x0000238c movl %edi, %eax + 0xc1, 0xe8, 0x08, //0x0000238e shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002391 andl $65280, %eax + 0x89, 0xf9, //0x00002396 movl %edi, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002398 andl $128, %ecx + 0x09, 0xc1, //0x0000239e orl %eax, %ecx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000023a0 je LBB1_474 + 0xbf, 0xff, 0x00, 0x00, 0x00, //0x000023a6 movl $255, %edi + //0x000023ab LBB1_474 + 0x48, 0x83, 0xc2, 0x06, //0x000023ab addq $6, %rdx + 0x49, 0x89, 0xd7, //0x000023af movq %rdx, %r15 + //0x000023b2 LBB1_475 + 0x40, 0x80, 0xff, 0x0a, //0x000023b2 cmpb $10, %dil + 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x000023b6 je LBB1_478 + 0x40, 0x80, 0xff, 0x0d, //0x000023bc cmpb $13, %dil + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x000023c0 je LBB1_478 + 0x40, 0x80, 0xff, 0x3d, //0x000023c6 cmpb $61, %dil + 0x0f, 0x85, 0x09, 0x01, 0x00, 0x00, //0x000023ca jne LBB1_495 + 0x83, 0x7d, 0x98, 0x03, //0x000023d0 cmpl $3, $-104(%rbp) + 0x0f, 0x84, 0xff, 0x00, 0x00, 0x00, //0x000023d4 je LBB1_495 + 0x4c, 0x39, 0x7d, 0xd0, //0x000023da cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0x86, 0x01, 0x00, 0x00, //0x000023de ja LBB1_522 + //0x000023e4 LBB1_511 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000023e4 movabsq $-4294967296, %r8 + 0xe9, 0xc0, 0x02, 0x00, 0x00, //0x000023ee jmp LBB1_499 + //0x000023f3 LBB1_479 + 0x4d, 0x89, 0xf7, //0x000023f3 movq %r14, %r15 + 0xe9, 0xde, 0x00, 0x00, 0x00, //0x000023f6 jmp LBB1_495 + //0x000023fb LBB1_458 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000023fb movl $2, %r11d + 0xe9, 0xff, 0xf6, 0xff, 0xff, //0x00002401 jmp LBB1_334 + //0x00002406 LBB1_480 + 0x48, 0xff, 0xc2, //0x00002406 incq %rdx + 0x48, 0xff, 0xc3, //0x00002409 incq %rbx + 0x48, 0xff, 0xcf, //0x0000240c decq %rdi + 0x48, 0xff, 0xc8, //0x0000240f decq %rax + 0x0f, 0x84, 0x8d, 0x02, 0x00, 0x00, //0x00002412 je LBB1_519 + //0x00002418 LBB1_481 + 0x0f, 0xb6, 0x4a, 0xff, //0x00002418 movzbl $-1(%rdx), %ecx + 0x80, 0xf9, 0x0a, //0x0000241c cmpb $10, %cl + 0x0f, 0x84, 0xe1, 0xff, 0xff, 0xff, //0x0000241f je LBB1_480 + 0x80, 0xf9, 0x0d, //0x00002425 cmpb $13, %cl + 0x0f, 0x84, 0xd8, 0xff, 0xff, 0xff, //0x00002428 je LBB1_480 + 0x80, 0xf9, 0x3d, //0x0000242e cmpb $61, %cl + 0x0f, 0x85, 0xe5, 0x02, 0x00, 0x00, //0x00002431 jne LBB1_539 + 0x49, 0x89, 0xd7, //0x00002437 movq %rdx, %r15 + 0x83, 0xfe, 0x04, //0x0000243a cmpl $4, %esi + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000243d movabsq $-4294967296, %r8 + 0x0f, 0x84, 0x8c, 0x00, 0x00, 0x00, //0x00002447 je LBB1_495 + 0x48, 0x39, 0x55, 0xd0, //0x0000244d cmpq %rdx, $-48(%rbp) + 0x0f, 0x87, 0xbf, 0x00, 0x00, 0x00, //0x00002451 ja LBB1_513 + //0x00002457 LBB1_486 + 0x49, 0x89, 0xd7, //0x00002457 movq %rdx, %r15 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000245a movabsq $-4294967296, %r8 + 0xe9, 0x4a, 0x02, 0x00, 0x00, //0x00002464 jmp LBB1_499 + //0x00002469 LBB1_487 + 0x80, 0xfb, 0x2f, //0x00002469 cmpb $47, %bl + 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x0000246c jne LBB1_489 + 0x41, 0x89, 0xde, //0x00002472 movl %ebx, %r14d + //0x00002475 LBB1_489 + 0x49, 0x89, 0xc7, //0x00002475 movq %rax, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00002478 movq $-48(%rbp), %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000247c movabsq $-4294967296, %r8 + //0x00002486 LBB1_490 + 0x41, 0x0f, 0xb6, 0xc6, //0x00002486 movzbl %r14b, %eax + 0x48, 0x8b, 0x4d, 0xc0, //0x0000248a movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x04, 0x01, //0x0000248e movzbl (%rcx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002492 cmpl $255, %eax + 0x0f, 0x84, 0x2e, 0xfa, 0xff, 0xff, //0x00002497 je LBB1_497 + //0x0000249d LBB1_491 + 0x8b, 0x4d, 0xc8, //0x0000249d movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x000024a0 shll $6, %ecx + 0x09, 0xc1, //0x000024a3 orl %eax, %ecx + 0x89, 0xc8, //0x000024a5 movl %ecx, %eax + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000024a7 movl $4, %r11d + //0x000024ad LBB1_492 + 0x89, 0x45, 0xc8, //0x000024ad movl %eax, $-56(%rbp) + 0xf6, 0x45, 0xbc, 0x02, //0x000024b0 testb $2, $-68(%rbp) + 0x0f, 0x94, 0xc0, //0x000024b4 sete %al + 0x41, 0x83, 0xfb, 0x01, //0x000024b7 cmpl $1, %r11d + 0x0f, 0x94, 0xc1, //0x000024bb sete %cl + 0x49, 0x39, 0xdf, //0x000024be cmpq %rbx, %r15 + 0x0f, 0x82, 0xec, 0x01, 0x00, 0x00, //0x000024c1 jb LBB1_499 + 0x41, 0x83, 0xfb, 0x04, //0x000024c7 cmpl $4, %r11d + 0x0f, 0x84, 0xe2, 0x01, 0x00, 0x00, //0x000024cb je LBB1_499 + 0x08, 0xc8, //0x000024d1 orb %cl, %al + 0x0f, 0x84, 0xda, 0x01, 0x00, 0x00, //0x000024d3 je LBB1_499 + //0x000024d9 LBB1_495 + 0x49, 0x8d, 0x4f, 0x01, //0x000024d9 leaq $1(%r15), %rcx + 0x48, 0x8b, 0x5d, 0xd0, //0x000024dd movq $-48(%rbp), %rbx + 0x4c, 0x39, 0xfb, //0x000024e1 cmpq %r15, %rbx + 0x49, 0x0f, 0x45, 0xcf, //0x000024e4 cmovneq %r15, %rcx + 0x4c, 0x29, 0xe9, //0x000024e8 subq %r13, %rcx + 0x0f, 0x85, 0xf8, 0x24, 0x00, 0x00, //0x000024eb jne LBB1_1141 + 0x4d, 0x89, 0xef, //0x000024f1 movq %r13, %r15 + 0x48, 0x8b, 0x4d, 0xb0, //0x000024f4 movq $-80(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x000024f8 movq %rcx, $-80(%rbp) + 0x49, 0x39, 0xcc, //0x000024fc cmpq %rcx, %r12 + 0x0f, 0x83, 0x9e, 0xf2, 0xff, 0xff, //0x000024ff jae LBB1_506 + 0xe9, 0xae, 0xe0, 0xff, 0xff, //0x00002505 jmp LBB1_2 + //0x0000250a LBB1_512 + 0x48, 0xff, 0xc3, //0x0000250a incq %rbx + 0x48, 0xff, 0xcf, //0x0000250d decq %rdi + 0x0f, 0x84, 0x8f, 0x01, 0x00, 0x00, //0x00002510 je LBB1_519 + //0x00002516 LBB1_513 + 0x0f, 0xb6, 0x43, 0xff, //0x00002516 movzbl $-1(%rbx), %eax + 0x3c, 0x0a, //0x0000251a cmpb $10, %al + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x0000251c je LBB1_512 + 0x3c, 0x0d, //0x00002522 cmpb $13, %al + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00002524 je LBB1_512 + 0x3c, 0x3d, //0x0000252a cmpb $61, %al + 0x0f, 0x85, 0x64, 0x03, 0x00, 0x00, //0x0000252c jne LBB1_545 + 0x49, 0x89, 0xdf, //0x00002532 movq %rbx, %r15 + 0xe9, 0x71, 0x03, 0x00, 0x00, //0x00002535 jmp LBB1_567 + //0x0000253a LBB1_517 + 0x4c, 0x89, 0xfa, //0x0000253a movq %r15, %rdx + //0x0000253d LBB1_459 + 0x49, 0x89, 0xd7, //0x0000253d movq %rdx, %r15 + 0xe9, 0x94, 0xff, 0xff, 0xff, //0x00002540 jmp LBB1_495 + //0x00002545 LBB1_538 + 0x49, 0x89, 0xd6, //0x00002545 movq %rdx, %r14 + 0x4d, 0x89, 0xf7, //0x00002548 movq %r14, %r15 + 0x4c, 0x3b, 0x75, 0xd0, //0x0000254b cmpq $-48(%rbp), %r14 + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x0000254f jb LBB1_522 + 0xe9, 0xfd, 0xfe, 0xff, 0xff, //0x00002555 jmp LBB1_486 + //0x0000255a LBB1_520 + 0x4c, 0x89, 0xf2, //0x0000255a movq %r14, %rdx + 0x4d, 0x89, 0xf7, //0x0000255d movq %r14, %r15 + 0x4c, 0x3b, 0x75, 0xd0, //0x00002560 cmpq $-48(%rbp), %r14 + 0x0f, 0x83, 0xed, 0xfe, 0xff, 0xff, //0x00002564 jae LBB1_486 + //0x0000256a LBB1_522 + 0x49, 0x8d, 0x57, 0x01, //0x0000256a leaq $1(%r15), %rdx + 0x41, 0x0f, 0xb6, 0x3f, //0x0000256e movzbl (%r15), %edi + 0x40, 0x80, 0xff, 0x5c, //0x00002572 cmpb $92, %dil + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x00002576 jne LBB1_535 + 0x4d, 0x8d, 0x77, 0x02, //0x0000257c leaq $2(%r15), %r14 + 0x4c, 0x3b, 0x75, 0xd0, //0x00002580 cmpq $-48(%rbp), %r14 + 0x0f, 0x87, 0xa7, 0x01, 0x00, 0x00, //0x00002584 ja LBB1_543 + 0x0f, 0xb6, 0x02, //0x0000258a movzbl (%rdx), %eax + 0x3c, 0x6e, //0x0000258d cmpb $110, %al + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x0000258f je LBB1_520 + 0x3c, 0x72, //0x00002595 cmpb $114, %al + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00002597 je LBB1_520 + 0x3c, 0x75, //0x0000259d cmpb $117, %al + 0x0f, 0x85, 0xdf, 0x02, 0x00, 0x00, //0x0000259f jne LBB1_544 + 0x48, 0x8b, 0x45, 0xd0, //0x000025a5 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xf0, //0x000025a9 subq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000025ac cmpq $4, %rax + 0x0f, 0x8c, 0xc6, 0x02, 0x00, 0x00, //0x000025b0 jl LBB1_566 + 0x41, 0x8b, 0x06, //0x000025b6 movl (%r14), %eax + 0x89, 0xc2, //0x000025b9 movl %eax, %edx + 0xf7, 0xd2, //0x000025bb notl %edx + 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x000025bd leal $-808464432(%rax), %ecx + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000025c3 andl $-2139062144, %edx + 0x85, 0xca, //0x000025c9 testl %ecx, %edx + 0x0f, 0x85, 0xab, 0x02, 0x00, 0x00, //0x000025cb jne LBB1_566 + 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x000025d1 leal $421075225(%rax), %ecx + 0x09, 0xc1, //0x000025d7 orl %eax, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000025d9 testl $-2139062144, %ecx + 0x0f, 0x85, 0x97, 0x02, 0x00, 0x00, //0x000025df jne LBB1_566 + 0x89, 0xc6, //0x000025e5 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000025e7 andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000025ed movl $-1061109568, %ecx + 0x29, 0xf1, //0x000025f2 subl %esi, %ecx + 0x8d, 0xbe, 0x46, 0x46, 0x46, 0x46, //0x000025f4 leal $1179010630(%rsi), %edi + 0x21, 0xd1, //0x000025fa andl %edx, %ecx + 0x85, 0xf9, //0x000025fc testl %edi, %ecx + 0x0f, 0x85, 0x78, 0x02, 0x00, 0x00, //0x000025fe jne LBB1_566 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002604 movl $-522133280, %ecx + 0x29, 0xf1, //0x00002609 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x0000260b addl $960051513, %esi + 0x21, 0xca, //0x00002611 andl %ecx, %edx + 0x85, 0xf2, //0x00002613 testl %esi, %edx + 0x0f, 0x85, 0x61, 0x02, 0x00, 0x00, //0x00002615 jne LBB1_566 + 0x0f, 0xc8, //0x0000261b bswapl %eax + 0x89, 0xc1, //0x0000261d movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x0000261f shrl $4, %ecx + 0xf7, 0xd1, //0x00002622 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002624 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000262a leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000262d andl $252645135, %eax + 0x01, 0xc8, //0x00002632 addl %ecx, %eax + 0x89, 0xc7, //0x00002634 movl %eax, %edi + 0xc1, 0xef, 0x04, //0x00002636 shrl $4, %edi + 0x09, 0xc7, //0x00002639 orl %eax, %edi + 0x89, 0xf8, //0x0000263b movl %edi, %eax + 0xc1, 0xe8, 0x08, //0x0000263d shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002640 andl $65280, %eax + 0x89, 0xf9, //0x00002645 movl %edi, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002647 andl $128, %ecx + 0x09, 0xc1, //0x0000264d orl %eax, %ecx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000264f je LBB1_534 + 0xbf, 0xff, 0x00, 0x00, 0x00, //0x00002655 movl $255, %edi + //0x0000265a LBB1_534 + 0x49, 0x83, 0xc7, 0x06, //0x0000265a addq $6, %r15 + 0x4c, 0x89, 0xfa, //0x0000265e movq %r15, %rdx + //0x00002661 LBB1_535 + 0x40, 0x80, 0xff, 0x0a, //0x00002661 cmpb $10, %dil + 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x00002665 je LBB1_538 + 0x40, 0x80, 0xff, 0x0d, //0x0000266b cmpb $13, %dil + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x0000266f je LBB1_538 + 0x40, 0x80, 0xff, 0x3d, //0x00002675 cmpb $61, %dil + 0x0f, 0x85, 0x29, 0x02, 0x00, 0x00, //0x00002679 jne LBB1_546 + 0x49, 0x89, 0xd7, //0x0000267f movq %rdx, %r15 + 0x83, 0x7d, 0x98, 0x04, //0x00002682 cmpl $4, $-104(%rbp) + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002686 movabsq $-4294967296, %r8 + 0x0f, 0x84, 0x43, 0xfe, 0xff, 0xff, //0x00002690 je LBB1_495 + 0x48, 0x39, 0x55, 0xd0, //0x00002696 cmpq %rdx, $-48(%rbp) + 0x0f, 0x87, 0xc8, 0x00, 0x00, 0x00, //0x0000269a ja LBB1_549 + 0xe9, 0xb2, 0xfd, 0xff, 0xff, //0x000026a0 jmp LBB1_486 + //0x000026a5 LBB1_519 + 0x4c, 0x8b, 0x7d, 0xd0, //0x000026a5 movq $-48(%rbp), %r15 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000026a9 movabsq $-4294967296, %r8 + //0x000026b3 LBB1_499 + 0xb0, 0x04, //0x000026b3 movb $4, %al + 0x44, 0x28, 0xd8, //0x000026b5 subb %r11b, %al + 0x0f, 0xb6, 0xc0, //0x000026b8 movzbl %al, %eax + 0x01, 0xc0, //0x000026bb addl %eax, %eax + 0x8d, 0x0c, 0x40, //0x000026bd leal (%rax,%rax,2), %ecx + 0x8b, 0x45, 0xc8, //0x000026c0 movl $-56(%rbp), %eax + 0xd3, 0xe0, //0x000026c3 shll %cl, %eax + 0x41, 0x83, 0xfb, 0x02, //0x000026c5 cmpl $2, %r11d + 0x48, 0x8b, 0x5d, 0xd0, //0x000026c9 movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000026cd je LBB1_504 + 0x41, 0x83, 0xfb, 0x03, //0x000026d3 cmpl $3, %r11d + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000026d7 je LBB1_503 + 0x41, 0x83, 0xfb, 0x04, //0x000026dd cmpl $4, %r11d + 0x48, 0x8b, 0x4d, 0xb0, //0x000026e1 movq $-80(%rbp), %rcx + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000026e5 jne LBB1_505 + 0x88, 0x41, 0x02, //0x000026eb movb %al, $2(%rcx) + //0x000026ee LBB1_503 + 0x89, 0xc1, //0x000026ee movl %eax, %ecx + 0x48, 0x8b, 0x45, 0xb0, //0x000026f0 movq $-80(%rbp), %rax + 0x88, 0x68, 0x01, //0x000026f4 movb %ch, $1(%rax) + 0x89, 0xc8, //0x000026f7 movl %ecx, %eax + //0x000026f9 LBB1_504 + 0xc1, 0xe8, 0x10, //0x000026f9 shrl $16, %eax + 0x48, 0x8b, 0x4d, 0xb0, //0x000026fc movq $-80(%rbp), %rcx + 0x88, 0x01, //0x00002700 movb %al, (%rcx) + //0x00002702 LBB1_505 + 0x44, 0x89, 0xd8, //0x00002702 movl %r11d, %eax + 0x48, 0x8d, 0x4c, 0x01, 0xff, //0x00002705 leaq $-1(%rcx,%rax), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x0000270a movq %rcx, $-80(%rbp) + 0x49, 0x39, 0xcc, //0x0000270e cmpq %rcx, %r12 + 0x0f, 0x83, 0x8c, 0xf0, 0xff, 0xff, //0x00002711 jae LBB1_506 + 0xe9, 0x9c, 0xde, 0xff, 0xff, //0x00002717 jmp LBB1_2 + //0x0000271c LBB1_539 + 0x48, 0x89, 0xd3, //0x0000271c movq %rdx, %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000271f movabsq $-4294967296, %r8 + 0x49, 0x89, 0xd7, //0x00002729 movq %rdx, %r15 + 0xe9, 0xa8, 0xfd, 0xff, 0xff, //0x0000272c jmp LBB1_495 + //0x00002731 LBB1_543 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002731 movabsq $-4294967296, %r8 + 0x49, 0x89, 0xd7, //0x0000273b movq %rdx, %r15 + 0xe9, 0x96, 0xfd, 0xff, 0xff, //0x0000273e jmp LBB1_495 + //0x00002743 LBB1_565 + 0x4d, 0x89, 0xfe, //0x00002743 movq %r15, %r14 + 0x4c, 0x89, 0xf2, //0x00002746 movq %r14, %rdx + 0x4c, 0x3b, 0x75, 0xd0, //0x00002749 cmpq $-48(%rbp), %r14 + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x0000274d jb LBB1_549 + 0xe9, 0x8c, 0xfc, 0xff, 0xff, //0x00002753 jmp LBB1_511 + //0x00002758 LBB1_547 + 0x4d, 0x89, 0xf7, //0x00002758 movq %r14, %r15 + 0x4c, 0x89, 0xf2, //0x0000275b movq %r14, %rdx + 0x4c, 0x3b, 0x75, 0xd0, //0x0000275e cmpq $-48(%rbp), %r14 + 0x0f, 0x83, 0x7c, 0xfc, 0xff, 0xff, //0x00002762 jae LBB1_511 + //0x00002768 LBB1_549 + 0x4c, 0x8d, 0x7a, 0x01, //0x00002768 leaq $1(%rdx), %r15 + 0x0f, 0xb6, 0x3a, //0x0000276c movzbl (%rdx), %edi + 0x40, 0x80, 0xff, 0x5c, //0x0000276f cmpb $92, %dil + 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00002773 jne LBB1_562 + 0x4c, 0x8d, 0x72, 0x02, //0x00002779 leaq $2(%rdx), %r14 + 0x4c, 0x3b, 0x75, 0xd0, //0x0000277d cmpq $-48(%rbp), %r14 + 0x0f, 0x87, 0x33, 0x01, 0x00, 0x00, //0x00002781 ja LBB1_570 + 0x41, 0x0f, 0xb6, 0x07, //0x00002787 movzbl (%r15), %eax + 0x3c, 0x6e, //0x0000278b cmpb $110, %al + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x0000278d je LBB1_547 + 0x3c, 0x72, //0x00002793 cmpb $114, %al + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00002795 je LBB1_547 + 0x3c, 0x75, //0x0000279b cmpb $117, %al + 0x0f, 0x85, 0xe1, 0x00, 0x00, 0x00, //0x0000279d jne LBB1_544 + 0x48, 0x8b, 0x45, 0xd0, //0x000027a3 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xf0, //0x000027a7 subq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000027aa cmpq $4, %rax + 0x0f, 0x8c, 0xc8, 0x00, 0x00, 0x00, //0x000027ae jl LBB1_566 + 0x41, 0x8b, 0x06, //0x000027b4 movl (%r14), %eax + 0x89, 0xc7, //0x000027b7 movl %eax, %edi + 0xf7, 0xd7, //0x000027b9 notl %edi + 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x000027bb leal $-808464432(%rax), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x000027c1 andl $-2139062144, %edi + 0x85, 0xcf, //0x000027c7 testl %ecx, %edi + 0x0f, 0x85, 0xad, 0x00, 0x00, 0x00, //0x000027c9 jne LBB1_566 + 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x000027cf leal $421075225(%rax), %ecx + 0x09, 0xc1, //0x000027d5 orl %eax, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000027d7 testl $-2139062144, %ecx + 0x0f, 0x85, 0x99, 0x00, 0x00, 0x00, //0x000027dd jne LBB1_566 + 0x89, 0xc6, //0x000027e3 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000027e5 andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000027eb movl $-1061109568, %ecx + 0x29, 0xf1, //0x000027f0 subl %esi, %ecx + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x000027f2 leal $1179010630(%rsi), %ebx + 0x21, 0xf9, //0x000027f8 andl %edi, %ecx + 0x85, 0xd9, //0x000027fa testl %ebx, %ecx + 0x0f, 0x85, 0x7a, 0x00, 0x00, 0x00, //0x000027fc jne LBB1_566 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002802 movl $-522133280, %ecx + 0x29, 0xf1, //0x00002807 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002809 addl $960051513, %esi + 0x21, 0xcf, //0x0000280f andl %ecx, %edi + 0x85, 0xf7, //0x00002811 testl %esi, %edi + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x00002813 jne LBB1_566 + 0x0f, 0xc8, //0x00002819 bswapl %eax + 0x89, 0xc1, //0x0000281b movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x0000281d shrl $4, %ecx + 0xf7, 0xd1, //0x00002820 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002822 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00002828 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000282b andl $252645135, %eax + 0x01, 0xc8, //0x00002830 addl %ecx, %eax + 0x89, 0xc7, //0x00002832 movl %eax, %edi + 0xc1, 0xef, 0x04, //0x00002834 shrl $4, %edi + 0x09, 0xc7, //0x00002837 orl %eax, %edi + 0x89, 0xf8, //0x00002839 movl %edi, %eax + 0xc1, 0xe8, 0x08, //0x0000283b shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000283e andl $65280, %eax + 0x89, 0xf9, //0x00002843 movl %edi, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002845 andl $128, %ecx + 0x09, 0xc1, //0x0000284b orl %eax, %ecx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000284d je LBB1_561 + 0xbf, 0xff, 0x00, 0x00, 0x00, //0x00002853 movl $255, %edi + //0x00002858 LBB1_561 + 0x48, 0x83, 0xc2, 0x06, //0x00002858 addq $6, %rdx + 0x49, 0x89, 0xd7, //0x0000285c movq %rdx, %r15 + //0x0000285f LBB1_562 + 0x40, 0x80, 0xff, 0x0a, //0x0000285f cmpb $10, %dil + 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x00002863 je LBB1_565 + 0x40, 0x80, 0xff, 0x0d, //0x00002869 cmpb $13, %dil + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x0000286d je LBB1_565 + 0x40, 0x80, 0xff, 0x3d, //0x00002873 cmpb $61, %dil + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00002877 jmp LBB1_567 + //0x0000287c LBB1_566 + 0x4d, 0x89, 0xf7, //0x0000287c movq %r14, %r15 + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x0000287f jmp LBB1_567 + //0x00002884 LBB1_544 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002884 movabsq $-4294967296, %r8 + 0x4d, 0x89, 0xf7, //0x0000288e movq %r14, %r15 + 0xe9, 0x43, 0xfc, 0xff, 0xff, //0x00002891 jmp LBB1_495 + //0x00002896 LBB1_545 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002896 movabsq $-4294967296, %r8 + 0x49, 0x89, 0xdf, //0x000028a0 movq %rbx, %r15 + 0xe9, 0x31, 0xfc, 0xff, 0xff, //0x000028a3 jmp LBB1_495 + //0x000028a8 LBB1_546 + 0x49, 0x89, 0xd7, //0x000028a8 movq %rdx, %r15 + //0x000028ab LBB1_567 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000028ab movabsq $-4294967296, %r8 + 0xe9, 0x1f, 0xfc, 0xff, 0xff, //0x000028b5 jmp LBB1_495 + //0x000028ba LBB1_570 + 0x4c, 0x89, 0xfa, //0x000028ba movq %r15, %rdx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000028bd movabsq $-4294967296, %r8 + 0xe9, 0x0d, 0xfc, 0xff, 0xff, //0x000028c7 jmp LBB1_495 + //0x000028cc LBB1_574 + 0x4d, 0x89, 0xf9, //0x000028cc movq %r15, %r9 + 0x48, 0x8b, 0x45, 0x90, //0x000028cf movq $-112(%rbp), %rax + 0x48, 0x83, 0xc0, 0xfc, //0x000028d3 addq $-4, %rax + 0x48, 0x3b, 0x45, 0xb0, //0x000028d7 cmpq $-80(%rbp), %rax + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000028db jae LBB1_575 + 0xe9, 0x34, 0x10, 0x00, 0x00, //0x000028e1 jmp LBB1_851 + //0x000028e6 LBB1_572 + 0x4d, 0x89, 0xcf, //0x000028e6 movq %r9, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x000028e9 movq $-48(%rbp), %rbx + 0x48, 0x8b, 0x45, 0x90, //0x000028ed movq $-112(%rbp), %rax + 0x48, 0x83, 0xc0, 0xfc, //0x000028f1 addq $-4, %rax + 0x48, 0x3b, 0x45, 0xb0, //0x000028f5 cmpq $-80(%rbp), %rax + 0x0f, 0x82, 0x1b, 0x10, 0x00, 0x00, //0x000028f9 jb LBB1_851 + //0x000028ff LBB1_575 + 0x4c, 0x8d, 0x6b, 0xfc, //0x000028ff leaq $-4(%rbx), %r13 + 0x4d, 0x39, 0xfd, //0x00002903 cmpq %r15, %r13 + 0x0f, 0x82, 0x0e, 0x10, 0x00, 0x00, //0x00002906 jb LBB1_851 + 0x49, 0x89, 0xc6, //0x0000290c movq %rax, %r14 + 0x44, 0x8b, 0x65, 0xbc, //0x0000290f movl $-68(%rbp), %r12d + 0x41, 0x83, 0xe4, 0x02, //0x00002913 andl $2, %r12d + 0x48, 0x8b, 0x45, 0xa8, //0x00002917 movq $-88(%rbp), %rax + 0x48, 0x8b, 0x4d, 0x88, //0x0000291b movq $-120(%rbp), %rcx + 0x48, 0x8d, 0x54, 0x01, 0xfe, //0x0000291f leaq $-2(%rcx,%rax), %rdx + 0x48, 0x89, 0x55, 0xa0, //0x00002924 movq %rdx, $-96(%rbp) + 0x48, 0x8d, 0x44, 0x01, 0xfd, //0x00002928 leaq $-3(%rcx,%rax), %rax + 0x48, 0x89, 0x45, 0x90, //0x0000292d movq %rax, $-112(%rbp) + 0xe9, 0x45, 0x00, 0x00, 0x00, //0x00002931 jmp LBB1_577 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002936 .p2align 4, 0x90 + //0x00002940 LBB1_578 + 0xc1, 0xe2, 0x1a, //0x00002940 shll $26, %edx + 0xc1, 0xe0, 0x14, //0x00002943 shll $20, %eax + 0x09, 0xd0, //0x00002946 orl %edx, %eax + 0xc1, 0xe3, 0x0e, //0x00002948 shll $14, %ebx + 0xc1, 0xe1, 0x08, //0x0000294b shll $8, %ecx + 0x09, 0xd9, //0x0000294e orl %ebx, %ecx + 0x09, 0xc1, //0x00002950 orl %eax, %ecx + 0x0f, 0xc9, //0x00002952 bswapl %ecx + 0x48, 0x8b, 0x55, 0xb0, //0x00002954 movq $-80(%rbp), %rdx + 0x89, 0x0a, //0x00002958 movl %ecx, (%rdx) + 0x49, 0x83, 0xc7, 0x04, //0x0000295a addq $4, %r15 + 0x48, 0x83, 0xc2, 0x03, //0x0000295e addq $3, %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00002962 movq %rdx, $-80(%rbp) + 0x49, 0x39, 0xd6, //0x00002966 cmpq %rdx, %r14 + 0x0f, 0x82, 0xbb, 0x0f, 0x00, 0x00, //0x00002969 jb LBB1_852 + //0x0000296f LBB1_727 + 0x4d, 0x89, 0xf9, //0x0000296f movq %r15, %r9 + 0x4d, 0x39, 0xfd, //0x00002972 cmpq %r15, %r13 + 0x0f, 0x82, 0xaf, 0x0f, 0x00, 0x00, //0x00002975 jb LBB1_852 + //0x0000297b LBB1_577 + 0x41, 0x0f, 0xb6, 0x07, //0x0000297b movzbl (%r15), %eax + 0x48, 0x8b, 0x75, 0xc0, //0x0000297f movq $-64(%rbp), %rsi + 0x0f, 0xb6, 0x14, 0x06, //0x00002983 movzbl (%rsi,%rax), %edx + 0x41, 0x0f, 0xb6, 0x47, 0x01, //0x00002987 movzbl $1(%r15), %eax + 0x0f, 0xb6, 0x04, 0x06, //0x0000298c movzbl (%rsi,%rax), %eax + 0x41, 0x0f, 0xb6, 0x4f, 0x02, //0x00002990 movzbl $2(%r15), %ecx + 0x0f, 0xb6, 0x1c, 0x0e, //0x00002995 movzbl (%rsi,%rcx), %ebx + 0x41, 0x0f, 0xb6, 0x4f, 0x03, //0x00002999 movzbl $3(%r15), %ecx + 0x0f, 0xb6, 0x0c, 0x0e, //0x0000299e movzbl (%rsi,%rcx), %ecx + 0x89, 0xc7, //0x000029a2 movl %eax, %edi + 0x09, 0xd7, //0x000029a4 orl %edx, %edi + 0x89, 0xde, //0x000029a6 movl %ebx, %esi + 0x09, 0xce, //0x000029a8 orl %ecx, %esi + 0x09, 0xfe, //0x000029aa orl %edi, %esi + 0x40, 0x80, 0xfe, 0xff, //0x000029ac cmpb $-1, %sil + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x000029b0 jne LBB1_578 + 0x48, 0x8b, 0x5d, 0xd0, //0x000029b6 movq $-48(%rbp), %rbx + 0x4c, 0x39, 0xfb, //0x000029ba cmpq %r15, %rbx + 0x0f, 0x86, 0x1d, 0x02, 0x00, 0x00, //0x000029bd jbe LBB1_611 + 0xf6, 0x45, 0xbc, 0x08, //0x000029c3 testb $8, $-68(%rbp) + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x000029c7 je LBB1_583 + 0x4c, 0x89, 0xfa, //0x000029cd movq %r15, %rdx + 0xe9, 0xc7, 0x00, 0x00, 0x00, //0x000029d0 jmp LBB1_594 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029d5 .p2align 4, 0x90 + //0x000029e0 LBB1_582 + 0x49, 0xff, 0xc7, //0x000029e0 incq %r15 + 0x49, 0x39, 0xdf, //0x000029e3 cmpq %rbx, %r15 + 0x0f, 0x83, 0xde, 0x01, 0x00, 0x00, //0x000029e6 jae LBB1_609 + //0x000029ec LBB1_583 + 0x41, 0x0f, 0xb6, 0x0f, //0x000029ec movzbl (%r15), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x000029f0 cmpq $13, %rcx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x000029f4 je LBB1_582 + 0x80, 0xf9, 0x0a, //0x000029fa cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x000029fd je LBB1_582 + 0x48, 0x8b, 0x45, 0xc0, //0x00002a03 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00002a07 movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc7, //0x00002a0b incq %r15 + 0x89, 0x45, 0xc8, //0x00002a0e movl %eax, $-56(%rbp) + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002a11 cmpl $255, %eax + 0x0f, 0x84, 0x84, 0x02, 0x00, 0x00, //0x00002a16 je LBB1_623 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002a1c movl $1, %r11d + 0x49, 0x39, 0xdf, //0x00002a22 cmpq %rbx, %r15 + 0x0f, 0x82, 0x11, 0x00, 0x00, 0x00, //0x00002a25 jb LBB1_588 + 0xe9, 0x99, 0x06, 0x00, 0x00, //0x00002a2b jmp LBB1_693 + //0x00002a30 .p2align 4, 0x90 + //0x00002a30 LBB1_587 + 0x49, 0xff, 0xc7, //0x00002a30 incq %r15 + 0x49, 0x39, 0xdf, //0x00002a33 cmpq %rbx, %r15 + 0x0f, 0x83, 0x3d, 0x04, 0x00, 0x00, //0x00002a36 jae LBB1_675 + //0x00002a3c LBB1_588 + 0x41, 0x0f, 0xb6, 0x0f, //0x00002a3c movzbl (%r15), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00002a40 cmpq $13, %rcx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00002a44 je LBB1_587 + 0x80, 0xf9, 0x0a, //0x00002a4a cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x00002a4d je LBB1_587 + 0x48, 0x8b, 0x45, 0xc0, //0x00002a53 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00002a57 movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc7, //0x00002a5b incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002a5e cmpl $255, %eax + 0x0f, 0x84, 0xb6, 0x06, 0x00, 0x00, //0x00002a63 je LBB1_716 + 0x8b, 0x4d, 0xc8, //0x00002a69 movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00002a6c shll $6, %ecx + 0x09, 0xc1, //0x00002a6f orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x00002a71 movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00002a74 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x00002a7a cmpq %rbx, %r15 + 0x0f, 0x82, 0x8f, 0x01, 0x00, 0x00, //0x00002a7d jb LBB1_613 + 0xe9, 0x41, 0x06, 0x00, 0x00, //0x00002a83 jmp LBB1_693 + //0x00002a88 LBB1_592 + 0x3c, 0x6e, //0x00002a88 cmpb $110, %al + 0x0f, 0x85, 0xd6, 0x01, 0x00, 0x00, //0x00002a8a jne LBB1_618 + //0x00002a90 .p2align 4, 0x90 + //0x00002a90 LBB1_593 + 0x4c, 0x89, 0xfa, //0x00002a90 movq %r15, %rdx + 0x49, 0x39, 0xdf, //0x00002a93 cmpq %rbx, %r15 + 0x0f, 0x83, 0x2e, 0x01, 0x00, 0x00, //0x00002a96 jae LBB1_609 + //0x00002a9c LBB1_594 + 0x48, 0x8d, 0x42, 0x01, //0x00002a9c leaq $1(%rdx), %rax + 0x0f, 0xb6, 0x0a, //0x00002aa0 movzbl (%rdx), %ecx + 0x80, 0xf9, 0x5c, //0x00002aa3 cmpb $92, %cl + 0x0f, 0x85, 0x04, 0x01, 0x00, 0x00, //0x00002aa6 jne LBB1_607 + 0x4c, 0x8d, 0x7a, 0x02, //0x00002aac leaq $2(%rdx), %r15 + 0xb1, 0xff, //0x00002ab0 movb $-1, %cl + 0x49, 0x39, 0xdf, //0x00002ab2 cmpq %rbx, %r15 + 0x0f, 0x87, 0xa3, 0x01, 0x00, 0x00, //0x00002ab5 ja LBB1_617 + 0x0f, 0xb6, 0x00, //0x00002abb movzbl (%rax), %eax + 0x3c, 0x71, //0x00002abe cmpb $113, %al + 0x0f, 0x8e, 0xc2, 0xff, 0xff, 0xff, //0x00002ac0 jle LBB1_592 + 0x3c, 0x72, //0x00002ac6 cmpb $114, %al + 0x0f, 0x84, 0xc2, 0xff, 0xff, 0xff, //0x00002ac8 je LBB1_593 + 0x3c, 0x75, //0x00002ace cmpb $117, %al + 0x0f, 0x85, 0x9a, 0x01, 0x00, 0x00, //0x00002ad0 jne LBB1_620 + 0x48, 0x89, 0xd8, //0x00002ad6 movq %rbx, %rax + 0x4c, 0x29, 0xf8, //0x00002ad9 subq %r15, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002adc cmpq $4, %rax + 0x0f, 0x8c, 0x8a, 0x01, 0x00, 0x00, //0x00002ae0 jl LBB1_620 + 0x41, 0x8b, 0x07, //0x00002ae6 movl (%r15), %eax + 0x89, 0xc6, //0x00002ae9 movl %eax, %esi + 0xf7, 0xd6, //0x00002aeb notl %esi + 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002aed leal $-808464432(%rax), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00002af3 andl $-2139062144, %esi + 0x85, 0xfe, //0x00002af9 testl %edi, %esi + 0x0f, 0x85, 0x6f, 0x01, 0x00, 0x00, //0x00002afb jne LBB1_620 + 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x00002b01 leal $421075225(%rax), %edi + 0x09, 0xc7, //0x00002b07 orl %eax, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00002b09 testl $-2139062144, %edi + 0x0f, 0x85, 0x5b, 0x01, 0x00, 0x00, //0x00002b0f jne LBB1_620 + 0x89, 0xc7, //0x00002b15 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002b17 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002b1d movl $-1061109568, %ebx + 0x29, 0xfb, //0x00002b22 subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00002b24 leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x00002b2b andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x00002b2d testl %r8d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x00002b30 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x36, 0x01, 0x00, 0x00, //0x00002b34 jne LBB1_620 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002b3a movl $-522133280, %ebx + 0x29, 0xfb, //0x00002b3f subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00002b41 addl $960051513, %edi + 0x21, 0xde, //0x00002b47 andl %ebx, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x00002b49 movq $-48(%rbp), %rbx + 0x85, 0xfe, //0x00002b4d testl %edi, %esi + 0x0f, 0x85, 0x1b, 0x01, 0x00, 0x00, //0x00002b4f jne LBB1_620 + 0x0f, 0xc8, //0x00002b55 bswapl %eax + 0x89, 0xc1, //0x00002b57 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002b59 shrl $4, %ecx + 0xf7, 0xd1, //0x00002b5c notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002b5e andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00002b64 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002b67 andl $252645135, %eax + 0x01, 0xc8, //0x00002b6c addl %ecx, %eax + 0x89, 0xc1, //0x00002b6e movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002b70 shrl $4, %ecx + 0x09, 0xc1, //0x00002b73 orl %eax, %ecx + 0x89, 0xc8, //0x00002b75 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00002b77 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002b7a andl $65280, %eax + 0x89, 0xce, //0x00002b7f movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00002b81 andl $128, %esi + 0x09, 0xc6, //0x00002b87 orl %eax, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002b89 je LBB1_606 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00002b8f movl $255, %ecx + //0x00002b94 LBB1_606 + 0x48, 0x83, 0xc2, 0x06, //0x00002b94 addq $6, %rdx + 0x49, 0x89, 0xd7, //0x00002b98 movq %rdx, %r15 + 0x80, 0xf9, 0x0d, //0x00002b9b cmpb $13, %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002b9e jne LBB1_608 + 0xe9, 0xe7, 0xfe, 0xff, 0xff, //0x00002ba4 jmp LBB1_593 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ba9 .p2align 4, 0x90 + //0x00002bb0 LBB1_607 + 0x49, 0x89, 0xc7, //0x00002bb0 movq %rax, %r15 + 0x80, 0xf9, 0x0d, //0x00002bb3 cmpb $13, %cl + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00002bb6 je LBB1_593 + //0x00002bbc LBB1_608 + 0x80, 0xf9, 0x0a, //0x00002bbc cmpb $10, %cl + 0x0f, 0x84, 0xcb, 0xfe, 0xff, 0xff, //0x00002bbf je LBB1_593 + 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x00002bc5 jmp LBB1_620 + //0x00002bca LBB1_609 + 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00002bca movl $0, $-56(%rbp) + 0x45, 0x31, 0xdb, //0x00002bd1 xorl %r11d, %r11d + //0x00002bd4 LBB1_610 + 0x45, 0x85, 0xdb, //0x00002bd4 testl %r11d, %r11d + 0x0f, 0x85, 0xec, 0x04, 0x00, 0x00, //0x00002bd7 jne LBB1_693 + 0x90, 0x90, 0x90, //0x00002bdd .p2align 4, 0x90 + //0x00002be0 LBB1_611 + 0x48, 0x8b, 0x55, 0xb0, //0x00002be0 movq $-80(%rbp), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00002be4 movq %rdx, $-80(%rbp) + 0x49, 0x39, 0xd6, //0x00002be8 cmpq %rdx, %r14 + 0x0f, 0x83, 0x7e, 0xfd, 0xff, 0xff, //0x00002beb jae LBB1_727 + 0xe9, 0x34, 0x0d, 0x00, 0x00, //0x00002bf1 jmp LBB1_852 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002bf6 .p2align 4, 0x90 + //0x00002c00 LBB1_612 + 0x49, 0xff, 0xc7, //0x00002c00 incq %r15 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00002c03 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x00002c09 cmpq %rbx, %r15 + 0x0f, 0x83, 0xc2, 0xff, 0xff, 0xff, //0x00002c0c jae LBB1_610 + //0x00002c12 LBB1_613 + 0x41, 0x0f, 0xb6, 0x0f, //0x00002c12 movzbl (%r15), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00002c16 cmpq $13, %rcx + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00002c1a je LBB1_612 + 0x80, 0xf9, 0x0a, //0x00002c20 cmpb $10, %cl + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00002c23 je LBB1_612 + 0x48, 0x8b, 0x45, 0xc0, //0x00002c29 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00002c2d movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc7, //0x00002c31 incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002c34 cmpl $255, %eax + 0x0f, 0x84, 0x0e, 0x09, 0x00, 0x00, //0x00002c39 je LBB1_759 + 0x8b, 0x4d, 0xc8, //0x00002c3f movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00002c42 shll $6, %ecx + 0x09, 0xc1, //0x00002c45 orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x00002c47 movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002c4a movl $3, %r11d + 0x49, 0x39, 0xdf, //0x00002c50 cmpq %rbx, %r15 + 0x0f, 0x82, 0xa6, 0x03, 0x00, 0x00, //0x00002c53 jb LBB1_677 + 0xe9, 0x6b, 0x04, 0x00, 0x00, //0x00002c59 jmp LBB1_693 + //0x00002c5e LBB1_617 + 0x49, 0x89, 0xc7, //0x00002c5e movq %rax, %r15 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002c61 jmp LBB1_620 + //0x00002c66 LBB1_618 + 0x3c, 0x2f, //0x00002c66 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00002c68 jne LBB1_620 + 0x89, 0xc1, //0x00002c6e movl %eax, %ecx + //0x00002c70 LBB1_620 + 0x0f, 0xb6, 0xc1, //0x00002c70 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00002c73 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x00002c77 movzbl (%rdx,%rax), %eax + 0x89, 0x45, 0xc8, //0x00002c7b movl %eax, $-56(%rbp) + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002c7e cmpl $255, %eax + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002c83 je LBB1_623 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002c89 movl $1, %r11d + 0x49, 0x39, 0xdf, //0x00002c8f cmpq %rbx, %r15 + 0x0f, 0x83, 0x31, 0x04, 0x00, 0x00, //0x00002c92 jae LBB1_693 + 0x4c, 0x89, 0xfa, //0x00002c98 movq %r15, %rdx + 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00002c9b jmp LBB1_639 + //0x00002ca0 LBB1_623 + 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00002ca0 movl $0, $-56(%rbp) + 0x45, 0x31, 0xdb, //0x00002ca7 xorl %r11d, %r11d + //0x00002caa LBB1_624 + 0x45, 0x85, 0xe4, //0x00002caa testl %r12d, %r12d + 0x0f, 0x85, 0x3e, 0x04, 0x00, 0x00, //0x00002cad jne LBB1_696 + 0x41, 0x83, 0xfb, 0x02, //0x00002cb3 cmpl $2, %r11d + 0x0f, 0x82, 0x34, 0x04, 0x00, 0x00, //0x00002cb7 jb LBB1_696 + 0x80, 0xf9, 0x3d, //0x00002cbd cmpb $61, %cl + 0x0f, 0x85, 0x2b, 0x04, 0x00, 0x00, //0x00002cc0 jne LBB1_696 + 0x41, 0xba, 0x05, 0x00, 0x00, 0x00, //0x00002cc6 movl $5, %r10d + 0x45, 0x29, 0xda, //0x00002ccc subl %r11d, %r10d + 0xf6, 0x45, 0xbc, 0x08, //0x00002ccf testb $8, $-68(%rbp) + 0x0f, 0x85, 0xab, 0x01, 0x00, 0x00, //0x00002cd3 jne LBB1_655 + 0x4c, 0x39, 0x7d, 0xd0, //0x00002cd9 cmpq %r15, $-48(%rbp) + 0x0f, 0x86, 0x2a, 0x09, 0x00, 0x00, //0x00002cdd jbe LBB1_720 + 0x49, 0x8d, 0x4f, 0x03, //0x00002ce3 leaq $3(%r15), %rcx + 0x48, 0x8b, 0x5d, 0xa0, //0x00002ce7 movq $-96(%rbp), %rbx + 0x4c, 0x29, 0xfb, //0x00002ceb subq %r15, %rbx + 0x49, 0x8d, 0x57, 0x04, //0x00002cee leaq $4(%r15), %rdx + 0x48, 0x8b, 0x7d, 0x90, //0x00002cf2 movq $-112(%rbp), %rdi + 0x4c, 0x29, 0xff, //0x00002cf6 subq %r15, %rdi + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00002cf9 jmp LBB1_631 + 0x90, 0x90, //0x00002cfe .p2align 4, 0x90 + //0x00002d00 LBB1_630 + 0x49, 0xff, 0xc7, //0x00002d00 incq %r15 + 0x48, 0xff, 0xc1, //0x00002d03 incq %rcx + 0x48, 0xff, 0xcb, //0x00002d06 decq %rbx + 0x48, 0xff, 0xc2, //0x00002d09 incq %rdx + 0x48, 0xff, 0xcf, //0x00002d0c decq %rdi + 0x4c, 0x39, 0x7d, 0xd0, //0x00002d0f cmpq %r15, $-48(%rbp) + 0x0f, 0x84, 0xf0, 0x08, 0x00, 0x00, //0x00002d13 je LBB1_717 + //0x00002d19 LBB1_631 + 0x41, 0x0f, 0xb6, 0x07, //0x00002d19 movzbl (%r15), %eax + 0x3c, 0x0a, //0x00002d1d cmpb $10, %al + 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00002d1f je LBB1_630 + 0x3c, 0x0d, //0x00002d25 cmpb $13, %al + 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00002d27 je LBB1_630 + 0x3c, 0x3d, //0x00002d2d cmpb $61, %al + 0x0f, 0x85, 0x30, 0x05, 0x00, 0x00, //0x00002d2f jne LBB1_728 + 0x49, 0xff, 0xc7, //0x00002d35 incq %r15 + 0x41, 0x83, 0xfa, 0x02, //0x00002d38 cmpl $2, %r10d + 0x0f, 0x84, 0xaf, 0x03, 0x00, 0x00, //0x00002d3c je LBB1_696 + 0x4c, 0x39, 0x7d, 0xd0, //0x00002d42 cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0x04, 0x03, 0x00, 0x00, //0x00002d46 ja LBB1_682 + 0xe9, 0xbc, 0x08, 0x00, 0x00, //0x00002d4c jmp LBB1_720 + //0x00002d51 LBB1_636 + 0x3c, 0x6e, //0x00002d51 cmpb $110, %al + 0x0f, 0x85, 0x2f, 0x03, 0x00, 0x00, //0x00002d53 jne LBB1_688 + //0x00002d59 LBB1_637 + 0x4d, 0x89, 0xc7, //0x00002d59 movq %r8, %r15 + //0x00002d5c LBB1_638 + 0x4c, 0x89, 0xfa, //0x00002d5c movq %r15, %rdx + 0x49, 0x39, 0xdf, //0x00002d5f cmpq %rbx, %r15 + 0x0f, 0x83, 0x11, 0x01, 0x00, 0x00, //0x00002d62 jae LBB1_675 + //0x00002d68 LBB1_639 + 0x4c, 0x8d, 0x7a, 0x01, //0x00002d68 leaq $1(%rdx), %r15 + 0x0f, 0xb6, 0x0a, //0x00002d6c movzbl (%rdx), %ecx + 0x80, 0xf9, 0x5c, //0x00002d6f cmpb $92, %cl + 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x00002d72 jne LBB1_652 + 0x4c, 0x8d, 0x42, 0x02, //0x00002d78 leaq $2(%rdx), %r8 + 0xb1, 0xff, //0x00002d7c movb $-1, %cl + 0x49, 0x39, 0xd8, //0x00002d7e cmpq %rbx, %r8 + 0x0f, 0x87, 0x12, 0x03, 0x00, 0x00, //0x00002d81 ja LBB1_691 + 0x41, 0x0f, 0xb6, 0x07, //0x00002d87 movzbl (%r15), %eax + 0x3c, 0x71, //0x00002d8b cmpb $113, %al + 0x0f, 0x8e, 0xbe, 0xff, 0xff, 0xff, //0x00002d8d jle LBB1_636 + 0x3c, 0x72, //0x00002d93 cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00002d95 je LBB1_637 + 0x3c, 0x75, //0x00002d9b cmpb $117, %al + 0x0f, 0x85, 0xef, 0x02, 0x00, 0x00, //0x00002d9d jne LBB1_690 + 0x48, 0x8b, 0x45, 0xd0, //0x00002da3 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xc0, //0x00002da7 subq %r8, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002daa cmpq $4, %rax + 0x0f, 0x8c, 0xde, 0x02, 0x00, 0x00, //0x00002dae jl LBB1_690 + 0x41, 0x8b, 0x18, //0x00002db4 movl (%r8), %ebx + 0x89, 0xde, //0x00002db7 movl %ebx, %esi + 0xf7, 0xd6, //0x00002db9 notl %esi + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002dbb leal $-808464432(%rbx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00002dc1 andl $-2139062144, %esi + 0x85, 0xc6, //0x00002dc7 testl %eax, %esi + 0x0f, 0x85, 0xc3, 0x02, 0x00, 0x00, //0x00002dc9 jne LBB1_690 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00002dcf leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00002dd5 orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00002dd7 testl $-2139062144, %eax + 0x0f, 0x85, 0xb0, 0x02, 0x00, 0x00, //0x00002ddc jne LBB1_690 + 0x89, 0xd8, //0x00002de2 movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002de4 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002de9 movl $-1061109568, %edi + 0x29, 0xc7, //0x00002dee subl %eax, %edi + 0x44, 0x8d, 0x90, 0x46, 0x46, 0x46, 0x46, //0x00002df0 leal $1179010630(%rax), %r10d + 0x21, 0xf7, //0x00002df7 andl %esi, %edi + 0x44, 0x85, 0xd7, //0x00002df9 testl %r10d, %edi + 0x0f, 0x85, 0x90, 0x02, 0x00, 0x00, //0x00002dfc jne LBB1_690 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002e02 movl $-522133280, %edi + 0x29, 0xc7, //0x00002e07 subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00002e09 addl $960051513, %eax + 0x21, 0xfe, //0x00002e0e andl %edi, %esi + 0x85, 0xc6, //0x00002e10 testl %eax, %esi + 0x0f, 0x85, 0x7a, 0x02, 0x00, 0x00, //0x00002e12 jne LBB1_690 + 0x0f, 0xcb, //0x00002e18 bswapl %ebx + 0x89, 0xd8, //0x00002e1a movl %ebx, %eax + 0xc1, 0xe8, 0x04, //0x00002e1c shrl $4, %eax + 0xf7, 0xd0, //0x00002e1f notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00002e21 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00002e26 leal (%rax,%rax,8), %eax + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002e29 andl $252645135, %ebx + 0x01, 0xc3, //0x00002e2f addl %eax, %ebx + 0x89, 0xd9, //0x00002e31 movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00002e33 shrl $4, %ecx + 0x09, 0xd9, //0x00002e36 orl %ebx, %ecx + 0x89, 0xc8, //0x00002e38 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00002e3a shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002e3d andl $65280, %eax + 0x89, 0xce, //0x00002e42 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00002e44 andl $128, %esi + 0x09, 0xc6, //0x00002e4a orl %eax, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002e4c je LBB1_651 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00002e52 movl $255, %ecx + //0x00002e57 LBB1_651 + 0x48, 0x83, 0xc2, 0x06, //0x00002e57 addq $6, %rdx + 0x49, 0x89, 0xd7, //0x00002e5b movq %rdx, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00002e5e movq $-48(%rbp), %rbx + //0x00002e62 LBB1_652 + 0x80, 0xf9, 0x0a, //0x00002e62 cmpb $10, %cl + 0x0f, 0x84, 0xf1, 0xfe, 0xff, 0xff, //0x00002e65 je LBB1_638 + 0x80, 0xf9, 0x0d, //0x00002e6b cmpb $13, %cl + 0x0f, 0x84, 0xe8, 0xfe, 0xff, 0xff, //0x00002e6e je LBB1_638 + 0xe9, 0x20, 0x02, 0x00, 0x00, //0x00002e74 jmp LBB1_691 + //0x00002e79 LBB1_675 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002e79 movl $1, %r11d + 0xe9, 0x50, 0xfd, 0xff, 0xff, //0x00002e7f jmp LBB1_610 + //0x00002e84 LBB1_655 + 0x48, 0x8b, 0x55, 0xd0, //0x00002e84 movq $-48(%rbp), %rdx + 0x4c, 0x39, 0xfa, //0x00002e88 cmpq %r15, %rdx + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00002e8b ja LBB1_658 + 0xe9, 0x77, 0x07, 0x00, 0x00, //0x00002e91 jmp LBB1_720 + //0x00002e96 LBB1_674 + 0x48, 0x89, 0xc1, //0x00002e96 movq %rax, %rcx + 0x49, 0x89, 0xcf, //0x00002e99 movq %rcx, %r15 + 0x48, 0x39, 0xd1, //0x00002e9c cmpq %rdx, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002e9f jb LBB1_658 + 0xe9, 0x3b, 0x01, 0x00, 0x00, //0x00002ea5 jmp LBB1_719 + //0x00002eaa LBB1_656 + 0x48, 0x89, 0xc8, //0x00002eaa movq %rcx, %rax + 0x49, 0x89, 0xcf, //0x00002ead movq %rcx, %r15 + 0x48, 0x39, 0xd1, //0x00002eb0 cmpq %rdx, %rcx + 0x0f, 0x83, 0x2c, 0x01, 0x00, 0x00, //0x00002eb3 jae LBB1_719 + //0x00002eb9 LBB1_658 + 0x49, 0x8d, 0x47, 0x01, //0x00002eb9 leaq $1(%r15), %rax + 0x41, 0x0f, 0xb6, 0x0f, //0x00002ebd movzbl (%r15), %ecx + 0x80, 0xf9, 0x5c, //0x00002ec1 cmpb $92, %cl + 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00002ec4 jne LBB1_671 + 0x49, 0x8d, 0x4f, 0x02, //0x00002eca leaq $2(%r15), %rcx + 0x48, 0x39, 0xd1, //0x00002ece cmpq %rdx, %rcx + 0x0f, 0x87, 0x3b, 0x0a, 0x00, 0x00, //0x00002ed1 ja LBB1_827 + 0x0f, 0xb6, 0x00, //0x00002ed7 movzbl (%rax), %eax + 0x3c, 0x6e, //0x00002eda cmpb $110, %al + 0x0f, 0x84, 0xc8, 0xff, 0xff, 0xff, //0x00002edc je LBB1_656 + 0x3c, 0x72, //0x00002ee2 cmpb $114, %al + 0x0f, 0x84, 0xc0, 0xff, 0xff, 0xff, //0x00002ee4 je LBB1_656 + 0x3c, 0x75, //0x00002eea cmpb $117, %al + 0x0f, 0x85, 0x15, 0x0a, 0x00, 0x00, //0x00002eec jne LBB1_847 + 0x48, 0x89, 0xd0, //0x00002ef2 movq %rdx, %rax + 0x48, 0x29, 0xc8, //0x00002ef5 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002ef8 cmpq $4, %rax + 0x0f, 0x8c, 0x05, 0x0a, 0x00, 0x00, //0x00002efc jl LBB1_847 + 0x8b, 0x01, //0x00002f02 movl (%rcx), %eax + 0x89, 0xc2, //0x00002f04 movl %eax, %edx + 0xf7, 0xd2, //0x00002f06 notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002f08 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x00002f0e andl $-2139062144, %edx + 0x85, 0xf2, //0x00002f14 testl %esi, %edx + 0x0f, 0x85, 0xeb, 0x09, 0x00, 0x00, //0x00002f16 jne LBB1_847 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x00002f1c leal $421075225(%rax), %esi + 0x09, 0xc6, //0x00002f22 orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00002f24 testl $-2139062144, %esi + 0x0f, 0x85, 0xd7, 0x09, 0x00, 0x00, //0x00002f2a jne LBB1_847 + 0x89, 0xc6, //0x00002f30 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002f32 andl $2139062143, %esi + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002f38 movl $-1061109568, %edi + 0x29, 0xf7, //0x00002f3d subl %esi, %edi + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00002f3f leal $1179010630(%rsi), %ebx + 0x21, 0xd7, //0x00002f45 andl %edx, %edi + 0x85, 0xdf, //0x00002f47 testl %ebx, %edi + 0x0f, 0x85, 0xb8, 0x09, 0x00, 0x00, //0x00002f49 jne LBB1_847 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002f4f movl $-522133280, %edi + 0x29, 0xf7, //0x00002f54 subl %esi, %edi + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002f56 addl $960051513, %esi + 0x21, 0xfa, //0x00002f5c andl %edi, %edx + 0x85, 0xf2, //0x00002f5e testl %esi, %edx + 0x0f, 0x85, 0xa1, 0x09, 0x00, 0x00, //0x00002f60 jne LBB1_847 + 0x0f, 0xc8, //0x00002f66 bswapl %eax + 0x89, 0xc1, //0x00002f68 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002f6a shrl $4, %ecx + 0xf7, 0xd1, //0x00002f6d notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002f6f andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00002f75 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002f78 andl $252645135, %eax + 0x01, 0xc8, //0x00002f7d addl %ecx, %eax + 0x89, 0xc1, //0x00002f7f movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002f81 shrl $4, %ecx + 0x09, 0xc1, //0x00002f84 orl %eax, %ecx + 0x89, 0xc8, //0x00002f86 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00002f88 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002f8b andl $65280, %eax + 0x89, 0xca, //0x00002f90 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00002f92 andl $128, %edx + 0x09, 0xc2, //0x00002f98 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002f9a je LBB1_670 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00002fa0 movl $255, %ecx + //0x00002fa5 LBB1_670 + 0x49, 0x83, 0xc7, 0x06, //0x00002fa5 addq $6, %r15 + 0x4c, 0x89, 0xf8, //0x00002fa9 movq %r15, %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00002fac movq $-48(%rbp), %rdx + //0x00002fb0 LBB1_671 + 0x80, 0xf9, 0x0a, //0x00002fb0 cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x00002fb3 je LBB1_674 + 0x80, 0xf9, 0x0d, //0x00002fb9 cmpb $13, %cl + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00002fbc je LBB1_674 + 0x80, 0xf9, 0x3d, //0x00002fc2 cmpb $61, %cl + 0x0f, 0x85, 0x47, 0x09, 0x00, 0x00, //0x00002fc5 jne LBB1_827 + 0x49, 0x89, 0xc7, //0x00002fcb movq %rax, %r15 + 0x41, 0x83, 0xfa, 0x02, //0x00002fce cmpl $2, %r10d + 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x00002fd2 je LBB1_696 + 0x48, 0x8b, 0x75, 0xd0, //0x00002fd8 movq $-48(%rbp), %rsi + 0x48, 0x39, 0xc6, //0x00002fdc cmpq %rax, %rsi + 0x0f, 0x87, 0x32, 0x04, 0x00, 0x00, //0x00002fdf ja LBB1_762 + //0x00002fe5 LBB1_719 + 0x49, 0x89, 0xc7, //0x00002fe5 movq %rax, %r15 + 0xe9, 0x20, 0x06, 0x00, 0x00, //0x00002fe8 jmp LBB1_720 + //0x00002fed LBB1_676 + 0x49, 0xff, 0xc7, //0x00002fed incq %r15 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002ff0 movl $3, %r11d + 0x49, 0x39, 0xdf, //0x00002ff6 cmpq %rbx, %r15 + 0x0f, 0x83, 0xd5, 0xfb, 0xff, 0xff, //0x00002ff9 jae LBB1_610 + //0x00002fff LBB1_677 + 0x41, 0x0f, 0xb6, 0x0f, //0x00002fff movzbl (%r15), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00003003 cmpq $13, %rcx + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00003007 je LBB1_676 + 0x80, 0xf9, 0x0a, //0x0000300d cmpb $10, %cl + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00003010 je LBB1_676 + 0x48, 0x8b, 0x45, 0xc0, //0x00003016 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x0000301a movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc7, //0x0000301e incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00003021 cmpl $255, %eax + 0x0f, 0x85, 0xa0, 0x05, 0x00, 0x00, //0x00003026 jne LBB1_790 + //0x0000302c LBB1_791 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x0000302c movl $3, %r11d + 0xe9, 0x73, 0xfc, 0xff, 0xff, //0x00003032 jmp LBB1_624 + //0x00003037 LBB1_681 + 0x49, 0xff, 0xc7, //0x00003037 incq %r15 + 0x48, 0xff, 0xc1, //0x0000303a incq %rcx + 0x48, 0xff, 0xcb, //0x0000303d decq %rbx + 0x48, 0xff, 0xc2, //0x00003040 incq %rdx + 0x48, 0xff, 0xcf, //0x00003043 decq %rdi + 0x4c, 0x39, 0x7d, 0xd0, //0x00003046 cmpq %r15, $-48(%rbp) + 0x0f, 0x84, 0xb9, 0x05, 0x00, 0x00, //0x0000304a je LBB1_717 + //0x00003050 LBB1_682 + 0x41, 0x0f, 0xb6, 0x07, //0x00003050 movzbl (%r15), %eax + 0x3c, 0x0a, //0x00003054 cmpb $10, %al + 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00003056 je LBB1_681 + 0x3c, 0x0d, //0x0000305c cmpb $13, %al + 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x0000305e je LBB1_681 + 0x3c, 0x3d, //0x00003064 cmpb $61, %al + 0x0f, 0x85, 0xf9, 0x01, 0x00, 0x00, //0x00003066 jne LBB1_728 + 0x49, 0xff, 0xc7, //0x0000306c incq %r15 + 0x41, 0x83, 0xfa, 0x03, //0x0000306f cmpl $3, %r10d + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x00003073 je LBB1_696 + 0x4c, 0x39, 0x7d, 0xd0, //0x00003079 cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0xe7, 0x04, 0x00, 0x00, //0x0000307d ja LBB1_780 + 0xe9, 0x85, 0x05, 0x00, 0x00, //0x00003083 jmp LBB1_720 + //0x00003088 LBB1_688 + 0x3c, 0x2f, //0x00003088 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x0000308a jne LBB1_690 + 0x89, 0xc1, //0x00003090 movl %eax, %ecx + //0x00003092 LBB1_690 + 0x4d, 0x89, 0xc7, //0x00003092 movq %r8, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00003095 movq $-48(%rbp), %rbx + //0x00003099 LBB1_691 + 0x0f, 0xb6, 0xc1, //0x00003099 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x0000309c movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x000030a0 movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x000030a4 cmpl $255, %eax + 0x0f, 0x84, 0x70, 0x00, 0x00, 0x00, //0x000030a9 je LBB1_716 + 0x8b, 0x4d, 0xc8, //0x000030af movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x000030b2 shll $6, %ecx + 0x09, 0xc1, //0x000030b5 orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x000030b7 movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000030ba movl $2, %r11d + 0x49, 0x39, 0xdf, //0x000030c0 cmpq %rbx, %r15 + 0x0f, 0x82, 0x7e, 0x00, 0x00, 0x00, //0x000030c3 jb LBB1_701 + //0x000030c9 LBB1_693 + 0x45, 0x85, 0xe4, //0x000030c9 testl %r12d, %r12d + 0x0f, 0x94, 0xc0, //0x000030cc sete %al + 0x41, 0x83, 0xfb, 0x01, //0x000030cf cmpl $1, %r11d + 0x0f, 0x94, 0xc1, //0x000030d3 sete %cl + 0x49, 0x39, 0xdf, //0x000030d6 cmpq %rbx, %r15 + 0x0f, 0x82, 0x2e, 0x05, 0x00, 0x00, //0x000030d9 jb LBB1_720 + 0x41, 0x83, 0xfb, 0x04, //0x000030df cmpl $4, %r11d + 0x0f, 0x84, 0x24, 0x05, 0x00, 0x00, //0x000030e3 je LBB1_720 + 0x08, 0xc8, //0x000030e9 orb %cl, %al + 0x0f, 0x84, 0x1c, 0x05, 0x00, 0x00, //0x000030eb je LBB1_720 + //0x000030f1 LBB1_696 + 0x49, 0x8d, 0x4f, 0x01, //0x000030f1 leaq $1(%r15), %rcx + 0x4c, 0x39, 0x7d, 0xd0, //0x000030f5 cmpq %r15, $-48(%rbp) + 0x49, 0x0f, 0x45, 0xcf, //0x000030f9 cmovneq %r15, %rcx + 0x4c, 0x29, 0xc9, //0x000030fd subq %r9, %rcx + 0x0f, 0x85, 0x9a, 0x18, 0x00, 0x00, //0x00003100 jne LBB1_1137 + 0x4d, 0x89, 0xcf, //0x00003106 movq %r9, %r15 + 0x48, 0x8b, 0x55, 0xb0, //0x00003109 movq $-80(%rbp), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x0000310d movq %rdx, $-80(%rbp) + 0x49, 0x39, 0xd6, //0x00003111 cmpq %rdx, %r14 + 0x0f, 0x83, 0x55, 0xf8, 0xff, 0xff, //0x00003114 jae LBB1_727 + 0xe9, 0x0b, 0x08, 0x00, 0x00, //0x0000311a jmp LBB1_852 + //0x0000311f LBB1_716 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000311f movl $1, %r11d + 0xe9, 0x80, 0xfb, 0xff, 0xff, //0x00003125 jmp LBB1_624 + //0x0000312a LBB1_698 + 0x3c, 0x6e, //0x0000312a cmpb $110, %al + 0x0f, 0x85, 0x41, 0x01, 0x00, 0x00, //0x0000312c jne LBB1_734 + //0x00003132 LBB1_699 + 0x48, 0x89, 0xd7, //0x00003132 movq %rdx, %rdi + //0x00003135 LBB1_700 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00003135 movl $2, %r11d + 0x49, 0x89, 0xff, //0x0000313b movq %rdi, %r15 + 0x48, 0x39, 0xdf, //0x0000313e cmpq %rbx, %rdi + 0x0f, 0x83, 0x16, 0x01, 0x00, 0x00, //0x00003141 jae LBB1_718 + //0x00003147 LBB1_701 + 0x49, 0x8d, 0x7f, 0x01, //0x00003147 leaq $1(%r15), %rdi + 0x41, 0x0f, 0xb6, 0x0f, //0x0000314b movzbl (%r15), %ecx + 0x80, 0xf9, 0x5c, //0x0000314f cmpb $92, %cl + 0x0f, 0x85, 0xee, 0x00, 0x00, 0x00, //0x00003152 jne LBB1_714 + 0x49, 0x8d, 0x57, 0x02, //0x00003158 leaq $2(%r15), %rdx + 0xb1, 0xff, //0x0000315c movb $-1, %cl + 0x48, 0x39, 0xda, //0x0000315e cmpq %rbx, %rdx + 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x00003161 ja LBB1_737 + 0x0f, 0xb6, 0x07, //0x00003167 movzbl (%rdi), %eax + 0x3c, 0x71, //0x0000316a cmpb $113, %al + 0x0f, 0x8e, 0xb8, 0xff, 0xff, 0xff, //0x0000316c jle LBB1_698 + 0x3c, 0x72, //0x00003172 cmpb $114, %al + 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x00003174 je LBB1_699 + 0x3c, 0x75, //0x0000317a cmpb $117, %al + 0x0f, 0x85, 0xfb, 0x00, 0x00, 0x00, //0x0000317c jne LBB1_736 + 0x48, 0x89, 0xd8, //0x00003182 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00003185 subq %rdx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00003188 cmpq $4, %rax + 0x0f, 0x8c, 0xeb, 0x00, 0x00, 0x00, //0x0000318c jl LBB1_736 + 0x8b, 0x02, //0x00003192 movl (%rdx), %eax + 0x89, 0xc6, //0x00003194 movl %eax, %esi + 0xf7, 0xd6, //0x00003196 notl %esi + 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003198 leal $-808464432(%rax), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000319e andl $-2139062144, %esi + 0x85, 0xfe, //0x000031a4 testl %edi, %esi + 0x0f, 0x85, 0xd1, 0x00, 0x00, 0x00, //0x000031a6 jne LBB1_736 + 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x000031ac leal $421075225(%rax), %edi + 0x09, 0xc7, //0x000031b2 orl %eax, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x000031b4 testl $-2139062144, %edi + 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x000031ba jne LBB1_736 + 0x89, 0xc7, //0x000031c0 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x000031c2 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000031c8 movl $-1061109568, %ebx + 0x29, 0xfb, //0x000031cd subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000031cf leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x000031d6 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x000031d8 testl %r8d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x000031db movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x98, 0x00, 0x00, 0x00, //0x000031df jne LBB1_736 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000031e5 movl $-522133280, %ebx + 0x29, 0xfb, //0x000031ea subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x000031ec addl $960051513, %edi + 0x21, 0xde, //0x000031f2 andl %ebx, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x000031f4 movq $-48(%rbp), %rbx + 0x85, 0xfe, //0x000031f8 testl %edi, %esi + 0x0f, 0x85, 0x7d, 0x00, 0x00, 0x00, //0x000031fa jne LBB1_736 + 0x0f, 0xc8, //0x00003200 bswapl %eax + 0x89, 0xc1, //0x00003202 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00003204 shrl $4, %ecx + 0xf7, 0xd1, //0x00003207 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00003209 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000320f leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003212 andl $252645135, %eax + 0x01, 0xc8, //0x00003217 addl %ecx, %eax + 0x89, 0xc1, //0x00003219 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x0000321b shrl $4, %ecx + 0x09, 0xc1, //0x0000321e orl %eax, %ecx + 0x89, 0xc8, //0x00003220 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00003222 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00003225 andl $65280, %eax + 0x89, 0xca, //0x0000322a movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000322c andl $128, %edx + 0x09, 0xc2, //0x00003232 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003234 je LBB1_713 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x0000323a movl $255, %ecx + //0x0000323f LBB1_713 + 0x49, 0x83, 0xc7, 0x06, //0x0000323f addq $6, %r15 + 0x4c, 0x89, 0xff, //0x00003243 movq %r15, %rdi + //0x00003246 LBB1_714 + 0x80, 0xf9, 0x0a, //0x00003246 cmpb $10, %cl + 0x0f, 0x84, 0xe6, 0xfe, 0xff, 0xff, //0x00003249 je LBB1_700 + 0x80, 0xf9, 0x0d, //0x0000324f cmpb $13, %cl + 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x00003252 je LBB1_700 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00003258 jmp LBB1_737 + //0x0000325d LBB1_718 + 0x49, 0x89, 0xff, //0x0000325d movq %rdi, %r15 + 0xe9, 0x6f, 0xf9, 0xff, 0xff, //0x00003260 jmp LBB1_610 + //0x00003265 LBB1_728 + 0x49, 0xff, 0xc7, //0x00003265 incq %r15 + 0x4c, 0x89, 0xfa, //0x00003268 movq %r15, %rdx + //0x0000326b LBB1_729 + 0x49, 0x89, 0xd7, //0x0000326b movq %rdx, %r15 + 0xe9, 0x7e, 0xfe, 0xff, 0xff, //0x0000326e jmp LBB1_696 + //0x00003273 LBB1_734 + 0x3c, 0x2f, //0x00003273 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00003275 jne LBB1_736 + 0x89, 0xc1, //0x0000327b movl %eax, %ecx + //0x0000327d LBB1_736 + 0x48, 0x89, 0xd7, //0x0000327d movq %rdx, %rdi + //0x00003280 LBB1_737 + 0x0f, 0xb6, 0xc1, //0x00003280 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00003283 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x00003287 movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x0000328b cmpl $255, %eax + 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00003290 je LBB1_758 + 0x8b, 0x4d, 0xc8, //0x00003296 movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00003299 shll $6, %ecx + 0x09, 0xc1, //0x0000329c orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x0000329e movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000032a1 movl $3, %r11d + 0x48, 0x39, 0xdf, //0x000032a7 cmpq %rbx, %rdi + 0x0f, 0x82, 0x25, 0x00, 0x00, 0x00, //0x000032aa jb LBB1_743 + 0x49, 0x89, 0xff, //0x000032b0 movq %rdi, %r15 + 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x000032b3 jmp LBB1_693 + //0x000032b8 LBB1_740 + 0x3c, 0x6e, //0x000032b8 cmpb $110, %al + 0x0f, 0x85, 0xe5, 0x02, 0x00, 0x00, //0x000032ba jne LBB1_786 + //0x000032c0 LBB1_741 + 0x4d, 0x89, 0xc7, //0x000032c0 movq %r8, %r15 + //0x000032c3 LBB1_742 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000032c3 movl $3, %r11d + 0x4c, 0x89, 0xff, //0x000032c9 movq %r15, %rdi + 0x49, 0x39, 0xdf, //0x000032cc cmpq %rbx, %r15 + 0x0f, 0x83, 0xff, 0xf8, 0xff, 0xff, //0x000032cf jae LBB1_610 + //0x000032d5 LBB1_743 + 0x4c, 0x8d, 0x7f, 0x01, //0x000032d5 leaq $1(%rdi), %r15 + 0x0f, 0xb6, 0x0f, //0x000032d9 movzbl (%rdi), %ecx + 0x80, 0xf9, 0x5c, //0x000032dc cmpb $92, %cl + 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x000032df jne LBB1_756 + 0x4c, 0x8d, 0x47, 0x02, //0x000032e5 leaq $2(%rdi), %r8 + 0xb1, 0xff, //0x000032e9 movb $-1, %cl + 0x49, 0x39, 0xd8, //0x000032eb cmpq %rbx, %r8 + 0x0f, 0x87, 0xc2, 0x02, 0x00, 0x00, //0x000032ee ja LBB1_789 + 0x41, 0x0f, 0xb6, 0x07, //0x000032f4 movzbl (%r15), %eax + 0x3c, 0x71, //0x000032f8 cmpb $113, %al + 0x0f, 0x8e, 0xb8, 0xff, 0xff, 0xff, //0x000032fa jle LBB1_740 + 0x3c, 0x72, //0x00003300 cmpb $114, %al + 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x00003302 je LBB1_741 + 0x3c, 0x75, //0x00003308 cmpb $117, %al + 0x0f, 0x85, 0x9f, 0x02, 0x00, 0x00, //0x0000330a jne LBB1_788 + 0x48, 0x8b, 0x45, 0xd0, //0x00003310 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xc0, //0x00003314 subq %r8, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00003317 cmpq $4, %rax + 0x0f, 0x8c, 0x8e, 0x02, 0x00, 0x00, //0x0000331b jl LBB1_788 + 0x41, 0x8b, 0x18, //0x00003321 movl (%r8), %ebx + 0x89, 0xde, //0x00003324 movl %ebx, %esi + 0xf7, 0xd6, //0x00003326 notl %esi + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003328 leal $-808464432(%rbx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000332e andl $-2139062144, %esi + 0x85, 0xc6, //0x00003334 testl %eax, %esi + 0x0f, 0x85, 0x73, 0x02, 0x00, 0x00, //0x00003336 jne LBB1_788 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x0000333c leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00003342 orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00003344 testl $-2139062144, %eax + 0x0f, 0x85, 0x60, 0x02, 0x00, 0x00, //0x00003349 jne LBB1_788 + 0x89, 0xd8, //0x0000334f movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003351 andl $2139062143, %eax + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003356 movl $-1061109568, %edx + 0x29, 0xc2, //0x0000335b subl %eax, %edx + 0x44, 0x8d, 0x90, 0x46, 0x46, 0x46, 0x46, //0x0000335d leal $1179010630(%rax), %r10d + 0x21, 0xf2, //0x00003364 andl %esi, %edx + 0x44, 0x85, 0xd2, //0x00003366 testl %r10d, %edx + 0x0f, 0x85, 0x40, 0x02, 0x00, 0x00, //0x00003369 jne LBB1_788 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000336f movl $-522133280, %edx + 0x29, 0xc2, //0x00003374 subl %eax, %edx + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00003376 addl $960051513, %eax + 0x21, 0xd6, //0x0000337b andl %edx, %esi + 0x85, 0xc6, //0x0000337d testl %eax, %esi + 0x0f, 0x85, 0x2a, 0x02, 0x00, 0x00, //0x0000337f jne LBB1_788 + 0x0f, 0xcb, //0x00003385 bswapl %ebx + 0x89, 0xd8, //0x00003387 movl %ebx, %eax + 0xc1, 0xe8, 0x04, //0x00003389 shrl $4, %eax + 0xf7, 0xd0, //0x0000338c notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000338e andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00003393 leal (%rax,%rax,8), %eax + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003396 andl $252645135, %ebx + 0x01, 0xc3, //0x0000339c addl %eax, %ebx + 0x89, 0xd9, //0x0000339e movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x000033a0 shrl $4, %ecx + 0x09, 0xd9, //0x000033a3 orl %ebx, %ecx + 0x89, 0xc8, //0x000033a5 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000033a7 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000033aa andl $65280, %eax + 0x89, 0xca, //0x000033af movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000033b1 andl $128, %edx + 0x09, 0xc2, //0x000033b7 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000033b9 je LBB1_755 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000033bf movl $255, %ecx + //0x000033c4 LBB1_755 + 0x48, 0x83, 0xc7, 0x06, //0x000033c4 addq $6, %rdi + 0x49, 0x89, 0xff, //0x000033c8 movq %rdi, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x000033cb movq $-48(%rbp), %rbx + //0x000033cf LBB1_756 + 0x80, 0xf9, 0x0a, //0x000033cf cmpb $10, %cl + 0x0f, 0x84, 0xeb, 0xfe, 0xff, 0xff, //0x000033d2 je LBB1_742 + 0x80, 0xf9, 0x0d, //0x000033d8 cmpb $13, %cl + 0x0f, 0x84, 0xe2, 0xfe, 0xff, 0xff, //0x000033db je LBB1_742 + 0xe9, 0xd0, 0x01, 0x00, 0x00, //0x000033e1 jmp LBB1_789 + //0x000033e6 LBB1_758 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000033e6 movl $2, %r11d + 0x49, 0x89, 0xff, //0x000033ec movq %rdi, %r15 + 0xe9, 0xb6, 0xf8, 0xff, 0xff, //0x000033ef jmp LBB1_624 + //0x000033f4 LBB1_778 + 0x4c, 0x89, 0xf9, //0x000033f4 movq %r15, %rcx + 0x48, 0x89, 0xc8, //0x000033f7 movq %rcx, %rax + 0x48, 0x39, 0xf1, //0x000033fa cmpq %rsi, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000033fd jb LBB1_762 + 0xe9, 0x05, 0x02, 0x00, 0x00, //0x00003403 jmp LBB1_720 + //0x00003408 LBB1_760 + 0x49, 0x89, 0xcf, //0x00003408 movq %rcx, %r15 + 0x48, 0x89, 0xc8, //0x0000340b movq %rcx, %rax + 0x48, 0x39, 0xf1, //0x0000340e cmpq %rsi, %rcx + 0x0f, 0x83, 0xf6, 0x01, 0x00, 0x00, //0x00003411 jae LBB1_720 + //0x00003417 LBB1_762 + 0x4c, 0x8d, 0x78, 0x01, //0x00003417 leaq $1(%rax), %r15 + 0x0f, 0xb6, 0x08, //0x0000341b movzbl (%rax), %ecx + 0x80, 0xf9, 0x5c, //0x0000341e cmpb $92, %cl + 0x0f, 0x85, 0xee, 0x00, 0x00, 0x00, //0x00003421 jne LBB1_775 + 0x48, 0x8d, 0x48, 0x02, //0x00003427 leaq $2(%rax), %rcx + 0x48, 0x39, 0xf1, //0x0000342b cmpq %rsi, %rcx + 0x0f, 0x87, 0xdb, 0x04, 0x00, 0x00, //0x0000342e ja LBB1_848 + 0x41, 0x0f, 0xb6, 0x17, //0x00003434 movzbl (%r15), %edx + 0x80, 0xfa, 0x6e, //0x00003438 cmpb $110, %dl + 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x0000343b je LBB1_760 + 0x80, 0xfa, 0x72, //0x00003441 cmpb $114, %dl + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00003444 je LBB1_760 + 0x80, 0xfa, 0x75, //0x0000344a cmpb $117, %dl + 0x0f, 0x85, 0xb4, 0x04, 0x00, 0x00, //0x0000344d jne LBB1_847 + 0x48, 0x89, 0xf2, //0x00003453 movq %rsi, %rdx + 0x48, 0x29, 0xca, //0x00003456 subq %rcx, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00003459 cmpq $4, %rdx + 0x0f, 0x8c, 0xa4, 0x04, 0x00, 0x00, //0x0000345d jl LBB1_847 + 0x8b, 0x11, //0x00003463 movl (%rcx), %edx + 0x89, 0xd6, //0x00003465 movl %edx, %esi + 0xf7, 0xd6, //0x00003467 notl %esi + 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003469 leal $-808464432(%rdx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000346f andl $-2139062144, %esi + 0x85, 0xfe, //0x00003475 testl %edi, %esi + 0x0f, 0x85, 0x8a, 0x04, 0x00, 0x00, //0x00003477 jne LBB1_847 + 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x0000347d leal $421075225(%rdx), %edi + 0x09, 0xd7, //0x00003483 orl %edx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00003485 testl $-2139062144, %edi + 0x0f, 0x85, 0x76, 0x04, 0x00, 0x00, //0x0000348b jne LBB1_847 + 0x89, 0xd7, //0x00003491 movl %edx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003493 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003499 movl $-1061109568, %ebx + 0x29, 0xfb, //0x0000349e subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000034a0 leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x000034a7 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x000034a9 testl %r8d, %ebx + 0x0f, 0x85, 0x55, 0x04, 0x00, 0x00, //0x000034ac jne LBB1_847 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000034b2 movl $-522133280, %ebx + 0x29, 0xfb, //0x000034b7 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x000034b9 addl $960051513, %edi + 0x21, 0xde, //0x000034bf andl %ebx, %esi + 0x85, 0xfe, //0x000034c1 testl %edi, %esi + 0x0f, 0x85, 0x3e, 0x04, 0x00, 0x00, //0x000034c3 jne LBB1_847 + 0x0f, 0xca, //0x000034c9 bswapl %edx + 0x89, 0xd1, //0x000034cb movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000034cd shrl $4, %ecx + 0xf7, 0xd1, //0x000034d0 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000034d2 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000034d8 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000034db andl $252645135, %edx + 0x01, 0xca, //0x000034e1 addl %ecx, %edx + 0x89, 0xd1, //0x000034e3 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000034e5 shrl $4, %ecx + 0x09, 0xd1, //0x000034e8 orl %edx, %ecx + 0x89, 0xca, //0x000034ea movl %ecx, %edx + 0xc1, 0xea, 0x08, //0x000034ec shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x000034ef andl $65280, %edx + 0x89, 0xce, //0x000034f5 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x000034f7 andl $128, %esi + 0x09, 0xd6, //0x000034fd orl %edx, %esi + 0x48, 0x8b, 0x75, 0xd0, //0x000034ff movq $-48(%rbp), %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003503 je LBB1_774 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00003509 movl $255, %ecx + //0x0000350e LBB1_774 + 0x48, 0x83, 0xc0, 0x06, //0x0000350e addq $6, %rax + 0x49, 0x89, 0xc7, //0x00003512 movq %rax, %r15 + //0x00003515 LBB1_775 + 0x80, 0xf9, 0x0a, //0x00003515 cmpb $10, %cl + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00003518 je LBB1_778 + 0x80, 0xf9, 0x0d, //0x0000351e cmpb $13, %cl + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x00003521 je LBB1_778 + 0x80, 0xf9, 0x3d, //0x00003527 cmpb $61, %cl + 0x0f, 0x85, 0xc1, 0xfb, 0xff, 0xff, //0x0000352a jne LBB1_696 + 0x41, 0x83, 0xfa, 0x03, //0x00003530 cmpl $3, %r10d + 0x0f, 0x84, 0xb7, 0xfb, 0xff, 0xff, //0x00003534 je LBB1_696 + 0x4c, 0x39, 0x7d, 0xd0, //0x0000353a cmpq %r15, $-48(%rbp) + 0x0f, 0x86, 0xc9, 0x00, 0x00, 0x00, //0x0000353e jbe LBB1_720 + 0x48, 0x8b, 0x55, 0xd0, //0x00003544 movq $-48(%rbp), %rdx + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00003548 jmp LBB1_803 + //0x0000354d LBB1_759 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000354d movl $2, %r11d + 0xe9, 0x52, 0xf7, 0xff, 0xff, //0x00003553 jmp LBB1_624 + //0x00003558 LBB1_779 + 0x48, 0xff, 0xc1, //0x00003558 incq %rcx + 0x48, 0xff, 0xc2, //0x0000355b incq %rdx + 0x48, 0xff, 0xcf, //0x0000355e decq %rdi + 0x48, 0xff, 0xcb, //0x00003561 decq %rbx + 0x0f, 0x84, 0x9f, 0x00, 0x00, 0x00, //0x00003564 je LBB1_717 + //0x0000356a LBB1_780 + 0x0f, 0xb6, 0x41, 0xff, //0x0000356a movzbl $-1(%rcx), %eax + 0x3c, 0x0a, //0x0000356e cmpb $10, %al + 0x0f, 0x84, 0xe2, 0xff, 0xff, 0xff, //0x00003570 je LBB1_779 + 0x3c, 0x0d, //0x00003576 cmpb $13, %al + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00003578 je LBB1_779 + 0x3c, 0x3d, //0x0000357e cmpb $61, %al + 0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x00003580 jne LBB1_821 + 0x49, 0x89, 0xcf, //0x00003586 movq %rcx, %r15 + 0x41, 0x83, 0xfa, 0x04, //0x00003589 cmpl $4, %r10d + 0x0f, 0x84, 0x5e, 0xfb, 0xff, 0xff, //0x0000358d je LBB1_696 + 0x48, 0x39, 0x4d, 0xd0, //0x00003593 cmpq %rcx, $-48(%rbp) + 0x0f, 0x87, 0x51, 0x00, 0x00, 0x00, //0x00003597 ja LBB1_798 + 0x49, 0x89, 0xcf, //0x0000359d movq %rcx, %r15 + 0xe9, 0x68, 0x00, 0x00, 0x00, //0x000035a0 jmp LBB1_720 + //0x000035a5 LBB1_786 + 0x3c, 0x2f, //0x000035a5 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000035a7 jne LBB1_788 + 0x89, 0xc1, //0x000035ad movl %eax, %ecx + //0x000035af LBB1_788 + 0x4d, 0x89, 0xc7, //0x000035af movq %r8, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x000035b2 movq $-48(%rbp), %rbx + //0x000035b6 LBB1_789 + 0x0f, 0xb6, 0xc1, //0x000035b6 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x000035b9 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x000035bd movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x000035c1 cmpl $255, %eax + 0x0f, 0x84, 0x60, 0xfa, 0xff, 0xff, //0x000035c6 je LBB1_791 + //0x000035cc LBB1_790 + 0x8b, 0x4d, 0xc8, //0x000035cc movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x000035cf shll $6, %ecx + 0x09, 0xc1, //0x000035d2 orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x000035d4 movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000035d7 movl $4, %r11d + 0xe9, 0xe7, 0xfa, 0xff, 0xff, //0x000035dd jmp LBB1_693 + //0x000035e2 LBB1_797 + 0x48, 0xff, 0xc2, //0x000035e2 incq %rdx + 0x48, 0xff, 0xcf, //0x000035e5 decq %rdi + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000035e8 je LBB1_717 + //0x000035ee LBB1_798 + 0x0f, 0xb6, 0x42, 0xff, //0x000035ee movzbl $-1(%rdx), %eax + 0x3c, 0x0a, //0x000035f2 cmpb $10, %al + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x000035f4 je LBB1_797 + 0x3c, 0x0d, //0x000035fa cmpb $13, %al + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x000035fc je LBB1_797 + 0x3c, 0x3d, //0x00003602 cmpb $61, %al + 0xe9, 0x62, 0xfc, 0xff, 0xff, //0x00003604 jmp LBB1_729 + //0x00003609 LBB1_717 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00003609 movq $-48(%rbp), %r15 + //0x0000360d LBB1_720 + 0xb0, 0x04, //0x0000360d movb $4, %al + 0x44, 0x28, 0xd8, //0x0000360f subb %r11b, %al + 0x0f, 0xb6, 0xc0, //0x00003612 movzbl %al, %eax + 0x01, 0xc0, //0x00003615 addl %eax, %eax + 0x8d, 0x0c, 0x40, //0x00003617 leal (%rax,%rax,2), %ecx + 0x8b, 0x45, 0xc8, //0x0000361a movl $-56(%rbp), %eax + 0xd3, 0xe0, //0x0000361d shll %cl, %eax + 0x41, 0x83, 0xfb, 0x02, //0x0000361f cmpl $2, %r11d + 0x48, 0x8b, 0x55, 0xb0, //0x00003623 movq $-80(%rbp), %rdx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003627 je LBB1_725 + 0x41, 0x83, 0xfb, 0x03, //0x0000362d cmpl $3, %r11d + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00003631 je LBB1_724 + 0x41, 0x83, 0xfb, 0x04, //0x00003637 cmpl $4, %r11d + 0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x0000363b jne LBB1_726 + 0x88, 0x42, 0x02, //0x00003641 movb %al, $2(%rdx) + //0x00003644 LBB1_724 + 0x88, 0x62, 0x01, //0x00003644 movb %ah, $1(%rdx) + //0x00003647 LBB1_725 + 0xc1, 0xe8, 0x10, //0x00003647 shrl $16, %eax + 0x88, 0x02, //0x0000364a movb %al, (%rdx) + //0x0000364c LBB1_726 + 0x44, 0x89, 0xd8, //0x0000364c movl %r11d, %eax + 0x48, 0x8d, 0x54, 0x02, 0xff, //0x0000364f leaq $-1(%rdx,%rax), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00003654 movq %rdx, $-80(%rbp) + 0x49, 0x39, 0xd6, //0x00003658 cmpq %rdx, %r14 + 0x0f, 0x83, 0x0e, 0xf3, 0xff, 0xff, //0x0000365b jae LBB1_727 + 0xe9, 0xc4, 0x02, 0x00, 0x00, //0x00003661 jmp LBB1_852 + //0x00003666 LBB1_802 + 0x48, 0x89, 0xc1, //0x00003666 movq %rax, %rcx + 0x48, 0x8b, 0x55, 0xd0, //0x00003669 movq $-48(%rbp), %rdx + 0x49, 0x89, 0xcf, //0x0000366d movq %rcx, %r15 + 0x48, 0x39, 0xd1, //0x00003670 cmpq %rdx, %rcx + 0x0f, 0x83, 0x6c, 0xf9, 0xff, 0xff, //0x00003673 jae LBB1_719 + //0x00003679 LBB1_803 + 0x49, 0x8d, 0x47, 0x01, //0x00003679 leaq $1(%r15), %rax + 0x41, 0x0f, 0xb6, 0x0f, //0x0000367d movzbl (%r15), %ecx + 0x80, 0xf9, 0x5c, //0x00003681 cmpb $92, %cl + 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x00003684 jne LBB1_816 + 0x49, 0x8d, 0x4f, 0x02, //0x0000368a leaq $2(%r15), %rcx + 0x48, 0x39, 0xd1, //0x0000368e cmpq %rdx, %rcx + 0x0f, 0x87, 0x7b, 0x02, 0x00, 0x00, //0x00003691 ja LBB1_827 + 0x0f, 0xb6, 0x00, //0x00003697 movzbl (%rax), %eax + 0x3c, 0x6e, //0x0000369a cmpb $110, %al + 0x0f, 0x84, 0xe2, 0x00, 0x00, 0x00, //0x0000369c je LBB1_818 + 0x3c, 0x72, //0x000036a2 cmpb $114, %al + 0x0f, 0x84, 0xda, 0x00, 0x00, 0x00, //0x000036a4 je LBB1_818 + 0x3c, 0x75, //0x000036aa cmpb $117, %al + 0x0f, 0x85, 0x55, 0x02, 0x00, 0x00, //0x000036ac jne LBB1_847 + 0x48, 0x8b, 0x45, 0xd0, //0x000036b2 movq $-48(%rbp), %rax + 0x48, 0x29, 0xc8, //0x000036b6 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000036b9 cmpq $4, %rax + 0x0f, 0x8c, 0x44, 0x02, 0x00, 0x00, //0x000036bd jl LBB1_847 + 0x8b, 0x01, //0x000036c3 movl (%rcx), %eax + 0x89, 0xc2, //0x000036c5 movl %eax, %edx + 0xf7, 0xd2, //0x000036c7 notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x000036c9 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000036cf andl $-2139062144, %edx + 0x85, 0xf2, //0x000036d5 testl %esi, %edx + 0x0f, 0x85, 0x2a, 0x02, 0x00, 0x00, //0x000036d7 jne LBB1_847 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x000036dd leal $421075225(%rax), %esi + 0x09, 0xc6, //0x000036e3 orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x000036e5 testl $-2139062144, %esi + 0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x000036eb jne LBB1_847 + 0x89, 0xc6, //0x000036f1 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000036f3 andl $2139062143, %esi + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x000036f9 movl $-1061109568, %edi + 0x29, 0xf7, //0x000036fe subl %esi, %edi + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00003700 leal $1179010630(%rsi), %ebx + 0x21, 0xd7, //0x00003706 andl %edx, %edi + 0x85, 0xdf, //0x00003708 testl %ebx, %edi + 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x0000370a jne LBB1_847 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003710 movl $-522133280, %edi + 0x29, 0xf7, //0x00003715 subl %esi, %edi + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00003717 addl $960051513, %esi + 0x21, 0xfa, //0x0000371d andl %edi, %edx + 0x85, 0xf2, //0x0000371f testl %esi, %edx + 0x0f, 0x85, 0xe0, 0x01, 0x00, 0x00, //0x00003721 jne LBB1_847 + 0x0f, 0xc8, //0x00003727 bswapl %eax + 0x89, 0xc1, //0x00003729 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x0000372b shrl $4, %ecx + 0xf7, 0xd1, //0x0000372e notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00003730 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00003736 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003739 andl $252645135, %eax + 0x01, 0xc8, //0x0000373e addl %ecx, %eax + 0x89, 0xc1, //0x00003740 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00003742 shrl $4, %ecx + 0x09, 0xc1, //0x00003745 orl %eax, %ecx + 0x89, 0xc8, //0x00003747 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00003749 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000374c andl $65280, %eax + 0x89, 0xca, //0x00003751 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00003753 andl $128, %edx + 0x09, 0xc2, //0x00003759 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000375b je LBB1_815 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00003761 movl $255, %ecx + //0x00003766 LBB1_815 + 0x49, 0x83, 0xc7, 0x06, //0x00003766 addq $6, %r15 + 0x4c, 0x89, 0xf8, //0x0000376a movq %r15, %rax + //0x0000376d LBB1_816 + 0x80, 0xf9, 0x0a, //0x0000376d cmpb $10, %cl + 0x0f, 0x84, 0xf0, 0xfe, 0xff, 0xff, //0x00003770 je LBB1_802 + 0x80, 0xf9, 0x0d, //0x00003776 cmpb $13, %cl + 0x0f, 0x84, 0xe7, 0xfe, 0xff, 0xff, //0x00003779 je LBB1_802 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x0000377f jmp LBB1_823 + //0x00003784 LBB1_818 + 0x48, 0x89, 0xc8, //0x00003784 movq %rcx, %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00003787 movq $-48(%rbp), %rdx + 0x49, 0x89, 0xcf, //0x0000378b movq %rcx, %r15 + 0x48, 0x39, 0xd1, //0x0000378e cmpq %rdx, %rcx + 0x0f, 0x82, 0xe2, 0xfe, 0xff, 0xff, //0x00003791 jb LBB1_803 + 0xe9, 0x49, 0xf8, 0xff, 0xff, //0x00003797 jmp LBB1_719 + //0x0000379c LBB1_821 + 0x48, 0x89, 0xca, //0x0000379c movq %rcx, %rdx + 0x49, 0x89, 0xcf, //0x0000379f movq %rcx, %r15 + 0xe9, 0x4a, 0xf9, 0xff, 0xff, //0x000037a2 jmp LBB1_696 + //0x000037a7 LBB1_823 + 0x80, 0xf9, 0x3d, //0x000037a7 cmpb $61, %cl + 0x0f, 0x85, 0x62, 0x01, 0x00, 0x00, //0x000037aa jne LBB1_827 + 0x49, 0x89, 0xc7, //0x000037b0 movq %rax, %r15 + 0x41, 0x83, 0xfa, 0x04, //0x000037b3 cmpl $4, %r10d + 0x0f, 0x84, 0x34, 0xf9, 0xff, 0xff, //0x000037b7 je LBB1_696 + 0x48, 0x39, 0x45, 0xd0, //0x000037bd cmpq %rax, $-48(%rbp) + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x000037c1 ja LBB1_830 + 0xe9, 0x19, 0xf8, 0xff, 0xff, //0x000037c7 jmp LBB1_719 + //0x000037cc LBB1_846 + 0x4c, 0x89, 0xf9, //0x000037cc movq %r15, %rcx + 0x48, 0x89, 0xc8, //0x000037cf movq %rcx, %rax + 0x48, 0x3b, 0x4d, 0xd0, //0x000037d2 cmpq $-48(%rbp), %rcx + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x000037d6 jb LBB1_830 + 0xe9, 0x2c, 0xfe, 0xff, 0xff, //0x000037dc jmp LBB1_720 + //0x000037e1 LBB1_828 + 0x49, 0x89, 0xcf, //0x000037e1 movq %rcx, %r15 + 0x48, 0x89, 0xc8, //0x000037e4 movq %rcx, %rax + 0x48, 0x3b, 0x4d, 0xd0, //0x000037e7 cmpq $-48(%rbp), %rcx + 0x0f, 0x83, 0x1c, 0xfe, 0xff, 0xff, //0x000037eb jae LBB1_720 + //0x000037f1 LBB1_830 + 0x4c, 0x8d, 0x78, 0x01, //0x000037f1 leaq $1(%rax), %r15 + 0x0f, 0xb6, 0x08, //0x000037f5 movzbl (%rax), %ecx + 0x80, 0xf9, 0x5c, //0x000037f8 cmpb $92, %cl + 0x0f, 0x85, 0xec, 0x00, 0x00, 0x00, //0x000037fb jne LBB1_843 + 0x48, 0x8d, 0x48, 0x02, //0x00003801 leaq $2(%rax), %rcx + 0x48, 0x3b, 0x4d, 0xd0, //0x00003805 cmpq $-48(%rbp), %rcx + 0x0f, 0x87, 0x00, 0x01, 0x00, 0x00, //0x00003809 ja LBB1_848 + 0x41, 0x0f, 0xb6, 0x17, //0x0000380f movzbl (%r15), %edx + 0x80, 0xfa, 0x6e, //0x00003813 cmpb $110, %dl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00003816 je LBB1_828 + 0x80, 0xfa, 0x72, //0x0000381c cmpb $114, %dl + 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000381f je LBB1_828 + 0x80, 0xfa, 0x75, //0x00003825 cmpb $117, %dl + 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00003828 jne LBB1_847 + 0x48, 0x8b, 0x55, 0xd0, //0x0000382e movq $-48(%rbp), %rdx + 0x48, 0x29, 0xca, //0x00003832 subq %rcx, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00003835 cmpq $4, %rdx + 0x0f, 0x8c, 0xc8, 0x00, 0x00, 0x00, //0x00003839 jl LBB1_847 + 0x8b, 0x11, //0x0000383f movl (%rcx), %edx + 0x89, 0xd6, //0x00003841 movl %edx, %esi + 0xf7, 0xd6, //0x00003843 notl %esi + 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003845 leal $-808464432(%rdx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000384b andl $-2139062144, %esi + 0x85, 0xfe, //0x00003851 testl %edi, %esi + 0x0f, 0x85, 0xae, 0x00, 0x00, 0x00, //0x00003853 jne LBB1_847 + 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x00003859 leal $421075225(%rdx), %edi + 0x09, 0xd7, //0x0000385f orl %edx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00003861 testl $-2139062144, %edi + 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x00003867 jne LBB1_847 + 0x89, 0xd7, //0x0000386d movl %edx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000386f andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003875 movl $-1061109568, %ebx + 0x29, 0xfb, //0x0000387a subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x0000387c leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x00003883 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x00003885 testl %r8d, %ebx + 0x0f, 0x85, 0x79, 0x00, 0x00, 0x00, //0x00003888 jne LBB1_847 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000388e movl $-522133280, %ebx + 0x29, 0xfb, //0x00003893 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00003895 addl $960051513, %edi + 0x21, 0xde, //0x0000389b andl %ebx, %esi + 0x85, 0xfe, //0x0000389d testl %edi, %esi + 0x0f, 0x85, 0x62, 0x00, 0x00, 0x00, //0x0000389f jne LBB1_847 + 0x0f, 0xca, //0x000038a5 bswapl %edx + 0x89, 0xd1, //0x000038a7 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000038a9 shrl $4, %ecx + 0xf7, 0xd1, //0x000038ac notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000038ae andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000038b4 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000038b7 andl $252645135, %edx + 0x01, 0xca, //0x000038bd addl %ecx, %edx + 0x89, 0xd1, //0x000038bf movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000038c1 shrl $4, %ecx + 0x09, 0xd1, //0x000038c4 orl %edx, %ecx + 0x89, 0xca, //0x000038c6 movl %ecx, %edx + 0xc1, 0xea, 0x08, //0x000038c8 shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x000038cb andl $65280, %edx + 0x89, 0xce, //0x000038d1 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x000038d3 andl $128, %esi + 0x09, 0xd6, //0x000038d9 orl %edx, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000038db je LBB1_842 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000038e1 movl $255, %ecx + //0x000038e6 LBB1_842 + 0x48, 0x83, 0xc0, 0x06, //0x000038e6 addq $6, %rax + 0x49, 0x89, 0xc7, //0x000038ea movq %rax, %r15 + //0x000038ed LBB1_843 + 0x80, 0xf9, 0x0a, //0x000038ed cmpb $10, %cl + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x000038f0 je LBB1_846 + 0x80, 0xf9, 0x0d, //0x000038f6 cmpb $13, %cl + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x000038f9 je LBB1_846 + 0x80, 0xf9, 0x3d, //0x000038ff cmpb $61, %cl + 0xe9, 0xea, 0xf7, 0xff, 0xff, //0x00003902 jmp LBB1_696 + //0x00003907 LBB1_847 + 0x49, 0x89, 0xcf, //0x00003907 movq %rcx, %r15 + 0xe9, 0xe2, 0xf7, 0xff, 0xff, //0x0000390a jmp LBB1_696 + //0x0000390f LBB1_848 + 0x4c, 0x89, 0xf8, //0x0000390f movq %r15, %rax + //0x00003912 LBB1_827 + 0x49, 0x89, 0xc7, //0x00003912 movq %rax, %r15 + 0xe9, 0xd7, 0xf7, 0xff, 0xff, //0x00003915 jmp LBB1_696 + //0x0000391a LBB1_851 + 0x44, 0x8b, 0x75, 0xbc, //0x0000391a movl $-68(%rbp), %r14d + 0x45, 0x89, 0xf4, //0x0000391e movl %r14d, %r12d + 0x41, 0x83, 0xe4, 0x02, //0x00003921 andl $2, %r12d + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00003925 jmp LBB1_853 + //0x0000392a LBB1_852 + 0x4d, 0x89, 0xf9, //0x0000392a movq %r15, %r9 + 0x44, 0x8b, 0x75, 0xbc, //0x0000392d movl $-68(%rbp), %r14d + 0x48, 0x8b, 0x5d, 0xd0, //0x00003931 movq $-48(%rbp), %rbx + //0x00003935 LBB1_853 + 0x48, 0x8b, 0x45, 0xa8, //0x00003935 movq $-88(%rbp), %rax + 0x48, 0x8b, 0x4d, 0x88, //0x00003939 movq $-120(%rbp), %rcx + 0x48, 0x8d, 0x54, 0x01, 0xfe, //0x0000393d leaq $-2(%rcx,%rax), %rdx + 0x48, 0x89, 0x55, 0xc8, //0x00003942 movq %rdx, $-56(%rbp) + 0x48, 0x8d, 0x44, 0x01, 0xfd, //0x00003946 leaq $-3(%rcx,%rax), %rax + 0x48, 0x89, 0x45, 0xa0, //0x0000394b movq %rax, $-96(%rbp) + 0xe9, 0x37, 0x00, 0x00, 0x00, //0x0000394f jmp LBB1_857 + //0x00003954 LBB1_854 + 0x48, 0x89, 0x45, 0xb0, //0x00003954 movq %rax, $-80(%rbp) + 0x4c, 0x8b, 0x7d, 0xa8, //0x00003958 movq $-88(%rbp), %r15 + 0xe9, 0x57, 0xcc, 0xff, 0xff, //0x0000395c jmp LBB1_2 + //0x00003961 LBB1_1102 + 0x49, 0x89, 0xc8, //0x00003961 movq %rcx, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003964 .p2align 4, 0x90 + //0x00003970 LBB1_856 + 0x49, 0x8d, 0x48, 0x01, //0x00003970 leaq $1(%r8), %rcx + 0x4c, 0x39, 0xc3, //0x00003974 cmpq %r8, %rbx + 0x49, 0x0f, 0x45, 0xc8, //0x00003977 cmovneq %r8, %rcx + 0x4c, 0x29, 0xc9, //0x0000397b subq %r9, %rcx + 0x44, 0x8b, 0x75, 0xbc, //0x0000397e movl $-68(%rbp), %r14d + 0x48, 0x85, 0xc9, //0x00003982 testq %rcx, %rcx + 0x0f, 0x85, 0x15, 0x10, 0x00, 0x00, //0x00003985 jne LBB1_1137 + //0x0000398b LBB1_857 + 0x4c, 0x39, 0xcb, //0x0000398b cmpq %r9, %rbx + 0x0f, 0x86, 0x1b, 0x10, 0x00, 0x00, //0x0000398e jbe LBB1_1138 + 0x41, 0xf6, 0xc6, 0x08, //0x00003994 testb $8, %r14b + 0x0f, 0x85, 0xc2, 0x00, 0x00, 0x00, //0x00003998 jne LBB1_870 + 0x4d, 0x89, 0xc8, //0x0000399e movq %r9, %r8 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000039a1 jmp LBB1_861 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039a6 .p2align 4, 0x90 + //0x000039b0 LBB1_860 + 0x49, 0xff, 0xc0, //0x000039b0 incq %r8 + 0x49, 0x39, 0xd8, //0x000039b3 cmpq %rbx, %r8 + 0x0f, 0x83, 0x04, 0x02, 0x00, 0x00, //0x000039b6 jae LBB1_888 + //0x000039bc LBB1_861 + 0x41, 0x0f, 0xb6, 0x00, //0x000039bc movzbl (%r8), %eax + 0x48, 0x83, 0xf8, 0x0d, //0x000039c0 cmpq $13, %rax + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x000039c4 je LBB1_860 + 0x3c, 0x0a, //0x000039ca cmpb $10, %al + 0x0f, 0x84, 0xde, 0xff, 0xff, 0xff, //0x000039cc je LBB1_860 + 0x48, 0x8b, 0x4d, 0xc0, //0x000039d2 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x14, 0x01, //0x000039d6 movzbl (%rcx,%rax), %edx + 0x49, 0xff, 0xc0, //0x000039da incq %r8 + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x000039dd cmpl $255, %edx + 0x0f, 0x84, 0xb7, 0x02, 0x00, 0x00, //0x000039e3 je LBB1_902 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000039e9 movl $1, %r11d + 0x49, 0x39, 0xd8, //0x000039ef cmpq %rbx, %r8 + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000039f2 jb LBB1_866 + 0xe9, 0xe3, 0x0b, 0x00, 0x00, //0x000039f8 jmp LBB1_1060 + 0x90, 0x90, 0x90, //0x000039fd .p2align 4, 0x90 + //0x00003a00 LBB1_865 + 0x49, 0xff, 0xc0, //0x00003a00 incq %r8 + 0x49, 0x39, 0xd8, //0x00003a03 cmpq %rbx, %r8 + 0x0f, 0x83, 0x70, 0x04, 0x00, 0x00, //0x00003a06 jae LBB1_933 + //0x00003a0c LBB1_866 + 0x41, 0x0f, 0xb6, 0x00, //0x00003a0c movzbl (%r8), %eax + 0x48, 0x83, 0xf8, 0x0d, //0x00003a10 cmpq $13, %rax + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00003a14 je LBB1_865 + 0x3c, 0x0a, //0x00003a1a cmpb $10, %al + 0x0f, 0x84, 0xde, 0xff, 0xff, 0xff, //0x00003a1c je LBB1_865 + 0x48, 0x8b, 0x4d, 0xc0, //0x00003a22 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x0c, 0x01, //0x00003a26 movzbl (%rcx,%rax), %ecx + 0x49, 0xff, 0xc0, //0x00003a2a incq %r8 + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00003a2d cmpl $255, %ecx + 0x0f, 0x84, 0x25, 0x06, 0x00, 0x00, //0x00003a33 je LBB1_960 + 0xc1, 0xe2, 0x06, //0x00003a39 shll $6, %edx + 0x09, 0xca, //0x00003a3c orl %ecx, %edx + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00003a3e movl $2, %r11d + 0x49, 0x39, 0xd8, //0x00003a44 cmpq %rbx, %r8 + 0x0f, 0x82, 0xb5, 0x01, 0x00, 0x00, //0x00003a47 jb LBB1_892 + 0xe9, 0x8e, 0x0b, 0x00, 0x00, //0x00003a4d jmp LBB1_1060 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003a52 .p2align 4, 0x90 + //0x00003a60 LBB1_870 + 0x4c, 0x89, 0xca, //0x00003a60 movq %r9, %rdx + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x00003a63 jmp LBB1_873 + //0x00003a68 LBB1_871 + 0x80, 0xf9, 0x6e, //0x00003a68 cmpb $110, %cl + 0x0f, 0x85, 0xdf, 0x01, 0x00, 0x00, //0x00003a6b jne LBB1_897 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003a71 .p2align 4, 0x90 + //0x00003a80 LBB1_872 + 0x4c, 0x89, 0xc2, //0x00003a80 movq %r8, %rdx + 0x49, 0x39, 0xd8, //0x00003a83 cmpq %rbx, %r8 + 0x0f, 0x83, 0x34, 0x01, 0x00, 0x00, //0x00003a86 jae LBB1_888 + //0x00003a8c LBB1_873 + 0x48, 0x8d, 0x4a, 0x01, //0x00003a8c leaq $1(%rdx), %rcx + 0x0f, 0xb6, 0x02, //0x00003a90 movzbl (%rdx), %eax + 0x3c, 0x5c, //0x00003a93 cmpb $92, %al + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00003a95 jne LBB1_886 + 0x4c, 0x8d, 0x42, 0x02, //0x00003a9b leaq $2(%rdx), %r8 + 0xb0, 0xff, //0x00003a9f movb $-1, %al + 0x49, 0x39, 0xd8, //0x00003aa1 cmpq %rbx, %r8 + 0x0f, 0x87, 0x9e, 0x01, 0x00, 0x00, //0x00003aa4 ja LBB1_896 + 0x0f, 0xb6, 0x09, //0x00003aaa movzbl (%rcx), %ecx + 0x80, 0xf9, 0x71, //0x00003aad cmpb $113, %cl + 0x0f, 0x8e, 0xb2, 0xff, 0xff, 0xff, //0x00003ab0 jle LBB1_871 + 0x80, 0xf9, 0x72, //0x00003ab6 cmpb $114, %cl + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00003ab9 je LBB1_872 + 0x80, 0xf9, 0x75, //0x00003abf cmpb $117, %cl + 0x0f, 0x85, 0x98, 0x01, 0x00, 0x00, //0x00003ac2 jne LBB1_899 + 0x48, 0x89, 0xd9, //0x00003ac8 movq %rbx, %rcx + 0x4c, 0x29, 0xc1, //0x00003acb subq %r8, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00003ace cmpq $4, %rcx + 0x0f, 0x8c, 0x88, 0x01, 0x00, 0x00, //0x00003ad2 jl LBB1_899 + 0x41, 0x8b, 0x08, //0x00003ad8 movl (%r8), %ecx + 0x89, 0xcf, //0x00003adb movl %ecx, %edi + 0xf7, 0xd7, //0x00003add notl %edi + 0x8d, 0xb1, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003adf leal $-808464432(%rcx), %esi + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00003ae5 andl $-2139062144, %edi + 0x85, 0xf7, //0x00003aeb testl %esi, %edi + 0x0f, 0x85, 0x6d, 0x01, 0x00, 0x00, //0x00003aed jne LBB1_899 + 0x8d, 0xb1, 0x19, 0x19, 0x19, 0x19, //0x00003af3 leal $421075225(%rcx), %esi + 0x09, 0xce, //0x00003af9 orl %ecx, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00003afb testl $-2139062144, %esi + 0x0f, 0x85, 0x59, 0x01, 0x00, 0x00, //0x00003b01 jne LBB1_899 + 0x89, 0xce, //0x00003b07 movl %ecx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003b09 andl $2139062143, %esi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003b0f movl $-1061109568, %ebx + 0x29, 0xf3, //0x00003b14 subl %esi, %ebx + 0x44, 0x8d, 0x96, 0x46, 0x46, 0x46, 0x46, //0x00003b16 leal $1179010630(%rsi), %r10d + 0x21, 0xfb, //0x00003b1d andl %edi, %ebx + 0x44, 0x85, 0xd3, //0x00003b1f testl %r10d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x00003b22 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x34, 0x01, 0x00, 0x00, //0x00003b26 jne LBB1_899 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003b2c movl $-522133280, %ebx + 0x29, 0xf3, //0x00003b31 subl %esi, %ebx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00003b33 addl $960051513, %esi + 0x21, 0xdf, //0x00003b39 andl %ebx, %edi + 0x48, 0x8b, 0x5d, 0xd0, //0x00003b3b movq $-48(%rbp), %rbx + 0x85, 0xf7, //0x00003b3f testl %esi, %edi + 0x0f, 0x85, 0x19, 0x01, 0x00, 0x00, //0x00003b41 jne LBB1_899 + 0x0f, 0xc9, //0x00003b47 bswapl %ecx + 0x89, 0xc8, //0x00003b49 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00003b4b shrl $4, %eax + 0xf7, 0xd0, //0x00003b4e notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00003b50 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00003b55 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003b58 andl $252645135, %ecx + 0x01, 0xc1, //0x00003b5e addl %eax, %ecx + 0x89, 0xc8, //0x00003b60 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00003b62 shrl $4, %eax + 0x09, 0xc8, //0x00003b65 orl %ecx, %eax + 0x89, 0xc1, //0x00003b67 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00003b69 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00003b6c andl $65280, %ecx + 0x89, 0xc6, //0x00003b72 movl %eax, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00003b74 andl $128, %esi + 0x09, 0xce, //0x00003b7a orl %ecx, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003b7c je LBB1_885 + 0xb8, 0xff, 0x00, 0x00, 0x00, //0x00003b82 movl $255, %eax + //0x00003b87 LBB1_885 + 0x48, 0x83, 0xc2, 0x06, //0x00003b87 addq $6, %rdx + 0x49, 0x89, 0xd0, //0x00003b8b movq %rdx, %r8 + 0x3c, 0x0d, //0x00003b8e cmpb $13, %al + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00003b90 jne LBB1_887 + 0xe9, 0xe5, 0xfe, 0xff, 0xff, //0x00003b96 jmp LBB1_872 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003b9b .p2align 4, 0x90 + //0x00003ba0 LBB1_886 + 0x49, 0x89, 0xc8, //0x00003ba0 movq %rcx, %r8 + 0x3c, 0x0d, //0x00003ba3 cmpb $13, %al + 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x00003ba5 je LBB1_872 + //0x00003bab LBB1_887 + 0x3c, 0x0a, //0x00003bab cmpb $10, %al + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x00003bad je LBB1_872 + 0xe9, 0xa8, 0x00, 0x00, 0x00, //0x00003bb3 jmp LBB1_899 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003bb8 .p2align 4, 0x90 + //0x00003bc0 LBB1_888 + 0x31, 0xd2, //0x00003bc0 xorl %edx, %edx + 0x45, 0x31, 0xdb, //0x00003bc2 xorl %r11d, %r11d + //0x00003bc5 LBB1_889 + 0x45, 0x85, 0xdb, //0x00003bc5 testl %r11d, %r11d + 0x0f, 0x85, 0x12, 0x0a, 0x00, 0x00, //0x00003bc8 jne LBB1_1060 + 0x4d, 0x89, 0xc1, //0x00003bce movq %r8, %r9 + 0x31, 0xc9, //0x00003bd1 xorl %ecx, %ecx + 0x48, 0x85, 0xc9, //0x00003bd3 testq %rcx, %rcx + 0x0f, 0x84, 0xaf, 0xfd, 0xff, 0xff, //0x00003bd6 je LBB1_857 + 0xe9, 0xbf, 0x0d, 0x00, 0x00, //0x00003bdc jmp LBB1_1137 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003be1 .p2align 4, 0x90 + //0x00003bf0 LBB1_891 + 0x49, 0xff, 0xc0, //0x00003bf0 incq %r8 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00003bf3 movl $2, %r11d + 0x49, 0x39, 0xd8, //0x00003bf9 cmpq %rbx, %r8 + 0x0f, 0x83, 0xc3, 0xff, 0xff, 0xff, //0x00003bfc jae LBB1_889 + //0x00003c02 LBB1_892 + 0x41, 0x0f, 0xb6, 0x00, //0x00003c02 movzbl (%r8), %eax + 0x48, 0x83, 0xf8, 0x0d, //0x00003c06 cmpq $13, %rax + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00003c0a je LBB1_891 + 0x3c, 0x0a, //0x00003c10 cmpb $10, %al + 0x0f, 0x84, 0xd8, 0xff, 0xff, 0xff, //0x00003c12 je LBB1_891 + 0x48, 0x8b, 0x4d, 0xc0, //0x00003c18 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x0c, 0x01, //0x00003c1c movzbl (%rcx,%rax), %ecx + 0x49, 0xff, 0xc0, //0x00003c20 incq %r8 + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00003c23 cmpl $255, %ecx + 0x0f, 0x84, 0xbd, 0x07, 0x00, 0x00, //0x00003c29 je LBB1_1025 + 0xc1, 0xe2, 0x06, //0x00003c2f shll $6, %edx + 0x09, 0xca, //0x00003c32 orl %ecx, %edx + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00003c34 movl $3, %r11d + 0x49, 0x39, 0xd8, //0x00003c3a cmpq %rbx, %r8 + 0x0f, 0x82, 0x6f, 0x02, 0x00, 0x00, //0x00003c3d jb LBB1_936 + 0xe9, 0x98, 0x09, 0x00, 0x00, //0x00003c43 jmp LBB1_1060 + //0x00003c48 LBB1_896 + 0x49, 0x89, 0xc8, //0x00003c48 movq %rcx, %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00003c4b jmp LBB1_899 + //0x00003c50 LBB1_897 + 0x80, 0xf9, 0x2f, //0x00003c50 cmpb $47, %cl + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00003c53 jne LBB1_899 + 0x89, 0xc8, //0x00003c59 movl %ecx, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003c5b .p2align 4, 0x90 + //0x00003c60 LBB1_899 + 0x0f, 0xb6, 0xc8, //0x00003c60 movzbl %al, %ecx + 0x48, 0x8b, 0x55, 0xc0, //0x00003c63 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x14, 0x0a, //0x00003c67 movzbl (%rdx,%rcx), %edx + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x00003c6b cmpl $255, %edx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00003c71 je LBB1_902 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00003c77 movl $1, %r11d + 0x49, 0x39, 0xd8, //0x00003c7d cmpq %rbx, %r8 + 0x0f, 0x83, 0x5a, 0x09, 0x00, 0x00, //0x00003c80 jae LBB1_1060 + 0x41, 0x89, 0xd7, //0x00003c86 movl %edx, %r15d + 0x4c, 0x89, 0xc2, //0x00003c89 movq %r8, %rdx + 0xe9, 0xd6, 0x00, 0x00, 0x00, //0x00003c8c jmp LBB1_918 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003c91 .p2align 4, 0x90 + //0x00003ca0 LBB1_902 + 0x45, 0x31, 0xff, //0x00003ca0 xorl %r15d, %r15d + 0x45, 0x31, 0xdb, //0x00003ca3 xorl %r11d, %r11d + //0x00003ca6 LBB1_903 + 0x45, 0x85, 0xe4, //0x00003ca6 testl %r12d, %r12d + 0x0f, 0x85, 0xc1, 0xfc, 0xff, 0xff, //0x00003ca9 jne LBB1_856 + 0x41, 0x83, 0xfb, 0x02, //0x00003caf cmpl $2, %r11d + 0x0f, 0x82, 0xb7, 0xfc, 0xff, 0xff, //0x00003cb3 jb LBB1_856 + 0x3c, 0x3d, //0x00003cb9 cmpb $61, %al + 0x0f, 0x85, 0xaf, 0xfc, 0xff, 0xff, //0x00003cbb jne LBB1_856 + 0x41, 0xbe, 0x05, 0x00, 0x00, 0x00, //0x00003cc1 movl $5, %r14d + 0x45, 0x29, 0xde, //0x00003cc7 subl %r11d, %r14d + 0xf6, 0x45, 0xbc, 0x08, //0x00003cca testb $8, $-68(%rbp) + 0x0f, 0x85, 0x19, 0x02, 0x00, 0x00, //0x00003cce jne LBB1_940 + 0x4c, 0x39, 0xc3, //0x00003cd4 cmpq %r8, %rbx + 0x0f, 0x86, 0x2e, 0x09, 0x00, 0x00, //0x00003cd7 jbe LBB1_1063 + 0x49, 0x8d, 0x48, 0x03, //0x00003cdd leaq $3(%r8), %rcx + 0x48, 0x8b, 0x75, 0xc8, //0x00003ce1 movq $-56(%rbp), %rsi + 0x4c, 0x29, 0xc6, //0x00003ce5 subq %r8, %rsi + 0x49, 0x8d, 0x50, 0x04, //0x00003ce8 leaq $4(%r8), %rdx + 0x48, 0x8b, 0x7d, 0xa0, //0x00003cec movq $-96(%rbp), %rdi + 0x4c, 0x29, 0xc7, //0x00003cf0 subq %r8, %rdi + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00003cf3 jmp LBB1_910 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003cf8 .p2align 4, 0x90 + //0x00003d00 LBB1_909 + 0x49, 0xff, 0xc0, //0x00003d00 incq %r8 + 0x48, 0xff, 0xc1, //0x00003d03 incq %rcx + 0x48, 0xff, 0xce, //0x00003d06 decq %rsi + 0x48, 0xff, 0xc2, //0x00003d09 incq %rdx + 0x48, 0xff, 0xcf, //0x00003d0c decq %rdi + 0x4c, 0x39, 0xc3, //0x00003d0f cmpq %r8, %rbx + 0x0f, 0x84, 0x7e, 0x08, 0x00, 0x00, //0x00003d12 je LBB1_993 + //0x00003d18 LBB1_910 + 0x41, 0x0f, 0xb6, 0x00, //0x00003d18 movzbl (%r8), %eax + 0x3c, 0x0a, //0x00003d1c cmpb $10, %al + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x00003d1e je LBB1_909 + 0x3c, 0x0d, //0x00003d24 cmpb $13, %al + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00003d26 je LBB1_909 + 0x3c, 0x3d, //0x00003d2c cmpb $61, %al + 0x0f, 0x85, 0x1d, 0x05, 0x00, 0x00, //0x00003d2e jne LBB1_855 + 0x49, 0xff, 0xc0, //0x00003d34 incq %r8 + 0x41, 0x83, 0xfe, 0x02, //0x00003d37 cmpl $2, %r14d + 0x0f, 0x84, 0x2f, 0xfc, 0xff, 0xff, //0x00003d3b je LBB1_856 + 0x4c, 0x39, 0xc3, //0x00003d41 cmpq %r8, %rbx + 0x0f, 0x87, 0x3a, 0x03, 0x00, 0x00, //0x00003d44 ja LBB1_962 + 0xe9, 0xbc, 0x08, 0x00, 0x00, //0x00003d4a jmp LBB1_1063 + //0x00003d4f LBB1_915 + 0x80, 0xf9, 0x6e, //0x00003d4f cmpb $110, %cl + 0x0f, 0x85, 0x63, 0x03, 0x00, 0x00, //0x00003d52 jne LBB1_967 + //0x00003d58 LBB1_916 + 0x4d, 0x89, 0xd0, //0x00003d58 movq %r10, %r8 + //0x00003d5b LBB1_917 + 0x4c, 0x89, 0xc2, //0x00003d5b movq %r8, %rdx + 0x49, 0x39, 0xd8, //0x00003d5e cmpq %rbx, %r8 + 0x0f, 0x83, 0x20, 0x01, 0x00, 0x00, //0x00003d61 jae LBB1_934 + //0x00003d67 LBB1_918 + 0x4c, 0x8d, 0x42, 0x01, //0x00003d67 leaq $1(%rdx), %r8 + 0x0f, 0xb6, 0x02, //0x00003d6b movzbl (%rdx), %eax + 0x3c, 0x5c, //0x00003d6e cmpb $92, %al + 0x0f, 0x85, 0xf1, 0x00, 0x00, 0x00, //0x00003d70 jne LBB1_931 + 0x4c, 0x8d, 0x52, 0x02, //0x00003d76 leaq $2(%rdx), %r10 + 0xb0, 0xff, //0x00003d7a movb $-1, %al + 0x49, 0x39, 0xda, //0x00003d7c cmpq %rbx, %r10 + 0x0f, 0x87, 0x48, 0x03, 0x00, 0x00, //0x00003d7f ja LBB1_970 + 0x41, 0x0f, 0xb6, 0x08, //0x00003d85 movzbl (%r8), %ecx + 0x80, 0xf9, 0x71, //0x00003d89 cmpb $113, %cl + 0x0f, 0x8e, 0xbd, 0xff, 0xff, 0xff, //0x00003d8c jle LBB1_915 + 0x80, 0xf9, 0x72, //0x00003d92 cmpb $114, %cl + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00003d95 je LBB1_916 + 0x80, 0xf9, 0x75, //0x00003d9b cmpb $117, %cl + 0x0f, 0x85, 0x22, 0x03, 0x00, 0x00, //0x00003d9e jne LBB1_969 + 0x48, 0x8b, 0x4d, 0xd0, //0x00003da4 movq $-48(%rbp), %rcx + 0x4c, 0x29, 0xd1, //0x00003da8 subq %r10, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00003dab cmpq $4, %rcx + 0x0f, 0x8c, 0x11, 0x03, 0x00, 0x00, //0x00003daf jl LBB1_969 + 0x41, 0x8b, 0x3a, //0x00003db5 movl (%r10), %edi + 0x89, 0xfb, //0x00003db8 movl %edi, %ebx + 0xf7, 0xd3, //0x00003dba notl %ebx + 0x8d, 0x8f, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003dbc leal $-808464432(%rdi), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00003dc2 andl $-2139062144, %ebx + 0x85, 0xcb, //0x00003dc8 testl %ecx, %ebx + 0x0f, 0x85, 0xf6, 0x02, 0x00, 0x00, //0x00003dca jne LBB1_969 + 0x8d, 0x8f, 0x19, 0x19, 0x19, 0x19, //0x00003dd0 leal $421075225(%rdi), %ecx + 0x09, 0xf9, //0x00003dd6 orl %edi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00003dd8 testl $-2139062144, %ecx + 0x0f, 0x85, 0xe2, 0x02, 0x00, 0x00, //0x00003dde jne LBB1_969 + 0x89, 0xf9, //0x00003de4 movl %edi, %ecx + 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003de6 andl $2139062143, %ecx + 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003dec movl $-1061109568, %esi + 0x29, 0xce, //0x00003df1 subl %ecx, %esi + 0x44, 0x8d, 0x81, 0x46, 0x46, 0x46, 0x46, //0x00003df3 leal $1179010630(%rcx), %r8d + 0x21, 0xde, //0x00003dfa andl %ebx, %esi + 0x44, 0x85, 0xc6, //0x00003dfc testl %r8d, %esi + 0x0f, 0x85, 0xc1, 0x02, 0x00, 0x00, //0x00003dff jne LBB1_969 + 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003e05 movl $-522133280, %esi + 0x29, 0xce, //0x00003e0a subl %ecx, %esi + 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x00003e0c addl $960051513, %ecx + 0x21, 0xf3, //0x00003e12 andl %esi, %ebx + 0x85, 0xcb, //0x00003e14 testl %ecx, %ebx + 0x0f, 0x85, 0xaa, 0x02, 0x00, 0x00, //0x00003e16 jne LBB1_969 + 0x0f, 0xcf, //0x00003e1c bswapl %edi + 0x89, 0xf8, //0x00003e1e movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x00003e20 shrl $4, %eax + 0xf7, 0xd0, //0x00003e23 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00003e25 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00003e2a leal (%rax,%rax,8), %eax + 0x81, 0xe7, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003e2d andl $252645135, %edi + 0x01, 0xc7, //0x00003e33 addl %eax, %edi + 0x89, 0xf8, //0x00003e35 movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x00003e37 shrl $4, %eax + 0x09, 0xf8, //0x00003e3a orl %edi, %eax + 0x89, 0xc1, //0x00003e3c movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00003e3e shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00003e41 andl $65280, %ecx + 0x89, 0xc6, //0x00003e47 movl %eax, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00003e49 andl $128, %esi + 0x09, 0xce, //0x00003e4f orl %ecx, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003e51 je LBB1_930 + 0xb8, 0xff, 0x00, 0x00, 0x00, //0x00003e57 movl $255, %eax + //0x00003e5c LBB1_930 + 0x48, 0x83, 0xc2, 0x06, //0x00003e5c addq $6, %rdx + 0x49, 0x89, 0xd0, //0x00003e60 movq %rdx, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x00003e63 movq $-48(%rbp), %rbx + //0x00003e67 LBB1_931 + 0x3c, 0x0a, //0x00003e67 cmpb $10, %al + 0x0f, 0x84, 0xec, 0xfe, 0xff, 0xff, //0x00003e69 je LBB1_917 + 0x3c, 0x0d, //0x00003e6f cmpb $13, %al + 0x0f, 0x84, 0xe4, 0xfe, 0xff, 0xff, //0x00003e71 je LBB1_917 + 0xe9, 0x51, 0x02, 0x00, 0x00, //0x00003e77 jmp LBB1_970 + //0x00003e7c LBB1_933 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00003e7c movl $1, %r11d + 0xe9, 0x3e, 0xfd, 0xff, 0xff, //0x00003e82 jmp LBB1_889 + //0x00003e87 LBB1_934 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00003e87 movl $1, %r11d + 0x44, 0x89, 0xfa, //0x00003e8d movl %r15d, %edx + 0xe9, 0x30, 0xfd, 0xff, 0xff, //0x00003e90 jmp LBB1_889 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e95 .p2align 4, 0x90 + //0x00003ea0 LBB1_935 + 0x49, 0xff, 0xc0, //0x00003ea0 incq %r8 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00003ea3 movl $3, %r11d + 0x49, 0x39, 0xd8, //0x00003ea9 cmpq %rbx, %r8 + 0x0f, 0x83, 0x13, 0xfd, 0xff, 0xff, //0x00003eac jae LBB1_889 + //0x00003eb2 LBB1_936 + 0x41, 0x0f, 0xb6, 0x00, //0x00003eb2 movzbl (%r8), %eax + 0x48, 0x83, 0xf8, 0x0d, //0x00003eb6 cmpq $13, %rax + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00003eba je LBB1_935 + 0x3c, 0x0a, //0x00003ec0 cmpb $10, %al + 0x0f, 0x84, 0xd8, 0xff, 0xff, 0xff, //0x00003ec2 je LBB1_935 + 0x48, 0x8b, 0x4d, 0xc0, //0x00003ec8 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x0c, 0x01, //0x00003ecc movzbl (%rcx,%rax), %ecx + 0x49, 0xff, 0xc0, //0x00003ed0 incq %r8 + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00003ed3 cmpl $255, %ecx + 0x0f, 0x85, 0xeb, 0x06, 0x00, 0x00, //0x00003ed9 jne LBB1_1059 + 0x41, 0x89, 0xd7, //0x00003edf movl %edx, %r15d + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00003ee2 movl $3, %r11d + 0xe9, 0xb9, 0xfd, 0xff, 0xff, //0x00003ee8 jmp LBB1_903 + //0x00003eed LBB1_940 + 0x4c, 0x39, 0xc3, //0x00003eed cmpq %r8, %rbx + 0x0f, 0x87, 0x39, 0x00, 0x00, 0x00, //0x00003ef0 ja LBB1_943 + 0xe9, 0x10, 0x07, 0x00, 0x00, //0x00003ef6 jmp LBB1_1063 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003efb .p2align 4, 0x90 + //0x00003f00 LBB1_959 + 0x4c, 0x89, 0xe9, //0x00003f00 movq %r13, %rcx + 0x49, 0x89, 0xc8, //0x00003f03 movq %rcx, %r8 + 0x48, 0x39, 0xd9, //0x00003f06 cmpq %rbx, %rcx + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00003f09 jb LBB1_943 + 0xe9, 0x42, 0x01, 0x00, 0x00, //0x00003f0f jmp LBB1_994 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003f14 .p2align 4, 0x90 + //0x00003f20 LBB1_941 + 0x49, 0x89, 0xcd, //0x00003f20 movq %rcx, %r13 + 0x49, 0x89, 0xc8, //0x00003f23 movq %rcx, %r8 + 0x48, 0x39, 0xd9, //0x00003f26 cmpq %rbx, %rcx + 0x0f, 0x83, 0x27, 0x01, 0x00, 0x00, //0x00003f29 jae LBB1_994 + //0x00003f2f LBB1_943 + 0x4d, 0x8d, 0x68, 0x01, //0x00003f2f leaq $1(%r8), %r13 + 0x41, 0x0f, 0xb6, 0x08, //0x00003f33 movzbl (%r8), %ecx + 0x80, 0xf9, 0x5c, //0x00003f37 cmpb $92, %cl + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x00003f3a jne LBB1_956 + 0x49, 0x8d, 0x48, 0x02, //0x00003f40 leaq $2(%r8), %rcx + 0x48, 0x39, 0xd9, //0x00003f44 cmpq %rbx, %rcx + 0x0f, 0x87, 0x66, 0x07, 0x00, 0x00, //0x00003f47 ja LBB1_1026 + 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x00003f4d movzbl (%r13), %eax + 0x3c, 0x6e, //0x00003f52 cmpb $110, %al + 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00003f54 je LBB1_941 + 0x3c, 0x72, //0x00003f5a cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00003f5c je LBB1_941 + 0x3c, 0x75, //0x00003f62 cmpb $117, %al + 0x0f, 0x85, 0xf7, 0xf9, 0xff, 0xff, //0x00003f64 jne LBB1_1102 + 0x48, 0x89, 0xd8, //0x00003f6a movq %rbx, %rax + 0x48, 0x29, 0xc8, //0x00003f6d subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00003f70 cmpq $4, %rax + 0x0f, 0x8c, 0xe7, 0xf9, 0xff, 0xff, //0x00003f74 jl LBB1_1102 + 0x8b, 0x11, //0x00003f7a movl (%rcx), %edx + 0x89, 0xd6, //0x00003f7c movl %edx, %esi + 0xf7, 0xd6, //0x00003f7e notl %esi + 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003f80 leal $-808464432(%rdx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00003f86 andl $-2139062144, %esi + 0x85, 0xc6, //0x00003f8c testl %eax, %esi + 0x0f, 0x85, 0xcd, 0xf9, 0xff, 0xff, //0x00003f8e jne LBB1_1102 + 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x00003f94 leal $421075225(%rdx), %eax + 0x09, 0xd0, //0x00003f9a orl %edx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00003f9c testl $-2139062144, %eax + 0x0f, 0x85, 0xba, 0xf9, 0xff, 0xff, //0x00003fa1 jne LBB1_1102 + 0x89, 0xd0, //0x00003fa7 movl %edx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003fa9 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003fae movl $-1061109568, %edi + 0x29, 0xc7, //0x00003fb3 subl %eax, %edi + 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x00003fb5 leal $1179010630(%rax), %ebx + 0x21, 0xf7, //0x00003fbb andl %esi, %edi + 0x85, 0xdf, //0x00003fbd testl %ebx, %edi + 0x0f, 0x85, 0x9a, 0x09, 0x00, 0x00, //0x00003fbf jne LBB1_1131 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003fc5 movl $-522133280, %edi + 0x29, 0xc7, //0x00003fca subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00003fcc addl $960051513, %eax + 0x21, 0xfe, //0x00003fd1 andl %edi, %esi + 0x85, 0xc6, //0x00003fd3 testl %eax, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x00003fd5 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x82, 0xf9, 0xff, 0xff, //0x00003fd9 jne LBB1_1102 + 0x0f, 0xca, //0x00003fdf bswapl %edx + 0x89, 0xd0, //0x00003fe1 movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x00003fe3 shrl $4, %eax + 0xf7, 0xd0, //0x00003fe6 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00003fe8 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00003fed leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003ff0 andl $252645135, %edx + 0x01, 0xc2, //0x00003ff6 addl %eax, %edx + 0x89, 0xd1, //0x00003ff8 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x00003ffa shrl $4, %ecx + 0x09, 0xd1, //0x00003ffd orl %edx, %ecx + 0x89, 0xc8, //0x00003fff movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00004001 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00004004 andl $65280, %eax + 0x89, 0xca, //0x00004009 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000400b andl $128, %edx + 0x09, 0xc2, //0x00004011 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004013 je LBB1_955 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00004019 movl $255, %ecx + //0x0000401e LBB1_955 + 0x49, 0x83, 0xc0, 0x06, //0x0000401e addq $6, %r8 + 0x4d, 0x89, 0xc5, //0x00004022 movq %r8, %r13 + //0x00004025 LBB1_956 + 0x80, 0xf9, 0x0a, //0x00004025 cmpb $10, %cl + 0x0f, 0x84, 0xd2, 0xfe, 0xff, 0xff, //0x00004028 je LBB1_959 + 0x80, 0xf9, 0x0d, //0x0000402e cmpb $13, %cl + 0x0f, 0x84, 0xc9, 0xfe, 0xff, 0xff, //0x00004031 je LBB1_959 + 0x80, 0xf9, 0x3d, //0x00004037 cmpb $61, %cl + 0x0f, 0x85, 0x73, 0x06, 0x00, 0x00, //0x0000403a jne LBB1_1026 + 0x4d, 0x89, 0xe8, //0x00004040 movq %r13, %r8 + 0x41, 0x83, 0xfe, 0x02, //0x00004043 cmpl $2, %r14d + 0x0f, 0x84, 0x23, 0xf9, 0xff, 0xff, //0x00004047 je LBB1_856 + 0x4c, 0x39, 0xeb, //0x0000404d cmpq %r13, %rbx + 0x0f, 0x87, 0xc7, 0x03, 0x00, 0x00, //0x00004050 ja LBB1_1029 + //0x00004056 LBB1_994 + 0x4d, 0x89, 0xe8, //0x00004056 movq %r13, %r8 + 0xe9, 0xad, 0x05, 0x00, 0x00, //0x00004059 jmp LBB1_1063 + //0x0000405e LBB1_960 + 0x41, 0x89, 0xd7, //0x0000405e movl %edx, %r15d + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004061 movl $1, %r11d + 0xe9, 0x3a, 0xfc, 0xff, 0xff, //0x00004067 jmp LBB1_903 + //0x0000406c LBB1_961 + 0x49, 0xff, 0xc0, //0x0000406c incq %r8 + 0x48, 0xff, 0xc1, //0x0000406f incq %rcx + 0x48, 0xff, 0xce, //0x00004072 decq %rsi + 0x48, 0xff, 0xc2, //0x00004075 incq %rdx + 0x48, 0xff, 0xcf, //0x00004078 decq %rdi + 0x4c, 0x39, 0xc3, //0x0000407b cmpq %r8, %rbx + 0x0f, 0x84, 0x12, 0x05, 0x00, 0x00, //0x0000407e je LBB1_993 + //0x00004084 LBB1_962 + 0x41, 0x0f, 0xb6, 0x00, //0x00004084 movzbl (%r8), %eax + 0x3c, 0x0a, //0x00004088 cmpb $10, %al + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x0000408a je LBB1_961 + 0x3c, 0x0d, //0x00004090 cmpb $13, %al + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00004092 je LBB1_961 + 0x3c, 0x3d, //0x00004098 cmpb $61, %al + 0x0f, 0x85, 0xb1, 0x01, 0x00, 0x00, //0x0000409a jne LBB1_855 + 0x49, 0xff, 0xc0, //0x000040a0 incq %r8 + 0x41, 0x83, 0xfe, 0x03, //0x000040a3 cmpl $3, %r14d + 0x0f, 0x84, 0xc3, 0xf8, 0xff, 0xff, //0x000040a7 je LBB1_856 + 0x4c, 0x39, 0xc3, //0x000040ad cmpq %r8, %rbx + 0x0f, 0x87, 0xa2, 0x04, 0x00, 0x00, //0x000040b0 ja LBB1_1048 + 0xe9, 0x50, 0x05, 0x00, 0x00, //0x000040b6 jmp LBB1_1063 + //0x000040bb LBB1_967 + 0x80, 0xf9, 0x2f, //0x000040bb cmpb $47, %cl + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000040be jne LBB1_969 + 0x89, 0xc8, //0x000040c4 movl %ecx, %eax + //0x000040c6 LBB1_969 + 0x4d, 0x89, 0xd0, //0x000040c6 movq %r10, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x000040c9 movq $-48(%rbp), %rbx + //0x000040cd LBB1_970 + 0x0f, 0xb6, 0xc8, //0x000040cd movzbl %al, %ecx + 0x48, 0x8b, 0x55, 0xc0, //0x000040d0 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x0c, 0x0a, //0x000040d4 movzbl (%rdx,%rcx), %ecx + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x000040d8 cmpl $255, %ecx + 0x0f, 0x84, 0x5a, 0x01, 0x00, 0x00, //0x000040de je LBB1_991 + 0x44, 0x89, 0xfa, //0x000040e4 movl %r15d, %edx + 0xc1, 0xe2, 0x06, //0x000040e7 shll $6, %edx + 0x09, 0xca, //0x000040ea orl %ecx, %edx + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000040ec movl $2, %r11d + 0x49, 0x39, 0xd8, //0x000040f2 cmpq %rbx, %r8 + 0x0f, 0x83, 0xe5, 0x04, 0x00, 0x00, //0x000040f5 jae LBB1_1060 + 0x41, 0x89, 0xd7, //0x000040fb movl %edx, %r15d + 0xe9, 0x21, 0x00, 0x00, 0x00, //0x000040fe jmp LBB1_976 + //0x00004103 LBB1_973 + 0x80, 0xf9, 0x6e, //0x00004103 cmpb $110, %cl + 0x0f, 0x85, 0x50, 0x01, 0x00, 0x00, //0x00004106 jne LBB1_995 + //0x0000410c LBB1_974 + 0x48, 0x89, 0xd7, //0x0000410c movq %rdx, %rdi + 0x44, 0x89, 0xfa, //0x0000410f movl %r15d, %edx + //0x00004112 LBB1_975 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00004112 movl $2, %r11d + 0x49, 0x89, 0xf8, //0x00004118 movq %rdi, %r8 + 0x48, 0x39, 0xdf, //0x0000411b cmpq %rbx, %rdi + 0x0f, 0x83, 0x25, 0x01, 0x00, 0x00, //0x0000411e jae LBB1_992 + //0x00004124 LBB1_976 + 0x49, 0x8d, 0x78, 0x01, //0x00004124 leaq $1(%r8), %rdi + 0x41, 0x0f, 0xb6, 0x00, //0x00004128 movzbl (%r8), %eax + 0x3c, 0x5c, //0x0000412c cmpb $92, %al + 0x0f, 0x85, 0xf5, 0x00, 0x00, 0x00, //0x0000412e jne LBB1_989 + 0x49, 0x8d, 0x50, 0x02, //0x00004134 leaq $2(%r8), %rdx + 0xb0, 0xff, //0x00004138 movb $-1, %al + 0x48, 0x39, 0xda, //0x0000413a cmpq %rbx, %rdx + 0x0f, 0x87, 0x27, 0x01, 0x00, 0x00, //0x0000413d ja LBB1_998 + 0x0f, 0xb6, 0x0f, //0x00004143 movzbl (%rdi), %ecx + 0x80, 0xf9, 0x71, //0x00004146 cmpb $113, %cl + 0x0f, 0x8e, 0xb4, 0xff, 0xff, 0xff, //0x00004149 jle LBB1_973 + 0x80, 0xf9, 0x72, //0x0000414f cmpb $114, %cl + 0x0f, 0x84, 0xb4, 0xff, 0xff, 0xff, //0x00004152 je LBB1_974 + 0x80, 0xf9, 0x75, //0x00004158 cmpb $117, %cl + 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x0000415b jne LBB1_997 + 0x48, 0x89, 0xd9, //0x00004161 movq %rbx, %rcx + 0x48, 0x29, 0xd1, //0x00004164 subq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00004167 cmpq $4, %rcx + 0x0f, 0x8c, 0xf6, 0x00, 0x00, 0x00, //0x0000416b jl LBB1_997 + 0x8b, 0x32, //0x00004171 movl (%rdx), %esi + 0x89, 0xf7, //0x00004173 movl %esi, %edi + 0xf7, 0xd7, //0x00004175 notl %edi + 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00004177 leal $-808464432(%rsi), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000417d andl $-2139062144, %edi + 0x85, 0xcf, //0x00004183 testl %ecx, %edi + 0x0f, 0x85, 0xdc, 0x00, 0x00, 0x00, //0x00004185 jne LBB1_997 + 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x0000418b leal $421075225(%rsi), %ecx + 0x09, 0xf1, //0x00004191 orl %esi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00004193 testl $-2139062144, %ecx + 0x0f, 0x85, 0xc8, 0x00, 0x00, 0x00, //0x00004199 jne LBB1_997 + 0x89, 0xf1, //0x0000419f movl %esi, %ecx + 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x000041a1 andl $2139062143, %ecx + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000041a7 movl $-1061109568, %ebx + 0x29, 0xcb, //0x000041ac subl %ecx, %ebx + 0x44, 0x8d, 0x91, 0x46, 0x46, 0x46, 0x46, //0x000041ae leal $1179010630(%rcx), %r10d + 0x21, 0xfb, //0x000041b5 andl %edi, %ebx + 0x44, 0x85, 0xd3, //0x000041b7 testl %r10d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x000041ba movq $-48(%rbp), %rbx + 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x000041be jne LBB1_997 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000041c4 movl $-522133280, %ebx + 0x29, 0xcb, //0x000041c9 subl %ecx, %ebx + 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x000041cb addl $960051513, %ecx + 0x21, 0xdf, //0x000041d1 andl %ebx, %edi + 0x48, 0x8b, 0x5d, 0xd0, //0x000041d3 movq $-48(%rbp), %rbx + 0x85, 0xcf, //0x000041d7 testl %ecx, %edi + 0x0f, 0x85, 0x88, 0x00, 0x00, 0x00, //0x000041d9 jne LBB1_997 + 0x0f, 0xce, //0x000041df bswapl %esi + 0x89, 0xf0, //0x000041e1 movl %esi, %eax + 0xc1, 0xe8, 0x04, //0x000041e3 shrl $4, %eax + 0xf7, 0xd0, //0x000041e6 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x000041e8 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x000041ed leal (%rax,%rax,8), %eax + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x000041f0 andl $252645135, %esi + 0x01, 0xc6, //0x000041f6 addl %eax, %esi + 0x89, 0xf0, //0x000041f8 movl %esi, %eax + 0xc1, 0xe8, 0x04, //0x000041fa shrl $4, %eax + 0x09, 0xf0, //0x000041fd orl %esi, %eax + 0x89, 0xc1, //0x000041ff movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00004201 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00004204 andl $65280, %ecx + 0x89, 0xc2, //0x0000420a movl %eax, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000420c andl $128, %edx + 0x09, 0xca, //0x00004212 orl %ecx, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004214 je LBB1_988 + 0xb8, 0xff, 0x00, 0x00, 0x00, //0x0000421a movl $255, %eax + //0x0000421f LBB1_988 + 0x49, 0x83, 0xc0, 0x06, //0x0000421f addq $6, %r8 + 0x4c, 0x89, 0xc7, //0x00004223 movq %r8, %rdi + 0x44, 0x89, 0xfa, //0x00004226 movl %r15d, %edx + //0x00004229 LBB1_989 + 0x3c, 0x0a, //0x00004229 cmpb $10, %al + 0x0f, 0x84, 0xe1, 0xfe, 0xff, 0xff, //0x0000422b je LBB1_975 + 0x3c, 0x0d, //0x00004231 cmpb $13, %al + 0x0f, 0x84, 0xd9, 0xfe, 0xff, 0xff, //0x00004233 je LBB1_975 + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00004239 jmp LBB1_998 + //0x0000423e LBB1_991 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000423e movl $1, %r11d + 0xe9, 0x5d, 0xfa, 0xff, 0xff, //0x00004244 jmp LBB1_903 + //0x00004249 LBB1_992 + 0x49, 0x89, 0xf8, //0x00004249 movq %rdi, %r8 + 0xe9, 0x74, 0xf9, 0xff, 0xff, //0x0000424c jmp LBB1_889 + //0x00004251 LBB1_855 + 0x49, 0xff, 0xc0, //0x00004251 incq %r8 + 0x4c, 0x89, 0xc2, //0x00004254 movq %r8, %rdx + 0xe9, 0x14, 0xf7, 0xff, 0xff, //0x00004257 jmp LBB1_856 + //0x0000425c LBB1_995 + 0x80, 0xf9, 0x2f, //0x0000425c cmpb $47, %cl + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x0000425f jne LBB1_997 + 0x89, 0xc8, //0x00004265 movl %ecx, %eax + //0x00004267 LBB1_997 + 0x48, 0x89, 0xd7, //0x00004267 movq %rdx, %rdi + //0x0000426a LBB1_998 + 0x0f, 0xb6, 0xc8, //0x0000426a movzbl %al, %ecx + 0x48, 0x8b, 0x55, 0xc0, //0x0000426d movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x0c, 0x0a, //0x00004271 movzbl (%rdx,%rcx), %ecx + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00004275 cmpl $255, %ecx + 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x0000427b je LBB1_1019 + 0x44, 0x89, 0xfa, //0x00004281 movl %r15d, %edx + 0xc1, 0xe2, 0x06, //0x00004284 shll $6, %edx + 0x09, 0xca, //0x00004287 orl %ecx, %edx + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00004289 movl $3, %r11d + 0x48, 0x39, 0xdf, //0x0000428f cmpq %rbx, %rdi + 0x0f, 0x83, 0x4c, 0x01, 0x00, 0x00, //0x00004292 jae LBB1_1020 + 0x41, 0x89, 0xd7, //0x00004298 movl %edx, %r15d + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000429b jmp LBB1_1004 + //0x000042a0 LBB1_1001 + 0x80, 0xf9, 0x6e, //0x000042a0 cmpb $110, %cl + 0x0f, 0x85, 0xf5, 0x02, 0x00, 0x00, //0x000042a3 jne LBB1_1054 + //0x000042a9 LBB1_1002 + 0x4d, 0x89, 0xd0, //0x000042a9 movq %r10, %r8 + //0x000042ac LBB1_1003 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000042ac movl $3, %r11d + 0x4c, 0x89, 0xc7, //0x000042b2 movq %r8, %rdi + 0x49, 0x39, 0xd8, //0x000042b5 cmpq %rbx, %r8 + 0x0f, 0x83, 0x07, 0xf9, 0xff, 0xff, //0x000042b8 jae LBB1_889 + //0x000042be LBB1_1004 + 0x4c, 0x8d, 0x47, 0x01, //0x000042be leaq $1(%rdi), %r8 + 0x0f, 0xb6, 0x07, //0x000042c2 movzbl (%rdi), %eax + 0x3c, 0x5c, //0x000042c5 cmpb $92, %al + 0x0f, 0x85, 0xf4, 0x00, 0x00, 0x00, //0x000042c7 jne LBB1_1017 + 0x4c, 0x8d, 0x57, 0x02, //0x000042cd leaq $2(%rdi), %r10 + 0xb0, 0xff, //0x000042d1 movb $-1, %al + 0x49, 0x39, 0xda, //0x000042d3 cmpq %rbx, %r10 + 0x0f, 0x87, 0xd4, 0x02, 0x00, 0x00, //0x000042d6 ja LBB1_1057 + 0x41, 0x0f, 0xb6, 0x08, //0x000042dc movzbl (%r8), %ecx + 0x80, 0xf9, 0x71, //0x000042e0 cmpb $113, %cl + 0x0f, 0x8e, 0xb7, 0xff, 0xff, 0xff, //0x000042e3 jle LBB1_1001 + 0x80, 0xf9, 0x72, //0x000042e9 cmpb $114, %cl + 0x0f, 0x84, 0xb7, 0xff, 0xff, 0xff, //0x000042ec je LBB1_1002 + 0x80, 0xf9, 0x75, //0x000042f2 cmpb $117, %cl + 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x000042f5 jne LBB1_1056 + 0x48, 0x8b, 0x4d, 0xd0, //0x000042fb movq $-48(%rbp), %rcx + 0x4c, 0x29, 0xd1, //0x000042ff subq %r10, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00004302 cmpq $4, %rcx + 0x0f, 0x8c, 0x9d, 0x02, 0x00, 0x00, //0x00004306 jl LBB1_1056 + 0x41, 0x8b, 0x32, //0x0000430c movl (%r10), %esi + 0x89, 0xf3, //0x0000430f movl %esi, %ebx + 0xf7, 0xd3, //0x00004311 notl %ebx + 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00004313 leal $-808464432(%rsi), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00004319 andl $-2139062144, %ebx + 0x85, 0xcb, //0x0000431f testl %ecx, %ebx + 0x0f, 0x85, 0x82, 0x02, 0x00, 0x00, //0x00004321 jne LBB1_1056 + 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x00004327 leal $421075225(%rsi), %ecx + 0x09, 0xf1, //0x0000432d orl %esi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x0000432f testl $-2139062144, %ecx + 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x00004335 jne LBB1_1056 + 0x89, 0xf1, //0x0000433b movl %esi, %ecx + 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000433d andl $2139062143, %ecx + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00004343 movl $-1061109568, %edx + 0x29, 0xca, //0x00004348 subl %ecx, %edx + 0x44, 0x8d, 0x81, 0x46, 0x46, 0x46, 0x46, //0x0000434a leal $1179010630(%rcx), %r8d + 0x21, 0xda, //0x00004351 andl %ebx, %edx + 0x44, 0x85, 0xc2, //0x00004353 testl %r8d, %edx + 0x0f, 0x85, 0x4d, 0x02, 0x00, 0x00, //0x00004356 jne LBB1_1056 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000435c movl $-522133280, %edx + 0x29, 0xca, //0x00004361 subl %ecx, %edx + 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x00004363 addl $960051513, %ecx + 0x21, 0xd3, //0x00004369 andl %edx, %ebx + 0x85, 0xcb, //0x0000436b testl %ecx, %ebx + 0x0f, 0x85, 0x36, 0x02, 0x00, 0x00, //0x0000436d jne LBB1_1056 + 0x0f, 0xce, //0x00004373 bswapl %esi + 0x89, 0xf0, //0x00004375 movl %esi, %eax + 0xc1, 0xe8, 0x04, //0x00004377 shrl $4, %eax + 0xf7, 0xd0, //0x0000437a notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000437c andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00004381 leal (%rax,%rax,8), %eax + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00004384 andl $252645135, %esi + 0x01, 0xc6, //0x0000438a addl %eax, %esi + 0x89, 0xf0, //0x0000438c movl %esi, %eax + 0xc1, 0xe8, 0x04, //0x0000438e shrl $4, %eax + 0x09, 0xf0, //0x00004391 orl %esi, %eax + 0x89, 0xc1, //0x00004393 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00004395 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00004398 andl $65280, %ecx + 0x89, 0xc2, //0x0000439e movl %eax, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000043a0 andl $128, %edx + 0x09, 0xca, //0x000043a6 orl %ecx, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000043a8 je LBB1_1016 + 0xb8, 0xff, 0x00, 0x00, 0x00, //0x000043ae movl $255, %eax + //0x000043b3 LBB1_1016 + 0x48, 0x83, 0xc7, 0x06, //0x000043b3 addq $6, %rdi + 0x49, 0x89, 0xf8, //0x000043b7 movq %rdi, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x000043ba movq $-48(%rbp), %rbx + 0x44, 0x89, 0xfa, //0x000043be movl %r15d, %edx + //0x000043c1 LBB1_1017 + 0x3c, 0x0a, //0x000043c1 cmpb $10, %al + 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x000043c3 je LBB1_1003 + 0x3c, 0x0d, //0x000043c9 cmpb $13, %al + 0x0f, 0x84, 0xdb, 0xfe, 0xff, 0xff, //0x000043cb je LBB1_1003 + 0xe9, 0xda, 0x01, 0x00, 0x00, //0x000043d1 jmp LBB1_1057 + //0x000043d6 LBB1_1019 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000043d6 movl $2, %r11d + 0x49, 0x89, 0xf8, //0x000043dc movq %rdi, %r8 + 0xe9, 0xc2, 0xf8, 0xff, 0xff, //0x000043df jmp LBB1_903 + //0x000043e4 LBB1_1020 + 0x49, 0x89, 0xf8, //0x000043e4 movq %rdi, %r8 + 0xe9, 0xf4, 0x01, 0x00, 0x00, //0x000043e7 jmp LBB1_1060 + //0x000043ec LBB1_1025 + 0x41, 0x89, 0xd7, //0x000043ec movl %edx, %r15d + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000043ef movl $2, %r11d + 0xe9, 0xac, 0xf8, 0xff, 0xff, //0x000043f5 jmp LBB1_903 + //0x000043fa LBB1_1045 + 0x4c, 0x89, 0xc1, //0x000043fa movq %r8, %rcx + 0x49, 0x89, 0xcd, //0x000043fd movq %rcx, %r13 + 0x48, 0x39, 0xd9, //0x00004400 cmpq %rbx, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00004403 jb LBB1_1029 + 0xe9, 0xfd, 0x01, 0x00, 0x00, //0x00004409 jmp LBB1_1063 + //0x0000440e LBB1_1027 + 0x49, 0x89, 0xc8, //0x0000440e movq %rcx, %r8 + 0x49, 0x89, 0xcd, //0x00004411 movq %rcx, %r13 + 0x48, 0x39, 0xd9, //0x00004414 cmpq %rbx, %rcx + 0x0f, 0x83, 0xee, 0x01, 0x00, 0x00, //0x00004417 jae LBB1_1063 + //0x0000441d LBB1_1029 + 0x4d, 0x8d, 0x45, 0x01, //0x0000441d leaq $1(%r13), %r8 + 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x00004421 movzbl (%r13), %ecx + 0x80, 0xf9, 0x5c, //0x00004426 cmpb $92, %cl + 0x0f, 0x85, 0xe4, 0x00, 0x00, 0x00, //0x00004429 jne LBB1_1042 + 0x49, 0x8d, 0x4d, 0x02, //0x0000442f leaq $2(%r13), %rcx + 0x48, 0x39, 0xd9, //0x00004433 cmpq %rbx, %rcx + 0x0f, 0x87, 0x74, 0x02, 0x00, 0x00, //0x00004436 ja LBB1_1080 + 0x41, 0x0f, 0xb6, 0x00, //0x0000443c movzbl (%r8), %eax + 0x3c, 0x6e, //0x00004440 cmpb $110, %al + 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00004442 je LBB1_1027 + 0x3c, 0x72, //0x00004448 cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x0000444a je LBB1_1027 + 0x3c, 0x75, //0x00004450 cmpb $117, %al + 0x0f, 0x85, 0x09, 0xf5, 0xff, 0xff, //0x00004452 jne LBB1_1102 + 0x48, 0x89, 0xd8, //0x00004458 movq %rbx, %rax + 0x48, 0x29, 0xc8, //0x0000445b subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000445e cmpq $4, %rax + 0x0f, 0x8c, 0xf9, 0xf4, 0xff, 0xff, //0x00004462 jl LBB1_1102 + 0x8b, 0x11, //0x00004468 movl (%rcx), %edx + 0x89, 0xd6, //0x0000446a movl %edx, %esi + 0xf7, 0xd6, //0x0000446c notl %esi + 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000446e leal $-808464432(%rdx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00004474 andl $-2139062144, %esi + 0x85, 0xc6, //0x0000447a testl %eax, %esi + 0x0f, 0x85, 0xdf, 0xf4, 0xff, 0xff, //0x0000447c jne LBB1_1102 + 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x00004482 leal $421075225(%rdx), %eax + 0x09, 0xd0, //0x00004488 orl %edx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x0000448a testl $-2139062144, %eax + 0x0f, 0x85, 0xcc, 0xf4, 0xff, 0xff, //0x0000448f jne LBB1_1102 + 0x89, 0xd0, //0x00004495 movl %edx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00004497 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000449c movl $-1061109568, %edi + 0x29, 0xc7, //0x000044a1 subl %eax, %edi + 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x000044a3 leal $1179010630(%rax), %ebx + 0x21, 0xf7, //0x000044a9 andl %esi, %edi + 0x85, 0xdf, //0x000044ab testl %ebx, %edi + 0x0f, 0x85, 0xac, 0x04, 0x00, 0x00, //0x000044ad jne LBB1_1131 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x000044b3 movl $-522133280, %edi + 0x29, 0xc7, //0x000044b8 subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x000044ba addl $960051513, %eax + 0x21, 0xfe, //0x000044bf andl %edi, %esi + 0x85, 0xc6, //0x000044c1 testl %eax, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x000044c3 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x94, 0xf4, 0xff, 0xff, //0x000044c7 jne LBB1_1102 + 0x0f, 0xca, //0x000044cd bswapl %edx + 0x89, 0xd0, //0x000044cf movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x000044d1 shrl $4, %eax + 0xf7, 0xd0, //0x000044d4 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x000044d6 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x000044db leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000044de andl $252645135, %edx + 0x01, 0xc2, //0x000044e4 addl %eax, %edx + 0x89, 0xd1, //0x000044e6 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000044e8 shrl $4, %ecx + 0x09, 0xd1, //0x000044eb orl %edx, %ecx + 0x89, 0xc8, //0x000044ed movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000044ef shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000044f2 andl $65280, %eax + 0x89, 0xca, //0x000044f7 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000044f9 andl $128, %edx + 0x09, 0xc2, //0x000044ff orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004501 je LBB1_1041 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00004507 movl $255, %ecx + //0x0000450c LBB1_1041 + 0x49, 0x83, 0xc5, 0x06, //0x0000450c addq $6, %r13 + 0x4d, 0x89, 0xe8, //0x00004510 movq %r13, %r8 + //0x00004513 LBB1_1042 + 0x80, 0xf9, 0x0a, //0x00004513 cmpb $10, %cl + 0x0f, 0x84, 0xde, 0xfe, 0xff, 0xff, //0x00004516 je LBB1_1045 + 0x80, 0xf9, 0x0d, //0x0000451c cmpb $13, %cl + 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x0000451f je LBB1_1045 + 0x80, 0xf9, 0x3d, //0x00004525 cmpb $61, %cl + 0x0f, 0x85, 0x42, 0xf4, 0xff, 0xff, //0x00004528 jne LBB1_856 + 0x41, 0x83, 0xfe, 0x03, //0x0000452e cmpl $3, %r14d + 0x0f, 0x84, 0x38, 0xf4, 0xff, 0xff, //0x00004532 je LBB1_856 + 0x4c, 0x39, 0xc3, //0x00004538 cmpq %r8, %rbx + 0x0f, 0x87, 0x9d, 0x01, 0x00, 0x00, //0x0000453b ja LBB1_1085 + 0xe9, 0xc5, 0x00, 0x00, 0x00, //0x00004541 jmp LBB1_1063 + //0x00004546 LBB1_1047 + 0x48, 0xff, 0xc1, //0x00004546 incq %rcx + 0x48, 0xff, 0xc2, //0x00004549 incq %rdx + 0x48, 0xff, 0xcf, //0x0000454c decq %rdi + 0x48, 0xff, 0xce, //0x0000454f decq %rsi + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00004552 je LBB1_993 + //0x00004558 LBB1_1048 + 0x0f, 0xb6, 0x41, 0xff, //0x00004558 movzbl $-1(%rcx), %eax + 0x3c, 0x0a, //0x0000455c cmpb $10, %al + 0x0f, 0x84, 0xe2, 0xff, 0xff, 0xff, //0x0000455e je LBB1_1047 + 0x3c, 0x0d, //0x00004564 cmpb $13, %al + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00004566 je LBB1_1047 + 0x3c, 0x3d, //0x0000456c cmpb $61, %al + 0x0f, 0x85, 0xa1, 0x02, 0x00, 0x00, //0x0000456e jne LBB1_1103 + 0x49, 0x89, 0xc8, //0x00004574 movq %rcx, %r8 + 0x41, 0x83, 0xfe, 0x04, //0x00004577 cmpl $4, %r14d + 0x0f, 0x84, 0xef, 0xf3, 0xff, 0xff, //0x0000457b je LBB1_856 + 0x48, 0x39, 0xcb, //0x00004581 cmpq %rcx, %rbx + 0x0f, 0x87, 0x02, 0x01, 0x00, 0x00, //0x00004584 ja LBB1_1076 + 0x49, 0x89, 0xc8, //0x0000458a movq %rcx, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000458d movq $-48(%rbp), %rbx + 0xe9, 0x75, 0x00, 0x00, 0x00, //0x00004591 jmp LBB1_1063 + //0x00004596 LBB1_993 + 0x49, 0x89, 0xd8, //0x00004596 movq %rbx, %r8 + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00004599 jmp LBB1_1063 + //0x0000459e LBB1_1054 + 0x80, 0xf9, 0x2f, //0x0000459e cmpb $47, %cl + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000045a1 jne LBB1_1056 + 0x89, 0xc8, //0x000045a7 movl %ecx, %eax + //0x000045a9 LBB1_1056 + 0x4d, 0x89, 0xd0, //0x000045a9 movq %r10, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x000045ac movq $-48(%rbp), %rbx + //0x000045b0 LBB1_1057 + 0x0f, 0xb6, 0xc8, //0x000045b0 movzbl %al, %ecx + 0x48, 0x8b, 0x55, 0xc0, //0x000045b3 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x0c, 0x0a, //0x000045b7 movzbl (%rdx,%rcx), %ecx + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x000045bb cmpl $255, %ecx + 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, //0x000045c1 je LBB1_1070 + 0x44, 0x89, 0xfa, //0x000045c7 movl %r15d, %edx + //0x000045ca LBB1_1059 + 0xc1, 0xe2, 0x06, //0x000045ca shll $6, %edx + 0x09, 0xca, //0x000045cd orl %ecx, %edx + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000045cf movl $4, %r11d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000045d5 .p2align 4, 0x90 + //0x000045e0 LBB1_1060 + 0x41, 0x89, 0xd7, //0x000045e0 movl %edx, %r15d + 0x45, 0x85, 0xe4, //0x000045e3 testl %r12d, %r12d + 0x0f, 0x94, 0xc0, //0x000045e6 sete %al + 0x41, 0x83, 0xfb, 0x01, //0x000045e9 cmpl $1, %r11d + 0x0f, 0x94, 0xc1, //0x000045ed sete %cl + 0x49, 0x39, 0xd8, //0x000045f0 cmpq %rbx, %r8 + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000045f3 jb LBB1_1063 + 0x41, 0x83, 0xfb, 0x04, //0x000045f9 cmpl $4, %r11d + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x000045fd je LBB1_1063 + 0x08, 0xc8, //0x00004603 orb %cl, %al + 0x0f, 0x85, 0x65, 0xf3, 0xff, 0xff, //0x00004605 jne LBB1_856 + //0x0000460b LBB1_1063 + 0xb0, 0x04, //0x0000460b movb $4, %al + 0x44, 0x28, 0xd8, //0x0000460d subb %r11b, %al + 0x0f, 0xb6, 0xc0, //0x00004610 movzbl %al, %eax + 0x01, 0xc0, //0x00004613 addl %eax, %eax + 0x8d, 0x0c, 0x40, //0x00004615 leal (%rax,%rax,2), %ecx + 0x44, 0x89, 0xfa, //0x00004618 movl %r15d, %edx + 0xd3, 0xe2, //0x0000461b shll %cl, %edx + 0x41, 0x83, 0xfb, 0x02, //0x0000461d cmpl $2, %r11d + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00004621 je LBB1_1068 + 0x41, 0x83, 0xfb, 0x03, //0x00004627 cmpl $3, %r11d + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x0000462b je LBB1_1067 + 0x41, 0x83, 0xfb, 0x04, //0x00004631 cmpl $4, %r11d + 0x48, 0x8b, 0x4d, 0xb0, //0x00004635 movq $-80(%rbp), %rcx + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00004639 jne LBB1_1069 + 0x88, 0x51, 0x02, //0x0000463f movb %dl, $2(%rcx) + //0x00004642 LBB1_1067 + 0x48, 0x8b, 0x45, 0xb0, //0x00004642 movq $-80(%rbp), %rax + 0x88, 0x70, 0x01, //0x00004646 movb %dh, $1(%rax) + //0x00004649 LBB1_1068 + 0xc1, 0xea, 0x10, //0x00004649 shrl $16, %edx + 0x48, 0x8b, 0x4d, 0xb0, //0x0000464c movq $-80(%rbp), %rcx + 0x88, 0x11, //0x00004650 movb %dl, (%rcx) + //0x00004652 LBB1_1069 + 0x44, 0x89, 0xd8, //0x00004652 movl %r11d, %eax + 0x48, 0x8d, 0x4c, 0x01, 0xff, //0x00004655 leaq $-1(%rcx,%rax), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x0000465a movq %rcx, $-80(%rbp) + 0x4d, 0x89, 0xc1, //0x0000465e movq %r8, %r9 + 0x31, 0xc9, //0x00004661 xorl %ecx, %ecx + 0x44, 0x8b, 0x75, 0xbc, //0x00004663 movl $-68(%rbp), %r14d + 0x48, 0x85, 0xc9, //0x00004667 testq %rcx, %rcx + 0x0f, 0x84, 0x1b, 0xf3, 0xff, 0xff, //0x0000466a je LBB1_857 + 0xe9, 0x2b, 0x03, 0x00, 0x00, //0x00004670 jmp LBB1_1137 + //0x00004675 LBB1_1070 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00004675 movl $3, %r11d + 0xe9, 0x26, 0xf6, 0xff, 0xff, //0x0000467b jmp LBB1_903 + //0x00004680 LBB1_1075 + 0x48, 0xff, 0xc2, //0x00004680 incq %rdx + 0x48, 0xff, 0xcf, //0x00004683 decq %rdi + 0x0f, 0x84, 0x94, 0x01, 0x00, 0x00, //0x00004686 je LBB1_1105 + //0x0000468c LBB1_1076 + 0x0f, 0xb6, 0x42, 0xff, //0x0000468c movzbl $-1(%rdx), %eax + 0x3c, 0x0a, //0x00004690 cmpb $10, %al + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00004692 je LBB1_1075 + 0x3c, 0x0d, //0x00004698 cmpb $13, %al + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x0000469a je LBB1_1075 + 0x3c, 0x3d, //0x000046a0 cmpb $61, %al + 0x0f, 0x85, 0xc3, 0x02, 0x00, 0x00, //0x000046a2 jne LBB1_1110 + 0x49, 0x89, 0xd0, //0x000046a8 movq %rdx, %r8 + 0xe9, 0xb2, 0x02, 0x00, 0x00, //0x000046ab jmp LBB1_1132 + //0x000046b0 LBB1_1080 + 0x4d, 0x89, 0xc5, //0x000046b0 movq %r8, %r13 + //0x000046b3 LBB1_1026 + 0x4d, 0x89, 0xe8, //0x000046b3 movq %r13, %r8 + 0xe9, 0xb5, 0xf2, 0xff, 0xff, //0x000046b6 jmp LBB1_856 + //0x000046bb LBB1_1101 + 0x4c, 0x89, 0xe9, //0x000046bb movq %r13, %rcx + 0x49, 0x89, 0xc8, //0x000046be movq %rcx, %r8 + 0x48, 0x39, 0xd9, //0x000046c1 cmpq %rbx, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000046c4 jb LBB1_1085 + 0xe9, 0x87, 0xf9, 0xff, 0xff, //0x000046ca jmp LBB1_994 + //0x000046cf LBB1_1083 + 0x49, 0x89, 0xcd, //0x000046cf movq %rcx, %r13 + 0x49, 0x89, 0xc8, //0x000046d2 movq %rcx, %r8 + 0x48, 0x39, 0xd9, //0x000046d5 cmpq %rbx, %rcx + 0x0f, 0x83, 0x78, 0xf9, 0xff, 0xff, //0x000046d8 jae LBB1_994 + //0x000046de LBB1_1085 + 0x4d, 0x8d, 0x68, 0x01, //0x000046de leaq $1(%r8), %r13 + 0x41, 0x0f, 0xb6, 0x08, //0x000046e2 movzbl (%r8), %ecx + 0x80, 0xf9, 0x5c, //0x000046e6 cmpb $92, %cl + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x000046e9 jne LBB1_1098 + 0x49, 0x8d, 0x48, 0x02, //0x000046ef leaq $2(%r8), %rcx + 0x48, 0x39, 0xd9, //0x000046f3 cmpq %rbx, %rcx + 0x0f, 0x87, 0xb7, 0xff, 0xff, 0xff, //0x000046f6 ja LBB1_1026 + 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x000046fc movzbl (%r13), %eax + 0x3c, 0x6e, //0x00004701 cmpb $110, %al + 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00004703 je LBB1_1083 + 0x3c, 0x72, //0x00004709 cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x0000470b je LBB1_1083 + 0x3c, 0x75, //0x00004711 cmpb $117, %al + 0x0f, 0x85, 0x48, 0xf2, 0xff, 0xff, //0x00004713 jne LBB1_1102 + 0x48, 0x89, 0xd8, //0x00004719 movq %rbx, %rax + 0x48, 0x29, 0xc8, //0x0000471c subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000471f cmpq $4, %rax + 0x0f, 0x8c, 0x36, 0x02, 0x00, 0x00, //0x00004723 jl LBB1_1131 + 0x8b, 0x11, //0x00004729 movl (%rcx), %edx + 0x89, 0xd6, //0x0000472b movl %edx, %esi + 0xf7, 0xd6, //0x0000472d notl %esi + 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000472f leal $-808464432(%rdx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00004735 andl $-2139062144, %esi + 0x85, 0xc6, //0x0000473b testl %eax, %esi + 0x0f, 0x85, 0x1c, 0x02, 0x00, 0x00, //0x0000473d jne LBB1_1131 + 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x00004743 leal $421075225(%rdx), %eax + 0x09, 0xd0, //0x00004749 orl %edx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x0000474b testl $-2139062144, %eax + 0x0f, 0x85, 0x09, 0x02, 0x00, 0x00, //0x00004750 jne LBB1_1131 + 0x89, 0xd0, //0x00004756 movl %edx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00004758 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000475d movl $-1061109568, %edi + 0x29, 0xc7, //0x00004762 subl %eax, %edi + 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x00004764 leal $1179010630(%rax), %ebx + 0x21, 0xf7, //0x0000476a andl %esi, %edi + 0x85, 0xdf, //0x0000476c testl %ebx, %edi + 0x0f, 0x85, 0xeb, 0x01, 0x00, 0x00, //0x0000476e jne LBB1_1131 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00004774 movl $-522133280, %edi + 0x29, 0xc7, //0x00004779 subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x0000477b addl $960051513, %eax + 0x21, 0xfe, //0x00004780 andl %edi, %esi + 0x85, 0xc6, //0x00004782 testl %eax, %esi + 0x0f, 0x85, 0xd5, 0x01, 0x00, 0x00, //0x00004784 jne LBB1_1131 + 0x0f, 0xca, //0x0000478a bswapl %edx + 0x89, 0xd0, //0x0000478c movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x0000478e shrl $4, %eax + 0xf7, 0xd0, //0x00004791 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00004793 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00004798 leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000479b andl $252645135, %edx + 0x01, 0xc2, //0x000047a1 addl %eax, %edx + 0x89, 0xd1, //0x000047a3 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000047a5 shrl $4, %ecx + 0x09, 0xd1, //0x000047a8 orl %edx, %ecx + 0x89, 0xc8, //0x000047aa movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000047ac shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000047af andl $65280, %eax + 0x89, 0xca, //0x000047b4 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000047b6 andl $128, %edx + 0x09, 0xc2, //0x000047bc orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000047be je LBB1_1097 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000047c4 movl $255, %ecx + //0x000047c9 LBB1_1097 + 0x49, 0x83, 0xc0, 0x06, //0x000047c9 addq $6, %r8 + 0x4d, 0x89, 0xc5, //0x000047cd movq %r8, %r13 + 0x48, 0x8b, 0x5d, 0xd0, //0x000047d0 movq $-48(%rbp), %rbx + //0x000047d4 LBB1_1098 + 0x80, 0xf9, 0x0a, //0x000047d4 cmpb $10, %cl + 0x0f, 0x84, 0xde, 0xfe, 0xff, 0xff, //0x000047d7 je LBB1_1101 + 0x80, 0xf9, 0x0d, //0x000047dd cmpb $13, %cl + 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x000047e0 je LBB1_1101 + 0x80, 0xf9, 0x3d, //0x000047e6 cmpb $61, %cl + 0x0f, 0x85, 0x88, 0x01, 0x00, 0x00, //0x000047e9 jne LBB1_1111 + 0x4d, 0x89, 0xe8, //0x000047ef movq %r13, %r8 + 0x41, 0x83, 0xfe, 0x04, //0x000047f2 cmpl $4, %r14d + 0x48, 0x8b, 0x5d, 0xd0, //0x000047f6 movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x70, 0xf1, 0xff, 0xff, //0x000047fa je LBB1_856 + 0x4c, 0x39, 0xeb, //0x00004800 cmpq %r13, %rbx + 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x00004803 ja LBB1_1114 + 0x4d, 0x89, 0xe8, //0x00004809 movq %r13, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000480c movq $-48(%rbp), %rbx + 0xe9, 0xf6, 0xfd, 0xff, 0xff, //0x00004810 jmp LBB1_1063 + //0x00004815 LBB1_1103 + 0x48, 0x89, 0xca, //0x00004815 movq %rcx, %rdx + 0x49, 0x89, 0xc8, //0x00004818 movq %rcx, %r8 + 0xe9, 0x50, 0xf1, 0xff, 0xff, //0x0000481b jmp LBB1_856 + //0x00004820 LBB1_1105 + 0x48, 0x8b, 0x5d, 0xd0, //0x00004820 movq $-48(%rbp), %rbx + 0x49, 0x89, 0xd8, //0x00004824 movq %rbx, %r8 + 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x00004827 jmp LBB1_1063 + //0x0000482c LBB1_1130 + 0x4c, 0x89, 0xc1, //0x0000482c movq %r8, %rcx + 0x49, 0x89, 0xcd, //0x0000482f movq %rcx, %r13 + 0x48, 0x3b, 0x4d, 0xd0, //0x00004832 cmpq $-48(%rbp), %rcx + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00004836 jb LBB1_1114 + 0xe9, 0x3e, 0x01, 0x00, 0x00, //0x0000483c jmp LBB1_1133 + //0x00004841 LBB1_1112 + 0x49, 0x89, 0xc8, //0x00004841 movq %rcx, %r8 + 0x49, 0x89, 0xcd, //0x00004844 movq %rcx, %r13 + 0x48, 0x3b, 0x4d, 0xd0, //0x00004847 cmpq $-48(%rbp), %rcx + 0x0f, 0x83, 0x2e, 0x01, 0x00, 0x00, //0x0000484b jae LBB1_1133 + //0x00004851 LBB1_1114 + 0x4d, 0x8d, 0x45, 0x01, //0x00004851 leaq $1(%r13), %r8 + 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x00004855 movzbl (%r13), %ecx + 0x80, 0xf9, 0x5c, //0x0000485a cmpb $92, %cl + 0x0f, 0x85, 0xe2, 0x00, 0x00, 0x00, //0x0000485d jne LBB1_1127 + 0x49, 0x8d, 0x4d, 0x02, //0x00004863 leaq $2(%r13), %rcx + 0x48, 0x3b, 0x4d, 0xd0, //0x00004867 cmpq $-48(%rbp), %rcx + 0x0f, 0x87, 0x17, 0x01, 0x00, 0x00, //0x0000486b ja LBB1_1135 + 0x41, 0x0f, 0xb6, 0x00, //0x00004871 movzbl (%r8), %eax + 0x3c, 0x6e, //0x00004875 cmpb $110, %al + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00004877 je LBB1_1112 + 0x3c, 0x72, //0x0000487d cmpb $114, %al + 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000487f je LBB1_1112 + 0x3c, 0x75, //0x00004885 cmpb $117, %al + 0x0f, 0x85, 0x07, 0x01, 0x00, 0x00, //0x00004887 jne LBB1_1136 + 0x48, 0x8b, 0x45, 0xd0, //0x0000488d movq $-48(%rbp), %rax + 0x48, 0x29, 0xc8, //0x00004891 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00004894 cmpq $4, %rax + 0x0f, 0x8c, 0xc1, 0x00, 0x00, 0x00, //0x00004898 jl LBB1_1131 + 0x8b, 0x11, //0x0000489e movl (%rcx), %edx + 0x89, 0xd6, //0x000048a0 movl %edx, %esi + 0xf7, 0xd6, //0x000048a2 notl %esi + 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x000048a4 leal $-808464432(%rdx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x000048aa andl $-2139062144, %esi + 0x85, 0xc6, //0x000048b0 testl %eax, %esi + 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x000048b2 jne LBB1_1131 + 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x000048b8 leal $421075225(%rdx), %eax + 0x09, 0xd0, //0x000048be orl %edx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x000048c0 testl $-2139062144, %eax + 0x0f, 0x85, 0x94, 0x00, 0x00, 0x00, //0x000048c5 jne LBB1_1131 + 0x89, 0xd0, //0x000048cb movl %edx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x000048cd andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x000048d2 movl $-1061109568, %edi + 0x29, 0xc7, //0x000048d7 subl %eax, %edi + 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x000048d9 leal $1179010630(%rax), %ebx + 0x21, 0xf7, //0x000048df andl %esi, %edi + 0x85, 0xdf, //0x000048e1 testl %ebx, %edi + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x000048e3 jne LBB1_1131 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x000048e9 movl $-522133280, %edi + 0x29, 0xc7, //0x000048ee subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x000048f0 addl $960051513, %eax + 0x21, 0xfe, //0x000048f5 andl %edi, %esi + 0x85, 0xc6, //0x000048f7 testl %eax, %esi + 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x000048f9 jne LBB1_1131 + 0x0f, 0xca, //0x000048ff bswapl %edx + 0x89, 0xd0, //0x00004901 movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x00004903 shrl $4, %eax + 0xf7, 0xd0, //0x00004906 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00004908 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x0000490d leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00004910 andl $252645135, %edx + 0x01, 0xc2, //0x00004916 addl %eax, %edx + 0x89, 0xd1, //0x00004918 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x0000491a shrl $4, %ecx + 0x09, 0xd1, //0x0000491d orl %edx, %ecx + 0x89, 0xc8, //0x0000491f movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00004921 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00004924 andl $65280, %eax + 0x89, 0xca, //0x00004929 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000492b andl $128, %edx + 0x09, 0xc2, //0x00004931 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004933 je LBB1_1126 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00004939 movl $255, %ecx + //0x0000493e LBB1_1126 + 0x49, 0x83, 0xc5, 0x06, //0x0000493e addq $6, %r13 + 0x4d, 0x89, 0xe8, //0x00004942 movq %r13, %r8 + //0x00004945 LBB1_1127 + 0x80, 0xf9, 0x0a, //0x00004945 cmpb $10, %cl + 0x0f, 0x84, 0xde, 0xfe, 0xff, 0xff, //0x00004948 je LBB1_1130 + 0x80, 0xf9, 0x0d, //0x0000494e cmpb $13, %cl + 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x00004951 je LBB1_1130 + 0x80, 0xf9, 0x3d, //0x00004957 cmpb $61, %cl + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000495a jmp LBB1_1132 + //0x0000495f LBB1_1131 + 0x49, 0x89, 0xc8, //0x0000495f movq %rcx, %r8 + //0x00004962 LBB1_1132 + 0x48, 0x8b, 0x5d, 0xd0, //0x00004962 movq $-48(%rbp), %rbx + 0xe9, 0x05, 0xf0, 0xff, 0xff, //0x00004966 jmp LBB1_856 + //0x0000496b LBB1_1110 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000496b movq $-48(%rbp), %rbx + 0x49, 0x89, 0xd0, //0x0000496f movq %rdx, %r8 + 0xe9, 0xf9, 0xef, 0xff, 0xff, //0x00004972 jmp LBB1_856 + //0x00004977 LBB1_1111 + 0x4d, 0x89, 0xe8, //0x00004977 movq %r13, %r8 + 0xe9, 0xe3, 0xff, 0xff, 0xff, //0x0000497a jmp LBB1_1132 + //0x0000497f LBB1_1133 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000497f movq $-48(%rbp), %rbx + 0xe9, 0x83, 0xfc, 0xff, 0xff, //0x00004983 jmp LBB1_1063 + //0x00004988 LBB1_1135 + 0x4d, 0x89, 0xc5, //0x00004988 movq %r8, %r13 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000498b movq $-48(%rbp), %rbx + 0xe9, 0xdc, 0xef, 0xff, 0xff, //0x0000498f jmp LBB1_856 + //0x00004994 LBB1_1136 + 0x48, 0x8b, 0x5d, 0xd0, //0x00004994 movq $-48(%rbp), %rbx + 0x49, 0x89, 0xc8, //0x00004998 movq %rcx, %r8 + 0xe9, 0xd0, 0xef, 0xff, 0xff, //0x0000499b jmp LBB1_856 + //0x000049a0 LBB1_1137 + 0x48, 0x8b, 0x45, 0xa8, //0x000049a0 movq $-88(%rbp), %rax + 0x4c, 0x29, 0xc8, //0x000049a4 subq %r9, %rax + 0x48, 0x29, 0xc8, //0x000049a7 subq %rcx, %rax + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x000049aa jmp LBB1_1139 + //0x000049af LBB1_1138 + 0x48, 0x8b, 0x4d, 0xb0, //0x000049af movq $-80(%rbp), %rcx + 0x48, 0x2b, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x000049b3 subq $-136(%rbp), %rcx + 0x48, 0x8b, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000049ba movq $-144(%rbp), %rax + 0x48, 0x01, 0x48, 0x08, //0x000049c1 addq %rcx, $8(%rax) + 0x48, 0x89, 0xc8, //0x000049c5 movq %rcx, %rax + //0x000049c8 LBB1_1139 + 0x48, 0x83, 0xc4, 0x68, //0x000049c8 addq $104, %rsp + 0x5b, //0x000049cc popq %rbx + 0x41, 0x5c, //0x000049cd popq %r12 + 0x41, 0x5d, //0x000049cf popq %r13 + 0x41, 0x5e, //0x000049d1 popq %r14 + 0x41, 0x5f, //0x000049d3 popq %r15 + 0x5d, //0x000049d5 popq %rbp + 0xc5, 0xf8, 0x77, //0x000049d6 vzeroupper + 0xc3, //0x000049d9 retq + //0x000049da LBB1_1140 + 0x48, 0x8b, 0x45, 0xa8, //0x000049da movq $-88(%rbp), %rax + 0x4c, 0x29, 0xf8, //0x000049de subq %r15, %rax + 0x48, 0x29, 0xc8, //0x000049e1 subq %rcx, %rax + 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x000049e4 jmp LBB1_1139 + //0x000049e9 LBB1_1141 + 0x48, 0x8b, 0x45, 0xa8, //0x000049e9 movq $-88(%rbp), %rax + 0x4c, 0x29, 0xe8, //0x000049ed subq %r13, %rax + 0x48, 0x29, 0xc8, //0x000049f0 subq %rcx, %rax + 0xe9, 0xd0, 0xff, 0xff, 0xff, //0x000049f3 jmp LBB1_1139 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000049f8 .p2align 4, 0x00 + //0x00004a00 _TabEncodeCharsetStd + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, //0x00004a00 QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP' + 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, //0x00004a10 QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef' + 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, //0x00004a20 QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv' + 0x77, 0x78, 0x79, 0x7a, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2f, //0x00004a30 QUAD $0x333231307a797877; QUAD $0x2f2b393837363534 // .ascii 16, 'wxyz0123456789+/' + //0x00004a40 .p2align 4, 0x00 + //0x00004a40 _VecEncodeCharsetStd + 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xed, 0xf0, 0x41, 0x00, 0x00, //0x00004a40 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x000041f0edfcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xed\xf0A\x00\x00' + 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xed, 0xf0, 0x41, 0x00, 0x00, //0x00004a50 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x000041f0edfcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xed\xf0A\x00\x00' + //0x00004a60 .p2align 4, 0x00 + //0x00004a60 _TabEncodeCharsetURL + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, //0x00004a60 QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP' + 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, //0x00004a70 QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef' + 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, //0x00004a80 QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv' + 0x77, 0x78, 0x79, 0x7a, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2d, 0x5f, //0x00004a90 QUAD $0x333231307a797877; QUAD $0x5f2d393837363534 // .ascii 16, 'wxyz0123456789-_' + //0x00004aa0 .p2align 4, 0x00 + //0x00004aa0 _VecEncodeCharsetURL + 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xef, 0x20, 0x41, 0x00, 0x00, //0x00004aa0 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x00004120effcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xef A\x00\x00' + 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xef, 0x20, 0x41, 0x00, 0x00, //0x00004ab0 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x00004120effcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xef A\x00\x00' + //0x00004ac0 .p2align 4, 0x00 + //0x00004ac0 _VecDecodeTableStd + 0x00, 0x00, 0x13, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ac0 QUAD $0xb9b9bfbf04130000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x13\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x13, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ad0 QUAD $0xb9b9bfbf04130000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x13\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' + 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x54, 0x50, 0x50, 0x50, 0x54, //0x00004ae0 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x5450505054f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0TPPPT' + 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x54, 0x50, 0x50, 0x50, 0x54, //0x00004af0 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x5450505054f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0TPPPT' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00004b00 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .ascii 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00004b10 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .ascii 16, '////////////////' + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, //0x00004b20 QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .ascii 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10' + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, //0x00004b30 QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .ascii 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10' + //0x00004b40 .p2align 4, 0x00 + //0x00004b40 _VecDecodeCharsetStd + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b40 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b50 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, 0xff, 0x3f, //0x00004b60 QUAD $0xffffffffffffffff; QUAD $0x3fffffff3effffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff\xff?' + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b70 QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff' + 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, //0x00004b80 QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b90 QUAD $0x161514131211100f; QUAD $0xffffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff\xff' + 0xff, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, //0x00004ba0 QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'(' + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bb0 QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bc0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bd0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004be0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bf0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c00 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c10 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c20 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c30 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + //0x00004c40 .p2align 4, 0x00 + //0x00004c40 _VecDecodeTableURL + 0x00, 0x00, 0x11, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c40 QUAD $0xb9b9bfbf04110000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x11\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x11, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c50 QUAD $0xb9b9bfbf04110000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x11\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' + 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x50, 0x50, 0x54, 0x50, 0x70, //0x00004c60 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x7050545050f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0PPTPp' + 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x50, 0x50, 0x54, 0x50, 0x70, //0x00004c70 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x7050545050f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0PPTPp' + 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, //0x00004c80 QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .ascii 16, '________________' + 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, //0x00004c90 QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .ascii 16, '________________' + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, //0x00004ca0 QUAD $0xe0e0e0e0e0e0e0e0; QUAD $0xe0e0e0e0e0e0e0e0 // .ascii 16, '\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0' + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, //0x00004cb0 QUAD $0xe0e0e0e0e0e0e0e0; QUAD $0xe0e0e0e0e0e0e0e0 // .ascii 16, '\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0' + //0x00004cc0 .p2align 4, 0x00 + //0x00004cc0 _VecDecodeCharsetURL + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004cc0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004cd0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, //0x00004ce0 QUAD $0xffffffffffffffff; QUAD $0xffff3effffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff' + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004cf0 QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff' + 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, //0x00004d00 QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0xff, 0xff, 0xff, 0xff, 0x3f, //0x00004d10 QUAD $0x161514131211100f; QUAD $0x3fffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff?' + 0xff, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, //0x00004d20 QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'(' + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d30 QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d40 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d50 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d60 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d70 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d80 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d90 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004da0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004db0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' +} diff --git a/vendor/github.com/chenzhuoyu/iasm/LICENSE b/vendor/github.com/chenzhuoyu/iasm/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/ast.go b/vendor/github.com/chenzhuoyu/iasm/expr/ast.go new file mode 100644 index 00000000..c9e872e2 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/expr/ast.go @@ -0,0 +1,245 @@ +package expr + +import ( + `fmt` +) + +// Type is tyep expression type. +type Type int + +const ( + // CONST indicates that the expression is a constant. + CONST Type = iota + + // TERM indicates that the expression is a Term reference. + TERM + + // EXPR indicates that the expression is a unary or binary expression. + EXPR +) + +var typeNames = map[Type]string { + EXPR : "Expr", + TERM : "Term", + CONST : "Const", +} + +// String returns the string representation of a Type. +func (self Type) String() string { + if v, ok := typeNames[self]; ok { + return v + } else { + return fmt.Sprintf("expr.Type(%d)", self) + } +} + +// Operator represents an operation to perform when Type is EXPR. +type Operator uint8 + +const ( + // ADD performs "Add Expr.Left and Expr.Right". + ADD Operator = iota + + // SUB performs "Subtract Expr.Left by Expr.Right". + SUB + + // MUL performs "Multiply Expr.Left by Expr.Right". + MUL + + // DIV performs "Divide Expr.Left by Expr.Right". + DIV + + // MOD performs "Modulo Expr.Left by Expr.Right". + MOD + + // AND performs "Bitwise AND Expr.Left and Expr.Right". + AND + + // OR performs "Bitwise OR Expr.Left and Expr.Right". + OR + + // XOR performs "Bitwise XOR Expr.Left and Expr.Right". + XOR + + // SHL performs "Bitwise Shift Expr.Left to the Left by Expr.Right Bits". + SHL + + // SHR performs "Bitwise Shift Expr.Left to the Right by Expr.Right Bits". + SHR + + // POW performs "Raise Expr.Left to the power of Expr.Right" + POW + + // NOT performs "Bitwise Invert Expr.Left". + NOT + + // NEG performs "Negate Expr.Left". + NEG +) + +var operatorNames = map[Operator]string { + ADD : "Add", + SUB : "Subtract", + MUL : "Multiply", + DIV : "Divide", + MOD : "Modulo", + AND : "And", + OR : "Or", + XOR : "ExclusiveOr", + SHL : "ShiftLeft", + SHR : "ShiftRight", + POW : "Power", + NOT : "Invert", + NEG : "Negate", +} + +// String returns the string representation of a Type. +func (self Operator) String() string { + if v, ok := operatorNames[self]; ok { + return v + } else { + return fmt.Sprintf("expr.Operator(%d)", self) + } +} + +// Expr represents an expression node. +type Expr struct { + Type Type + Term Term + Op Operator + Left *Expr + Right *Expr + Const int64 +} + +// Ref creates an expression from a Term. +func Ref(t Term) (p *Expr) { + p = newExpression() + p.Term = t + p.Type = TERM + return +} + +// Int creates an expression from an integer. +func Int(v int64) (p *Expr) { + p = newExpression() + p.Type = CONST + p.Const = v + return +} + +func (self *Expr) clear() { + if self.Term != nil { self.Term.Free() } + if self.Left != nil { self.Left.Free() } + if self.Right != nil { self.Right.Free() } +} + +// Free returns the Expr into pool. +// Any operation performed after Free is undefined behavior. +func (self *Expr) Free() { + self.clear() + freeExpression(self) +} + +// Evaluate evaluates the expression into an integer. +// It also implements the Term interface. +func (self *Expr) Evaluate() (int64, error) { + switch self.Type { + case EXPR : return self.eval() + case TERM : return self.Term.Evaluate() + case CONST : return self.Const, nil + default : panic("invalid expression type: " + self.Type.String()) + } +} + +/** Expression Combinator **/ + +func combine(a *Expr, op Operator, b *Expr) (r *Expr) { + r = newExpression() + r.Op = op + r.Type = EXPR + r.Left = a + r.Right = b + return +} + +func (self *Expr) Add(v *Expr) *Expr { return combine(self, ADD, v) } +func (self *Expr) Sub(v *Expr) *Expr { return combine(self, SUB, v) } +func (self *Expr) Mul(v *Expr) *Expr { return combine(self, MUL, v) } +func (self *Expr) Div(v *Expr) *Expr { return combine(self, DIV, v) } +func (self *Expr) Mod(v *Expr) *Expr { return combine(self, MOD, v) } +func (self *Expr) And(v *Expr) *Expr { return combine(self, AND, v) } +func (self *Expr) Or (v *Expr) *Expr { return combine(self, OR , v) } +func (self *Expr) Xor(v *Expr) *Expr { return combine(self, XOR, v) } +func (self *Expr) Shl(v *Expr) *Expr { return combine(self, SHL, v) } +func (self *Expr) Shr(v *Expr) *Expr { return combine(self, SHR, v) } +func (self *Expr) Pow(v *Expr) *Expr { return combine(self, POW, v) } +func (self *Expr) Not() *Expr { return combine(self, NOT, nil) } +func (self *Expr) Neg() *Expr { return combine(self, NEG, nil) } + +/** Expression Evaluator **/ + +var binaryEvaluators = [256]func(int64, int64) (int64, error) { + ADD: func(a, b int64) (int64, error) { return a + b, nil }, + SUB: func(a, b int64) (int64, error) { return a - b, nil }, + MUL: func(a, b int64) (int64, error) { return a * b, nil }, + DIV: idiv, + MOD: imod, + AND: func(a, b int64) (int64, error) { return a & b, nil }, + OR: func(a, b int64) (int64, error) { return a | b, nil }, + XOR: func(a, b int64) (int64, error) { return a ^ b, nil }, + SHL: func(a, b int64) (int64, error) { return a << b, nil }, + SHR: func(a, b int64) (int64, error) { return a >> b, nil }, + POW: ipow, +} + +func (self *Expr) eval() (int64, error) { + var lhs int64 + var rhs int64 + var err error + var vfn func(int64, int64) (int64, error) + + /* evaluate LHS */ + if lhs, err = self.Left.Evaluate(); err != nil { + return 0, err + } + + /* check for unary operators */ + switch self.Op { + case NOT: return self.unaryNot(lhs) + case NEG: return self.unaryNeg(lhs) + } + + /* check for operators */ + if vfn = binaryEvaluators[self.Op]; vfn == nil { + panic("invalid operator: " + self.Op.String()) + } + + /* must be a binary expression */ + if self.Right == nil { + panic("operator " + self.Op.String() + " is a binary operator") + } + + /* evaluate RHS, and call the operator */ + if rhs, err = self.Right.Evaluate(); err != nil { + return 0, err + } else { + return vfn(lhs, rhs) + } +} + +func (self *Expr) unaryNot(v int64) (int64, error) { + if self.Right == nil { + return ^v, nil + } else { + panic("operator Invert is an unary operator") + } +} + +func (self *Expr) unaryNeg(v int64) (int64, error) { + if self.Right == nil { + return -v, nil + } else { + panic("operator Negate is an unary operator") + } +} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/errors.go b/vendor/github.com/chenzhuoyu/iasm/expr/errors.go new file mode 100644 index 00000000..7f4f7b5c --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/expr/errors.go @@ -0,0 +1,37 @@ +package expr + +import ( + `fmt` +) + +// SyntaxError represents a syntax error in the expression. +type SyntaxError struct { + Pos int + Reason string +} + +func newSyntaxError(pos int, reason string) *SyntaxError { + return &SyntaxError { + Pos : pos, + Reason : reason, + } +} + +func (self *SyntaxError) Error() string { + return fmt.Sprintf("Syntax error at position %d: %s", self.Pos, self.Reason) +} + +// RuntimeError is an error which would occure at run time. +type RuntimeError struct { + Reason string +} + +func newRuntimeError(reason string) *RuntimeError { + return &RuntimeError { + Reason: reason, + } +} + +func (self *RuntimeError) Error() string { + return "Runtime error: " + self.Reason +} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/ops.go b/vendor/github.com/chenzhuoyu/iasm/expr/ops.go new file mode 100644 index 00000000..860be87d --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/expr/ops.go @@ -0,0 +1,51 @@ +package expr + +import ( + `fmt` +) + +func idiv(v int64, d int64) (int64, error) { + if d != 0 { + return v / d, nil + } else { + return 0, newRuntimeError("division by zero") + } +} + +func imod(v int64, d int64) (int64, error) { + if d != 0 { + return v % d, nil + } else { + return 0, newRuntimeError("division by zero") + } +} + +func ipow(v int64, e int64) (int64, error) { + mul := v + ret := int64(1) + + /* value must be 0 or positive */ + if v < 0 { + return 0, newRuntimeError(fmt.Sprintf("negative base value: %d", v)) + } + + /* exponent must be non-negative */ + if e < 0 { + return 0, newRuntimeError(fmt.Sprintf("negative exponent: %d", e)) + } + + /* fast power first round */ + if (e & 1) != 0 { + ret *= mul + } + + /* fast power remaining rounds */ + for e >>= 1; e != 0; e >>= 1 { + if mul *= mul; (e & 1) != 0 { + ret *= mul + } + } + + /* all done */ + return ret, nil +} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/parser.go b/vendor/github.com/chenzhuoyu/iasm/expr/parser.go new file mode 100644 index 00000000..6022f007 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/expr/parser.go @@ -0,0 +1,313 @@ +package expr + +import ( + `strconv` + `unicode` + `unsafe` +) + +type _TokenKind uint8 + +const ( + _T_end _TokenKind = iota + 1 + _T_int + _T_punc + _T_name +) + +const ( + _OP2 = 0x80 + _POW = _OP2 | '*' + _SHL = _OP2 | '<' + _SHR = _OP2 | '>' +) + +type _Slice struct { + p unsafe.Pointer + n int + c int +} + +type _Token struct { + pos int + ptr *rune + u64 uint64 + tag _TokenKind +} + +func (self _Token) str() (v string) { + return string(self.rbuf()) +} + +func (self _Token) rbuf() (v []rune) { + (*_Slice)(unsafe.Pointer(&v)).c = int(self.u64) + (*_Slice)(unsafe.Pointer(&v)).n = int(self.u64) + (*_Slice)(unsafe.Pointer(&v)).p = unsafe.Pointer(self.ptr) + return +} + +func tokenEnd(p int) _Token { + return _Token { + pos: p, + tag: _T_end, + } +} + +func tokenInt(p int, v uint64) _Token { + return _Token { + pos: p, + u64: v, + tag: _T_int, + } +} + +func tokenPunc(p int, v rune) _Token { + return _Token { + pos: p, + tag: _T_punc, + u64: uint64(v), + } +} + +func tokenName(p int, v []rune) _Token { + return _Token { + pos: p, + ptr: &v[0], + tag: _T_name, + u64: uint64(len(v)), + } +} + +// Repository represents a repository of Term's. +type Repository interface { + Get(name string) (Term, error) +} + +// Parser parses an expression string to it's AST representation. +type Parser struct { + pos int + src []rune +} + +var binaryOps = [...]func(*Expr, *Expr) *Expr { + '+' : (*Expr).Add, + '-' : (*Expr).Sub, + '*' : (*Expr).Mul, + '/' : (*Expr).Div, + '%' : (*Expr).Mod, + '&' : (*Expr).And, + '^' : (*Expr).Xor, + '|' : (*Expr).Or, + _SHL : (*Expr).Shl, + _SHR : (*Expr).Shr, + _POW : (*Expr).Pow, +} + +var precedence = [...]map[int]bool { + {_SHL: true, _SHR: true}, + {'|' : true}, + {'^' : true}, + {'&' : true}, + {'+' : true, '-': true}, + {'*' : true, '/': true, '%': true}, + {_POW: true}, +} + +func (self *Parser) ch() rune { + return self.src[self.pos] +} + +func (self *Parser) eof() bool { + return self.pos >= len(self.src) +} + +func (self *Parser) rch() (v rune) { + v, self.pos = self.src[self.pos], self.pos + 1 + return +} + +func (self *Parser) hex(ss []rune) bool { + if len(ss) == 1 && ss[0] == '0' { + return unicode.ToLower(self.ch()) == 'x' + } else if len(ss) <= 1 || unicode.ToLower(ss[1]) != 'x' { + return unicode.IsDigit(self.ch()) + } else { + return ishexdigit(self.ch()) + } +} + +func (self *Parser) int(p int, ss []rune) (_Token, error) { + var err error + var val uint64 + + /* find all the digits */ + for !self.eof() && self.hex(ss) { + ss = append(ss, self.rch()) + } + + /* parse the value */ + if val, err = strconv.ParseUint(string(ss), 0, 64); err != nil { + return _Token{}, err + } else { + return tokenInt(p, val), nil + } +} + +func (self *Parser) name(p int, ss []rune) _Token { + for !self.eof() && isident(self.ch()) { ss = append(ss, self.rch()) } + return tokenName(p, ss) +} + +func (self *Parser) read(p int, ch rune) (_Token, error) { + if isdigit(ch) { + return self.int(p, []rune { ch }) + } else if isident0(ch) { + return self.name(p, []rune { ch }), nil + } else if isop2ch(ch) && !self.eof() && self.ch() == ch { + return tokenPunc(p, _OP2 | self.rch()), nil + } else if isop1ch(ch) { + return tokenPunc(p, ch), nil + } else { + return _Token{}, newSyntaxError(self.pos, "invalid character " + strconv.QuoteRuneToASCII(ch)) + } +} + +func (self *Parser) next() (_Token, error) { + for { + var p int + var c rune + + /* check for EOF */ + if self.eof() { + return tokenEnd(self.pos), nil + } + + /* read the next char */ + p = self.pos + c = self.rch() + + /* parse the token if not a space */ + if !unicode.IsSpace(c) { + return self.read(p, c) + } + } +} + +func (self *Parser) grab(tk _Token, repo Repository) (*Expr, error) { + if repo == nil { + return nil, newSyntaxError(tk.pos, "unresolved symbol: " + tk.str()) + } else if term, err := repo.Get(tk.str()); err != nil { + return nil, err + } else { + return Ref(term), nil + } +} + +func (self *Parser) nest(nest int, repo Repository) (*Expr, error) { + var err error + var ret *Expr + var ntk _Token + + /* evaluate the nested expression */ + if ret, err = self.expr(0, nest + 1, repo); err != nil { + return nil, err + } + + /* must follows with a ')' */ + if ntk, err = self.next(); err != nil { + return nil, err + } else if ntk.tag != _T_punc || ntk.u64 != ')' { + return nil, newSyntaxError(ntk.pos, "')' expected") + } else { + return ret, nil + } +} + +func (self *Parser) unit(nest int, repo Repository) (*Expr, error) { + if tk, err := self.next(); err != nil { + return nil, err + } else if tk.tag == _T_int { + return Int(int64(tk.u64)), nil + } else if tk.tag == _T_name { + return self.grab(tk, repo) + } else if tk.tag == _T_punc && tk.u64 == '(' { + return self.nest(nest, repo) + } else if tk.tag == _T_punc && tk.u64 == '+' { + return self.unit(nest, repo) + } else if tk.tag == _T_punc && tk.u64 == '-' { + return neg2(self.unit(nest, repo)) + } else if tk.tag == _T_punc && tk.u64 == '~' { + return not2(self.unit(nest, repo)) + } else { + return nil, newSyntaxError(tk.pos, "integer, unary operator or nested expression expected") + } +} + +func (self *Parser) term(prec int, nest int, repo Repository) (*Expr, error) { + var err error + var val *Expr + + /* parse the LHS operand */ + if val, err = self.expr(prec + 1, nest, repo); err != nil { + return nil, err + } + + /* parse all the operators of the same precedence */ + for { + var op int + var rv *Expr + var tk _Token + + /* peek the next token */ + pp := self.pos + tk, err = self.next() + + /* check for errors */ + if err != nil { + return nil, err + } + + /* encountered EOF */ + if tk.tag == _T_end { + return val, nil + } + + /* must be an operator */ + if tk.tag != _T_punc { + return nil, newSyntaxError(tk.pos, "operators expected") + } + + /* check for the operator precedence */ + if op = int(tk.u64); !precedence[prec][op] { + self.pos = pp + return val, nil + } + + /* evaluate the RHS operand, and combine the value */ + if rv, err = self.expr(prec + 1, nest, repo); err != nil { + return nil, err + } else { + val = binaryOps[op](val, rv) + } + } +} + +func (self *Parser) expr(prec int, nest int, repo Repository) (*Expr, error) { + if prec >= len(precedence) { + return self.unit(nest, repo) + } else { + return self.term(prec, nest, repo) + } +} + +// Parse parses the expression, and returns it's AST tree. +func (self *Parser) Parse(repo Repository) (*Expr, error) { + return self.expr(0, 0, repo) +} + +// SetSource resets the expression parser and sets the expression source. +func (self *Parser) SetSource(src string) *Parser { + self.pos = 0 + self.src = []rune(src) + return self +} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/pools.go b/vendor/github.com/chenzhuoyu/iasm/expr/pools.go new file mode 100644 index 00000000..fde422ee --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/expr/pools.go @@ -0,0 +1,26 @@ +package expr + +import ( + `sync` +) + +var ( + expressionPool sync.Pool +) + +func newExpression() *Expr { + if v := expressionPool.Get(); v == nil { + return new(Expr) + } else { + return resetExpression(v.(*Expr)) + } +} + +func freeExpression(p *Expr) { + expressionPool.Put(p) +} + +func resetExpression(p *Expr) *Expr { + *p = Expr{} + return p +} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/term.go b/vendor/github.com/chenzhuoyu/iasm/expr/term.go new file mode 100644 index 00000000..110bcebd --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/expr/term.go @@ -0,0 +1,7 @@ +package expr + +// Term represents a value that can Evaluate() into an integer. +type Term interface { + Free() + Evaluate() (int64, error) +} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/utils.go b/vendor/github.com/chenzhuoyu/iasm/expr/utils.go new file mode 100644 index 00000000..03a98b85 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/expr/utils.go @@ -0,0 +1,61 @@ +package expr + +var op1ch = [...]bool { + '+': true, + '-': true, + '*': true, + '/': true, + '%': true, + '&': true, + '|': true, + '^': true, + '~': true, + '(': true, + ')': true, +} + +var op2ch = [...]bool { + '*': true, + '<': true, + '>': true, +} + +func neg2(v *Expr, err error) (*Expr, error) { + if err != nil { + return nil, err + } else { + return v.Neg(), nil + } +} + +func not2(v *Expr, err error) (*Expr, error) { + if err != nil { + return nil, err + } else { + return v.Not(), nil + } +} + +func isop1ch(ch rune) bool { + return ch >= 0 && int(ch) < len(op1ch) && op1ch[ch] +} + +func isop2ch(ch rune) bool { + return ch >= 0 && int(ch) < len(op2ch) && op2ch[ch] +} + +func isdigit(ch rune) bool { + return ch >= '0' && ch <= '9' +} + +func isident(ch rune) bool { + return isdigit(ch) || isident0(ch) +} + +func isident0(ch rune) bool { + return (ch == '_') || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') +} + +func ishexdigit(ch rune) bool { + return isdigit(ch) || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F') +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/arch.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/arch.go new file mode 100644 index 00000000..c427c8c0 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/arch.go @@ -0,0 +1,235 @@ +package x86_64 + +import ( + `fmt` +) + +// ISA represents an extension to x86-64 instruction set. +type ISA uint64 + +const ( + ISA_CPUID ISA = 1 << iota + ISA_RDTSC + ISA_RDTSCP + ISA_CMOV + ISA_MOVBE + ISA_POPCNT + ISA_LZCNT + ISA_TBM + ISA_BMI + ISA_BMI2 + ISA_ADX + ISA_MMX + ISA_MMX_PLUS + ISA_FEMMS + ISA_3DNOW + ISA_3DNOW_PLUS + ISA_SSE + ISA_SSE2 + ISA_SSE3 + ISA_SSSE3 + ISA_SSE4A + ISA_SSE4_1 + ISA_SSE4_2 + ISA_FMA3 + ISA_FMA4 + ISA_XOP + ISA_F16C + ISA_AVX + ISA_AVX2 + ISA_AVX512F + ISA_AVX512BW + ISA_AVX512DQ + ISA_AVX512VL + ISA_AVX512PF + ISA_AVX512ER + ISA_AVX512CD + ISA_AVX512VBMI + ISA_AVX512IFMA + ISA_AVX512VPOPCNTDQ + ISA_AVX512_4VNNIW + ISA_AVX512_4FMAPS + ISA_PREFETCH + ISA_PREFETCHW + ISA_PREFETCHWT1 + ISA_CLFLUSH + ISA_CLFLUSHOPT + ISA_CLWB + ISA_CLZERO + ISA_RDRAND + ISA_RDSEED + ISA_PCLMULQDQ + ISA_AES + ISA_SHA + ISA_MONITOR + ISA_MONITORX + ISA_ALL = ^ISA(0) +) + +var _ISA_NAMES = map[ISA]string { + ISA_CPUID : "CPUID", + ISA_RDTSC : "RDTSC", + ISA_RDTSCP : "RDTSCP", + ISA_CMOV : "CMOV", + ISA_MOVBE : "MOVBE", + ISA_POPCNT : "POPCNT", + ISA_LZCNT : "LZCNT", + ISA_TBM : "TBM", + ISA_BMI : "BMI", + ISA_BMI2 : "BMI2", + ISA_ADX : "ADX", + ISA_MMX : "MMX", + ISA_MMX_PLUS : "MMX+", + ISA_FEMMS : "FEMMS", + ISA_3DNOW : "3dnow!", + ISA_3DNOW_PLUS : "3dnow!+", + ISA_SSE : "SSE", + ISA_SSE2 : "SSE2", + ISA_SSE3 : "SSE3", + ISA_SSSE3 : "SSSE3", + ISA_SSE4A : "SSE4A", + ISA_SSE4_1 : "SSE4.1", + ISA_SSE4_2 : "SSE4.2", + ISA_FMA3 : "FMA3", + ISA_FMA4 : "FMA4", + ISA_XOP : "XOP", + ISA_F16C : "F16C", + ISA_AVX : "AVX", + ISA_AVX2 : "AVX2", + ISA_AVX512F : "AVX512F", + ISA_AVX512BW : "AVX512BW", + ISA_AVX512DQ : "AVX512DQ", + ISA_AVX512VL : "AVX512VL", + ISA_AVX512PF : "AVX512PF", + ISA_AVX512ER : "AVX512ER", + ISA_AVX512CD : "AVX512CD", + ISA_AVX512VBMI : "AVX512VBMI", + ISA_AVX512IFMA : "AVX512IFMA", + ISA_AVX512VPOPCNTDQ : "AVX512VPOPCNTDQ", + ISA_AVX512_4VNNIW : "AVX512_4VNNIW", + ISA_AVX512_4FMAPS : "AVX512_4FMAPS", + ISA_PREFETCH : "PREFETCH", + ISA_PREFETCHW : "PREFETCHW", + ISA_PREFETCHWT1 : "PREFETCHWT1", + ISA_CLFLUSH : "CLFLUSH", + ISA_CLFLUSHOPT : "CLFLUSHOPT", + ISA_CLWB : "CLWB", + ISA_CLZERO : "CLZERO", + ISA_RDRAND : "RDRAND", + ISA_RDSEED : "RDSEED", + ISA_PCLMULQDQ : "PCLMULQDQ", + ISA_AES : "AES", + ISA_SHA : "SHA", + ISA_MONITOR : "MONITOR", + ISA_MONITORX : "MONITORX", +} + +var _ISA_MAPPING = map[string]ISA { + "CPUID" : ISA_CPUID, + "RDTSC" : ISA_RDTSC, + "RDTSCP" : ISA_RDTSCP, + "CMOV" : ISA_CMOV, + "MOVBE" : ISA_MOVBE, + "POPCNT" : ISA_POPCNT, + "LZCNT" : ISA_LZCNT, + "TBM" : ISA_TBM, + "BMI" : ISA_BMI, + "BMI2" : ISA_BMI2, + "ADX" : ISA_ADX, + "MMX" : ISA_MMX, + "MMX+" : ISA_MMX_PLUS, + "FEMMS" : ISA_FEMMS, + "3dnow!" : ISA_3DNOW, + "3dnow!+" : ISA_3DNOW_PLUS, + "SSE" : ISA_SSE, + "SSE2" : ISA_SSE2, + "SSE3" : ISA_SSE3, + "SSSE3" : ISA_SSSE3, + "SSE4A" : ISA_SSE4A, + "SSE4.1" : ISA_SSE4_1, + "SSE4.2" : ISA_SSE4_2, + "FMA3" : ISA_FMA3, + "FMA4" : ISA_FMA4, + "XOP" : ISA_XOP, + "F16C" : ISA_F16C, + "AVX" : ISA_AVX, + "AVX2" : ISA_AVX2, + "AVX512F" : ISA_AVX512F, + "AVX512BW" : ISA_AVX512BW, + "AVX512DQ" : ISA_AVX512DQ, + "AVX512VL" : ISA_AVX512VL, + "AVX512PF" : ISA_AVX512PF, + "AVX512ER" : ISA_AVX512ER, + "AVX512CD" : ISA_AVX512CD, + "AVX512VBMI" : ISA_AVX512VBMI, + "AVX512IFMA" : ISA_AVX512IFMA, + "AVX512VPOPCNTDQ" : ISA_AVX512VPOPCNTDQ, + "AVX512_4VNNIW" : ISA_AVX512_4VNNIW, + "AVX512_4FMAPS" : ISA_AVX512_4FMAPS, + "PREFETCH" : ISA_PREFETCH, + "PREFETCHW" : ISA_PREFETCHW, + "PREFETCHWT1" : ISA_PREFETCHWT1, + "CLFLUSH" : ISA_CLFLUSH, + "CLFLUSHOPT" : ISA_CLFLUSHOPT, + "CLWB" : ISA_CLWB, + "CLZERO" : ISA_CLZERO, + "RDRAND" : ISA_RDRAND, + "RDSEED" : ISA_RDSEED, + "PCLMULQDQ" : ISA_PCLMULQDQ, + "AES" : ISA_AES, + "SHA" : ISA_SHA, + "MONITOR" : ISA_MONITOR, + "MONITORX" : ISA_MONITORX, +} + +func (self ISA) String() string { + if v, ok := _ISA_NAMES[self]; ok { + return v + } else { + return fmt.Sprintf("(invalid: %#x)", uint64(self)) + } +} + +// ParseISA parses name into ISA, it will panic if the name is invalid. +func ParseISA(name string) ISA { + if v, ok := _ISA_MAPPING[name]; ok { + return v + } else { + panic("invalid ISA name: " + name) + } +} + +// Arch represents the x86_64 architecture. +type Arch struct { + isa ISA +} + +// DefaultArch is the default architecture with all ISA enabled. +var DefaultArch = CreateArch() + +// CreateArch creates a new Arch with all ISA enabled. +func CreateArch() *Arch { + return new(Arch).EnableISA(ISA_ALL) +} + +// HasISA checks if a particular ISA was enabled. +func (self *Arch) HasISA(isa ISA) bool { + return (self.isa & isa) != 0 +} + +// EnableISA enables a particular ISA. +func (self *Arch) EnableISA(isa ISA) *Arch { + self.isa |= isa + return self +} + +// DisableISA disables a particular ISA. +func (self *Arch) DisableISA(isa ISA) *Arch { + self.isa &^= isa + return self +} + +// CreateProgram creates a new empty program. +func (self *Arch) CreateProgram() *Program { + return newProgram(self) +} diff --git a/vendor/github.com/bytedance/sonic/internal/loader/asm.s b/vendor/github.com/chenzhuoyu/iasm/x86_64/asm.s similarity index 100% rename from vendor/github.com/bytedance/sonic/internal/loader/asm.s rename to vendor/github.com/chenzhuoyu/iasm/x86_64/asm.s diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler.go new file mode 100644 index 00000000..b33a586b --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler.go @@ -0,0 +1,1803 @@ +package x86_64 + +import ( + `bytes` + `errors` + `fmt` + `math` + `strconv` + `strings` + `unicode` + + `github.com/chenzhuoyu/iasm/expr` +) + +type ( + _TokenKind int + _Punctuation int +) + +const ( + _T_end _TokenKind = iota + 1 + _T_int + _T_name + _T_punc + _T_space +) + +const ( + _P_plus _Punctuation = iota + 1 + _P_minus + _P_star + _P_slash + _P_percent + _P_amp + _P_bar + _P_caret + _P_shl + _P_shr + _P_tilde + _P_lbrk + _P_rbrk + _P_dot + _P_comma + _P_colon + _P_dollar + _P_hash +) + +var _PUNC_NAME = map[_Punctuation]string { + _P_plus : "+", + _P_minus : "-", + _P_star : "*", + _P_slash : "/", + _P_percent : "%", + _P_amp : "&", + _P_bar : "|", + _P_caret : "^", + _P_shl : "<<", + _P_shr : ">>", + _P_tilde : "~", + _P_lbrk : "(", + _P_rbrk : ")", + _P_dot : ".", + _P_comma : ",", + _P_colon : ":", + _P_dollar : "$", + _P_hash : "#", +} + +func (self _Punctuation) String() string { + if v, ok := _PUNC_NAME[self]; ok { + return v + } else { + return fmt.Sprintf("_Punctuation(%d)", self) + } +} + +type _Token struct { + pos int + end int + u64 uint64 + str string + tag _TokenKind +} + +func (self *_Token) punc() _Punctuation { + return _Punctuation(self.u64) +} + +func (self *_Token) String() string { + switch self.tag { + case _T_end : return "" + case _T_int : return fmt.Sprintf("", self.u64) + case _T_punc : return fmt.Sprintf("", _Punctuation(self.u64)) + case _T_name : return fmt.Sprintf("", strconv.QuoteToASCII(self.str)) + case _T_space : return "" + default : return fmt.Sprintf("", self.tag, self.u64, strconv.QuoteToASCII(self.str)) + } +} + +func tokenEnd(p int, end int) _Token { + return _Token { + pos: p, + end: end, + tag: _T_end, + } +} + +func tokenInt(p int, val uint64) _Token { + return _Token { + pos: p, + u64: val, + tag: _T_int, + } +} + +func tokenName(p int, name string) _Token { + return _Token { + pos: p, + str: name, + tag: _T_name, + } +} + +func tokenPunc(p int, punc _Punctuation) _Token { + return _Token { + pos: p, + tag: _T_punc, + u64: uint64(punc), + } +} + +func tokenSpace(p int, end int) _Token { + return _Token { + pos: p, + end: end, + tag: _T_space, + } +} + +// SyntaxError represents an error in the assembly syntax. +type SyntaxError struct { + Pos int + Row int + Src []rune + Reason string +} + +// Error implements the error interface. +func (self *SyntaxError) Error() string { + if self.Pos < 0 { + return fmt.Sprintf("%s at line %d", self.Reason, self.Row) + } else { + return fmt.Sprintf("%s at %d:%d", self.Reason, self.Row, self.Pos + 1) + } +} + +type _Tokenizer struct { + pos int + row int + src []rune +} + +func (self *_Tokenizer) ch() rune { + return self.src[self.pos] +} + +func (self *_Tokenizer) eof() bool { + return self.pos >= len(self.src) +} + +func (self *_Tokenizer) rch() (ret rune) { + ret, self.pos = self.src[self.pos], self.pos + 1 + return +} + +func (self *_Tokenizer) err(pos int, msg string) *SyntaxError { + return &SyntaxError { + Pos : pos, + Row : self.row, + Src : self.src, + Reason : msg, + } +} + +type _TrimState int + +const ( + _TS_normal _TrimState = iota + _TS_slcomm + _TS_hscomm + _TS_string + _TS_escape + _TS_accept + _TS_nolast +) + +func (self *_Tokenizer) init(src string) { + var i int + var ch rune + var st _TrimState + + /* set the source */ + self.pos = 0 + self.src = []rune(src) + + /* remove commends, including "//" and "##" */ + loop: for i, ch = range self.src { + switch { + case st == _TS_normal && ch == '/' : st = _TS_slcomm + case st == _TS_normal && ch == '"' : st = _TS_string + case st == _TS_normal && ch == ';' : st = _TS_accept; break loop + case st == _TS_normal && ch == '#' : st = _TS_hscomm + case st == _TS_slcomm && ch == '/' : st = _TS_nolast; break loop + case st == _TS_slcomm : st = _TS_normal + case st == _TS_hscomm && ch == '#' : st = _TS_nolast; break loop + case st == _TS_hscomm : st = _TS_normal + case st == _TS_string && ch == '"' : st = _TS_normal + case st == _TS_string && ch == '\\' : st = _TS_escape + case st == _TS_escape : st = _TS_string + } + } + + /* check for errors */ + switch st { + case _TS_accept: self.src = self.src[:i] + case _TS_nolast: self.src = self.src[:i - 1] + case _TS_string: panic(self.err(i, "string is not terminated")) + case _TS_escape: panic(self.err(i, "escape sequence is not terminated")) + } +} + +func (self *_Tokenizer) skip(check func(v rune) bool) { + for !self.eof() && check(self.ch()) { + self.pos++ + } +} + +func (self *_Tokenizer) find(pos int, check func(v rune) bool) string { + self.skip(check) + return string(self.src[pos:self.pos]) +} + +func (self *_Tokenizer) chrv(p int) _Token { + var err error + var val uint64 + + /* starting and ending position */ + p0 := p + 1 + p1 := p0 + 1 + + /* find the end of the literal */ + for p1 < len(self.src) && self.src[p1] != '\'' { + if p1++; self.src[p1 - 1] == '\\' { + p1++ + } + } + + /* empty literal */ + if p1 == p0 { + panic(self.err(p1, "empty character constant")) + } + + /* check for EOF */ + if p1 == len(self.src) { + panic(self.err(p1, "unexpected EOF when scanning literals")) + } + + /* parse the literal */ + if val, err = literal64(string(self.src[p0:p1])); err != nil { + panic(self.err(p0, "cannot parse literal: " + err.Error())) + } + + /* skip the closing '\'' */ + self.pos = p1 + 1 + return tokenInt(p, val) +} + +func (self *_Tokenizer) numv(p int) _Token { + if val, err := strconv.ParseUint(self.find(p, isnumber), 0, 64); err != nil { + panic(self.err(p, "invalid immediate value: " + err.Error())) + } else { + return tokenInt(p, val) + } +} + +func (self *_Tokenizer) defv(p int, cc rune) _Token { + if isdigit(cc) { + return self.numv(p) + } else if isident0(cc) { + return tokenName(p, self.find(p, isident)) + } else { + panic(self.err(p, "invalid char: " + strconv.QuoteRune(cc))) + } +} + +func (self *_Tokenizer) rep2(p int, pp _Punctuation, cc rune) _Token { + if self.eof() { + panic(self.err(self.pos, "unexpected EOF when scanning operators")) + } else if c := self.rch(); c != cc { + panic(self.err(p + 1, strconv.QuoteRune(cc) + " expected, got " + strconv.QuoteRune(c))) + } else { + return tokenPunc(p, pp) + } +} + +func (self *_Tokenizer) read() _Token { + var p int + var c rune + var t _Token + + /* check for EOF */ + if self.eof() { + return tokenEnd(self.pos, self.pos) + } + + /* skip spaces as needed */ + if p = self.pos; unicode.IsSpace(self.src[p]) { + self.skip(unicode.IsSpace) + return tokenSpace(p, self.pos) + } + + /* check for line comments */ + if p = self.pos; p < len(self.src) - 1 && self.src[p] == '/' && self.src[p + 1] == '/' { + self.pos = len(self.src) + return tokenEnd(p, self.pos) + } + + /* read the next character */ + p = self.pos + c = self.rch() + + /* parse the next character */ + switch c { + case '+' : t = tokenPunc(p, _P_plus) + case '-' : t = tokenPunc(p, _P_minus) + case '*' : t = tokenPunc(p, _P_star) + case '/' : t = tokenPunc(p, _P_slash) + case '%' : t = tokenPunc(p, _P_percent) + case '&' : t = tokenPunc(p, _P_amp) + case '|' : t = tokenPunc(p, _P_bar) + case '^' : t = tokenPunc(p, _P_caret) + case '<' : t = self.rep2(p, _P_shl, '<') + case '>' : t = self.rep2(p, _P_shr, '>') + case '~' : t = tokenPunc(p, _P_tilde) + case '(' : t = tokenPunc(p, _P_lbrk) + case ')' : t = tokenPunc(p, _P_rbrk) + case '.' : t = tokenPunc(p, _P_dot) + case ',' : t = tokenPunc(p, _P_comma) + case ':' : t = tokenPunc(p, _P_colon) + case '$' : t = tokenPunc(p, _P_dollar) + case '#' : t = tokenPunc(p, _P_hash) + case '\'' : t = self.chrv(p) + default : t = self.defv(p, c) + } + + /* mark the end of token */ + t.end = self.pos + return t +} + +func (self *_Tokenizer) next() (tk _Token) { + for { + if tk = self.read(); tk.tag != _T_space { + return + } + } +} + +// LabelKind indicates the type of label reference. +type LabelKind int + +// OperandKind indicates the type of the operand. +type OperandKind int + +// InstructionPrefix indicates the prefix bytes prepended to the instruction. +type InstructionPrefix byte + +const ( + // OpImm means the operand is an immediate value. + OpImm OperandKind = 1 << iota + + // OpReg means the operand is a register. + OpReg + + // OpMem means the operand is a memory address. + OpMem + + // OpLabel means the operand is a label, specifically for + // branch instructions. + OpLabel +) + +const ( + // Declaration means the label is a declaration. + Declaration LabelKind = iota + 1 + + // BranchTarget means the label should be treated as a branch target. + BranchTarget + + // RelativeAddress means the label should be treated as a reference to + // the code section (e.g. RIP-relative addressing). + RelativeAddress +) + +const ( + // PrefixLock causes the processor's LOCK# signal to be asserted during execution of + // the accompanying instruction (turns the instruction into an atomic instruction). + // In a multiprocessor environment, the LOCK# signal insures that the processor + // has exclusive use of any shared memory while the signal is asserted. + PrefixLock InstructionPrefix = iota + + // PrefixSegmentCS overrides the memory operation of this instruction to CS (Code Segment). + PrefixSegmentCS + + // PrefixSegmentDS overrides the memory operation of this instruction to DS (Data Segment), + // this is the default section for most instructions if not specified. + PrefixSegmentDS + + // PrefixSegmentES overrides the memory operation of this instruction to ES (Extra Segment). + PrefixSegmentES + + // PrefixSegmentFS overrides the memory operation of this instruction to FS. + PrefixSegmentFS + + // PrefixSegmentGS overrides the memory operation of this instruction to GS. + PrefixSegmentGS + + // PrefixSegmentSS overrides the memory operation of this instruction to SS (Stack Segment). + PrefixSegmentSS +) + +// ParsedLabel represents a label in the source, either a jump target or +// an RIP-relative addressing. +type ParsedLabel struct { + Name string + Kind LabelKind +} + +// ParsedOperand represents an operand of an instruction in the source. +type ParsedOperand struct { + Op OperandKind + Imm int64 + Reg Register + Label ParsedLabel + Memory MemoryAddress +} + +// ParsedInstruction represents an instruction in the source. +type ParsedInstruction struct { + Mnemonic string + Operands []ParsedOperand + Prefixes []InstructionPrefix +} + +func (self *ParsedInstruction) imm(v int64) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpImm, + Imm : v, + }) +} + +func (self *ParsedInstruction) reg(v Register) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpReg, + Reg : v, + }) +} + +func (self *ParsedInstruction) mem(v MemoryAddress) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpMem, + Memory : v, + }) +} + +func (self *ParsedInstruction) target(v string) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpLabel, + Label : ParsedLabel { + Name: v, + Kind: BranchTarget, + }, + }) +} + +func (self *ParsedInstruction) reference(v string) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpLabel, + Label : ParsedLabel { + Name: v, + Kind: RelativeAddress, + }, + }) +} + +// LineKind indicates the type of ParsedLine. +type LineKind int + +const ( + // LineLabel means the ParsedLine is a label. + LineLabel LineKind = iota + 1 + + // LineInstr means the ParsedLine is an instruction. + LineInstr + + // LineCommand means the ParsedLine is a ParsedCommand. + LineCommand +) + +// ParsedLine represents a parsed source line. +type ParsedLine struct { + Row int + Src []rune + Kind LineKind + Label ParsedLabel + Command ParsedCommand + Instruction ParsedInstruction +} + +// ParsedCommand represents a parsed assembly directive command. +type ParsedCommand struct { + Cmd string + Args []ParsedCommandArg +} + +// ParsedCommandArg represents an argument of a ParsedCommand. +type ParsedCommandArg struct { + Value string + IsString bool +} + +// Parser parses the source, and generates a sequence of ParsedInstruction's. +type Parser struct { + lex _Tokenizer + exp expr.Parser +} + +const ( + rip Register64 = 0xff +) + +var _RegBranch = map[string]bool { + "jmp" : true, + "jmpq" : true, + "call" : true, + "callq" : true, +} + +var _SegPrefix = map[string]InstructionPrefix { + "cs": PrefixSegmentCS, + "ds": PrefixSegmentDS, + "es": PrefixSegmentES, + "fs": PrefixSegmentFS, + "gs": PrefixSegmentGS, + "ss": PrefixSegmentSS, +} + +func (self *Parser) i32(tk _Token, v int64) int32 { + if v >= math.MinInt32 && v <= math.MaxUint32 { + return int32(v) + } else { + panic(self.err(tk.pos, fmt.Sprintf("32-bit integer out ouf range: %d", v))) + } +} + +func (self *Parser) err(pos int, msg string) *SyntaxError { + return &SyntaxError { + Pos : pos, + Row : self.lex.row, + Src : self.lex.src, + Reason : msg, + } +} + +func (self *Parser) negv() int64 { + tk := self.lex.read() + tt := tk.tag + + /* must be an integer */ + if tt != _T_int { + panic(self.err(tk.pos, "integer expected after '-'")) + } else { + return -int64(tk.u64) + } +} + +func (self *Parser) eval(p int) (r int64) { + var e error + var v *expr.Expr + + /* searching start */ + n := 1 + q := p + 1 + + /* find the end of expression */ + for n > 0 && q < len(self.lex.src) { + switch self.lex.src[q] { + case '(' : q++; n++ + case ')' : q++; n-- + default : q++ + } + } + + /* check for EOF */ + if n != 0 { + panic(self.err(q, "unexpected EOF when parsing expressions")) + } + + /* evaluate the expression */ + if v, e = self.exp.SetSource(string(self.lex.src[p:q - 1])).Parse(nil); e != nil { + panic(self.err(p, "cannot evaluate expression: " + e.Error())) + } + + /* evaluate the expression */ + if r, e = v.Evaluate(); e != nil { + panic(self.err(p, "cannot evaluate expression: " + e.Error())) + } + + /* skip the last ')' */ + v.Free() + self.lex.pos = q + return +} + +func (self *Parser) relx(tk _Token) { + if tk.tag != _T_punc || tk.punc() != _P_lbrk { + panic(self.err(tk.pos, "'(' expected for RIP-relative addressing")) + } else if tk = self.lex.next(); self.regx(tk) != rip { + panic(self.err(tk.pos, "RIP-relative addressing expects %rip as the base register")) + } else if tk = self.lex.next(); tk.tag != _T_punc || tk.punc() != _P_rbrk { + panic(self.err(tk.pos, "RIP-relative addressing does not support indexing or scaling")) + } +} + +func (self *Parser) immx(tk _Token) int64 { + if tk.tag != _T_punc || tk.punc() != _P_dollar { + panic(self.err(tk.pos, "'$' expected for registers")) + } else if tk = self.lex.read(); tk.tag == _T_int { + return int64(tk.u64) + } else if tk.tag == _T_punc && tk.punc() == _P_lbrk { + return self.eval(self.lex.pos) + } else if tk.tag == _T_punc && tk.punc() == _P_minus { + return self.negv() + } else { + panic(self.err(tk.pos, "immediate value expected")) + } +} + +func (self *Parser) regx(tk _Token) Register { + if tk.tag != _T_punc || tk.punc() != _P_percent { + panic(self.err(tk.pos, "'%' expected for registers")) + } else if tk = self.lex.read(); tk.tag != _T_name { + panic(self.err(tk.pos, "register name expected")) + } else if tk.str == "rip" { + return rip + } else if reg, ok := Registers[tk.str]; ok { + return reg + } else { + panic(self.err(tk.pos, "invalid register name: " + strconv.Quote(tk.str))) + } +} + +func (self *Parser) regv(tk _Token) Register { + if reg := self.regx(tk); reg == rip { + panic(self.err(tk.pos, "%rip is not accessable as a dedicated register")) + } else { + return reg + } +} + +func (self *Parser) disp(vv int32) MemoryAddress { + switch tk := self.lex.next(); tk.tag { + case _T_end : return MemoryAddress { Displacement: vv } + case _T_punc : return self.relm(tk, vv) + default : panic(self.err(tk.pos, "',' or '(' expected")) + } +} + +func (self *Parser) relm(tv _Token, disp int32) MemoryAddress { + var tk _Token + var tt _TokenKind + + /* check for absolute addressing */ + if tv.punc() == _P_comma { + self.lex.pos-- + return MemoryAddress { Displacement: disp } + } + + /* must be '(' now */ + if tv.punc() != _P_lbrk { + panic(self.err(tv.pos, "',' or '(' expected")) + } + + /* read the next token */ + tk = self.lex.next() + tt = tk.tag + + /* must be a punctuation */ + if tt != _T_punc { + panic(self.err(tk.pos, "'%' or ',' expected")) + } + + /* check for base */ + switch tk.punc() { + case _P_percent : return self.base(tk, disp) + case _P_comma : return self.index(nil, disp) + default : panic(self.err(tk.pos, "'%' or ',' expected")) + } +} + +func (self *Parser) base(tk _Token, disp int32) MemoryAddress { + rr := self.regx(tk) + nk := self.lex.next() + + /* check for register indirection or base-index addressing */ + if !isReg64(rr) { + panic(self.err(tk.pos, "not a valid base register")) + } else if nk.tag != _T_punc { + panic(self.err(nk.pos, "',' or ')' expected")) + } else if nk.punc() == _P_comma { + return self.index(rr, disp) + } else if nk.punc() == _P_rbrk { + return MemoryAddress { Base: rr, Displacement: disp } + } else { + panic(self.err(nk.pos, "',' or ')' expected")) + } +} + +func (self *Parser) index(base Register, disp int32) MemoryAddress { + tk := self.lex.next() + rr := self.regx(tk) + nk := self.lex.next() + + /* check for scaled indexing */ + if base == rip { + panic(self.err(tk.pos, "RIP-relative addressing does not support indexing or scaling")) + } else if !isIndexable(rr) { + panic(self.err(tk.pos, "not a valid index register")) + } else if nk.tag != _T_punc { + panic(self.err(nk.pos, "',' or ')' expected")) + } else if nk.punc() == _P_comma { + return self.scale(base, rr, disp) + } else if nk.punc() == _P_rbrk { + return MemoryAddress { Base: base, Index: rr, Scale: 1, Displacement: disp } + } else { + panic(self.err(nk.pos, "',' or ')' expected")) + } +} + +func (self *Parser) scale(base Register, index Register, disp int32) MemoryAddress { + tk := self.lex.next() + tt := tk.tag + tv := tk.u64 + + /* must be an integer */ + if tt != _T_int { + panic(self.err(tk.pos, "integer expected")) + } + + /* scale can only be 1, 2, 4 or 8 */ + if tv == 0 || (_Scales & (1 << tv)) == 0 { + panic(self.err(tk.pos, "scale can only be 1, 2, 4 or 8")) + } + + /* read next token */ + tk = self.lex.next() + tt = tk.tag + + /* check for the closing ')' */ + if tt != _T_punc || tk.punc() != _P_rbrk { + panic(self.err(tk.pos, "')' expected")) + } + + /* construct the memory address */ + return MemoryAddress { + Base : base, + Index : index, + Scale : uint8(tv), + Displacement : disp, + } +} + +func (self *Parser) cmds() *ParsedLine { + cmd := "" + pos := self.lex.pos + buf := []ParsedCommandArg(nil) + + /* find the end of command */ + for p := pos; pos < len(self.lex.src); pos++ { + if unicode.IsSpace(self.lex.src[pos]) { + cmd = string(self.lex.src[p:pos]) + break + } + } + + /* parse the arguments */ + loop: for { + switch self.next(&pos) { + case 0 : break loop + case '#' : break loop + case '"' : pos = self.strings(&buf, pos) + default : pos = self.expressions(&buf, pos) + } + } + + /* construct the line */ + return &ParsedLine { + Row : self.lex.row, + Src : self.lex.src, + Kind : LineCommand, + Command : ParsedCommand { + Cmd : cmd, + Args : buf, + }, + } +} + +func (self *Parser) feed(line string) *ParsedLine { + ff := true + rr := false + lk := false + + /* reset the lexer */ + self.lex.row++ + self.lex.init(line) + + /* parse the first token */ + tk := self.lex.next() + tt := tk.tag + + /* it is a directive if it starts with a dot */ + if tk.tag == _T_punc && tk.punc() == _P_dot { + return self.cmds() + } + + /* otherwise it could be labels or instructions */ + if tt != _T_name { + panic(self.err(tk.pos, "identifier expected")) + } + + /* peek the next token */ + lex := self.lex + tkx := lex.next() + + /* check for labels */ + if tkx.tag == _T_punc && tkx.punc() == _P_colon { + tkx = lex.next() + ttx := tkx.tag + + /* the line must end here */ + if ttx != _T_end { + panic(self.err(tkx.pos, "garbage after label definition")) + } + + /* construct the label */ + return &ParsedLine { + Row : self.lex.row, + Src : self.lex.src, + Kind : LineLabel, + Label : ParsedLabel { + Kind: Declaration, + Name: tk.str, + }, + } + } + + /* special case for the "lock" prefix */ + if tk.tag == _T_name && strings.ToLower(tk.str) == "lock" { + lk = true + tk = self.lex.next() + + /* must be an instruction */ + if tk.tag != _T_name { + panic(self.err(tk.pos, "identifier expected")) + } + } + + /* set the line kind and mnemonic */ + ret := &ParsedLine { + Row : self.lex.row, + Src : self.lex.src, + Kind : LineInstr, + Instruction : ParsedInstruction { Mnemonic: strings.ToLower(tk.str) }, + } + + /* check for LOCK prefix */ + if lk { + ret.Instruction.Prefixes = append(ret.Instruction.Prefixes, PrefixLock) + } + + /* parse all the operands */ + for { + tk = self.lex.next() + tt = tk.tag + + /* check for end of line */ + if tt == _T_end { + break + } + + /* expect a comma if not the first operand */ + if !ff { + if tt == _T_punc && tk.punc() == _P_comma { + tk = self.lex.next() + } else { + panic(self.err(tk.pos, "',' expected")) + } + } + + /* not the first operand anymore */ + ff = false + tt = tk.tag + + /* encountered an integer, must be a SIB memory address */ + if tt == _T_int { + ret.Instruction.mem(self.disp(self.i32(tk, int64(tk.u64)))) + continue + } + + /* encountered an identifier, maybe an expression or a jump target, or a segment override prefix */ + if tt == _T_name { + ts := tk.str + tp := self.lex.pos + + /* if the next token is EOF or a comma, it's a jumpt target */ + if tk = self.lex.next(); tk.tag == _T_end || (tk.tag == _T_punc && tk.punc() == _P_comma) { + self.lex.pos = tp + ret.Instruction.target(ts) + continue + } + + /* if it is a colon, it's a segment override prefix, otherwise it must be an RIP-relative addressing operand */ + if tk.tag != _T_punc || tk.punc() != _P_colon { + self.relx(tk) + ret.Instruction.reference(ts) + continue + } + + /* lookup segment prefixes */ + if p, ok := _SegPrefix[strings.ToLower(ts)]; !ok { + panic(self.err(tk.pos, "invalid segment name")) + } else { + ret.Instruction.Prefixes = append(ret.Instruction.Prefixes, p) + } + + /* read the next token */ + tk = self.lex.next() + tt = tk.tag + + /* encountered an integer, must be a SIB memory address */ + if tt == _T_int { + ret.Instruction.mem(self.disp(self.i32(tk, int64(tk.u64)))) + continue + } + } + + /* certain instructions may have a "*" before operands */ + if tt == _T_punc && tk.punc() == _P_star { + tk = self.lex.next() + tt = tk.tag + rr = true + } + + /* ... otherwise it must be a punctuation */ + if tt != _T_punc { + panic(self.err(tk.pos, "'$', '%', '-' or '(' expected")) + } + + /* check the operator */ + switch tk.punc() { + case _P_lbrk : break + case _P_minus : ret.Instruction.mem(self.disp(self.i32(tk, self.negv()))) ; continue + case _P_dollar : ret.Instruction.imm(self.immx(tk)) ; continue + case _P_percent : ret.Instruction.reg(self.regv(tk)) ; continue + default : panic(self.err(tk.pos, "'$', '%', '-' or '(' expected")) + } + + /* special case of '(', might be either `(expr)(SIB)` or just `(SIB)` + * read one more token to confirm */ + tk = self.lex.next() + tt = tk.tag + + /* the next token is '%', it's a memory address, + * or ',' if it's a memory address without base, + * otherwise it must be in `(expr)(SIB)` form */ + if tk.tag == _T_punc && tk.punc() == _P_percent { + ret.Instruction.mem(self.base(tk, 0)) + } else if tk.tag == _T_punc && tk.punc() == _P_comma { + ret.Instruction.mem(self.index(nil, 0)) + } else { + ret.Instruction.mem(self.disp(self.i32(tk, self.eval(tk.pos)))) + } + } + + /* check "jmp" and "call" instructions */ + if !_RegBranch[ret.Instruction.Mnemonic] { + return ret + } else if len(ret.Instruction.Operands) != 1 { + panic(self.err(tk.pos, fmt.Sprintf(`"%s" requires exact 1 argument`, ret.Instruction.Mnemonic))) + } else if !rr && ret.Instruction.Operands[0].Op != OpReg && ret.Instruction.Operands[0].Op != OpLabel { + panic(self.err(tk.pos, fmt.Sprintf(`invalid operand for "%s" instruction`, ret.Instruction.Mnemonic))) + } else { + return ret + } +} + +func (self *Parser) next(p *int) rune { + for { + if *p >= len(self.lex.src) { + return 0 + } else if cc := self.lex.src[*p]; !unicode.IsSpace(cc) { + return cc + } else { + *p++ + } + } +} + +func (self *Parser) delim(p int) int { + if cc := self.next(&p); cc == 0 { + return p + } else if cc == ',' { + return p + 1 + } else { + panic(self.err(p, "',' expected")) + } +} + +func (self *Parser) strings(argv *[]ParsedCommandArg, p int) int { + var i int + var e error + var v string + + /* find the end of string */ + for i = p + 1; i < len(self.lex.src) && self.lex.src[i] != '"'; i++ { + if self.lex.src[i] == '\\' { + i++ + } + } + + /* check for EOF */ + if i == len(self.lex.src) { + panic(self.err(i, "unexpected EOF when scanning strings")) + } + + /* unquote the string */ + if v, e = strconv.Unquote(string(self.lex.src[p:i + 1])); e != nil { + panic(self.err(p, "invalid string: " + e.Error())) + } + + /* add the argument to buffer */ + *argv = append(*argv, ParsedCommandArg { Value: v, IsString: true }) + return self.delim(i + 1) +} + +func (self *Parser) directives(line string) { + self.lex.row++ + self.lex.init(line) + + /* parse the first token */ + tk := self.lex.next() + tt := tk.tag + + /* check for EOF */ + if tt == _T_end { + return + } + + /* must be a directive */ + if tt != _T_punc || tk.punc() != _P_hash { + panic(self.err(tk.pos, "'#' expected")) + } + + /* parse the line number */ + tk = self.lex.next() + tt = tk.tag + + /* must be a line number, if it is, set the row number, and ignore the rest of the line */ + if tt != _T_int { + panic(self.err(tk.pos, "line number expected")) + } else { + self.lex.row = int(tk.u64) - 1 + } +} + +func (self *Parser) expressions(argv *[]ParsedCommandArg, p int) int { + var i int + var n int + var s int + + /* scan until the first standalone ',' or EOF */ + loop: for i = p; i < len(self.lex.src); i++ { + switch self.lex.src[i] { + case ',' : if s == 0 { if n == 0 { break loop } } + case ']', '}', '>' : if s == 0 { if n == 0 { break loop } else { n-- } } + case '[', '{', '<' : if s == 0 { n++ } + case '\\' : if s != 0 { i++ } + case '\'' : if s != 2 { s ^= 1 } + case '"' : if s != 1 { s ^= 2 } + } + } + + /* check for EOF in strings */ + if s != 0 { + panic(self.err(i, "unexpected EOF when scanning strings")) + } + + /* check for bracket matching */ + if n != 0 { + panic(self.err(i, "unbalanced '{' or '[' or '<'")) + } + + /* add the argument to buffer */ + *argv = append(*argv, ParsedCommandArg { Value: string(self.lex.src[p:i]) }) + return self.delim(i) +} + +// Feed feeds the parser with one more line, and the parser +// parses it into a ParsedLine. +// +// NOTE: Feed does not handle empty lines or multiple lines, +// it panics when this happens. Use Parse to parse multiple +// lines of assembly source. +// +func (self *Parser) Feed(src string) (ret *ParsedLine, err error) { + var ok bool + var ss string + var vv interface{} + + /* check for multiple lines */ + if strings.ContainsRune(src, '\n') { + return nil, errors.New("passing multiple lines to Feed()") + } + + /* check for blank lines */ + if ss = strings.TrimSpace(src); ss == "" || ss[0] == '#' || strings.HasPrefix(ss, "//") { + return nil, errors.New("blank line or line with only comments or line-marks") + } + + /* setup error handler */ + defer func() { + if vv = recover(); vv != nil { + if err, ok = vv.(*SyntaxError); !ok { + panic(vv) + } + } + }() + + /* call the actual parser */ + ret = self.feed(src) + return +} + +// Parse parses the entire assembly source (possibly multiple lines) into +// a sequence of *ParsedLine. +func (self *Parser) Parse(src string) (ret []*ParsedLine, err error) { + var ok bool + var ss string + var vv interface{} + + /* setup error handler */ + defer func() { + if vv = recover(); vv != nil { + if err, ok = vv.(*SyntaxError); !ok { + panic(vv) + } + } + }() + + /* feed every line */ + for _, line := range strings.Split(src, "\n") { + if ss = strings.TrimSpace(line); ss == "" || strings.HasPrefix(ss, "//") { + self.lex.row++ + } else if ss[0] == '#' { + self.directives(line) + } else { + ret = append(ret, self.feed(line)) + } + } + + /* all done */ + err = nil + return +} + +// Directive handles the directive. +func (self *Parser) Directive(line string) (err error) { + var ok bool + var ss string + var vv interface{} + + /* check for directives */ + if ss = strings.TrimSpace(line); ss == "" || ss[0] != '#' { + return errors.New("not a directive") + } + + /* setup error handler */ + defer func() { + if vv = recover(); vv != nil { + if err, ok = vv.(*SyntaxError); !ok { + panic(vv) + } + } + }() + + /* call the directive parser */ + self.directives(line) + return +} + +type _TermRepo struct { + terms map[string]expr.Term +} + +func (self *_TermRepo) Get(name string) (expr.Term, error) { + if ret, ok := self.terms[name]; ok { + return ret, nil + } else { + return nil, errors.New("undefined name: " + name) + } +} + +func (self *_TermRepo) label(name string) (*Label, error) { + var ok bool + var lb *Label + var tr expr.Term + + /* check for existing terms */ + if tr, ok = self.terms[name]; ok { + if lb, ok = tr.(*Label); ok { + return lb, nil + } else { + return nil, errors.New("name is not a label: " + name) + } + } + + /* create a new one as needed */ + lb = new(Label) + lb.Name = name + + /* create the map if needed */ + if self.terms == nil { + self.terms = make(map[string]expr.Term, 1) + } + + /* register the label */ + self.terms[name] = lb + return lb, nil +} + +func (self *_TermRepo) define(name string, term expr.Term) { + var ok bool + var tr expr.Term + + /* create the map if needed */ + if self.terms == nil { + self.terms = make(map[string]expr.Term, 1) + } + + /* check for existing terms */ + if tr, ok = self.terms[name]; !ok { + self.terms[name] = term + } else if _, ok = tr.(*Label); !ok { + self.terms[name] = term + } else { + panic("conflicting term types: " + name) + } +} + +// _Command describes an assembler command. +// +// The _Command.args describes both the arity and argument type with characters, +// the length is the number of arguments, the character itself represents the +// argument type. +// +// Possible values are: +// +// s This argument should be a string +// e This argument should be an expression +// ? The next argument is optional, and must be the last argument. +// +type _Command struct { + args string + handler func(*Assembler, *Program, []ParsedCommandArg) error +} + +// Options controls the behavior of Assembler. +type Options struct { + // InstructionAliasing specifies whether to enable instruction aliasing. + // Set to true enables instruction aliasing, and the Assembler will try harder to find instructions. + InstructionAliasing bool + + // IgnoreUnknownDirectives specifies whether to report errors when encountered unknown directives. + // Set to true ignores all unknwon directives silently, useful for parsing generated assembly. + IgnoreUnknownDirectives bool +} + +// Assembler assembles the entire assembly program and generates the corresponding +// machine code representations. +type Assembler struct { + cc int + ps Parser + pc uintptr + buf []byte + main string + opts Options + repo _TermRepo + expr expr.Parser + line *ParsedLine +} + +var asmCommands = map[string]_Command { + "org" : { "e" , (*Assembler).assembleCommandOrg }, + "set" : { "ee" , (*Assembler).assembleCommandSet }, + "byte" : { "e" , (*Assembler).assembleCommandByte }, + "word" : { "e" , (*Assembler).assembleCommandWord }, + "long" : { "e" , (*Assembler).assembleCommandLong }, + "quad" : { "e" , (*Assembler).assembleCommandQuad }, + "fill" : { "e?e" , (*Assembler).assembleCommandFill }, + "space" : { "e?e" , (*Assembler).assembleCommandFill }, + "align" : { "e?e" , (*Assembler).assembleCommandAlign }, + "entry" : { "e" , (*Assembler).assembleCommandEntry }, + "ascii" : { "s" , (*Assembler).assembleCommandAscii }, + "asciz" : { "s" , (*Assembler).assembleCommandAsciz }, + "p2align" : { "e?e" , (*Assembler).assembleCommandP2Align }, +} + +func (self *Assembler) err(msg string) *SyntaxError { + return &SyntaxError { + Pos : -1, + Row : self.line.Row, + Src : self.line.Src, + Reason : msg, + } +} + +func (self *Assembler) eval(expr string) (int64, error) { + if exp, err := self.expr.SetSource(expr).Parse(nil); err != nil { + return 0, err + } else { + return exp.Evaluate() + } +} + +func (self *Assembler) checkArgs(i int, n int, v *ParsedCommand, isString bool) error { + if i >= len(v.Args) { + return self.err(fmt.Sprintf("command %s takes exact %d arguments", strconv.Quote(v.Cmd), n)) + } else if isString && !v.Args[i].IsString { + return self.err(fmt.Sprintf("argument %d of command %s must be a string", i + 1, strconv.Quote(v.Cmd))) + } else if !isString && v.Args[i].IsString { + return self.err(fmt.Sprintf("argument %d of command %s must be an expression", i + 1, strconv.Quote(v.Cmd))) + } else { + return nil + } +} + +func (self *Assembler) assembleLabel(p *Program, lb *ParsedLabel) error { + if v, err := self.repo.label(lb.Name); err != nil { + return err + } else { + p.Link(v) + return nil + } +} + +func (self *Assembler) assembleInstr(p *Program, line *ParsedInstruction) (err error) { + var ok bool + var pfx []byte + var ops []interface{} + var enc _InstructionEncoder + + /* convert to lower-case */ + opts := self.opts + name := strings.ToLower(line.Mnemonic) + + /* fix register-addressing branches if needed */ + if opts.InstructionAliasing && len(line.Operands) == 1 { + switch { + case name == "retq" : name = "ret" + case name == "movabsq" : name = "movq" + case name == "jmp" && line.Operands[0].Op != OpLabel : name = "jmpq" + case name == "jmpq" && line.Operands[0].Op == OpLabel : name = "jmp" + case name == "call" && line.Operands[0].Op != OpLabel : name = "callq" + case name == "callq" && line.Operands[0].Op == OpLabel : name = "call" + } + } + + /* lookup from the alias table if needed */ + if opts.InstructionAliasing { + enc, ok = _InstructionAliases[name] + } + + /* lookup from the instruction table */ + if !ok { + enc, ok = Instructions[name] + } + + /* remove size suffix if possible */ + if !ok && opts.InstructionAliasing { + switch i := len(name) - 1; name[i] { + case 'b', 'w', 'l', 'q': { + enc, ok = Instructions[name[:i]] + } + } + } + + /* check for instruction name */ + if !ok { + return self.err("no such instruction: " + strconv.Quote(name)) + } + + /* allocate memory for prefix if any */ + if len(line.Prefixes) != 0 { + pfx = make([]byte, len(line.Prefixes)) + } + + /* convert the prefixes */ + for i, v := range line.Prefixes { + switch v { + case PrefixLock : pfx[i] = _P_lock + case PrefixSegmentCS : pfx[i] = _P_cs + case PrefixSegmentDS : pfx[i] = _P_ds + case PrefixSegmentES : pfx[i] = _P_es + case PrefixSegmentFS : pfx[i] = _P_fs + case PrefixSegmentGS : pfx[i] = _P_gs + case PrefixSegmentSS : pfx[i] = _P_ss + default : panic("unreachable: invalid segment prefix") + } + } + + /* convert the operands */ + for _, op := range line.Operands { + switch op.Op { + case OpImm : ops = append(ops, op.Imm) + case OpReg : ops = append(ops, op.Reg) + case OpMem : self.assembleInstrMem(&ops, op.Memory) + case OpLabel : self.assembleInstrLabel(&ops, op.Label) + default : panic("parser yields an invalid operand kind") + } + } + + /* catch any exceptions in the encoder */ + defer func() { + if v := recover(); v != nil { + err = self.err(fmt.Sprint(v)) + } + }() + + /* encode the instruction */ + enc(p, ops...).prefix = pfx + return nil +} + +func (self *Assembler) assembleInstrMem(ops *[]interface{}, addr MemoryAddress) { + mem := new(MemoryOperand) + *ops = append(*ops, mem) + + /* check for RIP-relative addressing */ + if addr.Base != rip { + mem.Addr.Type = Memory + mem.Addr.Memory = addr + } else { + mem.Addr.Type = Offset + mem.Addr.Offset = RelativeOffset(addr.Displacement) + } +} + +func (self *Assembler) assembleInstrLabel(ops *[]interface{}, label ParsedLabel) { + vk := label.Kind + tr, err := self.repo.label(label.Name) + + /* check for errors */ + if err != nil { + panic(err) + } + + /* check for branch target */ + if vk == BranchTarget { + *ops = append(*ops, tr) + return + } + + /* add to ops */ + *ops = append(*ops, &MemoryOperand { + Addr: Addressable { + Type : Reference, + Reference : tr, + }, + }) +} + +func (self *Assembler) assembleCommand(p *Program, line *ParsedCommand) error { + var iv int + var cc rune + var ok bool + var va bool + var fn _Command + + /* find the command */ + if fn, ok = asmCommands[line.Cmd]; !ok { + if self.opts.IgnoreUnknownDirectives { + return nil + } else { + return self.err("no such command: " + strconv.Quote(line.Cmd)) + } + } + + /* expected & real argument count */ + argx := len(fn.args) + argc := len(line.Args) + + /* check the arguments */ + loop: for iv, cc = range fn.args { + switch cc { + case '?' : va = true; break loop + case 's' : if err := self.checkArgs(iv, argx, line, true) ; err != nil { return err } + case 'e' : if err := self.checkArgs(iv, argx, line, false) ; err != nil { return err } + default : panic("invalid argument descriptor: " + strconv.Quote(fn.args)) + } + } + + /* simple case: non-variadic command */ + if !va { + if argc == argx { + return fn.handler(self, p, line.Args) + } else { + return self.err(fmt.Sprintf("command %s takes exact %d arguments", strconv.Quote(line.Cmd), argx)) + } + } + + /* check for the descriptor */ + if iv != argx - 2 { + panic("invalid argument descriptor: " + strconv.Quote(fn.args)) + } + + /* variadic command and the final optional argument is set */ + if argc == argx - 1 { + switch fn.args[argx - 1] { + case 's' : if err := self.checkArgs(iv, -1, line, true) ; err != nil { return err } + case 'e' : if err := self.checkArgs(iv, -1, line, false) ; err != nil { return err } + default : panic("invalid argument descriptor: " + strconv.Quote(fn.args)) + } + } + + /* check argument count */ + if argc == argx - 1 || argc == argx - 2 { + return fn.handler(self, p, line.Args) + } else { + return self.err(fmt.Sprintf("command %s takes %d or %d arguments", strconv.Quote(line.Cmd), argx - 2, argx - 1)) + } +} + +func (self *Assembler) assembleCommandInt(p *Program, argv []ParsedCommandArg, addfn func(*Program, *expr.Expr) *Instruction) error { + var err error + var val *expr.Expr + + /* parse the expression */ + if val, err = self.expr.SetSource(argv[0].Value).Parse(&self.repo); err != nil { + return err + } + + /* add to the program */ + addfn(p, val) + return nil +} + +func (self *Assembler) assembleCommandOrg(_ *Program, argv []ParsedCommandArg) error { + var err error + var val int64 + + /* evaluate the expression */ + if val, err = self.eval(argv[0].Value); err != nil { + return err + } + + /* check for origin */ + if val < 0 { + return self.err(fmt.Sprintf("negative origin: %d", val)) + } + + /* ".org" must be the first command if any */ + if self.cc != 1 { + return self.err(".org must be the first command if present") + } + + /* set the initial program counter */ + self.pc = uintptr(val) + return nil +} + +func (self *Assembler) assembleCommandSet(_ *Program, argv []ParsedCommandArg) error { + var err error + var val *expr.Expr + + /* parse the expression */ + if val, err = self.expr.SetSource(argv[1].Value).Parse(&self.repo); err != nil { + return err + } + + /* define the new identifier */ + self.repo.define(argv[0].Value, val) + return nil +} + +func (self *Assembler) assembleCommandByte(p *Program, argv []ParsedCommandArg) error { + return self.assembleCommandInt(p, argv, (*Program).Byte) +} + +func (self *Assembler) assembleCommandWord(p *Program, argv []ParsedCommandArg) error { + return self.assembleCommandInt(p, argv, (*Program).Word) +} + +func (self *Assembler) assembleCommandLong(p *Program, argv []ParsedCommandArg) error { + return self.assembleCommandInt(p, argv, (*Program).Long) +} + +func (self *Assembler) assembleCommandQuad(p *Program, argv []ParsedCommandArg) error { + return self.assembleCommandInt(p, argv, (*Program).Quad) +} + +func (self *Assembler) assembleCommandFill(p *Program, argv []ParsedCommandArg) error { + var fv byte + var nb int64 + var ex error + + /* evaluate the size */ + if nb, ex = self.eval(argv[0].Value); ex != nil { + return ex + } + + /* check for filling size */ + if nb < 0 { + return self.err(fmt.Sprintf("negative filling size: %d", nb)) + } + + /* check for optional filling value */ + if len(argv) == 2 { + if val, err := self.eval(argv[1].Value); err != nil { + return err + } else if val < math.MinInt8 || val > math.MaxUint8 { + return self.err(fmt.Sprintf("value %d cannot be represented with a byte", val)) + } else { + fv = byte(val) + } + } + + /* fill with specified byte */ + p.Data(bytes.Repeat([]byte { fv }, int(nb))) + return nil +} + +func (self *Assembler) assembleCommandAlign(p *Program, argv []ParsedCommandArg) error { + var nb int64 + var ex error + var fv *expr.Expr + + /* evaluate the size */ + if nb, ex = self.eval(argv[0].Value); ex != nil { + return ex + } + + /* check for alignment value */ + if nb <= 0 { + return self.err(fmt.Sprintf("zero or negative alignment: %d", nb)) + } + + /* alignment must be a power of 2 */ + if (nb & (nb - 1)) != 0 { + return self.err(fmt.Sprintf("alignment must be a power of 2: %d", nb)) + } + + /* check for optional filling value */ + if len(argv) == 2 { + if v, err := self.expr.SetSource(argv[1].Value).Parse(&self.repo); err == nil { + fv = v + } else { + return err + } + } + + /* fill with specified byte, default to 0 if not specified */ + p.Align(uint64(nb), fv) + return nil +} + +func (self *Assembler) assembleCommandEntry(_ *Program, argv []ParsedCommandArg) error { + name := argv[0].Value + rbuf := []rune(name) + + /* check all the characters */ + for i, cc := range rbuf { + if !isident0(cc) && (i == 0 || !isident(cc)) { + return self.err("entry point must be a label name") + } + } + + /* set the main entry point */ + self.main = name + return nil +} + +func (self *Assembler) assembleCommandAscii(p *Program, argv []ParsedCommandArg) error { + p.Data([]byte(argv[0].Value)) + return nil +} + +func (self *Assembler) assembleCommandAsciz(p *Program, argv []ParsedCommandArg) error { + p.Data(append([]byte(argv[0].Value), 0)) + return nil +} + +func (self *Assembler) assembleCommandP2Align(p *Program, argv []ParsedCommandArg) error { + var nb int64 + var ex error + var fv *expr.Expr + + /* evaluate the size */ + if nb, ex = self.eval(argv[0].Value); ex != nil { + return ex + } + + /* check for alignment value */ + if nb <= 0 { + return self.err(fmt.Sprintf("zero or negative alignment: %d", nb)) + } + + /* check for optional filling value */ + if len(argv) == 2 { + if v, err := self.expr.SetSource(argv[1].Value).Parse(&self.repo); err == nil { + fv = v + } else { + return err + } + } + + /* fill with specified byte, default to 0 if not specified */ + p.Align(1 << nb, fv) + return nil +} + +// Base returns the origin. +func (self *Assembler) Base() uintptr { + return self.pc +} + +// Code returns the assembled machine code. +func (self *Assembler) Code() []byte { + return self.buf +} + +// Entry returns the address of the specified entry point, or the origin if not specified. +func (self *Assembler) Entry() uintptr { + if self.main == "" { + return self.pc + } else if tr, err := self.repo.Get(self.main); err != nil { + panic(err) + } else if val, err := tr.Evaluate(); err != nil { + panic(err) + } else { + return uintptr(val) + } +} + +// Options returns the internal options reference, changing it WILL affect this Assembler instance. +func (self *Assembler) Options() *Options { + return &self.opts +} + +// WithBase resets the origin to pc. +func (self *Assembler) WithBase(pc uintptr) *Assembler { + self.pc = pc + return self +} + +// Assemble assembles the assembly source and save the machine code to internal buffer. +func (self *Assembler) Assemble(src string) error { + var err error + var buf []*ParsedLine + + /* parse the source */ + if buf, err = self.ps.Parse(src); err != nil { + return err + } + + /* create a new program */ + p := DefaultArch.CreateProgram() + defer p.Free() + + /* process every line */ + for _, self.line = range buf { + switch self.cc++; self.line.Kind { + case LineLabel : if err = self.assembleLabel (p, &self.line.Label) ; err != nil { return err } + case LineInstr : if err = self.assembleInstr (p, &self.line.Instruction) ; err != nil { return err } + case LineCommand : if err = self.assembleCommand (p, &self.line.Command) ; err != nil { return err } + default : panic("parser yields an invalid line kind") + } + } + + /* assemble the program */ + self.buf = p.Assemble(self.pc) + return nil +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler_alias.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler_alias.go new file mode 100644 index 00000000..23a7cd1b --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler_alias.go @@ -0,0 +1,33 @@ +package x86_64 + +func alias_INT3(p *Program, vv ...interface{}) *Instruction { + if len(vv) == 0 { + return p.INT(3) + } else { + panic("instruction INT3 takes no operands") + } +} + +func alias_VCMPEQPS(p *Program, vv ...interface{}) *Instruction { + if len(vv) >= 3 { + return p.VCMPPS(0x00, vv[0], vv[1], vv[2], vv[3:]...) + } else { + panic("instruction VCMPEQPS takes 3 or 4 operands") + } +} + +func alias_VCMPTRUEPS(p *Program, vv ...interface{}) *Instruction { + if len(vv) >= 3 { + return p.VCMPPS(0x0f, vv[0], vv[1], vv[2], vv[3:]...) + } else { + panic("instruction VCMPTRUEPS takes 3 or 4 operands") + } +} + +var _InstructionAliases = map[string]_InstructionEncoder { + "int3" : alias_INT3, + "retq" : Instructions["ret"], + "movabsq" : Instructions["movq"], + "vcmpeqps" : alias_VCMPEQPS, + "vcmptrueps" : alias_VCMPTRUEPS, +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/eface.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/eface.go new file mode 100644 index 00000000..b5607e8f --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/eface.go @@ -0,0 +1,63 @@ +package x86_64 + +import ( + `reflect` + `unsafe` +) + +type _GoType struct { + size uintptr + pdata uintptr + hash uint32 + flags uint8 + align uint8 + falign uint8 + kflags uint8 + traits unsafe.Pointer + gcdata *byte + str int32 + ptrx int32 +} + +const ( + _KindMask = (1 << 5) - 1 +) + +func (self *_GoType) kind() reflect.Kind { + return reflect.Kind(self.kflags & _KindMask) +} + +type _GoSlice struct { + ptr unsafe.Pointer + len int + cap int +} + +type _GoEface struct { + vt *_GoType + ptr unsafe.Pointer +} + +func (self *_GoEface) kind() reflect.Kind { + if self.vt != nil { + return self.vt.kind() + } else { + return reflect.Invalid + } +} + +func (self *_GoEface) toInt64() int64 { + if self.vt.size == 8 { + return *(*int64)(self.ptr) + } else if self.vt.size == 4 { + return int64(*(*int32)(self.ptr)) + } else if self.vt.size == 2 { + return int64(*(*int16)(self.ptr)) + } else { + return int64(*(*int8)(self.ptr)) + } +} + +func efaceOf(v interface{}) _GoEface { + return *(*_GoEface)(unsafe.Pointer(&v)) +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/encodings.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/encodings.go new file mode 100644 index 00000000..c8fac785 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/encodings.go @@ -0,0 +1,675 @@ +package x86_64 + +import ( + `encoding/binary` + `math` +) + +/** Operand Encoding Helpers **/ + +func imml(v interface{}) byte { + return byte(toImmAny(v) & 0x0f) +} + +func relv(v interface{}) int64 { + switch r := v.(type) { + case *Label : return 0 + case RelativeOffset : return int64(r) + default : panic("invalid relative offset") + } +} + +func addr(v interface{}) interface{} { + switch a := v.(*MemoryOperand).Addr; a.Type { + case Memory : return a.Memory + case Offset : return a.Offset + case Reference : return a.Reference + default : panic("invalid memory operand type") + } +} + +func bcode(v interface{}) byte { + if m, ok := v.(*MemoryOperand); !ok { + panic("v is not a memory operand") + } else if m.Broadcast == 0 { + return 0 + } else { + return 1 + } +} + +func vcode(v interface{}) byte { + switch r := v.(type) { + case XMMRegister : return byte(r) + case YMMRegister : return byte(r) + case ZMMRegister : return byte(r) + case MaskedRegister : return vcode(r.Reg) + default : panic("v is not a vector register") + } +} + +func kcode(v interface{}) byte { + switch r := v.(type) { + case KRegister : return byte(r) + case XMMRegister : return 0 + case YMMRegister : return 0 + case ZMMRegister : return 0 + case RegisterMask : return byte(r.K) + case MaskedRegister : return byte(r.Mask.K) + case *MemoryOperand : return toKcodeMem(r) + default : panic("v is not a maskable operand") + } +} + +func zcode(v interface{}) byte { + switch r := v.(type) { + case KRegister : return 0 + case XMMRegister : return 0 + case YMMRegister : return 0 + case ZMMRegister : return 0 + case RegisterMask : return toZcodeRegM(r) + case MaskedRegister : return toZcodeRegM(r.Mask) + case *MemoryOperand : return toZcodeMem(r) + default : panic("v is not a maskable operand") + } +} + +func lcode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return byte(r & 0x07) + case Register16 : return byte(r & 0x07) + case Register32 : return byte(r & 0x07) + case Register64 : return byte(r & 0x07) + case KRegister : return byte(r & 0x07) + case MMRegister : return byte(r & 0x07) + case XMMRegister : return byte(r & 0x07) + case YMMRegister : return byte(r & 0x07) + case ZMMRegister : return byte(r & 0x07) + case MaskedRegister : return lcode(r.Reg) + default : panic("v is not a register") + } +} + +func hcode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return byte(r >> 3) & 1 + case Register16 : return byte(r >> 3) & 1 + case Register32 : return byte(r >> 3) & 1 + case Register64 : return byte(r >> 3) & 1 + case KRegister : return byte(r >> 3) & 1 + case MMRegister : return byte(r >> 3) & 1 + case XMMRegister : return byte(r >> 3) & 1 + case YMMRegister : return byte(r >> 3) & 1 + case ZMMRegister : return byte(r >> 3) & 1 + case MaskedRegister : return hcode(r.Reg) + default : panic("v is not a register") + } +} + +func ecode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return byte(r >> 4) & 1 + case Register16 : return byte(r >> 4) & 1 + case Register32 : return byte(r >> 4) & 1 + case Register64 : return byte(r >> 4) & 1 + case KRegister : return byte(r >> 4) & 1 + case MMRegister : return byte(r >> 4) & 1 + case XMMRegister : return byte(r >> 4) & 1 + case YMMRegister : return byte(r >> 4) & 1 + case ZMMRegister : return byte(r >> 4) & 1 + case MaskedRegister : return ecode(r.Reg) + default : panic("v is not a register") + } +} + +func hlcode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return toHLcodeReg8(r) + case Register16 : return byte(r & 0x0f) + case Register32 : return byte(r & 0x0f) + case Register64 : return byte(r & 0x0f) + case KRegister : return byte(r & 0x0f) + case MMRegister : return byte(r & 0x0f) + case XMMRegister : return byte(r & 0x0f) + case YMMRegister : return byte(r & 0x0f) + case ZMMRegister : return byte(r & 0x0f) + case MaskedRegister : return hlcode(r.Reg) + default : panic("v is not a register") + } +} + +func ehcode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return byte(r >> 3) & 0x03 + case Register16 : return byte(r >> 3) & 0x03 + case Register32 : return byte(r >> 3) & 0x03 + case Register64 : return byte(r >> 3) & 0x03 + case KRegister : return byte(r >> 3) & 0x03 + case MMRegister : return byte(r >> 3) & 0x03 + case XMMRegister : return byte(r >> 3) & 0x03 + case YMMRegister : return byte(r >> 3) & 0x03 + case ZMMRegister : return byte(r >> 3) & 0x03 + case MaskedRegister : return ehcode(r.Reg) + default : panic("v is not a register") + } +} + +func toImmAny(v interface{}) int64 { + if x, ok := asInt64(v); ok { + return x + } else { + panic("value is not an integer") + } +} + +func toHcodeOpt(v interface{}) byte { + if v == nil { + return 0 + } else { + return hcode(v) + } +} + +func toEcodeVMM(v interface{}, x byte) byte { + switch r := v.(type) { + case XMMRegister : return ecode(r) + case YMMRegister : return ecode(r) + case ZMMRegister : return ecode(r) + default : return x + } +} + +func toKcodeMem(v *MemoryOperand) byte { + if !v.Masked { + return 0 + } else { + return byte(v.Mask.K) + } +} + +func toZcodeMem(v *MemoryOperand) byte { + if !v.Masked || v.Mask.Z { + return 0 + } else { + return 1 + } +} + +func toZcodeRegM(v RegisterMask) byte { + if v.Z { + return 1 + } else { + return 0 + } +} + +func toHLcodeReg8(v Register8) byte { + switch v { + case AH: fallthrough + case BH: fallthrough + case CH: fallthrough + case DH: panic("ah/bh/ch/dh registers never use 4-bit encoding") + default: return byte(v & 0x0f) + } +} + +/** Instruction Encoding Helpers **/ + +const ( + _N_inst = 16 +) + +const ( + _F_rel1 = 1 << iota + _F_rel4 +) + +type _Encoding struct { + len int + flags int + bytes [_N_inst]byte + encoder func(m *_Encoding, v []interface{}) +} + +// buf ensures len + n <= len(bytes). +func (self *_Encoding) buf(n int) []byte { + if i := self.len; i + n > _N_inst { + panic("instruction too long") + } else { + return self.bytes[i:] + } +} + +// emit encodes a single byte. +func (self *_Encoding) emit(v byte) { + self.buf(1)[0] = v + self.len++ +} + +// imm1 encodes a single byte immediate value. +func (self *_Encoding) imm1(v int64) { + self.emit(byte(v)) +} + +// imm2 encodes a two-byte immediate value in little-endian. +func (self *_Encoding) imm2(v int64) { + binary.LittleEndian.PutUint16(self.buf(2), uint16(v)) + self.len += 2 +} + +// imm4 encodes a 4-byte immediate value in little-endian. +func (self *_Encoding) imm4(v int64) { + binary.LittleEndian.PutUint32(self.buf(4), uint32(v)) + self.len += 4 +} + +// imm8 encodes an 8-byte immediate value in little-endian. +func (self *_Encoding) imm8(v int64) { + binary.LittleEndian.PutUint64(self.buf(8), uint64(v)) + self.len += 8 +} + +// vex2 encodes a 2-byte or 3-byte VEX prefix. +// +// 2-byte VEX prefix: +// Requires: VEX.W = 0, VEX.mmmmm = 0b00001 and VEX.B = VEX.X = 0 +// +----------------+ +// Byte 0: | Bits 0-7: 0xc5 | +// +----------------+ +// +// +-----------+----------------+----------+--------------+ +// Byte 1: | Bit 7: ~R | Bits 3-6 ~vvvv | Bit 2: L | Bits 0-1: pp | +// +-----------+----------------+----------+--------------+ +// +// 3-byte VEX prefix: +// +----------------+ +// Byte 0: | Bits 0-7: 0xc4 | +// +----------------+ +// +// +-----------+-----------+-----------+-------------------+ +// Byte 1: | Bit 7: ~R | Bit 6: ~X | Bit 5: ~B | Bits 0-4: 0b00001 | +// +-----------+-----------+-----------+-------------------+ +// +// +----------+-----------------+----------+--------------+ +// Byte 2: | Bit 7: 0 | Bits 3-6: ~vvvv | Bit 2: L | Bits 0-1: pp | +// +----------+-----------------+----------+--------------+ +// +func (self *_Encoding) vex2(lpp byte, r byte, rm interface{}, vvvv byte) { + var b byte + var x byte + + /* VEX.R must be a single-bit mask */ + if r > 1 { + panic("VEX.R must be a 1-bit mask") + } + + /* VEX.Lpp must be a 3-bit mask */ + if lpp &^ 0b111 != 0 { + panic("VEX.Lpp must be a 3-bit mask") + } + + /* VEX.vvvv must be a 4-bit mask */ + if vvvv &^ 0b1111 != 0 { + panic("VEX.vvvv must be a 4-bit mask") + } + + /* encode the RM bits if any */ + if rm != nil { + switch v := rm.(type) { + case *Label : break + case Register : b = hcode(v) + case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + } + + /* if VEX.B and VEX.X are zeroes, 2-byte VEX prefix can be used */ + if x == 0 && b == 0 { + self.emit(0xc5) + self.emit(0xf8 ^ (r << 7) ^ (vvvv << 3) ^ lpp) + } else { + self.emit(0xc4) + self.emit(0xe1 ^ (r << 7) ^ (x << 6) ^ (b << 5)) + self.emit(0x78 ^ (vvvv << 3) ^ lpp) + } +} + +// vex3 encodes a 3-byte VEX or XOP prefix. +// +// 3-byte VEX/XOP prefix +// +-----------------------------------+ +// Byte 0: | Bits 0-7: 0xc4 (VEX) / 0x8f (XOP) | +// +-----------------------------------+ +// +// +-----------+-----------+-----------+-----------------+ +// Byte 1: | Bit 7: ~R | Bit 6: ~X | Bit 5: ~B | Bits 0-4: mmmmm | +// +-----------+-----------+-----------+-----------------+ +// +// +----------+-----------------+----------+--------------+ +// Byte 2: | Bit 7: W | Bits 3-6: ~vvvv | Bit 2: L | Bits 0-1: pp | +// +----------+-----------------+----------+--------------+ +// +func (self *_Encoding) vex3(esc byte, mmmmm byte, wlpp byte, r byte, rm interface{}, vvvv byte) { + var b byte + var x byte + + /* VEX.R must be a single-bit mask */ + if r > 1 { + panic("VEX.R must be a 1-bit mask") + } + + /* VEX.vvvv must be a 4-bit mask */ + if vvvv &^ 0b1111 != 0 { + panic("VEX.vvvv must be a 4-bit mask") + } + + /* escape must be a 3-byte VEX (0xc4) or XOP (0x8f) prefix */ + if esc != 0xc4 && esc != 0x8f { + panic("escape must be a 3-byte VEX (0xc4) or XOP (0x8f) prefix") + } + + /* VEX.W____Lpp is expected to have no bits set except 0, 1, 2 and 7 */ + if wlpp &^ 0b10000111 != 0 { + panic("VEX.W____Lpp is expected to have no bits set except 0, 1, 2 and 7") + } + + /* VEX.m-mmmm is expected to be a 5-bit mask */ + if mmmmm &^ 0b11111 != 0 { + panic("VEX.m-mmmm is expected to be a 5-bit mask") + } + + /* encode the RM bits */ + switch v := rm.(type) { + case *Label : break + case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + + /* encode the 3-byte VEX or XOP prefix */ + self.emit(esc) + self.emit(0xe0 ^ (r << 7) ^ (x << 6) ^ (b << 5) ^ mmmmm) + self.emit(0x78 ^ (vvvv << 3) ^ wlpp) +} + +// evex encodes a 4-byte EVEX prefix. +func (self *_Encoding) evex(mm byte, w1pp byte, ll byte, rr byte, rm interface{}, vvvvv byte, aaa byte, zz byte, bb byte) { + var b byte + var x byte + + /* EVEX.b must be a single-bit mask */ + if bb > 1 { + panic("EVEX.b must be a 1-bit mask") + } + + /* EVEX.z must be a single-bit mask */ + if zz > 1 { + panic("EVEX.z must be a 1-bit mask") + } + + /* EVEX.mm must be a 2-bit mask */ + if mm &^ 0b11 != 0 { + panic("EVEX.mm must be a 2-bit mask") + } + + /* EVEX.L'L must be a 2-bit mask */ + if ll &^ 0b11 != 0 { + panic("EVEX.L'L must be a 2-bit mask") + } + + /* EVEX.R'R must be a 2-bit mask */ + if rr &^ 0b11 != 0 { + panic("EVEX.R'R must be a 2-bit mask") + } + + /* EVEX.aaa must be a 3-bit mask */ + if aaa &^ 0b111 != 0 { + panic("EVEX.aaa must be a 3-bit mask") + } + + /* EVEX.v'vvvv must be a 5-bit mask */ + if vvvvv &^ 0b11111 != 0 { + panic("EVEX.v'vvvv must be a 5-bit mask") + } + + /* EVEX.W____1pp is expected to have no bits set except 0, 1, 2, and 7 */ + if w1pp &^ 0b10000011 != 0b100 { + panic("EVEX.W____1pp is expected to have no bits set except 0, 1, 2, and 7") + } + + /* extract bits from EVEX.R'R and EVEX.v'vvvv */ + r1, r0 := rr >> 1, rr & 1 + v1, v0 := vvvvv >> 4, vvvvv & 0b1111 + + /* encode the RM bits if any */ + if rm != nil { + switch m := rm.(type) { + case *Label : break + case Register : b, x = hcode(m), ecode(m) + case MemoryAddress : b, x, v1 = toHcodeOpt(m.Base), toHcodeOpt(m.Index), toEcodeVMM(m.Index, v1) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + } + + /* EVEX prefix bytes */ + p0 := (r0 << 7) | (x << 6) | (b << 5) | (r1 << 4) | mm + p1 := (v0 << 3) | w1pp + p2 := (zz << 7) | (ll << 5) | (b << 4) | (v1 << 3) | aaa + + /* p0: invert RXBR' (bits 4-7) + * p1: invert vvvv (bits 3-6) + * p2: invert V' (bit 3) */ + self.emit(0x62) + self.emit(p0 ^ 0xf0) + self.emit(p1 ^ 0x78) + self.emit(p2 ^ 0x08) +} + +// rexm encodes a mandatory REX prefix. +func (self *_Encoding) rexm(w byte, r byte, rm interface{}) { + var b byte + var x byte + + /* REX.R must be 0 or 1 */ + if r != 0 && r != 1 { + panic("REX.R must be 0 or 1") + } + + /* REX.W must be 0 or 1 */ + if w != 0 && w != 1 { + panic("REX.W must be 0 or 1") + } + + /* encode the RM bits */ + switch v := rm.(type) { + case *Label : break + case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + + /* encode the REX prefix */ + self.emit(0x40 | (w << 3) | (r << 2) | (x << 1) | b) +} + +// rexo encodes an optional REX prefix. +func (self *_Encoding) rexo(r byte, rm interface{}, force bool) { + var b byte + var x byte + + /* REX.R must be 0 or 1 */ + if r != 0 && r != 1 { + panic("REX.R must be 0 or 1") + } + + /* encode the RM bits */ + switch v := rm.(type) { + case *Label : break + case Register : b = hcode(v) + case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + + /* if REX.R, REX.X, and REX.B are all zeroes, REX prefix can be omitted */ + if force || r != 0 || x != 0 || b != 0 { + self.emit(0x40 | (r << 2) | (x << 1) | b) + } +} + +// mrsd encodes ModR/M, SIB and Displacement. +// +// ModR/M byte +// +----------------+---------------+---------------+ +// | Bits 6-7: Mode | Bits 3-5: Reg | Bits 0-2: R/M | +// +----------------+---------------+---------------+ +// +// SIB byte +// +-----------------+-----------------+----------------+ +// | Bits 6-7: Scale | Bits 3-5: Index | Bits 0-2: Base | +// +-----------------+-----------------+----------------+ +// +func (self *_Encoding) mrsd(reg byte, rm interface{}, disp8v int32) { + var ok bool + var mm MemoryAddress + var ro RelativeOffset + + /* ModRM encodes the lower 3-bit of the register */ + if reg > 7 { + panic("invalid register bits") + } + + /* check the displacement scale */ + switch disp8v { + case 1: break + case 2: break + case 4: break + case 8: break + case 16: break + case 32: break + case 64: break + default: panic("invalid displacement size") + } + + /* special case: unresolved labels, assuming a zero offset */ + if _, ok = rm.(*Label); ok { + self.emit(0x05 | (reg << 3)) + self.imm4(0) + return + } + + /* special case: RIP-relative offset + * ModRM.Mode == 0 and ModeRM.R/M == 5 indicates (rip + disp32) addressing */ + if ro, ok = rm.(RelativeOffset); ok { + self.emit(0x05 | (reg << 3)) + self.imm4(int64(ro)) + return + } + + /* must be a generic memory address */ + if mm, ok = rm.(MemoryAddress); !ok { + panic("rm must be a memory address") + } + + /* absolute addressing, encoded as disp(%rbp,%rsp,1) */ + if mm.Base == nil && mm.Index == nil { + self.emit(0x04 | (reg << 3)) + self.emit(0x25) + self.imm4(int64(mm.Displacement)) + return + } + + /* no SIB byte */ + if mm.Index == nil && lcode(mm.Base) != 0b100 { + cc := lcode(mm.Base) + dv := mm.Displacement + + /* ModRM.Mode == 0 (no displacement) */ + if dv == 0 && mm.Base != RBP && mm.Base != R13 { + if cc == 0b101 { + panic("rbp/r13 is not encodable as a base register (interpreted as disp32 address)") + } else { + self.emit((reg << 3) | cc) + return + } + } + + /* ModRM.Mode == 1 (8-bit displacement) */ + if dq := dv / disp8v; dq >= math.MinInt8 && dq <= math.MaxInt8 && dv % disp8v == 0 { + self.emit(0x40 | (reg << 3) | cc) + self.imm1(int64(dq)) + return + } + + /* ModRM.Mode == 2 (32-bit displacement) */ + self.emit(0x80 | (reg << 3) | cc) + self.imm4(int64(mm.Displacement)) + return + } + + /* all encodings below use ModRM.R/M = 4 (0b100) to indicate the presence of SIB */ + if mm.Index == RSP { + panic("rsp is not encodable as an index register (interpreted as no index)") + } + + /* index = 4 (0b100) denotes no-index encoding */ + var scale byte + var index byte = 0x04 + + /* encode the scale byte */ + if mm.Scale != 0 { + switch mm.Scale { + case 1 : scale = 0 + case 2 : scale = 1 + case 4 : scale = 2 + case 8 : scale = 3 + default : panic("invalid scale value") + } + } + + /* encode the index byte */ + if mm.Index != nil { + index = lcode(mm.Index) + } + + /* SIB.Base = 5 (0b101) and ModRM.Mode = 0 indicates no-base encoding with disp32 */ + if mm.Base == nil { + self.emit((reg << 3) | 0b100) + self.emit((scale << 6) | (index << 3) | 0b101) + self.imm4(int64(mm.Displacement)) + return + } + + /* base L-code & displacement value */ + cc := lcode(mm.Base) + dv := mm.Displacement + + /* ModRM.Mode == 0 (no displacement) */ + if dv == 0 && cc != 0b101 { + self.emit((reg << 3) | 0b100) + self.emit((scale << 6) | (index << 3) | cc) + return + } + + /* ModRM.Mode == 1 (8-bit displacement) */ + if dq := dv / disp8v; dq >= math.MinInt8 && dq <= math.MaxInt8 && dv % disp8v == 0 { + self.emit(0x44 | (reg << 3)) + self.emit((scale << 6) | (index << 3) | cc) + self.imm1(int64(dq)) + return + } + + /* ModRM.Mode == 2 (32-bit displacement) */ + self.emit(0x84 | (reg << 3)) + self.emit((scale << 6) | (index << 3) | cc) + self.imm4(int64(mm.Displacement)) +} + +// encode invokes the encoder to encode this instruction. +func (self *_Encoding) encode(v []interface{}) int { + self.len = 0 + self.encoder(self, v) + return self.len +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions.go new file mode 100644 index 00000000..fc73a6f8 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions.go @@ -0,0 +1,97194 @@ +// Code generated by "mkasm_amd64.py", DO NOT EDIT. + +package x86_64 + +// ADCB performs "Add with Carry". +// +// Mnemonic : ADC +// Supported forms : (6 forms) +// +// * ADCB imm8, al +// * ADCB imm8, r8 +// * ADCB r8, r8 +// * ADCB m8, r8 +// * ADCB imm8, m8 +// * ADCB r8, m8 +// +func (self *Program) ADCB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCB", 2, Operands { v0, v1 }) + // ADCB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x14) + m.imm1(toImmAny(v[0])) + }) + } + // ADCB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADCB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x10) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADCB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADCB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x10) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCB") + } + return p +} + +// ADCL performs "Add with Carry". +// +// Mnemonic : ADC +// Supported forms : (8 forms) +// +// * ADCL imm32, eax +// * ADCL imm8, r32 +// * ADCL imm32, r32 +// * ADCL r32, r32 +// * ADCL m32, r32 +// * ADCL imm8, m32 +// * ADCL imm32, m32 +// * ADCL r32, m32 +// +func (self *Program) ADCL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCL", 2, Operands { v0, v1 }) + // ADCL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x15) + m.imm4(toImmAny(v[0])) + }) + } + // ADCL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADCL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xd0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ADCL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADCL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADCL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(2, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ADCL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCL") + } + return p +} + +// ADCQ performs "Add with Carry". +// +// Mnemonic : ADC +// Supported forms : (8 forms) +// +// * ADCQ imm32, rax +// * ADCQ imm8, r64 +// * ADCQ imm32, r64 +// * ADCQ r64, r64 +// * ADCQ m64, r64 +// * ADCQ imm8, m64 +// * ADCQ imm32, m64 +// * ADCQ r64, m64 +// +func (self *Program) ADCQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCQ", 2, Operands { v0, v1 }) + // ADCQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x15) + m.imm4(toImmAny(v[0])) + }) + } + // ADCQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADCQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xd0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ADCQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADCQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADCQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(2, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ADCQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCQ") + } + return p +} + +// ADCW performs "Add with Carry". +// +// Mnemonic : ADC +// Supported forms : (8 forms) +// +// * ADCW imm16, ax +// * ADCW imm8, r16 +// * ADCW imm16, r16 +// * ADCW r16, r16 +// * ADCW m16, r16 +// * ADCW imm8, m16 +// * ADCW imm16, m16 +// * ADCW r16, m16 +// +func (self *Program) ADCW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCW", 2, Operands { v0, v1 }) + // ADCW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x15) + m.imm2(toImmAny(v[0])) + }) + } + // ADCW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADCW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xd0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // ADCW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADCW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADCW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(2, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // ADCW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCW") + } + return p +} + +// ADCXL performs "Unsigned Integer Addition of Two Operands with Carry Flag". +// +// Mnemonic : ADCX +// Supported forms : (2 forms) +// +// * ADCXL r32, r32 [ADX] +// * ADCXL m32, r32 [ADX] +// +func (self *Program) ADCXL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCXL", 2, Operands { v0, v1 }) + // ADCXL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCXL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCXL") + } + return p +} + +// ADCXQ performs "Unsigned Integer Addition of Two Operands with Carry Flag". +// +// Mnemonic : ADCX +// Supported forms : (2 forms) +// +// * ADCXQ r64, r64 [ADX] +// * ADCXQ m64, r64 [ADX] +// +func (self *Program) ADCXQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCXQ", 2, Operands { v0, v1 }) + // ADCXQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCXQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCXQ") + } + return p +} + +// ADDB performs "Add". +// +// Mnemonic : ADD +// Supported forms : (6 forms) +// +// * ADDB imm8, al +// * ADDB imm8, r8 +// * ADDB r8, r8 +// * ADDB m8, r8 +// * ADDB imm8, m8 +// * ADDB r8, m8 +// +func (self *Program) ADDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDB", 2, Operands { v0, v1 }) + // ADDB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x04) + m.imm1(toImmAny(v[0])) + }) + } + // ADDB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADDB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x00) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x02) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x02) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADDB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADDB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x00) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDB") + } + return p +} + +// ADDL performs "Add". +// +// Mnemonic : ADD +// Supported forms : (8 forms) +// +// * ADDL imm32, eax +// * ADDL imm8, r32 +// * ADDL imm32, r32 +// * ADDL r32, r32 +// * ADDL m32, r32 +// * ADDL imm8, m32 +// * ADDL imm32, m32 +// * ADDL r32, m32 +// +func (self *Program) ADDL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDL", 2, Operands { v0, v1 }) + // ADDL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x05) + m.imm4(toImmAny(v[0])) + }) + } + // ADDL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADDL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ADDL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x01) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADDL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADDL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ADDL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x01) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDL") + } + return p +} + +// ADDPD performs "Add Packed Double-Precision Floating-Point Values". +// +// Mnemonic : ADDPD +// Supported forms : (2 forms) +// +// * ADDPD xmm, xmm [SSE2] +// * ADDPD m128, xmm [SSE2] +// +func (self *Program) ADDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDPD", 2, Operands { v0, v1 }) + // ADDPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDPD") + } + return p +} + +// ADDPS performs "Add Packed Single-Precision Floating-Point Values". +// +// Mnemonic : ADDPS +// Supported forms : (2 forms) +// +// * ADDPS xmm, xmm [SSE] +// * ADDPS m128, xmm [SSE] +// +func (self *Program) ADDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDPS", 2, Operands { v0, v1 }) + // ADDPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDPS") + } + return p +} + +// ADDQ performs "Add". +// +// Mnemonic : ADD +// Supported forms : (8 forms) +// +// * ADDQ imm32, rax +// * ADDQ imm8, r64 +// * ADDQ imm32, r64 +// * ADDQ r64, r64 +// * ADDQ m64, r64 +// * ADDQ imm8, m64 +// * ADDQ imm32, m64 +// * ADDQ r64, m64 +// +func (self *Program) ADDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDQ", 2, Operands { v0, v1 }) + // ADDQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x05) + m.imm4(toImmAny(v[0])) + }) + } + // ADDQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADDQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ADDQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x01) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADDQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADDQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ADDQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDQ") + } + return p +} + +// ADDSD performs "Add Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : ADDSD +// Supported forms : (2 forms) +// +// * ADDSD xmm, xmm [SSE2] +// * ADDSD m64, xmm [SSE2] +// +func (self *Program) ADDSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDSD", 2, Operands { v0, v1 }) + // ADDSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDSD") + } + return p +} + +// ADDSS performs "Add Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : ADDSS +// Supported forms : (2 forms) +// +// * ADDSS xmm, xmm [SSE] +// * ADDSS m32, xmm [SSE] +// +func (self *Program) ADDSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDSS", 2, Operands { v0, v1 }) + // ADDSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDSS") + } + return p +} + +// ADDSUBPD performs "Packed Double-FP Add/Subtract". +// +// Mnemonic : ADDSUBPD +// Supported forms : (2 forms) +// +// * ADDSUBPD xmm, xmm [SSE3] +// * ADDSUBPD m128, xmm [SSE3] +// +func (self *Program) ADDSUBPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDSUBPD", 2, Operands { v0, v1 }) + // ADDSUBPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDSUBPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDSUBPD") + } + return p +} + +// ADDSUBPS performs "Packed Single-FP Add/Subtract". +// +// Mnemonic : ADDSUBPS +// Supported forms : (2 forms) +// +// * ADDSUBPS xmm, xmm [SSE3] +// * ADDSUBPS m128, xmm [SSE3] +// +func (self *Program) ADDSUBPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDSUBPS", 2, Operands { v0, v1 }) + // ADDSUBPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDSUBPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDSUBPS") + } + return p +} + +// ADDW performs "Add". +// +// Mnemonic : ADD +// Supported forms : (8 forms) +// +// * ADDW imm16, ax +// * ADDW imm8, r16 +// * ADDW imm16, r16 +// * ADDW r16, r16 +// * ADDW m16, r16 +// * ADDW imm8, m16 +// * ADDW imm16, m16 +// * ADDW r16, m16 +// +func (self *Program) ADDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDW", 2, Operands { v0, v1 }) + // ADDW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x05) + m.imm2(toImmAny(v[0])) + }) + } + // ADDW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADDW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // ADDW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x01) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADDW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADDW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(0, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // ADDW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x01) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDW") + } + return p +} + +// ADOXL performs "Unsigned Integer Addition of Two Operands with Overflow Flag". +// +// Mnemonic : ADOX +// Supported forms : (2 forms) +// +// * ADOXL r32, r32 [ADX] +// * ADOXL m32, r32 [ADX] +// +func (self *Program) ADOXL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADOXL", 2, Operands { v0, v1 }) + // ADOXL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADOXL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADOXL") + } + return p +} + +// ADOXQ performs "Unsigned Integer Addition of Two Operands with Overflow Flag". +// +// Mnemonic : ADOX +// Supported forms : (2 forms) +// +// * ADOXQ r64, r64 [ADX] +// * ADOXQ m64, r64 [ADX] +// +func (self *Program) ADOXQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADOXQ", 2, Operands { v0, v1 }) + // ADOXQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADOXQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADOXQ") + } + return p +} + +// AESDEC performs "Perform One Round of an AES Decryption Flow". +// +// Mnemonic : AESDEC +// Supported forms : (2 forms) +// +// * AESDEC xmm, xmm [AES] +// * AESDEC m128, xmm [AES] +// +func (self *Program) AESDEC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESDEC", 2, Operands { v0, v1 }) + // AESDEC xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xde) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESDEC m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xde) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESDEC") + } + return p +} + +// AESDECLAST performs "Perform Last Round of an AES Decryption Flow". +// +// Mnemonic : AESDECLAST +// Supported forms : (2 forms) +// +// * AESDECLAST xmm, xmm [AES] +// * AESDECLAST m128, xmm [AES] +// +func (self *Program) AESDECLAST(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESDECLAST", 2, Operands { v0, v1 }) + // AESDECLAST xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESDECLAST m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESDECLAST") + } + return p +} + +// AESENC performs "Perform One Round of an AES Encryption Flow". +// +// Mnemonic : AESENC +// Supported forms : (2 forms) +// +// * AESENC xmm, xmm [AES] +// * AESENC m128, xmm [AES] +// +func (self *Program) AESENC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESENC", 2, Operands { v0, v1 }) + // AESENC xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESENC m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESENC") + } + return p +} + +// AESENCLAST performs "Perform Last Round of an AES Encryption Flow". +// +// Mnemonic : AESENCLAST +// Supported forms : (2 forms) +// +// * AESENCLAST xmm, xmm [AES] +// * AESENCLAST m128, xmm [AES] +// +func (self *Program) AESENCLAST(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESENCLAST", 2, Operands { v0, v1 }) + // AESENCLAST xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESENCLAST m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESENCLAST") + } + return p +} + +// AESIMC performs "Perform the AES InvMixColumn Transformation". +// +// Mnemonic : AESIMC +// Supported forms : (2 forms) +// +// * AESIMC xmm, xmm [AES] +// * AESIMC m128, xmm [AES] +// +func (self *Program) AESIMC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESIMC", 2, Operands { v0, v1 }) + // AESIMC xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESIMC m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESIMC") + } + return p +} + +// AESKEYGENASSIST performs "AES Round Key Generation Assist". +// +// Mnemonic : AESKEYGENASSIST +// Supported forms : (2 forms) +// +// * AESKEYGENASSIST imm8, xmm, xmm [AES] +// * AESKEYGENASSIST imm8, m128, xmm [AES] +// +func (self *Program) AESKEYGENASSIST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("AESKEYGENASSIST", 3, Operands { v0, v1, v2 }) + // AESKEYGENASSIST imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // AESKEYGENASSIST imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for AESKEYGENASSIST") + } + return p +} + +// ANDB performs "Logical AND". +// +// Mnemonic : AND +// Supported forms : (6 forms) +// +// * ANDB imm8, al +// * ANDB imm8, r8 +// * ANDB r8, r8 +// * ANDB m8, r8 +// * ANDB imm8, m8 +// * ANDB r8, m8 +// +func (self *Program) ANDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDB", 2, Operands { v0, v1 }) + // ANDB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x24) + m.imm1(toImmAny(v[0])) + }) + } + // ANDB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ANDB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x20) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ANDB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ANDB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x20) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDB") + } + return p +} + +// ANDL performs "Logical AND". +// +// Mnemonic : AND +// Supported forms : (8 forms) +// +// * ANDL imm32, eax +// * ANDL imm8, r32 +// * ANDL imm32, r32 +// * ANDL r32, r32 +// * ANDL m32, r32 +// * ANDL imm8, m32 +// * ANDL imm32, m32 +// * ANDL r32, m32 +// +func (self *Program) ANDL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDL", 2, Operands { v0, v1 }) + // ANDL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x25) + m.imm4(toImmAny(v[0])) + }) + } + // ANDL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ANDL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xe0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ANDL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ANDL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ANDL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(4, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ANDL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDL") + } + return p +} + +// ANDNL performs "Logical AND NOT". +// +// Mnemonic : ANDN +// Supported forms : (2 forms) +// +// * ANDNL r32, r32, r32 [BMI] +// * ANDNL m32, r32, r32 [BMI] +// +func (self *Program) ANDNL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ANDNL", 3, Operands { v0, v1, v2 }) + // ANDNL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // ANDNL m32, r32, r32 + if isM32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDNL") + } + return p +} + +// ANDNPD performs "Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : ANDNPD +// Supported forms : (2 forms) +// +// * ANDNPD xmm, xmm [SSE2] +// * ANDNPD m128, xmm [SSE2] +// +func (self *Program) ANDNPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDNPD", 2, Operands { v0, v1 }) + // ANDNPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x55) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDNPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x55) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDNPD") + } + return p +} + +// ANDNPS performs "Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : ANDNPS +// Supported forms : (2 forms) +// +// * ANDNPS xmm, xmm [SSE] +// * ANDNPS m128, xmm [SSE] +// +func (self *Program) ANDNPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDNPS", 2, Operands { v0, v1 }) + // ANDNPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x55) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDNPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x55) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDNPS") + } + return p +} + +// ANDNQ performs "Logical AND NOT". +// +// Mnemonic : ANDN +// Supported forms : (2 forms) +// +// * ANDNQ r64, r64, r64 [BMI] +// * ANDNQ m64, r64, r64 [BMI] +// +func (self *Program) ANDNQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ANDNQ", 3, Operands { v0, v1, v2 }) + // ANDNQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // ANDNQ m64, r64, r64 + if isM64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDNQ") + } + return p +} + +// ANDPD performs "Bitwise Logical AND of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : ANDPD +// Supported forms : (2 forms) +// +// * ANDPD xmm, xmm [SSE2] +// * ANDPD m128, xmm [SSE2] +// +func (self *Program) ANDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDPD", 2, Operands { v0, v1 }) + // ANDPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x54) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x54) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDPD") + } + return p +} + +// ANDPS performs "Bitwise Logical AND of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : ANDPS +// Supported forms : (2 forms) +// +// * ANDPS xmm, xmm [SSE] +// * ANDPS m128, xmm [SSE] +// +func (self *Program) ANDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDPS", 2, Operands { v0, v1 }) + // ANDPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x54) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x54) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDPS") + } + return p +} + +// ANDQ performs "Logical AND". +// +// Mnemonic : AND +// Supported forms : (8 forms) +// +// * ANDQ imm32, rax +// * ANDQ imm8, r64 +// * ANDQ imm32, r64 +// * ANDQ r64, r64 +// * ANDQ m64, r64 +// * ANDQ imm8, m64 +// * ANDQ imm32, m64 +// * ANDQ r64, m64 +// +func (self *Program) ANDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDQ", 2, Operands { v0, v1 }) + // ANDQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x25) + m.imm4(toImmAny(v[0])) + }) + } + // ANDQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ANDQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xe0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ANDQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ANDQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ANDQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(4, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ANDQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDQ") + } + return p +} + +// ANDW performs "Logical AND". +// +// Mnemonic : AND +// Supported forms : (8 forms) +// +// * ANDW imm16, ax +// * ANDW imm8, r16 +// * ANDW imm16, r16 +// * ANDW r16, r16 +// * ANDW m16, r16 +// * ANDW imm8, m16 +// * ANDW imm16, m16 +// * ANDW r16, m16 +// +func (self *Program) ANDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDW", 2, Operands { v0, v1 }) + // ANDW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x25) + m.imm2(toImmAny(v[0])) + }) + } + // ANDW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ANDW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xe0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // ANDW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ANDW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ANDW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(4, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // ANDW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDW") + } + return p +} + +// BEXTR performs "Bit Field Extract". +// +// Mnemonic : BEXTR +// Supported forms : (8 forms) +// +// * BEXTR imm32, r32, r32 [TBM] +// * BEXTR imm32, m32, r32 [TBM] +// * BEXTR imm32, r64, r64 [TBM] +// * BEXTR imm32, m64, r64 [TBM] +// * BEXTR r32, r32, r32 [BMI] +// * BEXTR r32, m32, r32 [BMI] +// * BEXTR r64, r64, r64 [BMI] +// * BEXTR r64, m64, r64 [BMI] +// +func (self *Program) BEXTR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BEXTR", 3, Operands { v0, v1, v2 }) + // BEXTR imm32, r32, r32 + if isImm32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xea ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // BEXTR imm32, m32, r32 + if isImm32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1010, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // BEXTR imm32, r64, r64 + if isImm32(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xea ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf8) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // BEXTR imm32, m64, r64 + if isImm32(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1010, 0x80, hcode(v[2]), addr(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // BEXTR r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BEXTR r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // BEXTR r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf8 ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BEXTR r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BEXTR") + } + return p +} + +// BLCFILL performs "Fill From Lowest Clear Bit". +// +// Mnemonic : BLCFILL +// Supported forms : (4 forms) +// +// * BLCFILL r32, r32 [TBM] +// * BLCFILL m32, r32 [TBM] +// * BLCFILL r64, r64 [TBM] +// * BLCFILL m64, r64 [TBM] +// +func (self *Program) BLCFILL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCFILL", 2, Operands { v0, v1 }) + // BLCFILL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLCFILL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(1, addr(v[0]), 1) + }) + } + // BLCFILL r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLCFILL m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCFILL") + } + return p +} + +// BLCI performs "Isolate Lowest Clear Bit". +// +// Mnemonic : BLCI +// Supported forms : (4 forms) +// +// * BLCI r32, r32 [TBM] +// * BLCI m32, r32 [TBM] +// * BLCI r64, r64 [TBM] +// * BLCI m64, r64 [TBM] +// +func (self *Program) BLCI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCI", 2, Operands { v0, v1 }) + // BLCI r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xf0 | lcode(v[0])) + }) + } + // BLCI m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(6, addr(v[0]), 1) + }) + } + // BLCI r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xf0 | lcode(v[0])) + }) + } + // BLCI m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCI") + } + return p +} + +// BLCIC performs "Isolate Lowest Set Bit and Complement". +// +// Mnemonic : BLCIC +// Supported forms : (4 forms) +// +// * BLCIC r32, r32 [TBM] +// * BLCIC m32, r32 [TBM] +// * BLCIC r64, r64 [TBM] +// * BLCIC m64, r64 [TBM] +// +func (self *Program) BLCIC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCIC", 2, Operands { v0, v1 }) + // BLCIC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xe8 | lcode(v[0])) + }) + } + // BLCIC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(5, addr(v[0]), 1) + }) + } + // BLCIC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xe8 | lcode(v[0])) + }) + } + // BLCIC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(5, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCIC") + } + return p +} + +// BLCMSK performs "Mask From Lowest Clear Bit". +// +// Mnemonic : BLCMSK +// Supported forms : (4 forms) +// +// * BLCMSK r32, r32 [TBM] +// * BLCMSK m32, r32 [TBM] +// * BLCMSK r64, r64 [TBM] +// * BLCMSK m64, r64 [TBM] +// +func (self *Program) BLCMSK(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCMSK", 2, Operands { v0, v1 }) + // BLCMSK r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLCMSK m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(1, addr(v[0]), 1) + }) + } + // BLCMSK r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLCMSK m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCMSK") + } + return p +} + +// BLCS performs "Set Lowest Clear Bit". +// +// Mnemonic : BLCS +// Supported forms : (4 forms) +// +// * BLCS r32, r32 [TBM] +// * BLCS m32, r32 [TBM] +// * BLCS r64, r64 [TBM] +// * BLCS m64, r64 [TBM] +// +func (self *Program) BLCS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCS", 2, Operands { v0, v1 }) + // BLCS r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xd8 | lcode(v[0])) + }) + } + // BLCS m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(3, addr(v[0]), 1) + }) + } + // BLCS r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xd8 | lcode(v[0])) + }) + } + // BLCS m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCS") + } + return p +} + +// BLENDPD performs "Blend Packed Double Precision Floating-Point Values". +// +// Mnemonic : BLENDPD +// Supported forms : (2 forms) +// +// * BLENDPD imm8, xmm, xmm [SSE4.1] +// * BLENDPD imm8, m128, xmm [SSE4.1] +// +func (self *Program) BLENDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BLENDPD", 3, Operands { v0, v1, v2 }) + // BLENDPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BLENDPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for BLENDPD") + } + return p +} + +// BLENDPS performs " Blend Packed Single Precision Floating-Point Values". +// +// Mnemonic : BLENDPS +// Supported forms : (2 forms) +// +// * BLENDPS imm8, xmm, xmm [SSE4.1] +// * BLENDPS imm8, m128, xmm [SSE4.1] +// +func (self *Program) BLENDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BLENDPS", 3, Operands { v0, v1, v2 }) + // BLENDPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BLENDPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for BLENDPS") + } + return p +} + +// BLENDVPD performs " Variable Blend Packed Double Precision Floating-Point Values". +// +// Mnemonic : BLENDVPD +// Supported forms : (2 forms) +// +// * BLENDVPD xmm0, xmm, xmm [SSE4.1] +// * BLENDVPD xmm0, m128, xmm [SSE4.1] +// +func (self *Program) BLENDVPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BLENDVPD", 3, Operands { v0, v1, v2 }) + // BLENDVPD xmm0, xmm, xmm + if v0 == XMM0 && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BLENDVPD xmm0, m128, xmm + if v0 == XMM0 && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLENDVPD") + } + return p +} + +// BLENDVPS performs " Variable Blend Packed Single Precision Floating-Point Values". +// +// Mnemonic : BLENDVPS +// Supported forms : (2 forms) +// +// * BLENDVPS xmm0, xmm, xmm [SSE4.1] +// * BLENDVPS xmm0, m128, xmm [SSE4.1] +// +func (self *Program) BLENDVPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BLENDVPS", 3, Operands { v0, v1, v2 }) + // BLENDVPS xmm0, xmm, xmm + if v0 == XMM0 && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BLENDVPS xmm0, m128, xmm + if v0 == XMM0 && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLENDVPS") + } + return p +} + +// BLSFILL performs "Fill From Lowest Set Bit". +// +// Mnemonic : BLSFILL +// Supported forms : (4 forms) +// +// * BLSFILL r32, r32 [TBM] +// * BLSFILL m32, r32 [TBM] +// * BLSFILL r64, r64 [TBM] +// * BLSFILL m64, r64 [TBM] +// +func (self *Program) BLSFILL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSFILL", 2, Operands { v0, v1 }) + // BLSFILL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xd0 | lcode(v[0])) + }) + } + // BLSFILL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(2, addr(v[0]), 1) + }) + } + // BLSFILL r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xd0 | lcode(v[0])) + }) + } + // BLSFILL m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSFILL") + } + return p +} + +// BLSI performs "Isolate Lowest Set Bit". +// +// Mnemonic : BLSI +// Supported forms : (4 forms) +// +// * BLSI r32, r32 [BMI] +// * BLSI m32, r32 [BMI] +// * BLSI r64, r64 [BMI] +// * BLSI m64, r64 [BMI] +// +func (self *Program) BLSI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSI", 2, Operands { v0, v1 }) + // BLSI r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xd8 | lcode(v[0])) + }) + } + // BLSI m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(3, addr(v[0]), 1) + }) + } + // BLSI r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xd8 | lcode(v[0])) + }) + } + // BLSI m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSI") + } + return p +} + +// BLSIC performs "Isolate Lowest Set Bit and Complement". +// +// Mnemonic : BLSIC +// Supported forms : (4 forms) +// +// * BLSIC r32, r32 [TBM] +// * BLSIC m32, r32 [TBM] +// * BLSIC r64, r64 [TBM] +// * BLSIC m64, r64 [TBM] +// +func (self *Program) BLSIC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSIC", 2, Operands { v0, v1 }) + // BLSIC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xf0 | lcode(v[0])) + }) + } + // BLSIC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(6, addr(v[0]), 1) + }) + } + // BLSIC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xf0 | lcode(v[0])) + }) + } + // BLSIC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSIC") + } + return p +} + +// BLSMSK performs "Mask From Lowest Set Bit". +// +// Mnemonic : BLSMSK +// Supported forms : (4 forms) +// +// * BLSMSK r32, r32 [BMI] +// * BLSMSK m32, r32 [BMI] +// * BLSMSK r64, r64 [BMI] +// * BLSMSK m64, r64 [BMI] +// +func (self *Program) BLSMSK(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSMSK", 2, Operands { v0, v1 }) + // BLSMSK r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xd0 | lcode(v[0])) + }) + } + // BLSMSK m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(2, addr(v[0]), 1) + }) + } + // BLSMSK r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xd0 | lcode(v[0])) + }) + } + // BLSMSK m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSMSK") + } + return p +} + +// BLSR performs "Reset Lowest Set Bit". +// +// Mnemonic : BLSR +// Supported forms : (4 forms) +// +// * BLSR r32, r32 [BMI] +// * BLSR m32, r32 [BMI] +// * BLSR r64, r64 [BMI] +// * BLSR m64, r64 [BMI] +// +func (self *Program) BLSR(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSR", 2, Operands { v0, v1 }) + // BLSR r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLSR m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(1, addr(v[0]), 1) + }) + } + // BLSR r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLSR m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSR") + } + return p +} + +// BSFL performs "Bit Scan Forward". +// +// Mnemonic : BSF +// Supported forms : (2 forms) +// +// * BSFL r32, r32 +// * BSFL m32, r32 +// +func (self *Program) BSFL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSFL", 2, Operands { v0, v1 }) + // BSFL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSFL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSFL") + } + return p +} + +// BSFQ performs "Bit Scan Forward". +// +// Mnemonic : BSF +// Supported forms : (2 forms) +// +// * BSFQ r64, r64 +// * BSFQ m64, r64 +// +func (self *Program) BSFQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSFQ", 2, Operands { v0, v1 }) + // BSFQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSFQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSFQ") + } + return p +} + +// BSFW performs "Bit Scan Forward". +// +// Mnemonic : BSF +// Supported forms : (2 forms) +// +// * BSFW r16, r16 +// * BSFW m16, r16 +// +func (self *Program) BSFW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSFW", 2, Operands { v0, v1 }) + // BSFW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSFW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSFW") + } + return p +} + +// BSRL performs "Bit Scan Reverse". +// +// Mnemonic : BSR +// Supported forms : (2 forms) +// +// * BSRL r32, r32 +// * BSRL m32, r32 +// +func (self *Program) BSRL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSRL", 2, Operands { v0, v1 }) + // BSRL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSRL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSRL") + } + return p +} + +// BSRQ performs "Bit Scan Reverse". +// +// Mnemonic : BSR +// Supported forms : (2 forms) +// +// * BSRQ r64, r64 +// * BSRQ m64, r64 +// +func (self *Program) BSRQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSRQ", 2, Operands { v0, v1 }) + // BSRQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSRQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSRQ") + } + return p +} + +// BSRW performs "Bit Scan Reverse". +// +// Mnemonic : BSR +// Supported forms : (2 forms) +// +// * BSRW r16, r16 +// * BSRW m16, r16 +// +func (self *Program) BSRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSRW", 2, Operands { v0, v1 }) + // BSRW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSRW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSRW") + } + return p +} + +// BSWAPL performs "Byte Swap". +// +// Mnemonic : BSWAP +// Supported forms : (1 form) +// +// * BSWAPL r32 +// +func (self *Program) BSWAPL(v0 interface{}) *Instruction { + p := self.alloc("BSWAPL", 1, Operands { v0 }) + // BSWAPL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc8 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for BSWAPL") + } + return p +} + +// BSWAPQ performs "Byte Swap". +// +// Mnemonic : BSWAP +// Supported forms : (1 form) +// +// * BSWAPQ r64 +// +func (self *Program) BSWAPQ(v0 interface{}) *Instruction { + p := self.alloc("BSWAPQ", 1, Operands { v0 }) + // BSWAPQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xc8 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for BSWAPQ") + } + return p +} + +// BTCL performs "Bit Test and Complement". +// +// Mnemonic : BTC +// Supported forms : (4 forms) +// +// * BTCL imm8, r32 +// * BTCL r32, r32 +// * BTCL imm8, m32 +// * BTCL r32, m32 +// +func (self *Program) BTCL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTCL", 2, Operands { v0, v1 }) + // BTCL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTCL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTCL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTCL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xbb) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTCL") + } + return p +} + +// BTCQ performs "Bit Test and Complement". +// +// Mnemonic : BTC +// Supported forms : (4 forms) +// +// * BTCQ imm8, r64 +// * BTCQ r64, r64 +// * BTCQ imm8, m64 +// * BTCQ r64, m64 +// +func (self *Program) BTCQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTCQ", 2, Operands { v0, v1 }) + // BTCQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTCQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTCQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTCQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xbb) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTCQ") + } + return p +} + +// BTCW performs "Bit Test and Complement". +// +// Mnemonic : BTC +// Supported forms : (4 forms) +// +// * BTCW imm8, r16 +// * BTCW r16, r16 +// * BTCW imm8, m16 +// * BTCW r16, m16 +// +func (self *Program) BTCW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTCW", 2, Operands { v0, v1 }) + // BTCW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTCW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTCW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTCW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xbb) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTCW") + } + return p +} + +// BTL performs "Bit Test". +// +// Mnemonic : BT +// Supported forms : (4 forms) +// +// * BTL imm8, r32 +// * BTL r32, r32 +// * BTL imm8, m32 +// * BTL r32, m32 +// +func (self *Program) BTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTL", 2, Operands { v0, v1 }) + // BTL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTL") + } + return p +} + +// BTQ performs "Bit Test". +// +// Mnemonic : BT +// Supported forms : (4 forms) +// +// * BTQ imm8, r64 +// * BTQ r64, r64 +// * BTQ imm8, m64 +// * BTQ r64, m64 +// +func (self *Program) BTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTQ", 2, Operands { v0, v1 }) + // BTQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTQ") + } + return p +} + +// BTRL performs "Bit Test and Reset". +// +// Mnemonic : BTR +// Supported forms : (4 forms) +// +// * BTRL imm8, r32 +// * BTRL r32, r32 +// * BTRL imm8, m32 +// * BTRL r32, m32 +// +func (self *Program) BTRL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTRL", 2, Operands { v0, v1 }) + // BTRL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTRL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xb3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTRL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTRL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xb3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTRL") + } + return p +} + +// BTRQ performs "Bit Test and Reset". +// +// Mnemonic : BTR +// Supported forms : (4 forms) +// +// * BTRQ imm8, r64 +// * BTRQ r64, r64 +// * BTRQ imm8, m64 +// * BTRQ r64, m64 +// +func (self *Program) BTRQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTRQ", 2, Operands { v0, v1 }) + // BTRQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTRQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xb3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTRQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTRQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xb3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTRQ") + } + return p +} + +// BTRW performs "Bit Test and Reset". +// +// Mnemonic : BTR +// Supported forms : (4 forms) +// +// * BTRW imm8, r16 +// * BTRW r16, r16 +// * BTRW imm8, m16 +// * BTRW r16, m16 +// +func (self *Program) BTRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTRW", 2, Operands { v0, v1 }) + // BTRW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTRW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xb3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTRW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTRW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xb3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTRW") + } + return p +} + +// BTSL performs "Bit Test and Set". +// +// Mnemonic : BTS +// Supported forms : (4 forms) +// +// * BTSL imm8, r32 +// * BTSL r32, r32 +// * BTSL imm8, m32 +// * BTSL r32, m32 +// +func (self *Program) BTSL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTSL", 2, Operands { v0, v1 }) + // BTSL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTSL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xab) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTSL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTSL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xab) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTSL") + } + return p +} + +// BTSQ performs "Bit Test and Set". +// +// Mnemonic : BTS +// Supported forms : (4 forms) +// +// * BTSQ imm8, r64 +// * BTSQ r64, r64 +// * BTSQ imm8, m64 +// * BTSQ r64, m64 +// +func (self *Program) BTSQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTSQ", 2, Operands { v0, v1 }) + // BTSQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTSQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xab) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTSQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTSQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xab) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTSQ") + } + return p +} + +// BTSW performs "Bit Test and Set". +// +// Mnemonic : BTS +// Supported forms : (4 forms) +// +// * BTSW imm8, r16 +// * BTSW r16, r16 +// * BTSW imm8, m16 +// * BTSW r16, m16 +// +func (self *Program) BTSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTSW", 2, Operands { v0, v1 }) + // BTSW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTSW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xab) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTSW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTSW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xab) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTSW") + } + return p +} + +// BTW performs "Bit Test". +// +// Mnemonic : BT +// Supported forms : (4 forms) +// +// * BTW imm8, r16 +// * BTW r16, r16 +// * BTW imm8, m16 +// * BTW r16, m16 +// +func (self *Program) BTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTW", 2, Operands { v0, v1 }) + // BTW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTW") + } + return p +} + +// BZHI performs "Zero High Bits Starting with Specified Bit Position". +// +// Mnemonic : BZHI +// Supported forms : (4 forms) +// +// * BZHI r32, r32, r32 [BMI2] +// * BZHI r32, m32, r32 [BMI2] +// * BZHI r64, r64, r64 [BMI2] +// * BZHI r64, m64, r64 [BMI2] +// +func (self *Program) BZHI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BZHI", 3, Operands { v0, v1, v2 }) + // BZHI r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BZHI r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // BZHI r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf8 ^ (hlcode(v[0]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BZHI r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BZHI") + } + return p +} + +// CALL performs "Call Procedure". +// +// Mnemonic : CALL +// Supported forms : (1 form) +// +// * CALL rel32 +// +func (self *Program) CALL(v0 interface{}) *Instruction { + p := self.alloc("CALL", 1, Operands { v0 }) + // CALL rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xe8) + m.imm4(relv(v[0])) + }) + } + // CALL label + if isLabel(v0) { + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0xe8) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CALL") + } + return p +} + +// CALLQ performs "Call Procedure". +// +// Mnemonic : CALL +// Supported forms : (2 forms) +// +// * CALLQ r64 +// * CALLQ m64 +// +func (self *Program) CALLQ(v0 interface{}) *Instruction { + p := self.alloc("CALLQ", 1, Operands { v0 }) + // CALLQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xd0 | lcode(v[0])) + }) + } + // CALLQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CALLQ") + } + return p +} + +// CBTW performs "Convert Byte to Word". +// +// Mnemonic : CBW +// Supported forms : (1 form) +// +// * CBTW +// +func (self *Program) CBTW() *Instruction { + p := self.alloc("CBTW", 0, Operands { }) + // CBTW + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x98) + }) + return p +} + +// CLC performs "Clear Carry Flag". +// +// Mnemonic : CLC +// Supported forms : (1 form) +// +// * CLC +// +func (self *Program) CLC() *Instruction { + p := self.alloc("CLC", 0, Operands { }) + // CLC + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf8) + }) + return p +} + +// CLD performs "Clear Direction Flag". +// +// Mnemonic : CLD +// Supported forms : (1 form) +// +// * CLD +// +func (self *Program) CLD() *Instruction { + p := self.alloc("CLD", 0, Operands { }) + // CLD + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xfc) + }) + return p +} + +// CLFLUSH performs "Flush Cache Line". +// +// Mnemonic : CLFLUSH +// Supported forms : (1 form) +// +// * CLFLUSH m8 [CLFLUSH] +// +func (self *Program) CLFLUSH(v0 interface{}) *Instruction { + p := self.alloc("CLFLUSH", 1, Operands { v0 }) + // CLFLUSH m8 + if isM8(v0) { + self.require(ISA_CLFLUSH) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CLFLUSH") + } + return p +} + +// CLFLUSHOPT performs "Flush Cache Line Optimized". +// +// Mnemonic : CLFLUSHOPT +// Supported forms : (1 form) +// +// * CLFLUSHOPT m8 [CLFLUSHOPT] +// +func (self *Program) CLFLUSHOPT(v0 interface{}) *Instruction { + p := self.alloc("CLFLUSHOPT", 1, Operands { v0 }) + // CLFLUSHOPT m8 + if isM8(v0) { + self.require(ISA_CLFLUSHOPT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CLFLUSHOPT") + } + return p +} + +// CLTD performs "Convert Doubleword to Quadword". +// +// Mnemonic : CDQ +// Supported forms : (1 form) +// +// * CLTD +// +func (self *Program) CLTD() *Instruction { + p := self.alloc("CLTD", 0, Operands { }) + // CLTD + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x99) + }) + return p +} + +// CLTQ performs "Convert Doubleword to Quadword". +// +// Mnemonic : CDQE +// Supported forms : (1 form) +// +// * CLTQ +// +func (self *Program) CLTQ() *Instruction { + p := self.alloc("CLTQ", 0, Operands { }) + // CLTQ + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x98) + }) + return p +} + +// CLWB performs "Cache Line Write Back". +// +// Mnemonic : CLWB +// Supported forms : (1 form) +// +// * CLWB m8 [CLWB] +// +func (self *Program) CLWB(v0 interface{}) *Instruction { + p := self.alloc("CLWB", 1, Operands { v0 }) + // CLWB m8 + if isM8(v0) { + self.require(ISA_CLWB) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CLWB") + } + return p +} + +// CLZERO performs "Zero-out 64-bit Cache Line". +// +// Mnemonic : CLZERO +// Supported forms : (1 form) +// +// * CLZERO [CLZERO] +// +func (self *Program) CLZERO() *Instruction { + p := self.alloc("CLZERO", 0, Operands { }) + // CLZERO + self.require(ISA_CLZERO) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xfc) + }) + return p +} + +// CMC performs "Complement Carry Flag". +// +// Mnemonic : CMC +// Supported forms : (1 form) +// +// * CMC +// +func (self *Program) CMC() *Instruction { + p := self.alloc("CMC", 0, Operands { }) + // CMC + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf5) + }) + return p +} + +// CMOVA performs "Move if above (CF == 0 and ZF == 0)". +// +// Mnemonic : CMOVA +// Supported forms : (6 forms) +// +// * CMOVA r16, r16 [CMOV] +// * CMOVA m16, r16 [CMOV] +// * CMOVA r32, r32 [CMOV] +// * CMOVA m32, r32 [CMOV] +// * CMOVA r64, r64 [CMOV] +// * CMOVA m64, r64 [CMOV] +// +func (self *Program) CMOVA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVA", 2, Operands { v0, v1 }) + // CMOVA r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVA m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVA r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVA m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVA r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVA m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVA") + } + return p +} + +// CMOVAE performs "Move if above or equal (CF == 0)". +// +// Mnemonic : CMOVAE +// Supported forms : (6 forms) +// +// * CMOVAE r16, r16 [CMOV] +// * CMOVAE m16, r16 [CMOV] +// * CMOVAE r32, r32 [CMOV] +// * CMOVAE m32, r32 [CMOV] +// * CMOVAE r64, r64 [CMOV] +// * CMOVAE m64, r64 [CMOV] +// +func (self *Program) CMOVAE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVAE", 2, Operands { v0, v1 }) + // CMOVAE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVAE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVAE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVAE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVAE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVAE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVAE") + } + return p +} + +// CMOVB performs "Move if below (CF == 1)". +// +// Mnemonic : CMOVB +// Supported forms : (6 forms) +// +// * CMOVB r16, r16 [CMOV] +// * CMOVB m16, r16 [CMOV] +// * CMOVB r32, r32 [CMOV] +// * CMOVB m32, r32 [CMOV] +// * CMOVB r64, r64 [CMOV] +// * CMOVB m64, r64 [CMOV] +// +func (self *Program) CMOVB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVB", 2, Operands { v0, v1 }) + // CMOVB r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVB m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVB r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVB m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVB r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVB m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVB") + } + return p +} + +// CMOVBE performs "Move if below or equal (CF == 1 or ZF == 1)". +// +// Mnemonic : CMOVBE +// Supported forms : (6 forms) +// +// * CMOVBE r16, r16 [CMOV] +// * CMOVBE m16, r16 [CMOV] +// * CMOVBE r32, r32 [CMOV] +// * CMOVBE m32, r32 [CMOV] +// * CMOVBE r64, r64 [CMOV] +// * CMOVBE m64, r64 [CMOV] +// +func (self *Program) CMOVBE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVBE", 2, Operands { v0, v1 }) + // CMOVBE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVBE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVBE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVBE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVBE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVBE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVBE") + } + return p +} + +// CMOVC performs "Move if carry (CF == 1)". +// +// Mnemonic : CMOVC +// Supported forms : (6 forms) +// +// * CMOVC r16, r16 [CMOV] +// * CMOVC m16, r16 [CMOV] +// * CMOVC r32, r32 [CMOV] +// * CMOVC m32, r32 [CMOV] +// * CMOVC r64, r64 [CMOV] +// * CMOVC m64, r64 [CMOV] +// +func (self *Program) CMOVC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVC", 2, Operands { v0, v1 }) + // CMOVC r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVC m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVC") + } + return p +} + +// CMOVE performs "Move if equal (ZF == 1)". +// +// Mnemonic : CMOVE +// Supported forms : (6 forms) +// +// * CMOVE r16, r16 [CMOV] +// * CMOVE m16, r16 [CMOV] +// * CMOVE r32, r32 [CMOV] +// * CMOVE m32, r32 [CMOV] +// * CMOVE r64, r64 [CMOV] +// * CMOVE m64, r64 [CMOV] +// +func (self *Program) CMOVE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVE", 2, Operands { v0, v1 }) + // CMOVE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVE") + } + return p +} + +// CMOVG performs "Move if greater (ZF == 0 and SF == OF)". +// +// Mnemonic : CMOVG +// Supported forms : (6 forms) +// +// * CMOVG r16, r16 [CMOV] +// * CMOVG m16, r16 [CMOV] +// * CMOVG r32, r32 [CMOV] +// * CMOVG m32, r32 [CMOV] +// * CMOVG r64, r64 [CMOV] +// * CMOVG m64, r64 [CMOV] +// +func (self *Program) CMOVG(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVG", 2, Operands { v0, v1 }) + // CMOVG r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVG m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVG r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVG m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVG r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVG m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVG") + } + return p +} + +// CMOVGE performs "Move if greater or equal (SF == OF)". +// +// Mnemonic : CMOVGE +// Supported forms : (6 forms) +// +// * CMOVGE r16, r16 [CMOV] +// * CMOVGE m16, r16 [CMOV] +// * CMOVGE r32, r32 [CMOV] +// * CMOVGE m32, r32 [CMOV] +// * CMOVGE r64, r64 [CMOV] +// * CMOVGE m64, r64 [CMOV] +// +func (self *Program) CMOVGE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVGE", 2, Operands { v0, v1 }) + // CMOVGE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVGE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVGE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVGE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVGE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVGE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVGE") + } + return p +} + +// CMOVL performs "Move if less (SF != OF)". +// +// Mnemonic : CMOVL +// Supported forms : (6 forms) +// +// * CMOVL r16, r16 [CMOV] +// * CMOVL m16, r16 [CMOV] +// * CMOVL r32, r32 [CMOV] +// * CMOVL m32, r32 [CMOV] +// * CMOVL r64, r64 [CMOV] +// * CMOVL m64, r64 [CMOV] +// +func (self *Program) CMOVL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVL", 2, Operands { v0, v1 }) + // CMOVL r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVL m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVL r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVL m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVL") + } + return p +} + +// CMOVLE performs "Move if less or equal (ZF == 1 or SF != OF)". +// +// Mnemonic : CMOVLE +// Supported forms : (6 forms) +// +// * CMOVLE r16, r16 [CMOV] +// * CMOVLE m16, r16 [CMOV] +// * CMOVLE r32, r32 [CMOV] +// * CMOVLE m32, r32 [CMOV] +// * CMOVLE r64, r64 [CMOV] +// * CMOVLE m64, r64 [CMOV] +// +func (self *Program) CMOVLE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVLE", 2, Operands { v0, v1 }) + // CMOVLE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVLE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVLE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVLE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVLE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVLE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVLE") + } + return p +} + +// CMOVNA performs "Move if not above (CF == 1 or ZF == 1)". +// +// Mnemonic : CMOVNA +// Supported forms : (6 forms) +// +// * CMOVNA r16, r16 [CMOV] +// * CMOVNA m16, r16 [CMOV] +// * CMOVNA r32, r32 [CMOV] +// * CMOVNA m32, r32 [CMOV] +// * CMOVNA r64, r64 [CMOV] +// * CMOVNA m64, r64 [CMOV] +// +func (self *Program) CMOVNA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNA", 2, Operands { v0, v1 }) + // CMOVNA r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNA m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNA r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNA m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNA r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNA m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNA") + } + return p +} + +// CMOVNAE performs "Move if not above or equal (CF == 1)". +// +// Mnemonic : CMOVNAE +// Supported forms : (6 forms) +// +// * CMOVNAE r16, r16 [CMOV] +// * CMOVNAE m16, r16 [CMOV] +// * CMOVNAE r32, r32 [CMOV] +// * CMOVNAE m32, r32 [CMOV] +// * CMOVNAE r64, r64 [CMOV] +// * CMOVNAE m64, r64 [CMOV] +// +func (self *Program) CMOVNAE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNAE", 2, Operands { v0, v1 }) + // CMOVNAE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNAE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNAE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNAE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNAE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNAE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNAE") + } + return p +} + +// CMOVNB performs "Move if not below (CF == 0)". +// +// Mnemonic : CMOVNB +// Supported forms : (6 forms) +// +// * CMOVNB r16, r16 [CMOV] +// * CMOVNB m16, r16 [CMOV] +// * CMOVNB r32, r32 [CMOV] +// * CMOVNB m32, r32 [CMOV] +// * CMOVNB r64, r64 [CMOV] +// * CMOVNB m64, r64 [CMOV] +// +func (self *Program) CMOVNB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNB", 2, Operands { v0, v1 }) + // CMOVNB r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNB m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNB r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNB m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNB r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNB m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNB") + } + return p +} + +// CMOVNBE performs "Move if not below or equal (CF == 0 and ZF == 0)". +// +// Mnemonic : CMOVNBE +// Supported forms : (6 forms) +// +// * CMOVNBE r16, r16 [CMOV] +// * CMOVNBE m16, r16 [CMOV] +// * CMOVNBE r32, r32 [CMOV] +// * CMOVNBE m32, r32 [CMOV] +// * CMOVNBE r64, r64 [CMOV] +// * CMOVNBE m64, r64 [CMOV] +// +func (self *Program) CMOVNBE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNBE", 2, Operands { v0, v1 }) + // CMOVNBE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNBE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNBE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNBE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNBE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNBE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNBE") + } + return p +} + +// CMOVNC performs "Move if not carry (CF == 0)". +// +// Mnemonic : CMOVNC +// Supported forms : (6 forms) +// +// * CMOVNC r16, r16 [CMOV] +// * CMOVNC m16, r16 [CMOV] +// * CMOVNC r32, r32 [CMOV] +// * CMOVNC m32, r32 [CMOV] +// * CMOVNC r64, r64 [CMOV] +// * CMOVNC m64, r64 [CMOV] +// +func (self *Program) CMOVNC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNC", 2, Operands { v0, v1 }) + // CMOVNC r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNC m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNC") + } + return p +} + +// CMOVNE performs "Move if not equal (ZF == 0)". +// +// Mnemonic : CMOVNE +// Supported forms : (6 forms) +// +// * CMOVNE r16, r16 [CMOV] +// * CMOVNE m16, r16 [CMOV] +// * CMOVNE r32, r32 [CMOV] +// * CMOVNE m32, r32 [CMOV] +// * CMOVNE r64, r64 [CMOV] +// * CMOVNE m64, r64 [CMOV] +// +func (self *Program) CMOVNE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNE", 2, Operands { v0, v1 }) + // CMOVNE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNE") + } + return p +} + +// CMOVNG performs "Move if not greater (ZF == 1 or SF != OF)". +// +// Mnemonic : CMOVNG +// Supported forms : (6 forms) +// +// * CMOVNG r16, r16 [CMOV] +// * CMOVNG m16, r16 [CMOV] +// * CMOVNG r32, r32 [CMOV] +// * CMOVNG m32, r32 [CMOV] +// * CMOVNG r64, r64 [CMOV] +// * CMOVNG m64, r64 [CMOV] +// +func (self *Program) CMOVNG(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNG", 2, Operands { v0, v1 }) + // CMOVNG r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNG m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNG r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNG m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNG r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNG m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNG") + } + return p +} + +// CMOVNGE performs "Move if not greater or equal (SF != OF)". +// +// Mnemonic : CMOVNGE +// Supported forms : (6 forms) +// +// * CMOVNGE r16, r16 [CMOV] +// * CMOVNGE m16, r16 [CMOV] +// * CMOVNGE r32, r32 [CMOV] +// * CMOVNGE m32, r32 [CMOV] +// * CMOVNGE r64, r64 [CMOV] +// * CMOVNGE m64, r64 [CMOV] +// +func (self *Program) CMOVNGE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNGE", 2, Operands { v0, v1 }) + // CMOVNGE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNGE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNGE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNGE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNGE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNGE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNGE") + } + return p +} + +// CMOVNL performs "Move if not less (SF == OF)". +// +// Mnemonic : CMOVNL +// Supported forms : (6 forms) +// +// * CMOVNL r16, r16 [CMOV] +// * CMOVNL m16, r16 [CMOV] +// * CMOVNL r32, r32 [CMOV] +// * CMOVNL m32, r32 [CMOV] +// * CMOVNL r64, r64 [CMOV] +// * CMOVNL m64, r64 [CMOV] +// +func (self *Program) CMOVNL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNL", 2, Operands { v0, v1 }) + // CMOVNL r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNL m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNL r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNL m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNL") + } + return p +} + +// CMOVNLE performs "Move if not less or equal (ZF == 0 and SF == OF)". +// +// Mnemonic : CMOVNLE +// Supported forms : (6 forms) +// +// * CMOVNLE r16, r16 [CMOV] +// * CMOVNLE m16, r16 [CMOV] +// * CMOVNLE r32, r32 [CMOV] +// * CMOVNLE m32, r32 [CMOV] +// * CMOVNLE r64, r64 [CMOV] +// * CMOVNLE m64, r64 [CMOV] +// +func (self *Program) CMOVNLE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNLE", 2, Operands { v0, v1 }) + // CMOVNLE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNLE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNLE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNLE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNLE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNLE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNLE") + } + return p +} + +// CMOVNO performs "Move if not overflow (OF == 0)". +// +// Mnemonic : CMOVNO +// Supported forms : (6 forms) +// +// * CMOVNO r16, r16 [CMOV] +// * CMOVNO m16, r16 [CMOV] +// * CMOVNO r32, r32 [CMOV] +// * CMOVNO m32, r32 [CMOV] +// * CMOVNO r64, r64 [CMOV] +// * CMOVNO m64, r64 [CMOV] +// +func (self *Program) CMOVNO(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNO", 2, Operands { v0, v1 }) + // CMOVNO r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNO m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNO r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNO m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNO r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNO m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNO") + } + return p +} + +// CMOVNP performs "Move if not parity (PF == 0)". +// +// Mnemonic : CMOVNP +// Supported forms : (6 forms) +// +// * CMOVNP r16, r16 [CMOV] +// * CMOVNP m16, r16 [CMOV] +// * CMOVNP r32, r32 [CMOV] +// * CMOVNP m32, r32 [CMOV] +// * CMOVNP r64, r64 [CMOV] +// * CMOVNP m64, r64 [CMOV] +// +func (self *Program) CMOVNP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNP", 2, Operands { v0, v1 }) + // CMOVNP r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNP m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNP r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNP m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNP r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNP m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNP") + } + return p +} + +// CMOVNS performs "Move if not sign (SF == 0)". +// +// Mnemonic : CMOVNS +// Supported forms : (6 forms) +// +// * CMOVNS r16, r16 [CMOV] +// * CMOVNS m16, r16 [CMOV] +// * CMOVNS r32, r32 [CMOV] +// * CMOVNS m32, r32 [CMOV] +// * CMOVNS r64, r64 [CMOV] +// * CMOVNS m64, r64 [CMOV] +// +func (self *Program) CMOVNS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNS", 2, Operands { v0, v1 }) + // CMOVNS r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x49) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNS m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x49) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNS r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x49) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNS m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x49) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNS r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x49) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNS m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x49) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNS") + } + return p +} + +// CMOVNZ performs "Move if not zero (ZF == 0)". +// +// Mnemonic : CMOVNZ +// Supported forms : (6 forms) +// +// * CMOVNZ r16, r16 [CMOV] +// * CMOVNZ m16, r16 [CMOV] +// * CMOVNZ r32, r32 [CMOV] +// * CMOVNZ m32, r32 [CMOV] +// * CMOVNZ r64, r64 [CMOV] +// * CMOVNZ m64, r64 [CMOV] +// +func (self *Program) CMOVNZ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNZ", 2, Operands { v0, v1 }) + // CMOVNZ r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNZ m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNZ r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNZ m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNZ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNZ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNZ") + } + return p +} + +// CMOVO performs "Move if overflow (OF == 1)". +// +// Mnemonic : CMOVO +// Supported forms : (6 forms) +// +// * CMOVO r16, r16 [CMOV] +// * CMOVO m16, r16 [CMOV] +// * CMOVO r32, r32 [CMOV] +// * CMOVO m32, r32 [CMOV] +// * CMOVO r64, r64 [CMOV] +// * CMOVO m64, r64 [CMOV] +// +func (self *Program) CMOVO(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVO", 2, Operands { v0, v1 }) + // CMOVO r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x40) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVO m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x40) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVO r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x40) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVO m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x40) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVO r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x40) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVO m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x40) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVO") + } + return p +} + +// CMOVP performs "Move if parity (PF == 1)". +// +// Mnemonic : CMOVP +// Supported forms : (6 forms) +// +// * CMOVP r16, r16 [CMOV] +// * CMOVP m16, r16 [CMOV] +// * CMOVP r32, r32 [CMOV] +// * CMOVP m32, r32 [CMOV] +// * CMOVP r64, r64 [CMOV] +// * CMOVP m64, r64 [CMOV] +// +func (self *Program) CMOVP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVP", 2, Operands { v0, v1 }) + // CMOVP r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVP m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVP r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVP m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVP r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVP m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVP") + } + return p +} + +// CMOVPE performs "Move if parity even (PF == 1)". +// +// Mnemonic : CMOVPE +// Supported forms : (6 forms) +// +// * CMOVPE r16, r16 [CMOV] +// * CMOVPE m16, r16 [CMOV] +// * CMOVPE r32, r32 [CMOV] +// * CMOVPE m32, r32 [CMOV] +// * CMOVPE r64, r64 [CMOV] +// * CMOVPE m64, r64 [CMOV] +// +func (self *Program) CMOVPE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVPE", 2, Operands { v0, v1 }) + // CMOVPE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVPE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVPE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVPE") + } + return p +} + +// CMOVPO performs "Move if parity odd (PF == 0)". +// +// Mnemonic : CMOVPO +// Supported forms : (6 forms) +// +// * CMOVPO r16, r16 [CMOV] +// * CMOVPO m16, r16 [CMOV] +// * CMOVPO r32, r32 [CMOV] +// * CMOVPO m32, r32 [CMOV] +// * CMOVPO r64, r64 [CMOV] +// * CMOVPO m64, r64 [CMOV] +// +func (self *Program) CMOVPO(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVPO", 2, Operands { v0, v1 }) + // CMOVPO r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPO m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVPO r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPO m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVPO r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPO m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVPO") + } + return p +} + +// CMOVS performs "Move if sign (SF == 1)". +// +// Mnemonic : CMOVS +// Supported forms : (6 forms) +// +// * CMOVS r16, r16 [CMOV] +// * CMOVS m16, r16 [CMOV] +// * CMOVS r32, r32 [CMOV] +// * CMOVS m32, r32 [CMOV] +// * CMOVS r64, r64 [CMOV] +// * CMOVS m64, r64 [CMOV] +// +func (self *Program) CMOVS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVS", 2, Operands { v0, v1 }) + // CMOVS r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x48) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVS m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x48) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVS r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x48) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVS m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x48) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVS r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x48) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVS m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x48) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVS") + } + return p +} + +// CMOVZ performs "Move if zero (ZF == 1)". +// +// Mnemonic : CMOVZ +// Supported forms : (6 forms) +// +// * CMOVZ r16, r16 [CMOV] +// * CMOVZ m16, r16 [CMOV] +// * CMOVZ r32, r32 [CMOV] +// * CMOVZ m32, r32 [CMOV] +// * CMOVZ r64, r64 [CMOV] +// * CMOVZ m64, r64 [CMOV] +// +func (self *Program) CMOVZ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVZ", 2, Operands { v0, v1 }) + // CMOVZ r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVZ m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVZ r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVZ m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVZ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVZ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVZ") + } + return p +} + +// CMPB performs "Compare Two Operands". +// +// Mnemonic : CMP +// Supported forms : (6 forms) +// +// * CMPB imm8, al +// * CMPB imm8, r8 +// * CMPB r8, r8 +// * CMPB m8, r8 +// * CMPB imm8, m8 +// * CMPB r8, m8 +// +func (self *Program) CMPB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPB", 2, Operands { v0, v1 }) + // CMPB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x3c) + m.imm1(toImmAny(v[0])) + }) + } + // CMPB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x38) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMPB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x3a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMPB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // CMPB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x38) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPB") + } + return p +} + +// CMPL performs "Compare Two Operands". +// +// Mnemonic : CMP +// Supported forms : (8 forms) +// +// * CMPL imm32, eax +// * CMPL imm8, r32 +// * CMPL imm32, r32 +// * CMPL r32, r32 +// * CMPL m32, r32 +// * CMPL imm8, m32 +// * CMPL imm32, m32 +// * CMPL r32, m32 +// +func (self *Program) CMPL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPL", 2, Operands { v0, v1 }) + // CMPL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x3d) + m.imm4(toImmAny(v[0])) + }) + } + // CMPL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xf8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // CMPL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x39) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMPL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMPL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // CMPL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(7, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // CMPL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x39) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPL") + } + return p +} + +// CMPPD performs "Compare Packed Double-Precision Floating-Point Values". +// +// Mnemonic : CMPPD +// Supported forms : (2 forms) +// +// * CMPPD imm8, xmm, xmm [SSE2] +// * CMPPD imm8, m128, xmm [SSE2] +// +func (self *Program) CMPPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("CMPPD", 3, Operands { v0, v1, v2 }) + // CMPPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CMPPD") + } + return p +} + +// CMPPS performs "Compare Packed Single-Precision Floating-Point Values". +// +// Mnemonic : CMPPS +// Supported forms : (2 forms) +// +// * CMPPS imm8, xmm, xmm [SSE] +// * CMPPS imm8, m128, xmm [SSE] +// +func (self *Program) CMPPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("CMPPS", 3, Operands { v0, v1, v2 }) + // CMPPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CMPPS") + } + return p +} + +// CMPQ performs "Compare Two Operands". +// +// Mnemonic : CMP +// Supported forms : (8 forms) +// +// * CMPQ imm32, rax +// * CMPQ imm8, r64 +// * CMPQ imm32, r64 +// * CMPQ r64, r64 +// * CMPQ m64, r64 +// * CMPQ imm8, m64 +// * CMPQ imm32, m64 +// * CMPQ r64, m64 +// +func (self *Program) CMPQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPQ", 2, Operands { v0, v1 }) + // CMPQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x3d) + m.imm4(toImmAny(v[0])) + }) + } + // CMPQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xf8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // CMPQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x39) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMPQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMPQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // CMPQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(7, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // CMPQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x39) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPQ") + } + return p +} + +// CMPSD performs "Compare Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : CMPSD +// Supported forms : (2 forms) +// +// * CMPSD imm8, xmm, xmm [SSE2] +// * CMPSD imm8, m64, xmm [SSE2] +// +func (self *Program) CMPSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("CMPSD", 3, Operands { v0, v1, v2 }) + // CMPSD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPSD imm8, m64, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CMPSD") + } + return p +} + +// CMPSS performs "Compare Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : CMPSS +// Supported forms : (2 forms) +// +// * CMPSS imm8, xmm, xmm [SSE] +// * CMPSS imm8, m32, xmm [SSE] +// +func (self *Program) CMPSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("CMPSS", 3, Operands { v0, v1, v2 }) + // CMPSS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPSS imm8, m32, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CMPSS") + } + return p +} + +// CMPW performs "Compare Two Operands". +// +// Mnemonic : CMP +// Supported forms : (8 forms) +// +// * CMPW imm16, ax +// * CMPW imm8, r16 +// * CMPW imm16, r16 +// * CMPW r16, r16 +// * CMPW m16, r16 +// * CMPW imm8, m16 +// * CMPW imm16, m16 +// * CMPW r16, m16 +// +func (self *Program) CMPW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPW", 2, Operands { v0, v1 }) + // CMPW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x3d) + m.imm2(toImmAny(v[0])) + }) + } + // CMPW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xf8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // CMPW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x39) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMPW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMPW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // CMPW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(7, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // CMPW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x39) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPW") + } + return p +} + +// CMPXCHG16B performs "Compare and Exchange 16 Bytes". +// +// Mnemonic : CMPXCHG16B +// Supported forms : (1 form) +// +// * CMPXCHG16B m128 +// +func (self *Program) CMPXCHG16B(v0 interface{}) *Instruction { + p := self.alloc("CMPXCHG16B", 1, Operands { v0 }) + // CMPXCHG16B m128 + if isM128(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0x0f) + m.emit(0xc7) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHG16B") + } + return p +} + +// CMPXCHG8B performs "Compare and Exchange 8 Bytes". +// +// Mnemonic : CMPXCHG8B +// Supported forms : (1 form) +// +// * CMPXCHG8B m64 +// +func (self *Program) CMPXCHG8B(v0 interface{}) *Instruction { + p := self.alloc("CMPXCHG8B", 1, Operands { v0 }) + // CMPXCHG8B m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xc7) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHG8B") + } + return p +} + +// CMPXCHGB performs "Compare and Exchange". +// +// Mnemonic : CMPXCHG +// Supported forms : (2 forms) +// +// * CMPXCHGB r8, r8 +// * CMPXCHGB r8, m8 +// +func (self *Program) CMPXCHGB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPXCHGB", 2, Operands { v0, v1 }) + // CMPXCHGB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x0f) + m.emit(0xb0) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // CMPXCHGB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xb0) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHGB") + } + return p +} + +// CMPXCHGL performs "Compare and Exchange". +// +// Mnemonic : CMPXCHG +// Supported forms : (2 forms) +// +// * CMPXCHGL r32, r32 +// * CMPXCHGL r32, m32 +// +func (self *Program) CMPXCHGL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPXCHGL", 2, Operands { v0, v1 }) + // CMPXCHGL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xb1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // CMPXCHGL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xb1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHGL") + } + return p +} + +// CMPXCHGQ performs "Compare and Exchange". +// +// Mnemonic : CMPXCHG +// Supported forms : (2 forms) +// +// * CMPXCHGQ r64, r64 +// * CMPXCHGQ r64, m64 +// +func (self *Program) CMPXCHGQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPXCHGQ", 2, Operands { v0, v1 }) + // CMPXCHGQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xb1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // CMPXCHGQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xb1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHGQ") + } + return p +} + +// CMPXCHGW performs "Compare and Exchange". +// +// Mnemonic : CMPXCHG +// Supported forms : (2 forms) +// +// * CMPXCHGW r16, r16 +// * CMPXCHGW r16, m16 +// +func (self *Program) CMPXCHGW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPXCHGW", 2, Operands { v0, v1 }) + // CMPXCHGW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xb1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // CMPXCHGW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xb1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHGW") + } + return p +} + +// COMISD performs "Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : COMISD +// Supported forms : (2 forms) +// +// * COMISD xmm, xmm [SSE2] +// * COMISD m64, xmm [SSE2] +// +func (self *Program) COMISD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("COMISD", 2, Operands { v0, v1 }) + // COMISD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // COMISD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for COMISD") + } + return p +} + +// COMISS performs "Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : COMISS +// Supported forms : (2 forms) +// +// * COMISS xmm, xmm [SSE] +// * COMISS m32, xmm [SSE] +// +func (self *Program) COMISS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("COMISS", 2, Operands { v0, v1 }) + // COMISS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // COMISS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for COMISS") + } + return p +} + +// CPUID performs "CPU Identification". +// +// Mnemonic : CPUID +// Supported forms : (1 form) +// +// * CPUID [CPUID] +// +func (self *Program) CPUID() *Instruction { + p := self.alloc("CPUID", 0, Operands { }) + // CPUID + self.require(ISA_CPUID) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0xa2) + }) + return p +} + +// CQTO performs "Convert Quadword to Octaword". +// +// Mnemonic : CQO +// Supported forms : (1 form) +// +// * CQTO +// +func (self *Program) CQTO() *Instruction { + p := self.alloc("CQTO", 0, Operands { }) + // CQTO + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x99) + }) + return p +} + +// CRC32B performs "Accumulate CRC32 Value". +// +// Mnemonic : CRC32 +// Supported forms : (4 forms) +// +// * CRC32B r8, r32 [SSE4.2] +// * CRC32B m8, r32 [SSE4.2] +// * CRC32B r8, r64 [SSE4.2] +// * CRC32B m8, r64 [SSE4.2] +// +func (self *Program) CRC32B(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CRC32B", 2, Operands { v0, v1 }) + // CRC32B r8, r32 + if isReg8(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32B m8, r32 + if isM8(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CRC32B r8, r64 + if isReg8(v0) && isReg64(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32B m8, r64 + if isM8(v0) && isReg64(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CRC32B") + } + return p +} + +// CRC32L performs "Accumulate CRC32 Value". +// +// Mnemonic : CRC32 +// Supported forms : (2 forms) +// +// * CRC32L r32, r32 [SSE4.2] +// * CRC32L m32, r32 [SSE4.2] +// +func (self *Program) CRC32L(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CRC32L", 2, Operands { v0, v1 }) + // CRC32L r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32L m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CRC32L") + } + return p +} + +// CRC32Q performs "Accumulate CRC32 Value". +// +// Mnemonic : CRC32 +// Supported forms : (2 forms) +// +// * CRC32Q r64, r64 [SSE4.2] +// * CRC32Q m64, r64 [SSE4.2] +// +func (self *Program) CRC32Q(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CRC32Q", 2, Operands { v0, v1 }) + // CRC32Q r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32Q m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CRC32Q") + } + return p +} + +// CRC32W performs "Accumulate CRC32 Value". +// +// Mnemonic : CRC32 +// Supported forms : (2 forms) +// +// * CRC32W r16, r32 [SSE4.2] +// * CRC32W m16, r32 [SSE4.2] +// +func (self *Program) CRC32W(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CRC32W", 2, Operands { v0, v1 }) + // CRC32W r16, r32 + if isReg16(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32W m16, r32 + if isM16(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CRC32W") + } + return p +} + +// CVTDQ2PD performs "Convert Packed Dword Integers to Packed Double-Precision FP Values". +// +// Mnemonic : CVTDQ2PD +// Supported forms : (2 forms) +// +// * CVTDQ2PD xmm, xmm [SSE2] +// * CVTDQ2PD m64, xmm [SSE2] +// +func (self *Program) CVTDQ2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTDQ2PD", 2, Operands { v0, v1 }) + // CVTDQ2PD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTDQ2PD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTDQ2PD") + } + return p +} + +// CVTDQ2PS performs "Convert Packed Dword Integers to Packed Single-Precision FP Values". +// +// Mnemonic : CVTDQ2PS +// Supported forms : (2 forms) +// +// * CVTDQ2PS xmm, xmm [SSE2] +// * CVTDQ2PS m128, xmm [SSE2] +// +func (self *Program) CVTDQ2PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTDQ2PS", 2, Operands { v0, v1 }) + // CVTDQ2PS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTDQ2PS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTDQ2PS") + } + return p +} + +// CVTPD2DQ performs "Convert Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTPD2DQ +// Supported forms : (2 forms) +// +// * CVTPD2DQ xmm, xmm [SSE2] +// * CVTPD2DQ m128, xmm [SSE2] +// +func (self *Program) CVTPD2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPD2DQ", 2, Operands { v0, v1 }) + // CVTPD2DQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPD2DQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPD2DQ") + } + return p +} + +// CVTPD2PI performs "Convert Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTPD2PI +// Supported forms : (2 forms) +// +// * CVTPD2PI xmm, mm [SSE] +// * CVTPD2PI m128, mm [SSE] +// +func (self *Program) CVTPD2PI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPD2PI", 2, Operands { v0, v1 }) + // CVTPD2PI xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPD2PI m128, mm + if isM128(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPD2PI") + } + return p +} + +// CVTPD2PS performs "Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values". +// +// Mnemonic : CVTPD2PS +// Supported forms : (2 forms) +// +// * CVTPD2PS xmm, xmm [SSE2] +// * CVTPD2PS m128, xmm [SSE2] +// +func (self *Program) CVTPD2PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPD2PS", 2, Operands { v0, v1 }) + // CVTPD2PS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPD2PS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPD2PS") + } + return p +} + +// CVTPI2PD performs "Convert Packed Dword Integers to Packed Double-Precision FP Values". +// +// Mnemonic : CVTPI2PD +// Supported forms : (2 forms) +// +// * CVTPI2PD mm, xmm [SSE2] +// * CVTPI2PD m64, xmm [SSE2] +// +func (self *Program) CVTPI2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPI2PD", 2, Operands { v0, v1 }) + // CVTPI2PD mm, xmm + if isMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPI2PD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPI2PD") + } + return p +} + +// CVTPI2PS performs "Convert Packed Dword Integers to Packed Single-Precision FP Values". +// +// Mnemonic : CVTPI2PS +// Supported forms : (2 forms) +// +// * CVTPI2PS mm, xmm [SSE] +// * CVTPI2PS m64, xmm [SSE] +// +func (self *Program) CVTPI2PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPI2PS", 2, Operands { v0, v1 }) + // CVTPI2PS mm, xmm + if isMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPI2PS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPI2PS") + } + return p +} + +// CVTPS2DQ performs "Convert Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTPS2DQ +// Supported forms : (2 forms) +// +// * CVTPS2DQ xmm, xmm [SSE2] +// * CVTPS2DQ m128, xmm [SSE2] +// +func (self *Program) CVTPS2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPS2DQ", 2, Operands { v0, v1 }) + // CVTPS2DQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPS2DQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPS2DQ") + } + return p +} + +// CVTPS2PD performs "Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values". +// +// Mnemonic : CVTPS2PD +// Supported forms : (2 forms) +// +// * CVTPS2PD xmm, xmm [SSE2] +// * CVTPS2PD m64, xmm [SSE2] +// +func (self *Program) CVTPS2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPS2PD", 2, Operands { v0, v1 }) + // CVTPS2PD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPS2PD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPS2PD") + } + return p +} + +// CVTPS2PI performs "Convert Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTPS2PI +// Supported forms : (2 forms) +// +// * CVTPS2PI xmm, mm [SSE] +// * CVTPS2PI m64, mm [SSE] +// +func (self *Program) CVTPS2PI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPS2PI", 2, Operands { v0, v1 }) + // CVTPS2PI xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPS2PI m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPS2PI") + } + return p +} + +// CVTSD2SI performs "Convert Scalar Double-Precision FP Value to Integer". +// +// Mnemonic : CVTSD2SI +// Supported forms : (4 forms) +// +// * CVTSD2SI xmm, r32 [SSE2] +// * CVTSD2SI m64, r32 [SSE2] +// * CVTSD2SI xmm, r64 [SSE2] +// * CVTSD2SI m64, r64 [SSE2] +// +func (self *Program) CVTSD2SI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSD2SI", 2, Operands { v0, v1 }) + // CVTSD2SI xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSD2SI m64, r32 + if isM64(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTSD2SI xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSD2SI m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSD2SI") + } + return p +} + +// CVTSD2SS performs "Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value". +// +// Mnemonic : CVTSD2SS +// Supported forms : (2 forms) +// +// * CVTSD2SS xmm, xmm [SSE2] +// * CVTSD2SS m64, xmm [SSE2] +// +func (self *Program) CVTSD2SS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSD2SS", 2, Operands { v0, v1 }) + // CVTSD2SS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSD2SS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSD2SS") + } + return p +} + +// CVTSI2SD performs "Convert Dword Integer to Scalar Double-Precision FP Value". +// +// Mnemonic : CVTSI2SD +// Supported forms : (4 forms) +// +// * CVTSI2SD r32, xmm [SSE2] +// * CVTSI2SD r64, xmm [SSE2] +// * CVTSI2SD m32, xmm [SSE2] +// * CVTSI2SD m64, xmm [SSE2] +// +func (self *Program) CVTSI2SD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSI2SD", 2, Operands { v0, v1 }) + // CVTSI2SD r32, xmm + if isReg32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSI2SD r64, xmm + if isReg64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSI2SD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTSI2SD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSI2SD") + } + return p +} + +// CVTSI2SS performs "Convert Dword Integer to Scalar Single-Precision FP Value". +// +// Mnemonic : CVTSI2SS +// Supported forms : (4 forms) +// +// * CVTSI2SS r32, xmm [SSE] +// * CVTSI2SS r64, xmm [SSE] +// * CVTSI2SS m32, xmm [SSE] +// * CVTSI2SS m64, xmm [SSE] +// +func (self *Program) CVTSI2SS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSI2SS", 2, Operands { v0, v1 }) + // CVTSI2SS r32, xmm + if isReg32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSI2SS r64, xmm + if isReg64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSI2SS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTSI2SS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSI2SS") + } + return p +} + +// CVTSS2SD performs "Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value". +// +// Mnemonic : CVTSS2SD +// Supported forms : (2 forms) +// +// * CVTSS2SD xmm, xmm [SSE2] +// * CVTSS2SD m32, xmm [SSE2] +// +func (self *Program) CVTSS2SD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSS2SD", 2, Operands { v0, v1 }) + // CVTSS2SD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSS2SD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSS2SD") + } + return p +} + +// CVTSS2SI performs "Convert Scalar Single-Precision FP Value to Dword Integer". +// +// Mnemonic : CVTSS2SI +// Supported forms : (4 forms) +// +// * CVTSS2SI xmm, r32 [SSE] +// * CVTSS2SI m32, r32 [SSE] +// * CVTSS2SI xmm, r64 [SSE] +// * CVTSS2SI m32, r64 [SSE] +// +func (self *Program) CVTSS2SI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSS2SI", 2, Operands { v0, v1 }) + // CVTSS2SI xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSS2SI m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTSS2SI xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSS2SI m32, r64 + if isM32(v0) && isReg64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSS2SI") + } + return p +} + +// CVTTPD2DQ performs "Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTTPD2DQ +// Supported forms : (2 forms) +// +// * CVTTPD2DQ xmm, xmm [SSE2] +// * CVTTPD2DQ m128, xmm [SSE2] +// +func (self *Program) CVTTPD2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTPD2DQ", 2, Operands { v0, v1 }) + // CVTTPD2DQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTPD2DQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTPD2DQ") + } + return p +} + +// CVTTPD2PI performs "Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTTPD2PI +// Supported forms : (2 forms) +// +// * CVTTPD2PI xmm, mm [SSE2] +// * CVTTPD2PI m128, mm [SSE2] +// +func (self *Program) CVTTPD2PI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTPD2PI", 2, Operands { v0, v1 }) + // CVTTPD2PI xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTPD2PI m128, mm + if isM128(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTPD2PI") + } + return p +} + +// CVTTPS2DQ performs "Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTTPS2DQ +// Supported forms : (2 forms) +// +// * CVTTPS2DQ xmm, xmm [SSE2] +// * CVTTPS2DQ m128, xmm [SSE2] +// +func (self *Program) CVTTPS2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTPS2DQ", 2, Operands { v0, v1 }) + // CVTTPS2DQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTPS2DQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTPS2DQ") + } + return p +} + +// CVTTPS2PI performs "Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTTPS2PI +// Supported forms : (2 forms) +// +// * CVTTPS2PI xmm, mm [SSE] +// * CVTTPS2PI m64, mm [SSE] +// +func (self *Program) CVTTPS2PI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTPS2PI", 2, Operands { v0, v1 }) + // CVTTPS2PI xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTPS2PI m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTPS2PI") + } + return p +} + +// CVTTSD2SI performs "Convert with Truncation Scalar Double-Precision FP Value to Signed Integer". +// +// Mnemonic : CVTTSD2SI +// Supported forms : (4 forms) +// +// * CVTTSD2SI xmm, r32 [SSE2] +// * CVTTSD2SI m64, r32 [SSE2] +// * CVTTSD2SI xmm, r64 [SSE2] +// * CVTTSD2SI m64, r64 [SSE2] +// +func (self *Program) CVTTSD2SI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTSD2SI", 2, Operands { v0, v1 }) + // CVTTSD2SI xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTSD2SI m64, r32 + if isM64(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTTSD2SI xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTSD2SI m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTSD2SI") + } + return p +} + +// CVTTSS2SI performs "Convert with Truncation Scalar Single-Precision FP Value to Dword Integer". +// +// Mnemonic : CVTTSS2SI +// Supported forms : (4 forms) +// +// * CVTTSS2SI xmm, r32 [SSE] +// * CVTTSS2SI m32, r32 [SSE] +// * CVTTSS2SI xmm, r64 [SSE] +// * CVTTSS2SI m32, r64 [SSE] +// +func (self *Program) CVTTSS2SI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTSS2SI", 2, Operands { v0, v1 }) + // CVTTSS2SI xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTSS2SI m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTTSS2SI xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTSS2SI m32, r64 + if isM32(v0) && isReg64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTSS2SI") + } + return p +} + +// CWTD performs "Convert Word to Doubleword". +// +// Mnemonic : CWD +// Supported forms : (1 form) +// +// * CWTD +// +func (self *Program) CWTD() *Instruction { + p := self.alloc("CWTD", 0, Operands { }) + // CWTD + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x99) + }) + return p +} + +// CWTL performs "Convert Word to Doubleword". +// +// Mnemonic : CWDE +// Supported forms : (1 form) +// +// * CWTL +// +func (self *Program) CWTL() *Instruction { + p := self.alloc("CWTL", 0, Operands { }) + // CWTL + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x98) + }) + return p +} + +// DECB performs "Decrement by 1". +// +// Mnemonic : DEC +// Supported forms : (2 forms) +// +// * DECB r8 +// * DECB m8 +// +func (self *Program) DECB(v0 interface{}) *Instruction { + p := self.alloc("DECB", 1, Operands { v0 }) + // DECB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xfe) + m.emit(0xc8 | lcode(v[0])) + }) + } + // DECB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xfe) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DECB") + } + return p +} + +// DECL performs "Decrement by 1". +// +// Mnemonic : DEC +// Supported forms : (2 forms) +// +// * DECL r32 +// * DECL m32 +// +func (self *Program) DECL(v0 interface{}) *Instruction { + p := self.alloc("DECL", 1, Operands { v0 }) + // DECL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xc8 | lcode(v[0])) + }) + } + // DECL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DECL") + } + return p +} + +// DECQ performs "Decrement by 1". +// +// Mnemonic : DEC +// Supported forms : (2 forms) +// +// * DECQ r64 +// * DECQ m64 +// +func (self *Program) DECQ(v0 interface{}) *Instruction { + p := self.alloc("DECQ", 1, Operands { v0 }) + // DECQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xff) + m.emit(0xc8 | lcode(v[0])) + }) + } + // DECQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xff) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DECQ") + } + return p +} + +// DECW performs "Decrement by 1". +// +// Mnemonic : DEC +// Supported forms : (2 forms) +// +// * DECW r16 +// * DECW m16 +// +func (self *Program) DECW(v0 interface{}) *Instruction { + p := self.alloc("DECW", 1, Operands { v0 }) + // DECW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xc8 | lcode(v[0])) + }) + } + // DECW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DECW") + } + return p +} + +// DIVB performs "Unsigned Divide". +// +// Mnemonic : DIV +// Supported forms : (2 forms) +// +// * DIVB r8 +// * DIVB m8 +// +func (self *Program) DIVB(v0 interface{}) *Instruction { + p := self.alloc("DIVB", 1, Operands { v0 }) + // DIVB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xf0 | lcode(v[0])) + }) + } + // DIVB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVB") + } + return p +} + +// DIVL performs "Unsigned Divide". +// +// Mnemonic : DIV +// Supported forms : (2 forms) +// +// * DIVL r32 +// * DIVL m32 +// +func (self *Program) DIVL(v0 interface{}) *Instruction { + p := self.alloc("DIVL", 1, Operands { v0 }) + // DIVL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // DIVL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVL") + } + return p +} + +// DIVPD performs "Divide Packed Double-Precision Floating-Point Values". +// +// Mnemonic : DIVPD +// Supported forms : (2 forms) +// +// * DIVPD xmm, xmm [SSE2] +// * DIVPD m128, xmm [SSE2] +// +func (self *Program) DIVPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("DIVPD", 2, Operands { v0, v1 }) + // DIVPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // DIVPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVPD") + } + return p +} + +// DIVPS performs "Divide Packed Single-Precision Floating-Point Values". +// +// Mnemonic : DIVPS +// Supported forms : (2 forms) +// +// * DIVPS xmm, xmm [SSE] +// * DIVPS m128, xmm [SSE] +// +func (self *Program) DIVPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("DIVPS", 2, Operands { v0, v1 }) + // DIVPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // DIVPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVPS") + } + return p +} + +// DIVQ performs "Unsigned Divide". +// +// Mnemonic : DIV +// Supported forms : (2 forms) +// +// * DIVQ r64 +// * DIVQ m64 +// +func (self *Program) DIVQ(v0 interface{}) *Instruction { + p := self.alloc("DIVQ", 1, Operands { v0 }) + // DIVQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // DIVQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVQ") + } + return p +} + +// DIVSD performs "Divide Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : DIVSD +// Supported forms : (2 forms) +// +// * DIVSD xmm, xmm [SSE2] +// * DIVSD m64, xmm [SSE2] +// +func (self *Program) DIVSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("DIVSD", 2, Operands { v0, v1 }) + // DIVSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // DIVSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVSD") + } + return p +} + +// DIVSS performs "Divide Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : DIVSS +// Supported forms : (2 forms) +// +// * DIVSS xmm, xmm [SSE] +// * DIVSS m32, xmm [SSE] +// +func (self *Program) DIVSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("DIVSS", 2, Operands { v0, v1 }) + // DIVSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // DIVSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVSS") + } + return p +} + +// DIVW performs "Unsigned Divide". +// +// Mnemonic : DIV +// Supported forms : (2 forms) +// +// * DIVW r16 +// * DIVW m16 +// +func (self *Program) DIVW(v0 interface{}) *Instruction { + p := self.alloc("DIVW", 1, Operands { v0 }) + // DIVW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // DIVW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVW") + } + return p +} + +// DPPD performs "Dot Product of Packed Double Precision Floating-Point Values". +// +// Mnemonic : DPPD +// Supported forms : (2 forms) +// +// * DPPD imm8, xmm, xmm [SSE4.1] +// * DPPD imm8, m128, xmm [SSE4.1] +// +func (self *Program) DPPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("DPPD", 3, Operands { v0, v1, v2 }) + // DPPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // DPPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x41) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for DPPD") + } + return p +} + +// DPPS performs "Dot Product of Packed Single Precision Floating-Point Values". +// +// Mnemonic : DPPS +// Supported forms : (2 forms) +// +// * DPPS imm8, xmm, xmm [SSE4.1] +// * DPPS imm8, m128, xmm [SSE4.1] +// +func (self *Program) DPPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("DPPS", 3, Operands { v0, v1, v2 }) + // DPPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // DPPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for DPPS") + } + return p +} + +// EMMS performs "Exit MMX State". +// +// Mnemonic : EMMS +// Supported forms : (1 form) +// +// * EMMS [MMX] +// +func (self *Program) EMMS() *Instruction { + p := self.alloc("EMMS", 0, Operands { }) + // EMMS + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x77) + }) + return p +} + +// EXTRACTPS performs "Extract Packed Single Precision Floating-Point Value". +// +// Mnemonic : EXTRACTPS +// Supported forms : (2 forms) +// +// * EXTRACTPS imm8, xmm, r32 [SSE4.1] +// * EXTRACTPS imm8, xmm, m32 [SSE4.1] +// +func (self *Program) EXTRACTPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("EXTRACTPS", 3, Operands { v0, v1, v2 }) + // EXTRACTPS imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // EXTRACTPS imm8, xmm, m32 + if isImm8(v0) && isXMM(v1) && isM32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for EXTRACTPS") + } + return p +} + +// EXTRQ performs "Extract Field". +// +// Mnemonic : EXTRQ +// Supported forms : (2 forms) +// +// * EXTRQ xmm, xmm [SSE4A] +// * EXTRQ imm8, imm8, xmm [SSE4A] +// +func (self *Program) EXTRQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("EXTRQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("EXTRQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction EXTRQ takes 2 or 3 operands") + } + // EXTRQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // EXTRQ imm8, imm8, xmm + if len(vv) == 1 && isImm8(v0) && isImm8(v1) && isXMM(vv[0]) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[2], false) + m.emit(0x0f) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2])) + m.imm1(toImmAny(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for EXTRQ") + } + return p +} + +// FEMMS performs "Fast Exit Multimedia State". +// +// Mnemonic : FEMMS +// Supported forms : (1 form) +// +// * FEMMS [FEMMS] +// +func (self *Program) FEMMS() *Instruction { + p := self.alloc("FEMMS", 0, Operands { }) + // FEMMS + self.require(ISA_FEMMS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x0e) + }) + return p +} + +// HADDPD performs "Packed Double-FP Horizontal Add". +// +// Mnemonic : HADDPD +// Supported forms : (2 forms) +// +// * HADDPD xmm, xmm [SSE3] +// * HADDPD m128, xmm [SSE3] +// +func (self *Program) HADDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("HADDPD", 2, Operands { v0, v1 }) + // HADDPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // HADDPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for HADDPD") + } + return p +} + +// HADDPS performs "Packed Single-FP Horizontal Add". +// +// Mnemonic : HADDPS +// Supported forms : (2 forms) +// +// * HADDPS xmm, xmm [SSE3] +// * HADDPS m128, xmm [SSE3] +// +func (self *Program) HADDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("HADDPS", 2, Operands { v0, v1 }) + // HADDPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // HADDPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for HADDPS") + } + return p +} + +// HSUBPD performs "Packed Double-FP Horizontal Subtract". +// +// Mnemonic : HSUBPD +// Supported forms : (2 forms) +// +// * HSUBPD xmm, xmm [SSE3] +// * HSUBPD m128, xmm [SSE3] +// +func (self *Program) HSUBPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("HSUBPD", 2, Operands { v0, v1 }) + // HSUBPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // HSUBPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for HSUBPD") + } + return p +} + +// HSUBPS performs "Packed Single-FP Horizontal Subtract". +// +// Mnemonic : HSUBPS +// Supported forms : (2 forms) +// +// * HSUBPS xmm, xmm [SSE3] +// * HSUBPS m128, xmm [SSE3] +// +func (self *Program) HSUBPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("HSUBPS", 2, Operands { v0, v1 }) + // HSUBPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // HSUBPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for HSUBPS") + } + return p +} + +// IDIVB performs "Signed Divide". +// +// Mnemonic : IDIV +// Supported forms : (2 forms) +// +// * IDIVB r8 +// * IDIVB m8 +// +func (self *Program) IDIVB(v0 interface{}) *Instruction { + p := self.alloc("IDIVB", 1, Operands { v0 }) + // IDIVB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xf8 | lcode(v[0])) + }) + } + // IDIVB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IDIVB") + } + return p +} + +// IDIVL performs "Signed Divide". +// +// Mnemonic : IDIV +// Supported forms : (2 forms) +// +// * IDIVL r32 +// * IDIVL m32 +// +func (self *Program) IDIVL(v0 interface{}) *Instruction { + p := self.alloc("IDIVL", 1, Operands { v0 }) + // IDIVL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // IDIVL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IDIVL") + } + return p +} + +// IDIVQ performs "Signed Divide". +// +// Mnemonic : IDIV +// Supported forms : (2 forms) +// +// * IDIVQ r64 +// * IDIVQ m64 +// +func (self *Program) IDIVQ(v0 interface{}) *Instruction { + p := self.alloc("IDIVQ", 1, Operands { v0 }) + // IDIVQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // IDIVQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IDIVQ") + } + return p +} + +// IDIVW performs "Signed Divide". +// +// Mnemonic : IDIV +// Supported forms : (2 forms) +// +// * IDIVW r16 +// * IDIVW m16 +// +func (self *Program) IDIVW(v0 interface{}) *Instruction { + p := self.alloc("IDIVW", 1, Operands { v0 }) + // IDIVW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // IDIVW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IDIVW") + } + return p +} + +// IMULB performs "Signed Multiply". +// +// Mnemonic : IMUL +// Supported forms : (2 forms) +// +// * IMULB r8 +// * IMULB m8 +// +func (self *Program) IMULB(v0 interface{}) *Instruction { + p := self.alloc("IMULB", 1, Operands { v0 }) + // IMULB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xe8 | lcode(v[0])) + }) + } + // IMULB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(5, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IMULB") + } + return p +} + +// IMULL performs "Signed Multiply". +// +// Mnemonic : IMUL +// Supported forms : (8 forms) +// +// * IMULL r32 +// * IMULL m32 +// * IMULL r32, r32 +// * IMULL m32, r32 +// * IMULL imm8, r32, r32 +// * IMULL imm32, r32, r32 +// * IMULL imm8, m32, r32 +// * IMULL imm32, m32, r32 +// +func (self *Program) IMULL(v0 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("IMULL", 1, Operands { v0 }) + case 1 : p = self.alloc("IMULL", 2, Operands { v0, vv[0] }) + case 2 : p = self.alloc("IMULL", 3, Operands { v0, vv[0], vv[1] }) + default : panic("instruction IMULL takes 1 or 2 or 3 operands") + } + // IMULL r32 + if len(vv) == 0 && isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xe8 | lcode(v[0])) + }) + } + // IMULL m32 + if len(vv) == 0 && isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(5, addr(v[0]), 1) + }) + } + // IMULL r32, r32 + if len(vv) == 1 && isReg32(v0) && isReg32(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // IMULL m32, r32 + if len(vv) == 1 && isM32(v0) && isReg32(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xaf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // IMULL imm8, r32, r32 + if len(vv) == 2 && isImm8(v0) && isReg32(vv[0]) && isReg32(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // IMULL imm32, r32, r32 + if len(vv) == 2 && isImm32(v0) && isReg32(vv[0]) && isReg32(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // IMULL imm8, m32, r32 + if len(vv) == 2 && isImm8(v0) && isM32(vv[0]) && isReg32(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // IMULL imm32, m32, r32 + if len(vv) == 2 && isImm32(v0) && isM32(vv[0]) && isReg32(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for IMULL") + } + return p +} + +// IMULQ performs "Signed Multiply". +// +// Mnemonic : IMUL +// Supported forms : (8 forms) +// +// * IMULQ r64 +// * IMULQ m64 +// * IMULQ r64, r64 +// * IMULQ m64, r64 +// * IMULQ imm8, r64, r64 +// * IMULQ imm32, r64, r64 +// * IMULQ imm8, m64, r64 +// * IMULQ imm32, m64, r64 +// +func (self *Program) IMULQ(v0 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("IMULQ", 1, Operands { v0 }) + case 1 : p = self.alloc("IMULQ", 2, Operands { v0, vv[0] }) + case 2 : p = self.alloc("IMULQ", 3, Operands { v0, vv[0], vv[1] }) + default : panic("instruction IMULQ takes 1 or 2 or 3 operands") + } + // IMULQ r64 + if len(vv) == 0 && isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xe8 | lcode(v[0])) + }) + } + // IMULQ m64 + if len(vv) == 0 && isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(5, addr(v[0]), 1) + }) + } + // IMULQ r64, r64 + if len(vv) == 1 && isReg64(v0) && isReg64(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // IMULQ m64, r64 + if len(vv) == 1 && isM64(v0) && isReg64(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xaf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // IMULQ imm8, r64, r64 + if len(vv) == 2 && isImm8(v0) && isReg64(vv[0]) && isReg64(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[2]) << 2 | hcode(v[1])) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // IMULQ imm32, r64, r64 + if len(vv) == 2 && isImm32(v0) && isReg64(vv[0]) && isReg64(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[2]) << 2 | hcode(v[1])) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // IMULQ imm8, m64, r64 + if len(vv) == 2 && isImm8(v0) && isM64(vv[0]) && isReg64(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[2]), addr(v[1])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // IMULQ imm32, m64, r64 + if len(vv) == 2 && isImm32(v0) && isM64(vv[0]) && isReg64(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[2]), addr(v[1])) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for IMULQ") + } + return p +} + +// IMULW performs "Signed Multiply". +// +// Mnemonic : IMUL +// Supported forms : (8 forms) +// +// * IMULW r16 +// * IMULW m16 +// * IMULW r16, r16 +// * IMULW m16, r16 +// * IMULW imm8, r16, r16 +// * IMULW imm16, r16, r16 +// * IMULW imm8, m16, r16 +// * IMULW imm16, m16, r16 +// +func (self *Program) IMULW(v0 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("IMULW", 1, Operands { v0 }) + case 1 : p = self.alloc("IMULW", 2, Operands { v0, vv[0] }) + case 2 : p = self.alloc("IMULW", 3, Operands { v0, vv[0], vv[1] }) + default : panic("instruction IMULW takes 1 or 2 or 3 operands") + } + // IMULW r16 + if len(vv) == 0 && isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xe8 | lcode(v[0])) + }) + } + // IMULW m16 + if len(vv) == 0 && isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(5, addr(v[0]), 1) + }) + } + // IMULW r16, r16 + if len(vv) == 1 && isReg16(v0) && isReg16(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // IMULW m16, r16 + if len(vv) == 1 && isM16(v0) && isReg16(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xaf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // IMULW imm8, r16, r16 + if len(vv) == 2 && isImm8(v0) && isReg16(vv[0]) && isReg16(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // IMULW imm16, r16, r16 + if len(vv) == 2 && isImm16(v0) && isReg16(vv[0]) && isReg16(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // IMULW imm8, m16, r16 + if len(vv) == 2 && isImm8(v0) && isM16(vv[0]) && isReg16(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // IMULW imm16, m16, r16 + if len(vv) == 2 && isImm16(v0) && isM16(vv[0]) && isReg16(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for IMULW") + } + return p +} + +// INCB performs "Increment by 1". +// +// Mnemonic : INC +// Supported forms : (2 forms) +// +// * INCB r8 +// * INCB m8 +// +func (self *Program) INCB(v0 interface{}) *Instruction { + p := self.alloc("INCB", 1, Operands { v0 }) + // INCB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[0])) + }) + } + // INCB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xfe) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for INCB") + } + return p +} + +// INCL performs "Increment by 1". +// +// Mnemonic : INC +// Supported forms : (2 forms) +// +// * INCL r32 +// * INCL m32 +// +func (self *Program) INCL(v0 interface{}) *Instruction { + p := self.alloc("INCL", 1, Operands { v0 }) + // INCL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xc0 | lcode(v[0])) + }) + } + // INCL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for INCL") + } + return p +} + +// INCQ performs "Increment by 1". +// +// Mnemonic : INC +// Supported forms : (2 forms) +// +// * INCQ r64 +// * INCQ m64 +// +func (self *Program) INCQ(v0 interface{}) *Instruction { + p := self.alloc("INCQ", 1, Operands { v0 }) + // INCQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xff) + m.emit(0xc0 | lcode(v[0])) + }) + } + // INCQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xff) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for INCQ") + } + return p +} + +// INCW performs "Increment by 1". +// +// Mnemonic : INC +// Supported forms : (2 forms) +// +// * INCW r16 +// * INCW m16 +// +func (self *Program) INCW(v0 interface{}) *Instruction { + p := self.alloc("INCW", 1, Operands { v0 }) + // INCW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xc0 | lcode(v[0])) + }) + } + // INCW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for INCW") + } + return p +} + +// INSERTPS performs "Insert Packed Single Precision Floating-Point Value". +// +// Mnemonic : INSERTPS +// Supported forms : (2 forms) +// +// * INSERTPS imm8, xmm, xmm [SSE4.1] +// * INSERTPS imm8, m32, xmm [SSE4.1] +// +func (self *Program) INSERTPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("INSERTPS", 3, Operands { v0, v1, v2 }) + // INSERTPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x21) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // INSERTPS imm8, m32, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x21) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for INSERTPS") + } + return p +} + +// INSERTQ performs "Insert Field". +// +// Mnemonic : INSERTQ +// Supported forms : (2 forms) +// +// * INSERTQ xmm, xmm [SSE4A] +// * INSERTQ imm8, imm8, xmm, xmm [SSE4A] +// +func (self *Program) INSERTQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("INSERTQ", 2, Operands { v0, v1 }) + case 2 : p = self.alloc("INSERTQ", 4, Operands { v0, v1, vv[0], vv[1] }) + default : panic("instruction INSERTQ takes 2 or 4 operands") + } + // INSERTQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // INSERTQ imm8, imm8, xmm, xmm + if len(vv) == 2 && isImm8(v0) && isImm8(v1) && isXMM(vv[0]) && isXMM(vv[1]) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[3]), v[2], false) + m.emit(0x0f) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for INSERTQ") + } + return p +} + +// INT performs "Call to Interrupt Procedure". +// +// Mnemonic : INT +// Supported forms : (2 forms) +// +// * INT 3 +// * INT imm8 +// +func (self *Program) INT(v0 interface{}) *Instruction { + p := self.alloc("INT", 1, Operands { v0 }) + // INT 3 + if isConst3(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xcc) + }) + } + // INT imm8 + if isImm8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xcd) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for INT") + } + return p +} + +// JA performs "Jump if above (CF == 0 and ZF == 0)". +// +// Mnemonic : JA +// Supported forms : (2 forms) +// +// * JA rel8 +// * JA rel32 +// +func (self *Program) JA(v0 interface{}) *Instruction { + p := self.alloc("JA", 1, Operands { v0 }) + p.branch = _B_conditional + // JA rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x77) + m.imm1(relv(v[0])) + }) + } + // JA rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x87) + m.imm4(relv(v[0])) + }) + } + // JA label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x77) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x87) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JA") + } + return p +} + +// JAE performs "Jump if above or equal (CF == 0)". +// +// Mnemonic : JAE +// Supported forms : (2 forms) +// +// * JAE rel8 +// * JAE rel32 +// +func (self *Program) JAE(v0 interface{}) *Instruction { + p := self.alloc("JAE", 1, Operands { v0 }) + p.branch = _B_conditional + // JAE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + } + // JAE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + // JAE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JAE") + } + return p +} + +// JB performs "Jump if below (CF == 1)". +// +// Mnemonic : JB +// Supported forms : (2 forms) +// +// * JB rel8 +// * JB rel32 +// +func (self *Program) JB(v0 interface{}) *Instruction { + p := self.alloc("JB", 1, Operands { v0 }) + p.branch = _B_conditional + // JB rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + } + // JB rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + // JB label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JB") + } + return p +} + +// JBE performs "Jump if below or equal (CF == 1 or ZF == 1)". +// +// Mnemonic : JBE +// Supported forms : (2 forms) +// +// * JBE rel8 +// * JBE rel32 +// +func (self *Program) JBE(v0 interface{}) *Instruction { + p := self.alloc("JBE", 1, Operands { v0 }) + p.branch = _B_conditional + // JBE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x76) + m.imm1(relv(v[0])) + }) + } + // JBE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x86) + m.imm4(relv(v[0])) + }) + } + // JBE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x76) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x86) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JBE") + } + return p +} + +// JC performs "Jump if carry (CF == 1)". +// +// Mnemonic : JC +// Supported forms : (2 forms) +// +// * JC rel8 +// * JC rel32 +// +func (self *Program) JC(v0 interface{}) *Instruction { + p := self.alloc("JC", 1, Operands { v0 }) + p.branch = _B_conditional + // JC rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + } + // JC rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + // JC label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JC") + } + return p +} + +// JE performs "Jump if equal (ZF == 1)". +// +// Mnemonic : JE +// Supported forms : (2 forms) +// +// * JE rel8 +// * JE rel32 +// +func (self *Program) JE(v0 interface{}) *Instruction { + p := self.alloc("JE", 1, Operands { v0 }) + p.branch = _B_conditional + // JE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x74) + m.imm1(relv(v[0])) + }) + } + // JE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x84) + m.imm4(relv(v[0])) + }) + } + // JE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x74) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x84) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JE") + } + return p +} + +// JECXZ performs "Jump if ECX register is 0". +// +// Mnemonic : JECXZ +// Supported forms : (1 form) +// +// * JECXZ rel8 +// +func (self *Program) JECXZ(v0 interface{}) *Instruction { + p := self.alloc("JECXZ", 1, Operands { v0 }) + p.branch = _B_conditional + // JECXZ rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xe3) + m.imm1(relv(v[0])) + }) + } + // JECXZ label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0xe3) + m.imm1(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JECXZ") + } + return p +} + +// JG performs "Jump if greater (ZF == 0 and SF == OF)". +// +// Mnemonic : JG +// Supported forms : (2 forms) +// +// * JG rel8 +// * JG rel32 +// +func (self *Program) JG(v0 interface{}) *Instruction { + p := self.alloc("JG", 1, Operands { v0 }) + p.branch = _B_conditional + // JG rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7f) + m.imm1(relv(v[0])) + }) + } + // JG rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8f) + m.imm4(relv(v[0])) + }) + } + // JG label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7f) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8f) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JG") + } + return p +} + +// JGE performs "Jump if greater or equal (SF == OF)". +// +// Mnemonic : JGE +// Supported forms : (2 forms) +// +// * JGE rel8 +// * JGE rel32 +// +func (self *Program) JGE(v0 interface{}) *Instruction { + p := self.alloc("JGE", 1, Operands { v0 }) + p.branch = _B_conditional + // JGE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7d) + m.imm1(relv(v[0])) + }) + } + // JGE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8d) + m.imm4(relv(v[0])) + }) + } + // JGE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7d) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8d) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JGE") + } + return p +} + +// JL performs "Jump if less (SF != OF)". +// +// Mnemonic : JL +// Supported forms : (2 forms) +// +// * JL rel8 +// * JL rel32 +// +func (self *Program) JL(v0 interface{}) *Instruction { + p := self.alloc("JL", 1, Operands { v0 }) + p.branch = _B_conditional + // JL rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7c) + m.imm1(relv(v[0])) + }) + } + // JL rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8c) + m.imm4(relv(v[0])) + }) + } + // JL label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7c) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8c) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JL") + } + return p +} + +// JLE performs "Jump if less or equal (ZF == 1 or SF != OF)". +// +// Mnemonic : JLE +// Supported forms : (2 forms) +// +// * JLE rel8 +// * JLE rel32 +// +func (self *Program) JLE(v0 interface{}) *Instruction { + p := self.alloc("JLE", 1, Operands { v0 }) + p.branch = _B_conditional + // JLE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7e) + m.imm1(relv(v[0])) + }) + } + // JLE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8e) + m.imm4(relv(v[0])) + }) + } + // JLE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7e) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8e) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JLE") + } + return p +} + +// JMP performs "Jump Unconditionally". +// +// Mnemonic : JMP +// Supported forms : (2 forms) +// +// * JMP rel8 +// * JMP rel32 +// +func (self *Program) JMP(v0 interface{}) *Instruction { + p := self.alloc("JMP", 1, Operands { v0 }) + p.branch = _B_unconditional + // JMP rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xeb) + m.imm1(relv(v[0])) + }) + } + // JMP rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xe9) + m.imm4(relv(v[0])) + }) + } + // JMP label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0xeb) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0xe9) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JMP") + } + return p +} + +// JMPQ performs "Jump Unconditionally". +// +// Mnemonic : JMP +// Supported forms : (2 forms) +// +// * JMPQ r64 +// * JMPQ m64 +// +func (self *Program) JMPQ(v0 interface{}) *Instruction { + p := self.alloc("JMPQ", 1, Operands { v0 }) + // JMPQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xe0 | lcode(v[0])) + }) + } + // JMPQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for JMPQ") + } + return p +} + +// JNA performs "Jump if not above (CF == 1 or ZF == 1)". +// +// Mnemonic : JNA +// Supported forms : (2 forms) +// +// * JNA rel8 +// * JNA rel32 +// +func (self *Program) JNA(v0 interface{}) *Instruction { + p := self.alloc("JNA", 1, Operands { v0 }) + p.branch = _B_conditional + // JNA rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x76) + m.imm1(relv(v[0])) + }) + } + // JNA rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x86) + m.imm4(relv(v[0])) + }) + } + // JNA label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x76) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x86) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNA") + } + return p +} + +// JNAE performs "Jump if not above or equal (CF == 1)". +// +// Mnemonic : JNAE +// Supported forms : (2 forms) +// +// * JNAE rel8 +// * JNAE rel32 +// +func (self *Program) JNAE(v0 interface{}) *Instruction { + p := self.alloc("JNAE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNAE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + } + // JNAE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + // JNAE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNAE") + } + return p +} + +// JNB performs "Jump if not below (CF == 0)". +// +// Mnemonic : JNB +// Supported forms : (2 forms) +// +// * JNB rel8 +// * JNB rel32 +// +func (self *Program) JNB(v0 interface{}) *Instruction { + p := self.alloc("JNB", 1, Operands { v0 }) + p.branch = _B_conditional + // JNB rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + } + // JNB rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + // JNB label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNB") + } + return p +} + +// JNBE performs "Jump if not below or equal (CF == 0 and ZF == 0)". +// +// Mnemonic : JNBE +// Supported forms : (2 forms) +// +// * JNBE rel8 +// * JNBE rel32 +// +func (self *Program) JNBE(v0 interface{}) *Instruction { + p := self.alloc("JNBE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNBE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x77) + m.imm1(relv(v[0])) + }) + } + // JNBE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x87) + m.imm4(relv(v[0])) + }) + } + // JNBE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x77) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x87) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNBE") + } + return p +} + +// JNC performs "Jump if not carry (CF == 0)". +// +// Mnemonic : JNC +// Supported forms : (2 forms) +// +// * JNC rel8 +// * JNC rel32 +// +func (self *Program) JNC(v0 interface{}) *Instruction { + p := self.alloc("JNC", 1, Operands { v0 }) + p.branch = _B_conditional + // JNC rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + } + // JNC rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + // JNC label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNC") + } + return p +} + +// JNE performs "Jump if not equal (ZF == 0)". +// +// Mnemonic : JNE +// Supported forms : (2 forms) +// +// * JNE rel8 +// * JNE rel32 +// +func (self *Program) JNE(v0 interface{}) *Instruction { + p := self.alloc("JNE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x75) + m.imm1(relv(v[0])) + }) + } + // JNE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x85) + m.imm4(relv(v[0])) + }) + } + // JNE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x75) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x85) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNE") + } + return p +} + +// JNG performs "Jump if not greater (ZF == 1 or SF != OF)". +// +// Mnemonic : JNG +// Supported forms : (2 forms) +// +// * JNG rel8 +// * JNG rel32 +// +func (self *Program) JNG(v0 interface{}) *Instruction { + p := self.alloc("JNG", 1, Operands { v0 }) + p.branch = _B_conditional + // JNG rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7e) + m.imm1(relv(v[0])) + }) + } + // JNG rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8e) + m.imm4(relv(v[0])) + }) + } + // JNG label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7e) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8e) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNG") + } + return p +} + +// JNGE performs "Jump if not greater or equal (SF != OF)". +// +// Mnemonic : JNGE +// Supported forms : (2 forms) +// +// * JNGE rel8 +// * JNGE rel32 +// +func (self *Program) JNGE(v0 interface{}) *Instruction { + p := self.alloc("JNGE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNGE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7c) + m.imm1(relv(v[0])) + }) + } + // JNGE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8c) + m.imm4(relv(v[0])) + }) + } + // JNGE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7c) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8c) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNGE") + } + return p +} + +// JNL performs "Jump if not less (SF == OF)". +// +// Mnemonic : JNL +// Supported forms : (2 forms) +// +// * JNL rel8 +// * JNL rel32 +// +func (self *Program) JNL(v0 interface{}) *Instruction { + p := self.alloc("JNL", 1, Operands { v0 }) + p.branch = _B_conditional + // JNL rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7d) + m.imm1(relv(v[0])) + }) + } + // JNL rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8d) + m.imm4(relv(v[0])) + }) + } + // JNL label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7d) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8d) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNL") + } + return p +} + +// JNLE performs "Jump if not less or equal (ZF == 0 and SF == OF)". +// +// Mnemonic : JNLE +// Supported forms : (2 forms) +// +// * JNLE rel8 +// * JNLE rel32 +// +func (self *Program) JNLE(v0 interface{}) *Instruction { + p := self.alloc("JNLE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNLE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7f) + m.imm1(relv(v[0])) + }) + } + // JNLE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8f) + m.imm4(relv(v[0])) + }) + } + // JNLE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7f) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8f) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNLE") + } + return p +} + +// JNO performs "Jump if not overflow (OF == 0)". +// +// Mnemonic : JNO +// Supported forms : (2 forms) +// +// * JNO rel8 +// * JNO rel32 +// +func (self *Program) JNO(v0 interface{}) *Instruction { + p := self.alloc("JNO", 1, Operands { v0 }) + p.branch = _B_conditional + // JNO rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x71) + m.imm1(relv(v[0])) + }) + } + // JNO rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x81) + m.imm4(relv(v[0])) + }) + } + // JNO label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x71) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x81) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNO") + } + return p +} + +// JNP performs "Jump if not parity (PF == 0)". +// +// Mnemonic : JNP +// Supported forms : (2 forms) +// +// * JNP rel8 +// * JNP rel32 +// +func (self *Program) JNP(v0 interface{}) *Instruction { + p := self.alloc("JNP", 1, Operands { v0 }) + p.branch = _B_conditional + // JNP rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7b) + m.imm1(relv(v[0])) + }) + } + // JNP rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8b) + m.imm4(relv(v[0])) + }) + } + // JNP label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7b) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8b) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNP") + } + return p +} + +// JNS performs "Jump if not sign (SF == 0)". +// +// Mnemonic : JNS +// Supported forms : (2 forms) +// +// * JNS rel8 +// * JNS rel32 +// +func (self *Program) JNS(v0 interface{}) *Instruction { + p := self.alloc("JNS", 1, Operands { v0 }) + p.branch = _B_conditional + // JNS rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x79) + m.imm1(relv(v[0])) + }) + } + // JNS rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x89) + m.imm4(relv(v[0])) + }) + } + // JNS label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x79) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x89) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNS") + } + return p +} + +// JNZ performs "Jump if not zero (ZF == 0)". +// +// Mnemonic : JNZ +// Supported forms : (2 forms) +// +// * JNZ rel8 +// * JNZ rel32 +// +func (self *Program) JNZ(v0 interface{}) *Instruction { + p := self.alloc("JNZ", 1, Operands { v0 }) + p.branch = _B_conditional + // JNZ rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x75) + m.imm1(relv(v[0])) + }) + } + // JNZ rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x85) + m.imm4(relv(v[0])) + }) + } + // JNZ label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x75) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x85) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNZ") + } + return p +} + +// JO performs "Jump if overflow (OF == 1)". +// +// Mnemonic : JO +// Supported forms : (2 forms) +// +// * JO rel8 +// * JO rel32 +// +func (self *Program) JO(v0 interface{}) *Instruction { + p := self.alloc("JO", 1, Operands { v0 }) + p.branch = _B_conditional + // JO rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x70) + m.imm1(relv(v[0])) + }) + } + // JO rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x80) + m.imm4(relv(v[0])) + }) + } + // JO label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x70) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x80) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JO") + } + return p +} + +// JP performs "Jump if parity (PF == 1)". +// +// Mnemonic : JP +// Supported forms : (2 forms) +// +// * JP rel8 +// * JP rel32 +// +func (self *Program) JP(v0 interface{}) *Instruction { + p := self.alloc("JP", 1, Operands { v0 }) + p.branch = _B_conditional + // JP rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7a) + m.imm1(relv(v[0])) + }) + } + // JP rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8a) + m.imm4(relv(v[0])) + }) + } + // JP label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7a) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8a) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JP") + } + return p +} + +// JPE performs "Jump if parity even (PF == 1)". +// +// Mnemonic : JPE +// Supported forms : (2 forms) +// +// * JPE rel8 +// * JPE rel32 +// +func (self *Program) JPE(v0 interface{}) *Instruction { + p := self.alloc("JPE", 1, Operands { v0 }) + p.branch = _B_conditional + // JPE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7a) + m.imm1(relv(v[0])) + }) + } + // JPE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8a) + m.imm4(relv(v[0])) + }) + } + // JPE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7a) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8a) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JPE") + } + return p +} + +// JPO performs "Jump if parity odd (PF == 0)". +// +// Mnemonic : JPO +// Supported forms : (2 forms) +// +// * JPO rel8 +// * JPO rel32 +// +func (self *Program) JPO(v0 interface{}) *Instruction { + p := self.alloc("JPO", 1, Operands { v0 }) + p.branch = _B_conditional + // JPO rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7b) + m.imm1(relv(v[0])) + }) + } + // JPO rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8b) + m.imm4(relv(v[0])) + }) + } + // JPO label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7b) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8b) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JPO") + } + return p +} + +// JRCXZ performs "Jump if RCX register is 0". +// +// Mnemonic : JRCXZ +// Supported forms : (1 form) +// +// * JRCXZ rel8 +// +func (self *Program) JRCXZ(v0 interface{}) *Instruction { + p := self.alloc("JRCXZ", 1, Operands { v0 }) + p.branch = _B_conditional + // JRCXZ rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xe3) + m.imm1(relv(v[0])) + }) + } + // JRCXZ label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0xe3) + m.imm1(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JRCXZ") + } + return p +} + +// JS performs "Jump if sign (SF == 1)". +// +// Mnemonic : JS +// Supported forms : (2 forms) +// +// * JS rel8 +// * JS rel32 +// +func (self *Program) JS(v0 interface{}) *Instruction { + p := self.alloc("JS", 1, Operands { v0 }) + p.branch = _B_conditional + // JS rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x78) + m.imm1(relv(v[0])) + }) + } + // JS rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x88) + m.imm4(relv(v[0])) + }) + } + // JS label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x78) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x88) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JS") + } + return p +} + +// JZ performs "Jump if zero (ZF == 1)". +// +// Mnemonic : JZ +// Supported forms : (2 forms) +// +// * JZ rel8 +// * JZ rel32 +// +func (self *Program) JZ(v0 interface{}) *Instruction { + p := self.alloc("JZ", 1, Operands { v0 }) + p.branch = _B_conditional + // JZ rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x74) + m.imm1(relv(v[0])) + }) + } + // JZ rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x84) + m.imm4(relv(v[0])) + }) + } + // JZ label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x74) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x84) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JZ") + } + return p +} + +// KADDB performs "ADD Two 8-bit Masks". +// +// Mnemonic : KADDB +// Supported forms : (1 form) +// +// * KADDB k, k, k [AVX512DQ] +// +func (self *Program) KADDB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KADDB", 3, Operands { v0, v1, v2 }) + // KADDB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KADDB") + } + return p +} + +// KADDD performs "ADD Two 32-bit Masks". +// +// Mnemonic : KADDD +// Supported forms : (1 form) +// +// * KADDD k, k, k [AVX512BW] +// +func (self *Program) KADDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KADDD", 3, Operands { v0, v1, v2 }) + // KADDD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KADDD") + } + return p +} + +// KADDQ performs "ADD Two 64-bit Masks". +// +// Mnemonic : KADDQ +// Supported forms : (1 form) +// +// * KADDQ k, k, k [AVX512BW] +// +func (self *Program) KADDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KADDQ", 3, Operands { v0, v1, v2 }) + // KADDQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KADDQ") + } + return p +} + +// KADDW performs "ADD Two 16-bit Masks". +// +// Mnemonic : KADDW +// Supported forms : (1 form) +// +// * KADDW k, k, k [AVX512DQ] +// +func (self *Program) KADDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KADDW", 3, Operands { v0, v1, v2 }) + // KADDW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KADDW") + } + return p +} + +// KANDB performs "Bitwise Logical AND 8-bit Masks". +// +// Mnemonic : KANDB +// Supported forms : (1 form) +// +// * KANDB k, k, k [AVX512DQ] +// +func (self *Program) KANDB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDB", 3, Operands { v0, v1, v2 }) + // KANDB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDB") + } + return p +} + +// KANDD performs "Bitwise Logical AND 32-bit Masks". +// +// Mnemonic : KANDD +// Supported forms : (1 form) +// +// * KANDD k, k, k [AVX512BW] +// +func (self *Program) KANDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDD", 3, Operands { v0, v1, v2 }) + // KANDD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDD") + } + return p +} + +// KANDNB performs "Bitwise Logical AND NOT 8-bit Masks". +// +// Mnemonic : KANDNB +// Supported forms : (1 form) +// +// * KANDNB k, k, k [AVX512DQ] +// +func (self *Program) KANDNB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDNB", 3, Operands { v0, v1, v2 }) + // KANDNB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDNB") + } + return p +} + +// KANDND performs "Bitwise Logical AND NOT 32-bit Masks". +// +// Mnemonic : KANDND +// Supported forms : (1 form) +// +// * KANDND k, k, k [AVX512BW] +// +func (self *Program) KANDND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDND", 3, Operands { v0, v1, v2 }) + // KANDND k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDND") + } + return p +} + +// KANDNQ performs "Bitwise Logical AND NOT 64-bit Masks". +// +// Mnemonic : KANDNQ +// Supported forms : (1 form) +// +// * KANDNQ k, k, k [AVX512BW] +// +func (self *Program) KANDNQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDNQ", 3, Operands { v0, v1, v2 }) + // KANDNQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDNQ") + } + return p +} + +// KANDNW performs "Bitwise Logical AND NOT 16-bit Masks". +// +// Mnemonic : KANDNW +// Supported forms : (1 form) +// +// * KANDNW k, k, k [AVX512F] +// +func (self *Program) KANDNW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDNW", 3, Operands { v0, v1, v2 }) + // KANDNW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDNW") + } + return p +} + +// KANDQ performs "Bitwise Logical AND 64-bit Masks". +// +// Mnemonic : KANDQ +// Supported forms : (1 form) +// +// * KANDQ k, k, k [AVX512BW] +// +func (self *Program) KANDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDQ", 3, Operands { v0, v1, v2 }) + // KANDQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDQ") + } + return p +} + +// KANDW performs "Bitwise Logical AND 16-bit Masks". +// +// Mnemonic : KANDW +// Supported forms : (1 form) +// +// * KANDW k, k, k [AVX512F] +// +func (self *Program) KANDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDW", 3, Operands { v0, v1, v2 }) + // KANDW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDW") + } + return p +} + +// KMOVB performs "Move 8-bit Mask". +// +// Mnemonic : KMOVB +// Supported forms : (5 forms) +// +// * KMOVB k, k [AVX512DQ] +// * KMOVB r32, k [AVX512DQ] +// * KMOVB m8, k [AVX512DQ] +// * KMOVB k, r32 [AVX512DQ] +// * KMOVB k, m8 [AVX512DQ] +// +func (self *Program) KMOVB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KMOVB", 2, Operands { v0, v1 }) + // KMOVB k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, nil, 0) + m.emit(0x90) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVB r32, k + if isReg32(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[0], 0) + m.emit(0x92) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVB m8, k + if isM8(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, addr(v[0]), 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // KMOVB k, r32 + if isK(v0) && isReg32(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), nil, 0) + m.emit(0x93) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVB k, m8 + if isK(v0) && isM8(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, addr(v[1]), 0) + m.emit(0x91) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for KMOVB") + } + return p +} + +// KMOVD performs "Move 32-bit Mask". +// +// Mnemonic : KMOVD +// Supported forms : (5 forms) +// +// * KMOVD k, k [AVX512BW] +// * KMOVD r32, k [AVX512BW] +// * KMOVD m32, k [AVX512BW] +// * KMOVD k, r32 [AVX512BW] +// * KMOVD k, m32 [AVX512BW] +// +func (self *Program) KMOVD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KMOVD", 2, Operands { v0, v1 }) + // KMOVD k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf9) + m.emit(0x90) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVD r32, k + if isReg32(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, 0, v[0], 0) + m.emit(0x92) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVD m32, k + if isM32(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x81, 0, addr(v[0]), 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // KMOVD k, r32 + if isK(v0) && isReg32(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), nil, 0) + m.emit(0x93) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVD k, m32 + if isK(v0) && isM32(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x81, 0, addr(v[1]), 0) + m.emit(0x91) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for KMOVD") + } + return p +} + +// KMOVQ performs "Move 64-bit Mask". +// +// Mnemonic : KMOVQ +// Supported forms : (5 forms) +// +// * KMOVQ k, k [AVX512BW] +// * KMOVQ r64, k [AVX512BW] +// * KMOVQ m64, k [AVX512BW] +// * KMOVQ k, r64 [AVX512BW] +// * KMOVQ k, m64 [AVX512BW] +// +func (self *Program) KMOVQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KMOVQ", 2, Operands { v0, v1 }) + // KMOVQ k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf8) + m.emit(0x90) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVQ r64, k + if isReg64(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[0]) << 5)) + m.emit(0xfb) + m.emit(0x92) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVQ m64, k + if isM64(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x80, 0, addr(v[0]), 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // KMOVQ k, r64 + if isK(v0) && isReg64(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7)) + m.emit(0xfb) + m.emit(0x93) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVQ k, m64 + if isK(v0) && isM64(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x80, 0, addr(v[1]), 0) + m.emit(0x91) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for KMOVQ") + } + return p +} + +// KMOVW performs "Move 16-bit Mask". +// +// Mnemonic : KMOVW +// Supported forms : (5 forms) +// +// * KMOVW k, k [AVX512F] +// * KMOVW r32, k [AVX512F] +// * KMOVW m16, k [AVX512F] +// * KMOVW k, r32 [AVX512F] +// * KMOVW k, m16 [AVX512F] +// +func (self *Program) KMOVW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KMOVW", 2, Operands { v0, v1 }) + // KMOVW k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x90) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVW r32, k + if isReg32(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, v[0], 0) + m.emit(0x92) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVW m16, k + if isM16(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, addr(v[0]), 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // KMOVW k, r32 + if isK(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), nil, 0) + m.emit(0x93) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVW k, m16 + if isK(v0) && isM16(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, addr(v[1]), 0) + m.emit(0x91) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for KMOVW") + } + return p +} + +// KNOTB performs "NOT 8-bit Mask Register". +// +// Mnemonic : KNOTB +// Supported forms : (1 form) +// +// * KNOTB k, k [AVX512DQ] +// +func (self *Program) KNOTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KNOTB", 2, Operands { v0, v1 }) + // KNOTB k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, nil, 0) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KNOTB") + } + return p +} + +// KNOTD performs "NOT 32-bit Mask Register". +// +// Mnemonic : KNOTD +// Supported forms : (1 form) +// +// * KNOTD k, k [AVX512BW] +// +func (self *Program) KNOTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KNOTD", 2, Operands { v0, v1 }) + // KNOTD k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf9) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KNOTD") + } + return p +} + +// KNOTQ performs "NOT 64-bit Mask Register". +// +// Mnemonic : KNOTQ +// Supported forms : (1 form) +// +// * KNOTQ k, k [AVX512BW] +// +func (self *Program) KNOTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KNOTQ", 2, Operands { v0, v1 }) + // KNOTQ k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf8) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KNOTQ") + } + return p +} + +// KNOTW performs "NOT 16-bit Mask Register". +// +// Mnemonic : KNOTW +// Supported forms : (1 form) +// +// * KNOTW k, k [AVX512F] +// +func (self *Program) KNOTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KNOTW", 2, Operands { v0, v1 }) + // KNOTW k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KNOTW") + } + return p +} + +// KORB performs "Bitwise Logical OR 8-bit Masks". +// +// Mnemonic : KORB +// Supported forms : (1 form) +// +// * KORB k, k, k [AVX512DQ] +// +func (self *Program) KORB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KORB", 3, Operands { v0, v1, v2 }) + // KORB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORB") + } + return p +} + +// KORD performs "Bitwise Logical OR 32-bit Masks". +// +// Mnemonic : KORD +// Supported forms : (1 form) +// +// * KORD k, k, k [AVX512BW] +// +func (self *Program) KORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KORD", 3, Operands { v0, v1, v2 }) + // KORD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORD") + } + return p +} + +// KORQ performs "Bitwise Logical OR 64-bit Masks". +// +// Mnemonic : KORQ +// Supported forms : (1 form) +// +// * KORQ k, k, k [AVX512BW] +// +func (self *Program) KORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KORQ", 3, Operands { v0, v1, v2 }) + // KORQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORQ") + } + return p +} + +// KORTESTB performs "OR 8-bit Masks and Set Flags". +// +// Mnemonic : KORTESTB +// Supported forms : (1 form) +// +// * KORTESTB k, k [AVX512DQ] +// +func (self *Program) KORTESTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KORTESTB", 2, Operands { v0, v1 }) + // KORTESTB k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, nil, 0) + m.emit(0x98) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORTESTB") + } + return p +} + +// KORTESTD performs "OR 32-bit Masks and Set Flags". +// +// Mnemonic : KORTESTD +// Supported forms : (1 form) +// +// * KORTESTD k, k [AVX512BW] +// +func (self *Program) KORTESTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KORTESTD", 2, Operands { v0, v1 }) + // KORTESTD k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf9) + m.emit(0x98) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORTESTD") + } + return p +} + +// KORTESTQ performs "OR 64-bit Masks and Set Flags". +// +// Mnemonic : KORTESTQ +// Supported forms : (1 form) +// +// * KORTESTQ k, k [AVX512BW] +// +func (self *Program) KORTESTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KORTESTQ", 2, Operands { v0, v1 }) + // KORTESTQ k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf8) + m.emit(0x98) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORTESTQ") + } + return p +} + +// KORTESTW performs "OR 16-bit Masks and Set Flags". +// +// Mnemonic : KORTESTW +// Supported forms : (1 form) +// +// * KORTESTW k, k [AVX512F] +// +func (self *Program) KORTESTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KORTESTW", 2, Operands { v0, v1 }) + // KORTESTW k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x98) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORTESTW") + } + return p +} + +// KORW performs "Bitwise Logical OR 16-bit Masks". +// +// Mnemonic : KORW +// Supported forms : (1 form) +// +// * KORW k, k, k [AVX512F] +// +func (self *Program) KORW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KORW", 3, Operands { v0, v1, v2 }) + // KORW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORW") + } + return p +} + +// KSHIFTLB performs "Shift Left 8-bit Masks". +// +// Mnemonic : KSHIFTLB +// Supported forms : (1 form) +// +// * KSHIFTLB imm8, k, k [AVX512DQ] +// +func (self *Program) KSHIFTLB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTLB", 3, Operands { v0, v1, v2 }) + // KSHIFTLB imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0x79) + m.emit(0x32) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTLB") + } + return p +} + +// KSHIFTLD performs "Shift Left 32-bit Masks". +// +// Mnemonic : KSHIFTLD +// Supported forms : (1 form) +// +// * KSHIFTLD imm8, k, k [AVX512BW] +// +func (self *Program) KSHIFTLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTLD", 3, Operands { v0, v1, v2 }) + // KSHIFTLD imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0x79) + m.emit(0x33) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTLD") + } + return p +} + +// KSHIFTLQ performs "Shift Left 64-bit Masks". +// +// Mnemonic : KSHIFTLQ +// Supported forms : (1 form) +// +// * KSHIFTLQ imm8, k, k [AVX512BW] +// +func (self *Program) KSHIFTLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTLQ", 3, Operands { v0, v1, v2 }) + // KSHIFTLQ imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0xf9) + m.emit(0x33) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTLQ") + } + return p +} + +// KSHIFTLW performs "Shift Left 16-bit Masks". +// +// Mnemonic : KSHIFTLW +// Supported forms : (1 form) +// +// * KSHIFTLW imm8, k, k [AVX512F] +// +func (self *Program) KSHIFTLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTLW", 3, Operands { v0, v1, v2 }) + // KSHIFTLW imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0xf9) + m.emit(0x32) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTLW") + } + return p +} + +// KSHIFTRB performs "Shift Right 8-bit Masks". +// +// Mnemonic : KSHIFTRB +// Supported forms : (1 form) +// +// * KSHIFTRB imm8, k, k [AVX512DQ] +// +func (self *Program) KSHIFTRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTRB", 3, Operands { v0, v1, v2 }) + // KSHIFTRB imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0x79) + m.emit(0x30) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTRB") + } + return p +} + +// KSHIFTRD performs "Shift Right 32-bit Masks". +// +// Mnemonic : KSHIFTRD +// Supported forms : (1 form) +// +// * KSHIFTRD imm8, k, k [AVX512BW] +// +func (self *Program) KSHIFTRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTRD", 3, Operands { v0, v1, v2 }) + // KSHIFTRD imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0x79) + m.emit(0x31) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTRD") + } + return p +} + +// KSHIFTRQ performs "Shift Right 64-bit Masks". +// +// Mnemonic : KSHIFTRQ +// Supported forms : (1 form) +// +// * KSHIFTRQ imm8, k, k [AVX512BW] +// +func (self *Program) KSHIFTRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTRQ", 3, Operands { v0, v1, v2 }) + // KSHIFTRQ imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0xf9) + m.emit(0x31) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTRQ") + } + return p +} + +// KSHIFTRW performs "Shift Right 16-bit Masks". +// +// Mnemonic : KSHIFTRW +// Supported forms : (1 form) +// +// * KSHIFTRW imm8, k, k [AVX512F] +// +func (self *Program) KSHIFTRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTRW", 3, Operands { v0, v1, v2 }) + // KSHIFTRW imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0xf9) + m.emit(0x30) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTRW") + } + return p +} + +// KTESTB performs "Bit Test 8-bit Masks and Set Flags". +// +// Mnemonic : KTESTB +// Supported forms : (1 form) +// +// * KTESTB k, k [AVX512DQ] +// +func (self *Program) KTESTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KTESTB", 2, Operands { v0, v1 }) + // KTESTB k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, nil, 0) + m.emit(0x99) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KTESTB") + } + return p +} + +// KTESTD performs "Bit Test 32-bit Masks and Set Flags". +// +// Mnemonic : KTESTD +// Supported forms : (1 form) +// +// * KTESTD k, k [AVX512BW] +// +func (self *Program) KTESTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KTESTD", 2, Operands { v0, v1 }) + // KTESTD k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf9) + m.emit(0x99) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KTESTD") + } + return p +} + +// KTESTQ performs "Bit Test 64-bit Masks and Set Flags". +// +// Mnemonic : KTESTQ +// Supported forms : (1 form) +// +// * KTESTQ k, k [AVX512BW] +// +func (self *Program) KTESTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KTESTQ", 2, Operands { v0, v1 }) + // KTESTQ k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf8) + m.emit(0x99) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KTESTQ") + } + return p +} + +// KTESTW performs "Bit Test 16-bit Masks and Set Flags". +// +// Mnemonic : KTESTW +// Supported forms : (1 form) +// +// * KTESTW k, k [AVX512DQ] +// +func (self *Program) KTESTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KTESTW", 2, Operands { v0, v1 }) + // KTESTW k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x99) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KTESTW") + } + return p +} + +// KUNPCKBW performs "Unpack and Interleave 8-bit Masks". +// +// Mnemonic : KUNPCKBW +// Supported forms : (1 form) +// +// * KUNPCKBW k, k, k [AVX512F] +// +func (self *Program) KUNPCKBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KUNPCKBW", 3, Operands { v0, v1, v2 }) + // KUNPCKBW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KUNPCKBW") + } + return p +} + +// KUNPCKDQ performs "Unpack and Interleave 32-bit Masks". +// +// Mnemonic : KUNPCKDQ +// Supported forms : (1 form) +// +// * KUNPCKDQ k, k, k [AVX512BW] +// +func (self *Program) KUNPCKDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KUNPCKDQ", 3, Operands { v0, v1, v2 }) + // KUNPCKDQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KUNPCKDQ") + } + return p +} + +// KUNPCKWD performs "Unpack and Interleave 16-bit Masks". +// +// Mnemonic : KUNPCKWD +// Supported forms : (1 form) +// +// * KUNPCKWD k, k, k [AVX512BW] +// +func (self *Program) KUNPCKWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KUNPCKWD", 3, Operands { v0, v1, v2 }) + // KUNPCKWD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KUNPCKWD") + } + return p +} + +// KXNORB performs "Bitwise Logical XNOR 8-bit Masks". +// +// Mnemonic : KXNORB +// Supported forms : (1 form) +// +// * KXNORB k, k, k [AVX512DQ] +// +func (self *Program) KXNORB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXNORB", 3, Operands { v0, v1, v2 }) + // KXNORB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXNORB") + } + return p +} + +// KXNORD performs "Bitwise Logical XNOR 32-bit Masks". +// +// Mnemonic : KXNORD +// Supported forms : (1 form) +// +// * KXNORD k, k, k [AVX512BW] +// +func (self *Program) KXNORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXNORD", 3, Operands { v0, v1, v2 }) + // KXNORD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXNORD") + } + return p +} + +// KXNORQ performs "Bitwise Logical XNOR 64-bit Masks". +// +// Mnemonic : KXNORQ +// Supported forms : (1 form) +// +// * KXNORQ k, k, k [AVX512BW] +// +func (self *Program) KXNORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXNORQ", 3, Operands { v0, v1, v2 }) + // KXNORQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXNORQ") + } + return p +} + +// KXNORW performs "Bitwise Logical XNOR 16-bit Masks". +// +// Mnemonic : KXNORW +// Supported forms : (1 form) +// +// * KXNORW k, k, k [AVX512F] +// +func (self *Program) KXNORW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXNORW", 3, Operands { v0, v1, v2 }) + // KXNORW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXNORW") + } + return p +} + +// KXORB performs "Bitwise Logical XOR 8-bit Masks". +// +// Mnemonic : KXORB +// Supported forms : (1 form) +// +// * KXORB k, k, k [AVX512DQ] +// +func (self *Program) KXORB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXORB", 3, Operands { v0, v1, v2 }) + // KXORB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXORB") + } + return p +} + +// KXORD performs "Bitwise Logical XOR 32-bit Masks". +// +// Mnemonic : KXORD +// Supported forms : (1 form) +// +// * KXORD k, k, k [AVX512BW] +// +func (self *Program) KXORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXORD", 3, Operands { v0, v1, v2 }) + // KXORD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXORD") + } + return p +} + +// KXORQ performs "Bitwise Logical XOR 64-bit Masks". +// +// Mnemonic : KXORQ +// Supported forms : (1 form) +// +// * KXORQ k, k, k [AVX512BW] +// +func (self *Program) KXORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXORQ", 3, Operands { v0, v1, v2 }) + // KXORQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXORQ") + } + return p +} + +// KXORW performs "Bitwise Logical XOR 16-bit Masks". +// +// Mnemonic : KXORW +// Supported forms : (1 form) +// +// * KXORW k, k, k [AVX512F] +// +func (self *Program) KXORW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXORW", 3, Operands { v0, v1, v2 }) + // KXORW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXORW") + } + return p +} + +// LDDQU performs "Load Unaligned Integer 128 Bits". +// +// Mnemonic : LDDQU +// Supported forms : (1 form) +// +// * LDDQU m128, xmm [SSE3] +// +func (self *Program) LDDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LDDQU", 2, Operands { v0, v1 }) + // LDDQU m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LDDQU") + } + return p +} + +// LDMXCSR performs "Load MXCSR Register". +// +// Mnemonic : LDMXCSR +// Supported forms : (1 form) +// +// * LDMXCSR m32 [SSE] +// +func (self *Program) LDMXCSR(v0 interface{}) *Instruction { + p := self.alloc("LDMXCSR", 1, Operands { v0 }) + // LDMXCSR m32 + if isM32(v0) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LDMXCSR") + } + return p +} + +// LEAL performs "Load Effective Address". +// +// Mnemonic : LEA +// Supported forms : (1 form) +// +// * LEAL m, r32 +// +func (self *Program) LEAL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LEAL", 2, Operands { v0, v1 }) + // LEAL m, r32 + if isM(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x8d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LEAL") + } + return p +} + +// LEAQ performs "Load Effective Address". +// +// Mnemonic : LEA +// Supported forms : (1 form) +// +// * LEAQ m, r64 +// +func (self *Program) LEAQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LEAQ", 2, Operands { v0, v1 }) + // LEAQ m, r64 + if isM(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x8d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LEAQ") + } + return p +} + +// LEAW performs "Load Effective Address". +// +// Mnemonic : LEA +// Supported forms : (1 form) +// +// * LEAW m, r16 +// +func (self *Program) LEAW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LEAW", 2, Operands { v0, v1 }) + // LEAW m, r16 + if isM(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x8d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LEAW") + } + return p +} + +// LFENCE performs "Load Fence". +// +// Mnemonic : LFENCE +// Supported forms : (1 form) +// +// * LFENCE [SSE2] +// +func (self *Program) LFENCE() *Instruction { + p := self.alloc("LFENCE", 0, Operands { }) + // LFENCE + self.require(ISA_SSE2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0xae) + m.emit(0xe8) + }) + return p +} + +// LZCNTL performs "Count the Number of Leading Zero Bits". +// +// Mnemonic : LZCNT +// Supported forms : (2 forms) +// +// * LZCNTL r32, r32 [LZCNT] +// * LZCNTL m32, r32 [LZCNT] +// +func (self *Program) LZCNTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LZCNTL", 2, Operands { v0, v1 }) + // LZCNTL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // LZCNTL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LZCNTL") + } + return p +} + +// LZCNTQ performs "Count the Number of Leading Zero Bits". +// +// Mnemonic : LZCNT +// Supported forms : (2 forms) +// +// * LZCNTQ r64, r64 [LZCNT] +// * LZCNTQ m64, r64 [LZCNT] +// +func (self *Program) LZCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LZCNTQ", 2, Operands { v0, v1 }) + // LZCNTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // LZCNTQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LZCNTQ") + } + return p +} + +// LZCNTW performs "Count the Number of Leading Zero Bits". +// +// Mnemonic : LZCNT +// Supported forms : (2 forms) +// +// * LZCNTW r16, r16 [LZCNT] +// * LZCNTW m16, r16 [LZCNT] +// +func (self *Program) LZCNTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LZCNTW", 2, Operands { v0, v1 }) + // LZCNTW r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // LZCNTW m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LZCNTW") + } + return p +} + +// MASKMOVDQU performs "Store Selected Bytes of Double Quadword". +// +// Mnemonic : MASKMOVDQU +// Supported forms : (1 form) +// +// * MASKMOVDQU xmm, xmm [SSE2] +// +func (self *Program) MASKMOVDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MASKMOVDQU", 2, Operands { v0, v1 }) + // MASKMOVDQU xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MASKMOVDQU") + } + return p +} + +// MASKMOVQ performs "Store Selected Bytes of Quadword". +// +// Mnemonic : MASKMOVQ +// Supported forms : (1 form) +// +// * MASKMOVQ mm, mm [MMX+] +// +func (self *Program) MASKMOVQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MASKMOVQ", 2, Operands { v0, v1 }) + // MASKMOVQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MASKMOVQ") + } + return p +} + +// MAXPD performs "Return Maximum Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MAXPD +// Supported forms : (2 forms) +// +// * MAXPD xmm, xmm [SSE2] +// * MAXPD m128, xmm [SSE2] +// +func (self *Program) MAXPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MAXPD", 2, Operands { v0, v1 }) + // MAXPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MAXPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MAXPD") + } + return p +} + +// MAXPS performs "Return Maximum Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MAXPS +// Supported forms : (2 forms) +// +// * MAXPS xmm, xmm [SSE] +// * MAXPS m128, xmm [SSE] +// +func (self *Program) MAXPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MAXPS", 2, Operands { v0, v1 }) + // MAXPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MAXPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MAXPS") + } + return p +} + +// MAXSD performs "Return Maximum Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : MAXSD +// Supported forms : (2 forms) +// +// * MAXSD xmm, xmm [SSE2] +// * MAXSD m64, xmm [SSE2] +// +func (self *Program) MAXSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MAXSD", 2, Operands { v0, v1 }) + // MAXSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MAXSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MAXSD") + } + return p +} + +// MAXSS performs "Return Maximum Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : MAXSS +// Supported forms : (2 forms) +// +// * MAXSS xmm, xmm [SSE] +// * MAXSS m32, xmm [SSE] +// +func (self *Program) MAXSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MAXSS", 2, Operands { v0, v1 }) + // MAXSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MAXSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MAXSS") + } + return p +} + +// MFENCE performs "Memory Fence". +// +// Mnemonic : MFENCE +// Supported forms : (1 form) +// +// * MFENCE [SSE2] +// +func (self *Program) MFENCE() *Instruction { + p := self.alloc("MFENCE", 0, Operands { }) + // MFENCE + self.require(ISA_SSE2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0xae) + m.emit(0xf0) + }) + return p +} + +// MINPD performs "Return Minimum Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MINPD +// Supported forms : (2 forms) +// +// * MINPD xmm, xmm [SSE2] +// * MINPD m128, xmm [SSE2] +// +func (self *Program) MINPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MINPD", 2, Operands { v0, v1 }) + // MINPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MINPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MINPD") + } + return p +} + +// MINPS performs "Return Minimum Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MINPS +// Supported forms : (2 forms) +// +// * MINPS xmm, xmm [SSE] +// * MINPS m128, xmm [SSE] +// +func (self *Program) MINPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MINPS", 2, Operands { v0, v1 }) + // MINPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MINPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MINPS") + } + return p +} + +// MINSD performs "Return Minimum Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : MINSD +// Supported forms : (2 forms) +// +// * MINSD xmm, xmm [SSE2] +// * MINSD m64, xmm [SSE2] +// +func (self *Program) MINSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MINSD", 2, Operands { v0, v1 }) + // MINSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MINSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MINSD") + } + return p +} + +// MINSS performs "Return Minimum Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : MINSS +// Supported forms : (2 forms) +// +// * MINSS xmm, xmm [SSE] +// * MINSS m32, xmm [SSE] +// +func (self *Program) MINSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MINSS", 2, Operands { v0, v1 }) + // MINSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MINSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MINSS") + } + return p +} + +// MONITOR performs "Monitor a Linear Address Range". +// +// Mnemonic : MONITOR +// Supported forms : (1 form) +// +// * MONITOR [MONITOR] +// +func (self *Program) MONITOR() *Instruction { + p := self.alloc("MONITOR", 0, Operands { }) + // MONITOR + self.require(ISA_MONITOR) + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xc8) + }) + return p +} + +// MONITORX performs "Monitor a Linear Address Range with Timeout". +// +// Mnemonic : MONITORX +// Supported forms : (1 form) +// +// * MONITORX [MONITORX] +// +func (self *Program) MONITORX() *Instruction { + p := self.alloc("MONITORX", 0, Operands { }) + // MONITORX + self.require(ISA_MONITORX) + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xfa) + }) + return p +} + +// MOVAPD performs "Move Aligned Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MOVAPD +// Supported forms : (3 forms) +// +// * MOVAPD xmm, xmm [SSE2] +// * MOVAPD m128, xmm [SSE2] +// * MOVAPD xmm, m128 [SSE2] +// +func (self *Program) MOVAPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVAPD", 2, Operands { v0, v1 }) + // MOVAPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVAPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVAPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVAPD") + } + return p +} + +// MOVAPS performs "Move Aligned Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MOVAPS +// Supported forms : (3 forms) +// +// * MOVAPS xmm, xmm [SSE] +// * MOVAPS m128, xmm [SSE] +// * MOVAPS xmm, m128 [SSE] +// +func (self *Program) MOVAPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVAPS", 2, Operands { v0, v1 }) + // MOVAPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVAPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVAPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVAPS") + } + return p +} + +// MOVB performs "Move". +// +// Mnemonic : MOV +// Supported forms : (5 forms) +// +// * MOVB imm8, r8 +// * MOVB r8, r8 +// * MOVB m8, r8 +// * MOVB imm8, m8 +// * MOVB r8, m8 +// +func (self *Program) MOVB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVB", 2, Operands { v0, v1 }) + // MOVB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xb0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // MOVB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x88) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x8a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc6) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // MOVB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x88) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVB") + } + return p +} + +// MOVBEL performs "Move Data After Swapping Bytes". +// +// Mnemonic : MOVBE +// Supported forms : (2 forms) +// +// * MOVBEL m32, r32 [MOVBE] +// * MOVBEL r32, m32 [MOVBE] +// +func (self *Program) MOVBEL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVBEL", 2, Operands { v0, v1 }) + // MOVBEL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVBEL r32, m32 + if isReg32(v0) && isM32(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVBEL") + } + return p +} + +// MOVBEQ performs "Move Data After Swapping Bytes". +// +// Mnemonic : MOVBE +// Supported forms : (2 forms) +// +// * MOVBEQ m64, r64 [MOVBE] +// * MOVBEQ r64, m64 [MOVBE] +// +func (self *Program) MOVBEQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVBEQ", 2, Operands { v0, v1 }) + // MOVBEQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVBEQ r64, m64 + if isReg64(v0) && isM64(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVBEQ") + } + return p +} + +// MOVBEW performs "Move Data After Swapping Bytes". +// +// Mnemonic : MOVBE +// Supported forms : (2 forms) +// +// * MOVBEW m16, r16 [MOVBE] +// * MOVBEW r16, m16 [MOVBE] +// +func (self *Program) MOVBEW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVBEW", 2, Operands { v0, v1 }) + // MOVBEW m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVBEW r16, m16 + if isReg16(v0) && isM16(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVBEW") + } + return p +} + +// MOVD performs "Move Doubleword". +// +// Mnemonic : MOVD +// Supported forms : (8 forms) +// +// * MOVD mm, r32 [MMX] +// * MOVD r32, mm [MMX] +// * MOVD m32, mm [MMX] +// * MOVD mm, m32 [MMX] +// * MOVD xmm, r32 [SSE2] +// * MOVD r32, xmm [SSE2] +// * MOVD m32, xmm [SSE2] +// * MOVD xmm, m32 [SSE2] +// +func (self *Program) MOVD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVD", 2, Operands { v0, v1 }) + // MOVD mm, r32 + if isMM(v0) && isReg32(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVD r32, mm + if isReg32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVD m32, mm + if isM32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVD mm, m32 + if isMM(v0) && isM32(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // MOVD xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVD r32, xmm + if isReg32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVD xmm, m32 + if isXMM(v0) && isM32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVD") + } + return p +} + +// MOVDDUP performs "Move One Double-FP and Duplicate". +// +// Mnemonic : MOVDDUP +// Supported forms : (2 forms) +// +// * MOVDDUP xmm, xmm [SSE3] +// * MOVDDUP m64, xmm [SSE3] +// +func (self *Program) MOVDDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVDDUP", 2, Operands { v0, v1 }) + // MOVDDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVDDUP m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVDDUP") + } + return p +} + +// MOVDQ2Q performs "Move Quadword from XMM to MMX Technology Register". +// +// Mnemonic : MOVDQ2Q +// Supported forms : (1 form) +// +// * MOVDQ2Q xmm, mm [SSE2] +// +func (self *Program) MOVDQ2Q(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVDQ2Q", 2, Operands { v0, v1 }) + // MOVDQ2Q xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVDQ2Q") + } + return p +} + +// MOVDQA performs "Move Aligned Double Quadword". +// +// Mnemonic : MOVDQA +// Supported forms : (3 forms) +// +// * MOVDQA xmm, xmm [SSE2] +// * MOVDQA m128, xmm [SSE2] +// * MOVDQA xmm, m128 [SSE2] +// +func (self *Program) MOVDQA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVDQA", 2, Operands { v0, v1 }) + // MOVDQA xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVDQA m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVDQA xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVDQA") + } + return p +} + +// MOVDQU performs "Move Unaligned Double Quadword". +// +// Mnemonic : MOVDQU +// Supported forms : (3 forms) +// +// * MOVDQU xmm, xmm [SSE2] +// * MOVDQU m128, xmm [SSE2] +// * MOVDQU xmm, m128 [SSE2] +// +func (self *Program) MOVDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVDQU", 2, Operands { v0, v1 }) + // MOVDQU xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVDQU m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVDQU xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVDQU") + } + return p +} + +// MOVHLPS performs "Move Packed Single-Precision Floating-Point Values High to Low". +// +// Mnemonic : MOVHLPS +// Supported forms : (1 form) +// +// * MOVHLPS xmm, xmm [SSE] +// +func (self *Program) MOVHLPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVHLPS", 2, Operands { v0, v1 }) + // MOVHLPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVHLPS") + } + return p +} + +// MOVHPD performs "Move High Packed Double-Precision Floating-Point Value". +// +// Mnemonic : MOVHPD +// Supported forms : (2 forms) +// +// * MOVHPD m64, xmm [SSE2] +// * MOVHPD xmm, m64 [SSE2] +// +func (self *Program) MOVHPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVHPD", 2, Operands { v0, v1 }) + // MOVHPD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVHPD xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVHPD") + } + return p +} + +// MOVHPS performs "Move High Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MOVHPS +// Supported forms : (2 forms) +// +// * MOVHPS m64, xmm [SSE] +// * MOVHPS xmm, m64 [SSE] +// +func (self *Program) MOVHPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVHPS", 2, Operands { v0, v1 }) + // MOVHPS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVHPS xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVHPS") + } + return p +} + +// MOVL performs "Move". +// +// Mnemonic : MOV +// Supported forms : (5 forms) +// +// * MOVL imm32, r32 +// * MOVL r32, r32 +// * MOVL m32, r32 +// * MOVL imm32, m32 +// * MOVL r32, m32 +// +func (self *Program) MOVL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVL", 2, Operands { v0, v1 }) + // MOVL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc7) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xb8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // MOVL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x89) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x8b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc7) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // MOVL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x89) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVL") + } + return p +} + +// MOVLHPS performs "Move Packed Single-Precision Floating-Point Values Low to High". +// +// Mnemonic : MOVLHPS +// Supported forms : (1 form) +// +// * MOVLHPS xmm, xmm [SSE] +// +func (self *Program) MOVLHPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVLHPS", 2, Operands { v0, v1 }) + // MOVLHPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVLHPS") + } + return p +} + +// MOVLPD performs "Move Low Packed Double-Precision Floating-Point Value". +// +// Mnemonic : MOVLPD +// Supported forms : (2 forms) +// +// * MOVLPD m64, xmm [SSE2] +// * MOVLPD xmm, m64 [SSE2] +// +func (self *Program) MOVLPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVLPD", 2, Operands { v0, v1 }) + // MOVLPD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVLPD xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVLPD") + } + return p +} + +// MOVLPS performs "Move Low Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MOVLPS +// Supported forms : (2 forms) +// +// * MOVLPS m64, xmm [SSE] +// * MOVLPS xmm, m64 [SSE] +// +func (self *Program) MOVLPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVLPS", 2, Operands { v0, v1 }) + // MOVLPS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVLPS xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVLPS") + } + return p +} + +// MOVMSKPD performs "Extract Packed Double-Precision Floating-Point Sign Mask". +// +// Mnemonic : MOVMSKPD +// Supported forms : (1 form) +// +// * MOVMSKPD xmm, r32 [SSE2] +// +func (self *Program) MOVMSKPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVMSKPD", 2, Operands { v0, v1 }) + // MOVMSKPD xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVMSKPD") + } + return p +} + +// MOVMSKPS performs "Extract Packed Single-Precision Floating-Point Sign Mask". +// +// Mnemonic : MOVMSKPS +// Supported forms : (1 form) +// +// * MOVMSKPS xmm, r32 [SSE] +// +func (self *Program) MOVMSKPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVMSKPS", 2, Operands { v0, v1 }) + // MOVMSKPS xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVMSKPS") + } + return p +} + +// MOVNTDQ performs "Store Double Quadword Using Non-Temporal Hint". +// +// Mnemonic : MOVNTDQ +// Supported forms : (1 form) +// +// * MOVNTDQ xmm, m128 [SSE2] +// +func (self *Program) MOVNTDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTDQ", 2, Operands { v0, v1 }) + // MOVNTDQ xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTDQ") + } + return p +} + +// MOVNTDQA performs "Load Double Quadword Non-Temporal Aligned Hint". +// +// Mnemonic : MOVNTDQA +// Supported forms : (1 form) +// +// * MOVNTDQA m128, xmm [SSE4.1] +// +func (self *Program) MOVNTDQA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTDQA", 2, Operands { v0, v1 }) + // MOVNTDQA m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTDQA") + } + return p +} + +// MOVNTIL performs "Store Doubleword Using Non-Temporal Hint". +// +// Mnemonic : MOVNTI +// Supported forms : (1 form) +// +// * MOVNTIL r32, m32 [SSE2] +// +func (self *Program) MOVNTIL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTIL", 2, Operands { v0, v1 }) + // MOVNTIL r32, m32 + if isReg32(v0) && isM32(v1) { + self.require(ISA_SSE2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTIL") + } + return p +} + +// MOVNTIQ performs "Store Doubleword Using Non-Temporal Hint". +// +// Mnemonic : MOVNTI +// Supported forms : (1 form) +// +// * MOVNTIQ r64, m64 [SSE2] +// +func (self *Program) MOVNTIQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTIQ", 2, Operands { v0, v1 }) + // MOVNTIQ r64, m64 + if isReg64(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xc3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTIQ") + } + return p +} + +// MOVNTPD performs "Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : MOVNTPD +// Supported forms : (1 form) +// +// * MOVNTPD xmm, m128 [SSE2] +// +func (self *Program) MOVNTPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTPD", 2, Operands { v0, v1 }) + // MOVNTPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTPD") + } + return p +} + +// MOVNTPS performs "Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : MOVNTPS +// Supported forms : (1 form) +// +// * MOVNTPS xmm, m128 [SSE] +// +func (self *Program) MOVNTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTPS", 2, Operands { v0, v1 }) + // MOVNTPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTPS") + } + return p +} + +// MOVNTQ performs "Store of Quadword Using Non-Temporal Hint". +// +// Mnemonic : MOVNTQ +// Supported forms : (1 form) +// +// * MOVNTQ mm, m64 [MMX+] +// +func (self *Program) MOVNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTQ", 2, Operands { v0, v1 }) + // MOVNTQ mm, m64 + if isMM(v0) && isM64(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTQ") + } + return p +} + +// MOVNTSD performs "Store Scalar Double-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : MOVNTSD +// Supported forms : (1 form) +// +// * MOVNTSD xmm, m64 [SSE4A] +// +func (self *Program) MOVNTSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTSD", 2, Operands { v0, v1 }) + // MOVNTSD xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTSD") + } + return p +} + +// MOVNTSS performs "Store Scalar Single-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : MOVNTSS +// Supported forms : (1 form) +// +// * MOVNTSS xmm, m32 [SSE4A] +// +func (self *Program) MOVNTSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTSS", 2, Operands { v0, v1 }) + // MOVNTSS xmm, m32 + if isXMM(v0) && isM32(v1) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTSS") + } + return p +} + +// MOVQ performs "Move". +// +// Mnemonic : MOV +// Supported forms : (16 forms) +// +// * MOVQ imm32, r64 +// * MOVQ imm64, r64 +// * MOVQ r64, r64 +// * MOVQ m64, r64 +// * MOVQ imm32, m64 +// * MOVQ r64, m64 +// * MOVQ mm, r64 [MMX] +// * MOVQ r64, mm [MMX] +// * MOVQ mm, mm [MMX] +// * MOVQ m64, mm [MMX] +// * MOVQ mm, m64 [MMX] +// * MOVQ xmm, r64 [SSE2] +// * MOVQ r64, xmm [SSE2] +// * MOVQ xmm, xmm [SSE2] +// * MOVQ m64, xmm [SSE2] +// * MOVQ xmm, m64 [SSE2] +// +func (self *Program) MOVQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVQ", 2, Operands { v0, v1 }) + // MOVQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc7) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // MOVQ imm64, r64 + if isImm64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xb8 | lcode(v[1])) + m.imm8(toImmAny(v[0])) + }) + } + // MOVQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x89) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x8b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc7) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // MOVQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x89) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // MOVQ mm, r64 + if isMM(v0) && isReg64(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVQ r64, mm + if isReg64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVQ mm, m64 + if isMM(v0) && isM64(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // MOVQ xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVQ r64, xmm + if isReg64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVQ xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xd6) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVQ") + } + return p +} + +// MOVQ2DQ performs "Move Quadword from MMX Technology to XMM Register". +// +// Mnemonic : MOVQ2DQ +// Supported forms : (1 form) +// +// * MOVQ2DQ mm, xmm [SSE2] +// +func (self *Program) MOVQ2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVQ2DQ", 2, Operands { v0, v1 }) + // MOVQ2DQ mm, xmm + if isMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVQ2DQ") + } + return p +} + +// MOVSBL performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSBL r8, r32 +// * MOVSBL m8, r32 +// +func (self *Program) MOVSBL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSBL", 2, Operands { v0, v1 }) + // MOVSBL r8, r32 + if isReg8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSBL m8, r32 + if isM8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSBL") + } + return p +} + +// MOVSBQ performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSBQ r8, r64 +// * MOVSBQ m8, r64 +// +func (self *Program) MOVSBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSBQ", 2, Operands { v0, v1 }) + // MOVSBQ r8, r64 + if isReg8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSBQ m8, r64 + if isM8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSBQ") + } + return p +} + +// MOVSBW performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSBW r8, r16 +// * MOVSBW m8, r16 +// +func (self *Program) MOVSBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSBW", 2, Operands { v0, v1 }) + // MOVSBW r8, r16 + if isReg8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSBW m8, r16 + if isM8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSBW") + } + return p +} + +// MOVSD performs "Move Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : MOVSD +// Supported forms : (3 forms) +// +// * MOVSD xmm, xmm [SSE2] +// * MOVSD m64, xmm [SSE2] +// * MOVSD xmm, m64 [SSE2] +// +func (self *Program) MOVSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSD", 2, Operands { v0, v1 }) + // MOVSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVSD xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSD") + } + return p +} + +// MOVSHDUP performs "Move Packed Single-FP High and Duplicate". +// +// Mnemonic : MOVSHDUP +// Supported forms : (2 forms) +// +// * MOVSHDUP xmm, xmm [SSE3] +// * MOVSHDUP m128, xmm [SSE3] +// +func (self *Program) MOVSHDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSHDUP", 2, Operands { v0, v1 }) + // MOVSHDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSHDUP m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSHDUP") + } + return p +} + +// MOVSLDUP performs "Move Packed Single-FP Low and Duplicate". +// +// Mnemonic : MOVSLDUP +// Supported forms : (2 forms) +// +// * MOVSLDUP xmm, xmm [SSE3] +// * MOVSLDUP m128, xmm [SSE3] +// +func (self *Program) MOVSLDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSLDUP", 2, Operands { v0, v1 }) + // MOVSLDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSLDUP m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSLDUP") + } + return p +} + +// MOVSLQ performs "Move Doubleword to Quadword with Sign-Extension". +// +// Mnemonic : MOVSXD +// Supported forms : (2 forms) +// +// * MOVSLQ r32, r64 +// * MOVSLQ m32, r64 +// +func (self *Program) MOVSLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSLQ", 2, Operands { v0, v1 }) + // MOVSLQ r32, r64 + if isReg32(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x63) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSLQ m32, r64 + if isM32(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x63) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSLQ") + } + return p +} + +// MOVSS performs "Move Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : MOVSS +// Supported forms : (3 forms) +// +// * MOVSS xmm, xmm [SSE] +// * MOVSS m32, xmm [SSE] +// * MOVSS xmm, m32 [SSE] +// +func (self *Program) MOVSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSS", 2, Operands { v0, v1 }) + // MOVSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVSS xmm, m32 + if isXMM(v0) && isM32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSS") + } + return p +} + +// MOVSWL performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSWL r16, r32 +// * MOVSWL m16, r32 +// +func (self *Program) MOVSWL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSWL", 2, Operands { v0, v1 }) + // MOVSWL r16, r32 + if isReg16(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSWL m16, r32 + if isM16(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSWL") + } + return p +} + +// MOVSWQ performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSWQ r16, r64 +// * MOVSWQ m16, r64 +// +func (self *Program) MOVSWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSWQ", 2, Operands { v0, v1 }) + // MOVSWQ r16, r64 + if isReg16(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSWQ m16, r64 + if isM16(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSWQ") + } + return p +} + +// MOVUPD performs "Move Unaligned Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MOVUPD +// Supported forms : (3 forms) +// +// * MOVUPD xmm, xmm [SSE2] +// * MOVUPD m128, xmm [SSE2] +// * MOVUPD xmm, m128 [SSE2] +// +func (self *Program) MOVUPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVUPD", 2, Operands { v0, v1 }) + // MOVUPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVUPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVUPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVUPD") + } + return p +} + +// MOVUPS performs "Move Unaligned Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MOVUPS +// Supported forms : (3 forms) +// +// * MOVUPS xmm, xmm [SSE] +// * MOVUPS m128, xmm [SSE] +// * MOVUPS xmm, m128 [SSE] +// +func (self *Program) MOVUPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVUPS", 2, Operands { v0, v1 }) + // MOVUPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVUPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVUPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVUPS") + } + return p +} + +// MOVW performs "Move". +// +// Mnemonic : MOV +// Supported forms : (5 forms) +// +// * MOVW imm16, r16 +// * MOVW r16, r16 +// * MOVW m16, r16 +// * MOVW imm16, m16 +// * MOVW r16, m16 +// +func (self *Program) MOVW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVW", 2, Operands { v0, v1 }) + // MOVW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc7) + m.emit(0xc0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xb8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // MOVW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x89) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x8b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc7) + m.mrsd(0, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // MOVW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x89) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVW") + } + return p +} + +// MOVZBL performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZBL r8, r32 +// * MOVZBL m8, r32 +// +func (self *Program) MOVZBL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZBL", 2, Operands { v0, v1 }) + // MOVZBL r8, r32 + if isReg8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZBL m8, r32 + if isM8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZBL") + } + return p +} + +// MOVZBQ performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZBQ r8, r64 +// * MOVZBQ m8, r64 +// +func (self *Program) MOVZBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZBQ", 2, Operands { v0, v1 }) + // MOVZBQ r8, r64 + if isReg8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZBQ m8, r64 + if isM8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xb6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZBQ") + } + return p +} + +// MOVZBW performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZBW r8, r16 +// * MOVZBW m8, r16 +// +func (self *Program) MOVZBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZBW", 2, Operands { v0, v1 }) + // MOVZBW r8, r16 + if isReg8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZBW m8, r16 + if isM8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZBW") + } + return p +} + +// MOVZWL performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZWL r16, r32 +// * MOVZWL m16, r32 +// +func (self *Program) MOVZWL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZWL", 2, Operands { v0, v1 }) + // MOVZWL r16, r32 + if isReg16(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZWL m16, r32 + if isM16(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb7) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZWL") + } + return p +} + +// MOVZWQ performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZWQ r16, r64 +// * MOVZWQ m16, r64 +// +func (self *Program) MOVZWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZWQ", 2, Operands { v0, v1 }) + // MOVZWQ r16, r64 + if isReg16(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZWQ m16, r64 + if isM16(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xb7) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZWQ") + } + return p +} + +// MPSADBW performs "Compute Multiple Packed Sums of Absolute Difference". +// +// Mnemonic : MPSADBW +// Supported forms : (2 forms) +// +// * MPSADBW imm8, xmm, xmm [SSE4.1] +// * MPSADBW imm8, m128, xmm [SSE4.1] +// +func (self *Program) MPSADBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("MPSADBW", 3, Operands { v0, v1, v2 }) + // MPSADBW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // MPSADBW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x42) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MPSADBW") + } + return p +} + +// MULB performs "Unsigned Multiply". +// +// Mnemonic : MUL +// Supported forms : (2 forms) +// +// * MULB r8 +// * MULB m8 +// +func (self *Program) MULB(v0 interface{}) *Instruction { + p := self.alloc("MULB", 1, Operands { v0 }) + // MULB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xe0 | lcode(v[0])) + }) + } + // MULB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULB") + } + return p +} + +// MULL performs "Unsigned Multiply". +// +// Mnemonic : MUL +// Supported forms : (2 forms) +// +// * MULL r32 +// * MULL m32 +// +func (self *Program) MULL(v0 interface{}) *Instruction { + p := self.alloc("MULL", 1, Operands { v0 }) + // MULL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xe0 | lcode(v[0])) + }) + } + // MULL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULL") + } + return p +} + +// MULPD performs "Multiply Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MULPD +// Supported forms : (2 forms) +// +// * MULPD xmm, xmm [SSE2] +// * MULPD m128, xmm [SSE2] +// +func (self *Program) MULPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MULPD", 2, Operands { v0, v1 }) + // MULPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MULPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULPD") + } + return p +} + +// MULPS performs "Multiply Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MULPS +// Supported forms : (2 forms) +// +// * MULPS xmm, xmm [SSE] +// * MULPS m128, xmm [SSE] +// +func (self *Program) MULPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MULPS", 2, Operands { v0, v1 }) + // MULPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MULPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULPS") + } + return p +} + +// MULQ performs "Unsigned Multiply". +// +// Mnemonic : MUL +// Supported forms : (2 forms) +// +// * MULQ r64 +// * MULQ m64 +// +func (self *Program) MULQ(v0 interface{}) *Instruction { + p := self.alloc("MULQ", 1, Operands { v0 }) + // MULQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xe0 | lcode(v[0])) + }) + } + // MULQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULQ") + } + return p +} + +// MULSD performs "Multiply Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : MULSD +// Supported forms : (2 forms) +// +// * MULSD xmm, xmm [SSE2] +// * MULSD m64, xmm [SSE2] +// +func (self *Program) MULSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MULSD", 2, Operands { v0, v1 }) + // MULSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MULSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULSD") + } + return p +} + +// MULSS performs "Multiply Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : MULSS +// Supported forms : (2 forms) +// +// * MULSS xmm, xmm [SSE] +// * MULSS m32, xmm [SSE] +// +func (self *Program) MULSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MULSS", 2, Operands { v0, v1 }) + // MULSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MULSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULSS") + } + return p +} + +// MULW performs "Unsigned Multiply". +// +// Mnemonic : MUL +// Supported forms : (2 forms) +// +// * MULW r16 +// * MULW m16 +// +func (self *Program) MULW(v0 interface{}) *Instruction { + p := self.alloc("MULW", 1, Operands { v0 }) + // MULW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xe0 | lcode(v[0])) + }) + } + // MULW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULW") + } + return p +} + +// MULXL performs "Unsigned Multiply Without Affecting Flags". +// +// Mnemonic : MULX +// Supported forms : (2 forms) +// +// * MULXL r32, r32, r32 [BMI2] +// * MULXL m32, r32, r32 [BMI2] +// +func (self *Program) MULXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("MULXL", 3, Operands { v0, v1, v2 }) + // MULXL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7b ^ (hlcode(v[1]) << 3)) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // MULXL m32, r32, r32 + if isM32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x03, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULXL") + } + return p +} + +// MULXQ performs "Unsigned Multiply Without Affecting Flags". +// +// Mnemonic : MULX +// Supported forms : (2 forms) +// +// * MULXQ r64, r64, r64 [BMI2] +// * MULXQ m64, r64, r64 [BMI2] +// +func (self *Program) MULXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("MULXQ", 3, Operands { v0, v1, v2 }) + // MULXQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb ^ (hlcode(v[1]) << 3)) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // MULXQ m64, r64, r64 + if isM64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x83, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULXQ") + } + return p +} + +// MWAIT performs "Monitor Wait". +// +// Mnemonic : MWAIT +// Supported forms : (1 form) +// +// * MWAIT [MONITOR] +// +func (self *Program) MWAIT() *Instruction { + p := self.alloc("MWAIT", 0, Operands { }) + // MWAIT + self.require(ISA_MONITOR) + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xc9) + }) + return p +} + +// MWAITX performs "Monitor Wait with Timeout". +// +// Mnemonic : MWAITX +// Supported forms : (1 form) +// +// * MWAITX [MONITORX] +// +func (self *Program) MWAITX() *Instruction { + p := self.alloc("MWAITX", 0, Operands { }) + // MWAITX + self.require(ISA_MONITORX) + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xfb) + }) + return p +} + +// NEGB performs "Two's Complement Negation". +// +// Mnemonic : NEG +// Supported forms : (2 forms) +// +// * NEGB r8 +// * NEGB m8 +// +func (self *Program) NEGB(v0 interface{}) *Instruction { + p := self.alloc("NEGB", 1, Operands { v0 }) + // NEGB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xd8 | lcode(v[0])) + }) + } + // NEGB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NEGB") + } + return p +} + +// NEGL performs "Two's Complement Negation". +// +// Mnemonic : NEG +// Supported forms : (2 forms) +// +// * NEGL r32 +// * NEGL m32 +// +func (self *Program) NEGL(v0 interface{}) *Instruction { + p := self.alloc("NEGL", 1, Operands { v0 }) + // NEGL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xd8 | lcode(v[0])) + }) + } + // NEGL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NEGL") + } + return p +} + +// NEGQ performs "Two's Complement Negation". +// +// Mnemonic : NEG +// Supported forms : (2 forms) +// +// * NEGQ r64 +// * NEGQ m64 +// +func (self *Program) NEGQ(v0 interface{}) *Instruction { + p := self.alloc("NEGQ", 1, Operands { v0 }) + // NEGQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xd8 | lcode(v[0])) + }) + } + // NEGQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NEGQ") + } + return p +} + +// NEGW performs "Two's Complement Negation". +// +// Mnemonic : NEG +// Supported forms : (2 forms) +// +// * NEGW r16 +// * NEGW m16 +// +func (self *Program) NEGW(v0 interface{}) *Instruction { + p := self.alloc("NEGW", 1, Operands { v0 }) + // NEGW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xd8 | lcode(v[0])) + }) + } + // NEGW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NEGW") + } + return p +} + +// NOP performs "No Operation". +// +// Mnemonic : NOP +// Supported forms : (1 form) +// +// * NOP +// +func (self *Program) NOP() *Instruction { + p := self.alloc("NOP", 0, Operands { }) + // NOP + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x90) + }) + return p +} + +// NOTB performs "One's Complement Negation". +// +// Mnemonic : NOT +// Supported forms : (2 forms) +// +// * NOTB r8 +// * NOTB m8 +// +func (self *Program) NOTB(v0 interface{}) *Instruction { + p := self.alloc("NOTB", 1, Operands { v0 }) + // NOTB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xd0 | lcode(v[0])) + }) + } + // NOTB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NOTB") + } + return p +} + +// NOTL performs "One's Complement Negation". +// +// Mnemonic : NOT +// Supported forms : (2 forms) +// +// * NOTL r32 +// * NOTL m32 +// +func (self *Program) NOTL(v0 interface{}) *Instruction { + p := self.alloc("NOTL", 1, Operands { v0 }) + // NOTL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xd0 | lcode(v[0])) + }) + } + // NOTL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NOTL") + } + return p +} + +// NOTQ performs "One's Complement Negation". +// +// Mnemonic : NOT +// Supported forms : (2 forms) +// +// * NOTQ r64 +// * NOTQ m64 +// +func (self *Program) NOTQ(v0 interface{}) *Instruction { + p := self.alloc("NOTQ", 1, Operands { v0 }) + // NOTQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xd0 | lcode(v[0])) + }) + } + // NOTQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NOTQ") + } + return p +} + +// NOTW performs "One's Complement Negation". +// +// Mnemonic : NOT +// Supported forms : (2 forms) +// +// * NOTW r16 +// * NOTW m16 +// +func (self *Program) NOTW(v0 interface{}) *Instruction { + p := self.alloc("NOTW", 1, Operands { v0 }) + // NOTW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xd0 | lcode(v[0])) + }) + } + // NOTW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NOTW") + } + return p +} + +// ORB performs "Logical Inclusive OR". +// +// Mnemonic : OR +// Supported forms : (6 forms) +// +// * ORB imm8, al +// * ORB imm8, r8 +// * ORB r8, r8 +// * ORB m8, r8 +// * ORB imm8, m8 +// * ORB r8, m8 +// +func (self *Program) ORB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORB", 2, Operands { v0, v1 }) + // ORB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0c) + m.imm1(toImmAny(v[0])) + }) + } + // ORB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ORB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x08) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x0a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ORB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ORB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x08) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORB") + } + return p +} + +// ORL performs "Logical Inclusive OR". +// +// Mnemonic : OR +// Supported forms : (8 forms) +// +// * ORL imm32, eax +// * ORL imm8, r32 +// * ORL imm32, r32 +// * ORL r32, r32 +// * ORL m32, r32 +// * ORL imm8, m32 +// * ORL imm32, m32 +// * ORL r32, m32 +// +func (self *Program) ORL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORL", 2, Operands { v0, v1 }) + // ORL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0d) + m.imm4(toImmAny(v[0])) + }) + } + // ORL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ORL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xc8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ORL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x09) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ORL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ORL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(1, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ORL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x09) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORL") + } + return p +} + +// ORPD performs "Bitwise Logical OR of Double-Precision Floating-Point Values". +// +// Mnemonic : ORPD +// Supported forms : (2 forms) +// +// * ORPD xmm, xmm [SSE2] +// * ORPD m128, xmm [SSE2] +// +func (self *Program) ORPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORPD", 2, Operands { v0, v1 }) + // ORPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x56) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x56) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORPD") + } + return p +} + +// ORPS performs "Bitwise Logical OR of Single-Precision Floating-Point Values". +// +// Mnemonic : ORPS +// Supported forms : (2 forms) +// +// * ORPS xmm, xmm [SSE] +// * ORPS m128, xmm [SSE] +// +func (self *Program) ORPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORPS", 2, Operands { v0, v1 }) + // ORPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x56) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x56) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORPS") + } + return p +} + +// ORQ performs "Logical Inclusive OR". +// +// Mnemonic : OR +// Supported forms : (8 forms) +// +// * ORQ imm32, rax +// * ORQ imm8, r64 +// * ORQ imm32, r64 +// * ORQ r64, r64 +// * ORQ m64, r64 +// * ORQ imm8, m64 +// * ORQ imm32, m64 +// * ORQ r64, m64 +// +func (self *Program) ORQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORQ", 2, Operands { v0, v1 }) + // ORQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x0d) + m.imm4(toImmAny(v[0])) + }) + } + // ORQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ORQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xc8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ORQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x09) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ORQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ORQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(1, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ORQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORQ") + } + return p +} + +// ORW performs "Logical Inclusive OR". +// +// Mnemonic : OR +// Supported forms : (8 forms) +// +// * ORW imm16, ax +// * ORW imm8, r16 +// * ORW imm16, r16 +// * ORW r16, r16 +// * ORW m16, r16 +// * ORW imm8, m16 +// * ORW imm16, m16 +// * ORW r16, m16 +// +func (self *Program) ORW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORW", 2, Operands { v0, v1 }) + // ORW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x0d) + m.imm2(toImmAny(v[0])) + }) + } + // ORW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ORW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xc8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // ORW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x09) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ORW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ORW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(1, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // ORW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x09) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORW") + } + return p +} + +// PABSB performs "Packed Absolute Value of Byte Integers". +// +// Mnemonic : PABSB +// Supported forms : (4 forms) +// +// * PABSB mm, mm [SSSE3] +// * PABSB m64, mm [SSSE3] +// * PABSB xmm, xmm [SSSE3] +// * PABSB m128, xmm [SSSE3] +// +func (self *Program) PABSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PABSB", 2, Operands { v0, v1 }) + // PABSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PABSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PABSB") + } + return p +} + +// PABSD performs "Packed Absolute Value of Doubleword Integers". +// +// Mnemonic : PABSD +// Supported forms : (4 forms) +// +// * PABSD mm, mm [SSSE3] +// * PABSD m64, mm [SSSE3] +// * PABSD xmm, xmm [SSSE3] +// * PABSD m128, xmm [SSSE3] +// +func (self *Program) PABSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PABSD", 2, Operands { v0, v1 }) + // PABSD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PABSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PABSD") + } + return p +} + +// PABSW performs "Packed Absolute Value of Word Integers". +// +// Mnemonic : PABSW +// Supported forms : (4 forms) +// +// * PABSW mm, mm [SSSE3] +// * PABSW m64, mm [SSSE3] +// * PABSW xmm, xmm [SSSE3] +// * PABSW m128, xmm [SSSE3] +// +func (self *Program) PABSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PABSW", 2, Operands { v0, v1 }) + // PABSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PABSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PABSW") + } + return p +} + +// PACKSSDW performs "Pack Doublewords into Words with Signed Saturation". +// +// Mnemonic : PACKSSDW +// Supported forms : (4 forms) +// +// * PACKSSDW mm, mm [MMX] +// * PACKSSDW m64, mm [MMX] +// * PACKSSDW xmm, xmm [SSE2] +// * PACKSSDW m128, xmm [SSE2] +// +func (self *Program) PACKSSDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PACKSSDW", 2, Operands { v0, v1 }) + // PACKSSDW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKSSDW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PACKSSDW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKSSDW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PACKSSDW") + } + return p +} + +// PACKSSWB performs "Pack Words into Bytes with Signed Saturation". +// +// Mnemonic : PACKSSWB +// Supported forms : (4 forms) +// +// * PACKSSWB mm, mm [MMX] +// * PACKSSWB m64, mm [MMX] +// * PACKSSWB xmm, xmm [SSE2] +// * PACKSSWB m128, xmm [SSE2] +// +func (self *Program) PACKSSWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PACKSSWB", 2, Operands { v0, v1 }) + // PACKSSWB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x63) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKSSWB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x63) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PACKSSWB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x63) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKSSWB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x63) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PACKSSWB") + } + return p +} + +// PACKUSDW performs "Pack Doublewords into Words with Unsigned Saturation". +// +// Mnemonic : PACKUSDW +// Supported forms : (2 forms) +// +// * PACKUSDW xmm, xmm [SSE4.1] +// * PACKUSDW m128, xmm [SSE4.1] +// +func (self *Program) PACKUSDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PACKUSDW", 2, Operands { v0, v1 }) + // PACKUSDW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKUSDW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x2b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PACKUSDW") + } + return p +} + +// PACKUSWB performs "Pack Words into Bytes with Unsigned Saturation". +// +// Mnemonic : PACKUSWB +// Supported forms : (4 forms) +// +// * PACKUSWB mm, mm [MMX] +// * PACKUSWB m64, mm [MMX] +// * PACKUSWB xmm, xmm [SSE2] +// * PACKUSWB m128, xmm [SSE2] +// +func (self *Program) PACKUSWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PACKUSWB", 2, Operands { v0, v1 }) + // PACKUSWB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x67) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKUSWB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x67) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PACKUSWB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x67) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKUSWB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x67) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PACKUSWB") + } + return p +} + +// PADDB performs "Add Packed Byte Integers". +// +// Mnemonic : PADDB +// Supported forms : (4 forms) +// +// * PADDB mm, mm [MMX] +// * PADDB m64, mm [MMX] +// * PADDB xmm, xmm [SSE2] +// * PADDB m128, xmm [SSE2] +// +func (self *Program) PADDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDB", 2, Operands { v0, v1 }) + // PADDB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDB") + } + return p +} + +// PADDD performs "Add Packed Doubleword Integers". +// +// Mnemonic : PADDD +// Supported forms : (4 forms) +// +// * PADDD mm, mm [MMX] +// * PADDD m64, mm [MMX] +// * PADDD xmm, xmm [SSE2] +// * PADDD m128, xmm [SSE2] +// +func (self *Program) PADDD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDD", 2, Operands { v0, v1 }) + // PADDD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDD") + } + return p +} + +// PADDQ performs "Add Packed Quadword Integers". +// +// Mnemonic : PADDQ +// Supported forms : (4 forms) +// +// * PADDQ mm, mm [SSE2] +// * PADDQ m64, mm [SSE2] +// * PADDQ xmm, xmm [SSE2] +// * PADDQ m128, xmm [SSE2] +// +func (self *Program) PADDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDQ", 2, Operands { v0, v1 }) + // PADDQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDQ") + } + return p +} + +// PADDSB performs "Add Packed Signed Byte Integers with Signed Saturation". +// +// Mnemonic : PADDSB +// Supported forms : (4 forms) +// +// * PADDSB mm, mm [MMX] +// * PADDSB m64, mm [MMX] +// * PADDSB xmm, xmm [SSE2] +// * PADDSB m128, xmm [SSE2] +// +func (self *Program) PADDSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDSB", 2, Operands { v0, v1 }) + // PADDSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xec) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xec) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xec) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xec) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDSB") + } + return p +} + +// PADDSW performs "Add Packed Signed Word Integers with Signed Saturation". +// +// Mnemonic : PADDSW +// Supported forms : (4 forms) +// +// * PADDSW mm, mm [MMX] +// * PADDSW m64, mm [MMX] +// * PADDSW xmm, xmm [SSE2] +// * PADDSW m128, xmm [SSE2] +// +func (self *Program) PADDSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDSW", 2, Operands { v0, v1 }) + // PADDSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xed) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xed) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xed) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xed) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDSW") + } + return p +} + +// PADDUSB performs "Add Packed Unsigned Byte Integers with Unsigned Saturation". +// +// Mnemonic : PADDUSB +// Supported forms : (4 forms) +// +// * PADDUSB mm, mm [MMX] +// * PADDUSB m64, mm [MMX] +// * PADDUSB xmm, xmm [SSE2] +// * PADDUSB m128, xmm [SSE2] +// +func (self *Program) PADDUSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDUSB", 2, Operands { v0, v1 }) + // PADDUSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDUSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDUSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDUSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDUSB") + } + return p +} + +// PADDUSW performs "Add Packed Unsigned Word Integers with Unsigned Saturation". +// +// Mnemonic : PADDUSW +// Supported forms : (4 forms) +// +// * PADDUSW mm, mm [MMX] +// * PADDUSW m64, mm [MMX] +// * PADDUSW xmm, xmm [SSE2] +// * PADDUSW m128, xmm [SSE2] +// +func (self *Program) PADDUSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDUSW", 2, Operands { v0, v1 }) + // PADDUSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDUSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDUSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDUSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDUSW") + } + return p +} + +// PADDW performs "Add Packed Word Integers". +// +// Mnemonic : PADDW +// Supported forms : (4 forms) +// +// * PADDW mm, mm [MMX] +// * PADDW m64, mm [MMX] +// * PADDW xmm, xmm [SSE2] +// * PADDW m128, xmm [SSE2] +// +func (self *Program) PADDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDW", 2, Operands { v0, v1 }) + // PADDW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDW") + } + return p +} + +// PALIGNR performs "Packed Align Right". +// +// Mnemonic : PALIGNR +// Supported forms : (4 forms) +// +// * PALIGNR imm8, mm, mm [SSSE3] +// * PALIGNR imm8, m64, mm [SSSE3] +// * PALIGNR imm8, xmm, xmm [SSSE3] +// * PALIGNR imm8, m128, xmm [SSSE3] +// +func (self *Program) PALIGNR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PALIGNR", 3, Operands { v0, v1, v2 }) + // PALIGNR imm8, mm, mm + if isImm8(v0) && isMM(v1) && isMM(v2) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PALIGNR imm8, m64, mm + if isImm8(v0) && isM64(v1) && isMM(v2) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0f) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // PALIGNR imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PALIGNR imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0f) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PALIGNR") + } + return p +} + +// PAND performs "Packed Bitwise Logical AND". +// +// Mnemonic : PAND +// Supported forms : (4 forms) +// +// * PAND mm, mm [MMX] +// * PAND m64, mm [MMX] +// * PAND xmm, xmm [SSE2] +// * PAND m128, xmm [SSE2] +// +func (self *Program) PAND(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PAND", 2, Operands { v0, v1 }) + // PAND mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAND m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PAND xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAND m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PAND") + } + return p +} + +// PANDN performs "Packed Bitwise Logical AND NOT". +// +// Mnemonic : PANDN +// Supported forms : (4 forms) +// +// * PANDN mm, mm [MMX] +// * PANDN m64, mm [MMX] +// * PANDN xmm, xmm [SSE2] +// * PANDN m128, xmm [SSE2] +// +func (self *Program) PANDN(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PANDN", 2, Operands { v0, v1 }) + // PANDN mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PANDN m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PANDN xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PANDN m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PANDN") + } + return p +} + +// PAUSE performs "Spin Loop Hint". +// +// Mnemonic : PAUSE +// Supported forms : (1 form) +// +// * PAUSE +// +func (self *Program) PAUSE() *Instruction { + p := self.alloc("PAUSE", 0, Operands { }) + // PAUSE + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x90) + }) + return p +} + +// PAVGB performs "Average Packed Byte Integers". +// +// Mnemonic : PAVGB +// Supported forms : (4 forms) +// +// * PAVGB mm, mm [MMX+] +// * PAVGB m64, mm [MMX+] +// * PAVGB xmm, xmm [SSE2] +// * PAVGB m128, xmm [SSE2] +// +func (self *Program) PAVGB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PAVGB", 2, Operands { v0, v1 }) + // PAVGB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAVGB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PAVGB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAVGB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PAVGB") + } + return p +} + +// PAVGUSB performs "Average Packed Byte Integers". +// +// Mnemonic : PAVGUSB +// Supported forms : (2 forms) +// +// * PAVGUSB mm, mm [3dnow!] +// * PAVGUSB m64, mm [3dnow!] +// +func (self *Program) PAVGUSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PAVGUSB", 2, Operands { v0, v1 }) + // PAVGUSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xbf) + }) + } + // PAVGUSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xbf) + }) + } + if p.len == 0 { + panic("invalid operands for PAVGUSB") + } + return p +} + +// PAVGW performs "Average Packed Word Integers". +// +// Mnemonic : PAVGW +// Supported forms : (4 forms) +// +// * PAVGW mm, mm [MMX+] +// * PAVGW m64, mm [MMX+] +// * PAVGW xmm, xmm [SSE2] +// * PAVGW m128, xmm [SSE2] +// +func (self *Program) PAVGW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PAVGW", 2, Operands { v0, v1 }) + // PAVGW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAVGW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PAVGW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAVGW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PAVGW") + } + return p +} + +// PBLENDVB performs "Variable Blend Packed Bytes". +// +// Mnemonic : PBLENDVB +// Supported forms : (2 forms) +// +// * PBLENDVB xmm0, xmm, xmm [SSE4.1] +// * PBLENDVB xmm0, m128, xmm [SSE4.1] +// +func (self *Program) PBLENDVB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PBLENDVB", 3, Operands { v0, v1, v2 }) + // PBLENDVB xmm0, xmm, xmm + if v0 == XMM0 && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // PBLENDVB xmm0, m128, xmm + if v0 == XMM0 && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PBLENDVB") + } + return p +} + +// PBLENDW performs "Blend Packed Words". +// +// Mnemonic : PBLENDW +// Supported forms : (2 forms) +// +// * PBLENDW imm8, xmm, xmm [SSE4.1] +// * PBLENDW imm8, m128, xmm [SSE4.1] +// +func (self *Program) PBLENDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PBLENDW", 3, Operands { v0, v1, v2 }) + // PBLENDW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PBLENDW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0e) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PBLENDW") + } + return p +} + +// PCLMULQDQ performs "Carry-Less Quadword Multiplication". +// +// Mnemonic : PCLMULQDQ +// Supported forms : (2 forms) +// +// * PCLMULQDQ imm8, xmm, xmm [PCLMULQDQ] +// * PCLMULQDQ imm8, m128, xmm [PCLMULQDQ] +// +func (self *Program) PCLMULQDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCLMULQDQ", 3, Operands { v0, v1, v2 }) + // PCLMULQDQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_PCLMULQDQ) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x44) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCLMULQDQ imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_PCLMULQDQ) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x44) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCLMULQDQ") + } + return p +} + +// PCMPEQB performs "Compare Packed Byte Data for Equality". +// +// Mnemonic : PCMPEQB +// Supported forms : (4 forms) +// +// * PCMPEQB mm, mm [MMX] +// * PCMPEQB m64, mm [MMX] +// * PCMPEQB xmm, xmm [SSE2] +// * PCMPEQB m128, xmm [SSE2] +// +func (self *Program) PCMPEQB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPEQB", 2, Operands { v0, v1 }) + // PCMPEQB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x74) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x74) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPEQB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x74) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x74) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPEQB") + } + return p +} + +// PCMPEQD performs "Compare Packed Doubleword Data for Equality". +// +// Mnemonic : PCMPEQD +// Supported forms : (4 forms) +// +// * PCMPEQD mm, mm [MMX] +// * PCMPEQD m64, mm [MMX] +// * PCMPEQD xmm, xmm [SSE2] +// * PCMPEQD m128, xmm [SSE2] +// +func (self *Program) PCMPEQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPEQD", 2, Operands { v0, v1 }) + // PCMPEQD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x76) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x76) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPEQD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x76) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x76) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPEQD") + } + return p +} + +// PCMPEQQ performs "Compare Packed Quadword Data for Equality". +// +// Mnemonic : PCMPEQQ +// Supported forms : (2 forms) +// +// * PCMPEQQ xmm, xmm [SSE4.1] +// * PCMPEQQ m128, xmm [SSE4.1] +// +func (self *Program) PCMPEQQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPEQQ", 2, Operands { v0, v1 }) + // PCMPEQQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x29) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPEQQ") + } + return p +} + +// PCMPEQW performs "Compare Packed Word Data for Equality". +// +// Mnemonic : PCMPEQW +// Supported forms : (4 forms) +// +// * PCMPEQW mm, mm [MMX] +// * PCMPEQW m64, mm [MMX] +// * PCMPEQW xmm, xmm [SSE2] +// * PCMPEQW m128, xmm [SSE2] +// +func (self *Program) PCMPEQW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPEQW", 2, Operands { v0, v1 }) + // PCMPEQW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x75) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x75) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPEQW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x75) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x75) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPEQW") + } + return p +} + +// PCMPESTRI performs "Packed Compare Explicit Length Strings, Return Index". +// +// Mnemonic : PCMPESTRI +// Supported forms : (2 forms) +// +// * PCMPESTRI imm8, xmm, xmm [SSE4.2] +// * PCMPESTRI imm8, m128, xmm [SSE4.2] +// +func (self *Program) PCMPESTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCMPESTRI", 3, Operands { v0, v1, v2 }) + // PCMPESTRI imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCMPESTRI imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPESTRI") + } + return p +} + +// PCMPESTRM performs "Packed Compare Explicit Length Strings, Return Mask". +// +// Mnemonic : PCMPESTRM +// Supported forms : (2 forms) +// +// * PCMPESTRM imm8, xmm, xmm [SSE4.2] +// * PCMPESTRM imm8, m128, xmm [SSE4.2] +// +func (self *Program) PCMPESTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCMPESTRM", 3, Operands { v0, v1, v2 }) + // PCMPESTRM imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCMPESTRM imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPESTRM") + } + return p +} + +// PCMPGTB performs "Compare Packed Signed Byte Integers for Greater Than". +// +// Mnemonic : PCMPGTB +// Supported forms : (4 forms) +// +// * PCMPGTB mm, mm [MMX] +// * PCMPGTB m64, mm [MMX] +// * PCMPGTB xmm, xmm [SSE2] +// * PCMPGTB m128, xmm [SSE2] +// +func (self *Program) PCMPGTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPGTB", 2, Operands { v0, v1 }) + // PCMPGTB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x64) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x64) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPGTB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x64) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x64) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPGTB") + } + return p +} + +// PCMPGTD performs "Compare Packed Signed Doubleword Integers for Greater Than". +// +// Mnemonic : PCMPGTD +// Supported forms : (4 forms) +// +// * PCMPGTD mm, mm [MMX] +// * PCMPGTD m64, mm [MMX] +// * PCMPGTD xmm, xmm [SSE2] +// * PCMPGTD m128, xmm [SSE2] +// +func (self *Program) PCMPGTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPGTD", 2, Operands { v0, v1 }) + // PCMPGTD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x66) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x66) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPGTD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x66) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x66) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPGTD") + } + return p +} + +// PCMPGTQ performs "Compare Packed Data for Greater Than". +// +// Mnemonic : PCMPGTQ +// Supported forms : (2 forms) +// +// * PCMPGTQ xmm, xmm [SSE4.2] +// * PCMPGTQ m128, xmm [SSE4.2] +// +func (self *Program) PCMPGTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPGTQ", 2, Operands { v0, v1 }) + // PCMPGTQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x37) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x37) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPGTQ") + } + return p +} + +// PCMPGTW performs "Compare Packed Signed Word Integers for Greater Than". +// +// Mnemonic : PCMPGTW +// Supported forms : (4 forms) +// +// * PCMPGTW mm, mm [MMX] +// * PCMPGTW m64, mm [MMX] +// * PCMPGTW xmm, xmm [SSE2] +// * PCMPGTW m128, xmm [SSE2] +// +func (self *Program) PCMPGTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPGTW", 2, Operands { v0, v1 }) + // PCMPGTW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x65) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x65) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPGTW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x65) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x65) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPGTW") + } + return p +} + +// PCMPISTRI performs "Packed Compare Implicit Length Strings, Return Index". +// +// Mnemonic : PCMPISTRI +// Supported forms : (2 forms) +// +// * PCMPISTRI imm8, xmm, xmm [SSE4.2] +// * PCMPISTRI imm8, m128, xmm [SSE4.2] +// +func (self *Program) PCMPISTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCMPISTRI", 3, Operands { v0, v1, v2 }) + // PCMPISTRI imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCMPISTRI imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPISTRI") + } + return p +} + +// PCMPISTRM performs "Packed Compare Implicit Length Strings, Return Mask". +// +// Mnemonic : PCMPISTRM +// Supported forms : (2 forms) +// +// * PCMPISTRM imm8, xmm, xmm [SSE4.2] +// * PCMPISTRM imm8, m128, xmm [SSE4.2] +// +func (self *Program) PCMPISTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCMPISTRM", 3, Operands { v0, v1, v2 }) + // PCMPISTRM imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCMPISTRM imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPISTRM") + } + return p +} + +// PDEP performs "Parallel Bits Deposit". +// +// Mnemonic : PDEP +// Supported forms : (4 forms) +// +// * PDEP r32, r32, r32 [BMI2] +// * PDEP m32, r32, r32 [BMI2] +// * PDEP r64, r64, r64 [BMI2] +// * PDEP m64, r64, r64 [BMI2] +// +func (self *Program) PDEP(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PDEP", 3, Operands { v0, v1, v2 }) + // PDEP r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7b ^ (hlcode(v[1]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // PDEP m32, r32, r32 + if isM32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x03, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // PDEP r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb ^ (hlcode(v[1]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // PDEP m64, r64, r64 + if isM64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x83, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PDEP") + } + return p +} + +// PEXT performs "Parallel Bits Extract". +// +// Mnemonic : PEXT +// Supported forms : (4 forms) +// +// * PEXT r32, r32, r32 [BMI2] +// * PEXT m32, r32, r32 [BMI2] +// * PEXT r64, r64, r64 [BMI2] +// * PEXT m64, r64, r64 [BMI2] +// +func (self *Program) PEXT(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXT", 3, Operands { v0, v1, v2 }) + // PEXT r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7a ^ (hlcode(v[1]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // PEXT m32, r32, r32 + if isM32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x02, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // PEXT r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfa ^ (hlcode(v[1]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // PEXT m64, r64, r64 + if isM64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x82, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PEXT") + } + return p +} + +// PEXTRB performs "Extract Byte". +// +// Mnemonic : PEXTRB +// Supported forms : (2 forms) +// +// * PEXTRB imm8, xmm, r32 [SSE4.1] +// * PEXTRB imm8, xmm, m8 [SSE4.1] +// +func (self *Program) PEXTRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXTRB", 3, Operands { v0, v1, v2 }) + // PEXTRB imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRB imm8, xmm, m8 + if isImm8(v0) && isXMM(v1) && isM8(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PEXTRB") + } + return p +} + +// PEXTRD performs "Extract Doubleword". +// +// Mnemonic : PEXTRD +// Supported forms : (2 forms) +// +// * PEXTRD imm8, xmm, r32 [SSE4.1] +// * PEXTRD imm8, xmm, m32 [SSE4.1] +// +func (self *Program) PEXTRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXTRD", 3, Operands { v0, v1, v2 }) + // PEXTRD imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRD imm8, xmm, m32 + if isImm8(v0) && isXMM(v1) && isM32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PEXTRD") + } + return p +} + +// PEXTRQ performs "Extract Quadword". +// +// Mnemonic : PEXTRQ +// Supported forms : (2 forms) +// +// * PEXTRQ imm8, xmm, r64 [SSE4.1] +// * PEXTRQ imm8, xmm, m64 [SSE4.1] +// +func (self *Program) PEXTRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXTRQ", 3, Operands { v0, v1, v2 }) + // PEXTRQ imm8, xmm, r64 + if isImm8(v0) && isXMM(v1) && isReg64(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRQ imm8, xmm, m64 + if isImm8(v0) && isXMM(v1) && isM64(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PEXTRQ") + } + return p +} + +// PEXTRW performs "Extract Word". +// +// Mnemonic : PEXTRW +// Supported forms : (3 forms) +// +// * PEXTRW imm8, mm, r32 [MMX+] +// * PEXTRW imm8, xmm, r32 [SSE4.1] +// * PEXTRW imm8, xmm, m16 [SSE4.1] +// +func (self *Program) PEXTRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXTRW", 3, Operands { v0, v1, v2 }) + // PEXTRW imm8, mm, r32 + if isImm8(v0) && isMM(v1) && isReg32(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRW imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRW imm8, xmm, m16 + if isImm8(v0) && isXMM(v1) && isM16(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PEXTRW") + } + return p +} + +// PF2ID performs "Packed Floating-Point to Integer Doubleword Converson". +// +// Mnemonic : PF2ID +// Supported forms : (2 forms) +// +// * PF2ID mm, mm [3dnow!] +// * PF2ID m64, mm [3dnow!] +// +func (self *Program) PF2ID(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PF2ID", 2, Operands { v0, v1 }) + // PF2ID mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x1d) + }) + } + // PF2ID m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x1d) + }) + } + if p.len == 0 { + panic("invalid operands for PF2ID") + } + return p +} + +// PF2IW performs "Packed Floating-Point to Integer Word Conversion". +// +// Mnemonic : PF2IW +// Supported forms : (2 forms) +// +// * PF2IW mm, mm [3dnow!+] +// * PF2IW m64, mm [3dnow!+] +// +func (self *Program) PF2IW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PF2IW", 2, Operands { v0, v1 }) + // PF2IW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x1c) + }) + } + // PF2IW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x1c) + }) + } + if p.len == 0 { + panic("invalid operands for PF2IW") + } + return p +} + +// PFACC performs "Packed Floating-Point Accumulate". +// +// Mnemonic : PFACC +// Supported forms : (2 forms) +// +// * PFACC mm, mm [3dnow!] +// * PFACC m64, mm [3dnow!] +// +func (self *Program) PFACC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFACC", 2, Operands { v0, v1 }) + // PFACC mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xae) + }) + } + // PFACC m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xae) + }) + } + if p.len == 0 { + panic("invalid operands for PFACC") + } + return p +} + +// PFADD performs "Packed Floating-Point Add". +// +// Mnemonic : PFADD +// Supported forms : (2 forms) +// +// * PFADD mm, mm [3dnow!] +// * PFADD m64, mm [3dnow!] +// +func (self *Program) PFADD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFADD", 2, Operands { v0, v1 }) + // PFADD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x9e) + }) + } + // PFADD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x9e) + }) + } + if p.len == 0 { + panic("invalid operands for PFADD") + } + return p +} + +// PFCMPEQ performs "Packed Floating-Point Compare for Equal". +// +// Mnemonic : PFCMPEQ +// Supported forms : (2 forms) +// +// * PFCMPEQ mm, mm [3dnow!] +// * PFCMPEQ m64, mm [3dnow!] +// +func (self *Program) PFCMPEQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFCMPEQ", 2, Operands { v0, v1 }) + // PFCMPEQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xb0) + }) + } + // PFCMPEQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xb0) + }) + } + if p.len == 0 { + panic("invalid operands for PFCMPEQ") + } + return p +} + +// PFCMPGE performs "Packed Floating-Point Compare for Greater or Equal". +// +// Mnemonic : PFCMPGE +// Supported forms : (2 forms) +// +// * PFCMPGE mm, mm [3dnow!] +// * PFCMPGE m64, mm [3dnow!] +// +func (self *Program) PFCMPGE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFCMPGE", 2, Operands { v0, v1 }) + // PFCMPGE mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x90) + }) + } + // PFCMPGE m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x90) + }) + } + if p.len == 0 { + panic("invalid operands for PFCMPGE") + } + return p +} + +// PFCMPGT performs "Packed Floating-Point Compare for Greater Than". +// +// Mnemonic : PFCMPGT +// Supported forms : (2 forms) +// +// * PFCMPGT mm, mm [3dnow!] +// * PFCMPGT m64, mm [3dnow!] +// +func (self *Program) PFCMPGT(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFCMPGT", 2, Operands { v0, v1 }) + // PFCMPGT mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xa0) + }) + } + // PFCMPGT m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xa0) + }) + } + if p.len == 0 { + panic("invalid operands for PFCMPGT") + } + return p +} + +// PFMAX performs "Packed Floating-Point Maximum". +// +// Mnemonic : PFMAX +// Supported forms : (2 forms) +// +// * PFMAX mm, mm [3dnow!] +// * PFMAX m64, mm [3dnow!] +// +func (self *Program) PFMAX(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFMAX", 2, Operands { v0, v1 }) + // PFMAX mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xa4) + }) + } + // PFMAX m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xa4) + }) + } + if p.len == 0 { + panic("invalid operands for PFMAX") + } + return p +} + +// PFMIN performs "Packed Floating-Point Minimum". +// +// Mnemonic : PFMIN +// Supported forms : (2 forms) +// +// * PFMIN mm, mm [3dnow!] +// * PFMIN m64, mm [3dnow!] +// +func (self *Program) PFMIN(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFMIN", 2, Operands { v0, v1 }) + // PFMIN mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x94) + }) + } + // PFMIN m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x94) + }) + } + if p.len == 0 { + panic("invalid operands for PFMIN") + } + return p +} + +// PFMUL performs "Packed Floating-Point Multiply". +// +// Mnemonic : PFMUL +// Supported forms : (2 forms) +// +// * PFMUL mm, mm [3dnow!] +// * PFMUL m64, mm [3dnow!] +// +func (self *Program) PFMUL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFMUL", 2, Operands { v0, v1 }) + // PFMUL mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xb4) + }) + } + // PFMUL m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xb4) + }) + } + if p.len == 0 { + panic("invalid operands for PFMUL") + } + return p +} + +// PFNACC performs "Packed Floating-Point Negative Accumulate". +// +// Mnemonic : PFNACC +// Supported forms : (2 forms) +// +// * PFNACC mm, mm [3dnow!+] +// * PFNACC m64, mm [3dnow!+] +// +func (self *Program) PFNACC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFNACC", 2, Operands { v0, v1 }) + // PFNACC mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x8a) + }) + } + // PFNACC m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x8a) + }) + } + if p.len == 0 { + panic("invalid operands for PFNACC") + } + return p +} + +// PFPNACC performs "Packed Floating-Point Positive-Negative Accumulate". +// +// Mnemonic : PFPNACC +// Supported forms : (2 forms) +// +// * PFPNACC mm, mm [3dnow!+] +// * PFPNACC m64, mm [3dnow!+] +// +func (self *Program) PFPNACC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFPNACC", 2, Operands { v0, v1 }) + // PFPNACC mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x8e) + }) + } + // PFPNACC m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x8e) + }) + } + if p.len == 0 { + panic("invalid operands for PFPNACC") + } + return p +} + +// PFRCP performs "Packed Floating-Point Reciprocal Approximation". +// +// Mnemonic : PFRCP +// Supported forms : (2 forms) +// +// * PFRCP mm, mm [3dnow!] +// * PFRCP m64, mm [3dnow!] +// +func (self *Program) PFRCP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRCP", 2, Operands { v0, v1 }) + // PFRCP mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x96) + }) + } + // PFRCP m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x96) + }) + } + if p.len == 0 { + panic("invalid operands for PFRCP") + } + return p +} + +// PFRCPIT1 performs "Packed Floating-Point Reciprocal Iteration 1". +// +// Mnemonic : PFRCPIT1 +// Supported forms : (2 forms) +// +// * PFRCPIT1 mm, mm [3dnow!] +// * PFRCPIT1 m64, mm [3dnow!] +// +func (self *Program) PFRCPIT1(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRCPIT1", 2, Operands { v0, v1 }) + // PFRCPIT1 mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xa6) + }) + } + // PFRCPIT1 m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xa6) + }) + } + if p.len == 0 { + panic("invalid operands for PFRCPIT1") + } + return p +} + +// PFRCPIT2 performs "Packed Floating-Point Reciprocal Iteration 2". +// +// Mnemonic : PFRCPIT2 +// Supported forms : (2 forms) +// +// * PFRCPIT2 mm, mm [3dnow!] +// * PFRCPIT2 m64, mm [3dnow!] +// +func (self *Program) PFRCPIT2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRCPIT2", 2, Operands { v0, v1 }) + // PFRCPIT2 mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xb6) + }) + } + // PFRCPIT2 m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xb6) + }) + } + if p.len == 0 { + panic("invalid operands for PFRCPIT2") + } + return p +} + +// PFRSQIT1 performs "Packed Floating-Point Reciprocal Square Root Iteration 1". +// +// Mnemonic : PFRSQIT1 +// Supported forms : (2 forms) +// +// * PFRSQIT1 mm, mm [3dnow!] +// * PFRSQIT1 m64, mm [3dnow!] +// +func (self *Program) PFRSQIT1(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRSQIT1", 2, Operands { v0, v1 }) + // PFRSQIT1 mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xa7) + }) + } + // PFRSQIT1 m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xa7) + }) + } + if p.len == 0 { + panic("invalid operands for PFRSQIT1") + } + return p +} + +// PFRSQRT performs "Packed Floating-Point Reciprocal Square Root Approximation". +// +// Mnemonic : PFRSQRT +// Supported forms : (2 forms) +// +// * PFRSQRT mm, mm [3dnow!] +// * PFRSQRT m64, mm [3dnow!] +// +func (self *Program) PFRSQRT(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRSQRT", 2, Operands { v0, v1 }) + // PFRSQRT mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x97) + }) + } + // PFRSQRT m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x97) + }) + } + if p.len == 0 { + panic("invalid operands for PFRSQRT") + } + return p +} + +// PFSUB performs "Packed Floating-Point Subtract". +// +// Mnemonic : PFSUB +// Supported forms : (2 forms) +// +// * PFSUB mm, mm [3dnow!] +// * PFSUB m64, mm [3dnow!] +// +func (self *Program) PFSUB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFSUB", 2, Operands { v0, v1 }) + // PFSUB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x9a) + }) + } + // PFSUB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x9a) + }) + } + if p.len == 0 { + panic("invalid operands for PFSUB") + } + return p +} + +// PFSUBR performs "Packed Floating-Point Subtract Reverse". +// +// Mnemonic : PFSUBR +// Supported forms : (2 forms) +// +// * PFSUBR mm, mm [3dnow!] +// * PFSUBR m64, mm [3dnow!] +// +func (self *Program) PFSUBR(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFSUBR", 2, Operands { v0, v1 }) + // PFSUBR mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xaa) + }) + } + // PFSUBR m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xaa) + }) + } + if p.len == 0 { + panic("invalid operands for PFSUBR") + } + return p +} + +// PHADDD performs "Packed Horizontal Add Doubleword Integer". +// +// Mnemonic : PHADDD +// Supported forms : (4 forms) +// +// * PHADDD mm, mm [SSSE3] +// * PHADDD m64, mm [SSSE3] +// * PHADDD xmm, xmm [SSSE3] +// * PHADDD m128, xmm [SSSE3] +// +func (self *Program) PHADDD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHADDD", 2, Operands { v0, v1 }) + // PHADDD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x02) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x02) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHADDD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x02) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x02) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHADDD") + } + return p +} + +// PHADDSW performs "Packed Horizontal Add Signed Word Integers with Signed Saturation". +// +// Mnemonic : PHADDSW +// Supported forms : (4 forms) +// +// * PHADDSW mm, mm [SSSE3] +// * PHADDSW m64, mm [SSSE3] +// * PHADDSW xmm, xmm [SSSE3] +// * PHADDSW m128, xmm [SSSE3] +// +func (self *Program) PHADDSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHADDSW", 2, Operands { v0, v1 }) + // PHADDSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHADDSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHADDSW") + } + return p +} + +// PHADDW performs "Packed Horizontal Add Word Integers". +// +// Mnemonic : PHADDW +// Supported forms : (4 forms) +// +// * PHADDW mm, mm [SSSE3] +// * PHADDW m64, mm [SSSE3] +// * PHADDW xmm, xmm [SSSE3] +// * PHADDW m128, xmm [SSSE3] +// +func (self *Program) PHADDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHADDW", 2, Operands { v0, v1 }) + // PHADDW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x01) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x01) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHADDW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x01) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x01) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHADDW") + } + return p +} + +// PHMINPOSUW performs "Packed Horizontal Minimum of Unsigned Word Integers". +// +// Mnemonic : PHMINPOSUW +// Supported forms : (2 forms) +// +// * PHMINPOSUW xmm, xmm [SSE4.1] +// * PHMINPOSUW m128, xmm [SSE4.1] +// +func (self *Program) PHMINPOSUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHMINPOSUW", 2, Operands { v0, v1 }) + // PHMINPOSUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHMINPOSUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHMINPOSUW") + } + return p +} + +// PHSUBD performs "Packed Horizontal Subtract Doubleword Integers". +// +// Mnemonic : PHSUBD +// Supported forms : (4 forms) +// +// * PHSUBD mm, mm [SSSE3] +// * PHSUBD m64, mm [SSSE3] +// * PHSUBD xmm, xmm [SSSE3] +// * PHSUBD m128, xmm [SSSE3] +// +func (self *Program) PHSUBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHSUBD", 2, Operands { v0, v1 }) + // PHSUBD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x06) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x06) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHSUBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x06) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x06) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHSUBD") + } + return p +} + +// PHSUBSW performs "Packed Horizontal Subtract Signed Word Integers with Signed Saturation". +// +// Mnemonic : PHSUBSW +// Supported forms : (4 forms) +// +// * PHSUBSW mm, mm [SSSE3] +// * PHSUBSW m64, mm [SSSE3] +// * PHSUBSW xmm, xmm [SSSE3] +// * PHSUBSW m128, xmm [SSSE3] +// +func (self *Program) PHSUBSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHSUBSW", 2, Operands { v0, v1 }) + // PHSUBSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x07) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x07) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHSUBSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x07) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x07) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHSUBSW") + } + return p +} + +// PHSUBW performs "Packed Horizontal Subtract Word Integers". +// +// Mnemonic : PHSUBW +// Supported forms : (4 forms) +// +// * PHSUBW mm, mm [SSSE3] +// * PHSUBW m64, mm [SSSE3] +// * PHSUBW xmm, xmm [SSSE3] +// * PHSUBW m128, xmm [SSSE3] +// +func (self *Program) PHSUBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHSUBW", 2, Operands { v0, v1 }) + // PHSUBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x05) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x05) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHSUBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x05) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x05) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHSUBW") + } + return p +} + +// PI2FD performs "Packed Integer to Floating-Point Doubleword Conversion". +// +// Mnemonic : PI2FD +// Supported forms : (2 forms) +// +// * PI2FD mm, mm [3dnow!] +// * PI2FD m64, mm [3dnow!] +// +func (self *Program) PI2FD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PI2FD", 2, Operands { v0, v1 }) + // PI2FD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x0d) + }) + } + // PI2FD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x0d) + }) + } + if p.len == 0 { + panic("invalid operands for PI2FD") + } + return p +} + +// PI2FW performs "Packed Integer to Floating-Point Word Conversion". +// +// Mnemonic : PI2FW +// Supported forms : (2 forms) +// +// * PI2FW mm, mm [3dnow!+] +// * PI2FW m64, mm [3dnow!+] +// +func (self *Program) PI2FW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PI2FW", 2, Operands { v0, v1 }) + // PI2FW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x0c) + }) + } + // PI2FW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x0c) + }) + } + if p.len == 0 { + panic("invalid operands for PI2FW") + } + return p +} + +// PINSRB performs "Insert Byte". +// +// Mnemonic : PINSRB +// Supported forms : (2 forms) +// +// * PINSRB imm8, r32, xmm [SSE4.1] +// * PINSRB imm8, m8, xmm [SSE4.1] +// +func (self *Program) PINSRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PINSRB", 3, Operands { v0, v1, v2 }) + // PINSRB imm8, r32, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x20) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRB imm8, m8, xmm + if isImm8(v0) && isM8(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x20) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PINSRB") + } + return p +} + +// PINSRD performs "Insert Doubleword". +// +// Mnemonic : PINSRD +// Supported forms : (2 forms) +// +// * PINSRD imm8, r32, xmm [SSE4.1] +// * PINSRD imm8, m32, xmm [SSE4.1] +// +func (self *Program) PINSRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PINSRD", 3, Operands { v0, v1, v2 }) + // PINSRD imm8, r32, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x22) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRD imm8, m32, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x22) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PINSRD") + } + return p +} + +// PINSRQ performs "Insert Quadword". +// +// Mnemonic : PINSRQ +// Supported forms : (2 forms) +// +// * PINSRQ imm8, r64, xmm [SSE4.1] +// * PINSRQ imm8, m64, xmm [SSE4.1] +// +func (self *Program) PINSRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PINSRQ", 3, Operands { v0, v1, v2 }) + // PINSRQ imm8, r64, xmm + if isImm8(v0) && isReg64(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[2]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x22) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRQ imm8, m64, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[2]), addr(v[1])) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x22) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PINSRQ") + } + return p +} + +// PINSRW performs "Insert Word". +// +// Mnemonic : PINSRW +// Supported forms : (4 forms) +// +// * PINSRW imm8, r32, mm [MMX+] +// * PINSRW imm8, m16, mm [MMX+] +// * PINSRW imm8, r32, xmm [SSE2] +// * PINSRW imm8, m16, xmm [SSE2] +// +func (self *Program) PINSRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PINSRW", 3, Operands { v0, v1, v2 }) + // PINSRW imm8, r32, mm + if isImm8(v0) && isReg32(v1) && isMM(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRW imm8, m16, mm + if isImm8(v0) && isM16(v1) && isMM(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc4) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRW imm8, r32, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRW imm8, m16, xmm + if isImm8(v0) && isM16(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc4) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PINSRW") + } + return p +} + +// PMADDUBSW performs "Multiply and Add Packed Signed and Unsigned Byte Integers". +// +// Mnemonic : PMADDUBSW +// Supported forms : (4 forms) +// +// * PMADDUBSW mm, mm [SSSE3] +// * PMADDUBSW m64, mm [SSSE3] +// * PMADDUBSW xmm, xmm [SSSE3] +// * PMADDUBSW m128, xmm [SSSE3] +// +func (self *Program) PMADDUBSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMADDUBSW", 2, Operands { v0, v1 }) + // PMADDUBSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x04) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMADDUBSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x04) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMADDUBSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x04) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMADDUBSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x04) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMADDUBSW") + } + return p +} + +// PMADDWD performs "Multiply and Add Packed Signed Word Integers". +// +// Mnemonic : PMADDWD +// Supported forms : (4 forms) +// +// * PMADDWD mm, mm [MMX] +// * PMADDWD m64, mm [MMX] +// * PMADDWD xmm, xmm [SSE2] +// * PMADDWD m128, xmm [SSE2] +// +func (self *Program) PMADDWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMADDWD", 2, Operands { v0, v1 }) + // PMADDWD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMADDWD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMADDWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMADDWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMADDWD") + } + return p +} + +// PMAXSB performs "Maximum of Packed Signed Byte Integers". +// +// Mnemonic : PMAXSB +// Supported forms : (2 forms) +// +// * PMAXSB xmm, xmm [SSE4.1] +// * PMAXSB m128, xmm [SSE4.1] +// +func (self *Program) PMAXSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXSB", 2, Operands { v0, v1 }) + // PMAXSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXSB") + } + return p +} + +// PMAXSD performs "Maximum of Packed Signed Doubleword Integers". +// +// Mnemonic : PMAXSD +// Supported forms : (2 forms) +// +// * PMAXSD xmm, xmm [SSE4.1] +// * PMAXSD m128, xmm [SSE4.1] +// +func (self *Program) PMAXSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXSD", 2, Operands { v0, v1 }) + // PMAXSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXSD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXSD") + } + return p +} + +// PMAXSW performs "Maximum of Packed Signed Word Integers". +// +// Mnemonic : PMAXSW +// Supported forms : (4 forms) +// +// * PMAXSW mm, mm [MMX+] +// * PMAXSW m64, mm [MMX+] +// * PMAXSW xmm, xmm [SSE2] +// * PMAXSW m128, xmm [SSE2] +// +func (self *Program) PMAXSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXSW", 2, Operands { v0, v1 }) + // PMAXSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xee) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xee) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMAXSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xee) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xee) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXSW") + } + return p +} + +// PMAXUB performs "Maximum of Packed Unsigned Byte Integers". +// +// Mnemonic : PMAXUB +// Supported forms : (4 forms) +// +// * PMAXUB mm, mm [MMX+] +// * PMAXUB m64, mm [MMX+] +// * PMAXUB xmm, xmm [SSE2] +// * PMAXUB m128, xmm [SSE2] +// +func (self *Program) PMAXUB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXUB", 2, Operands { v0, v1 }) + // PMAXUB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xde) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXUB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xde) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMAXUB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xde) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXUB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xde) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXUB") + } + return p +} + +// PMAXUD performs "Maximum of Packed Unsigned Doubleword Integers". +// +// Mnemonic : PMAXUD +// Supported forms : (2 forms) +// +// * PMAXUD xmm, xmm [SSE4.1] +// * PMAXUD m128, xmm [SSE4.1] +// +func (self *Program) PMAXUD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXUD", 2, Operands { v0, v1 }) + // PMAXUD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXUD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXUD") + } + return p +} + +// PMAXUW performs "Maximum of Packed Unsigned Word Integers". +// +// Mnemonic : PMAXUW +// Supported forms : (2 forms) +// +// * PMAXUW xmm, xmm [SSE4.1] +// * PMAXUW m128, xmm [SSE4.1] +// +func (self *Program) PMAXUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXUW", 2, Operands { v0, v1 }) + // PMAXUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXUW") + } + return p +} + +// PMINSB performs "Minimum of Packed Signed Byte Integers". +// +// Mnemonic : PMINSB +// Supported forms : (2 forms) +// +// * PMINSB xmm, xmm [SSE4.1] +// * PMINSB m128, xmm [SSE4.1] +// +func (self *Program) PMINSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINSB", 2, Operands { v0, v1 }) + // PMINSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x38) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINSB") + } + return p +} + +// PMINSD performs "Minimum of Packed Signed Doubleword Integers". +// +// Mnemonic : PMINSD +// Supported forms : (2 forms) +// +// * PMINSD xmm, xmm [SSE4.1] +// * PMINSD m128, xmm [SSE4.1] +// +func (self *Program) PMINSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINSD", 2, Operands { v0, v1 }) + // PMINSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINSD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINSD") + } + return p +} + +// PMINSW performs "Minimum of Packed Signed Word Integers". +// +// Mnemonic : PMINSW +// Supported forms : (4 forms) +// +// * PMINSW mm, mm [MMX+] +// * PMINSW m64, mm [MMX+] +// * PMINSW xmm, xmm [SSE2] +// * PMINSW m128, xmm [SSE2] +// +func (self *Program) PMINSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINSW", 2, Operands { v0, v1 }) + // PMINSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xea) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xea) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMINSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xea) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xea) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINSW") + } + return p +} + +// PMINUB performs "Minimum of Packed Unsigned Byte Integers". +// +// Mnemonic : PMINUB +// Supported forms : (4 forms) +// +// * PMINUB mm, mm [MMX+] +// * PMINUB m64, mm [MMX+] +// * PMINUB xmm, xmm [SSE2] +// * PMINUB m128, xmm [SSE2] +// +func (self *Program) PMINUB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINUB", 2, Operands { v0, v1 }) + // PMINUB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xda) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINUB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xda) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMINUB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xda) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINUB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xda) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINUB") + } + return p +} + +// PMINUD performs "Minimum of Packed Unsigned Doubleword Integers". +// +// Mnemonic : PMINUD +// Supported forms : (2 forms) +// +// * PMINUD xmm, xmm [SSE4.1] +// * PMINUD m128, xmm [SSE4.1] +// +func (self *Program) PMINUD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINUD", 2, Operands { v0, v1 }) + // PMINUD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINUD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINUD") + } + return p +} + +// PMINUW performs "Minimum of Packed Unsigned Word Integers". +// +// Mnemonic : PMINUW +// Supported forms : (2 forms) +// +// * PMINUW xmm, xmm [SSE4.1] +// * PMINUW m128, xmm [SSE4.1] +// +func (self *Program) PMINUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINUW", 2, Operands { v0, v1 }) + // PMINUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINUW") + } + return p +} + +// PMOVMSKB performs "Move Byte Mask". +// +// Mnemonic : PMOVMSKB +// Supported forms : (2 forms) +// +// * PMOVMSKB mm, r32 [MMX+] +// * PMOVMSKB xmm, r32 [SSE2] +// +func (self *Program) PMOVMSKB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVMSKB", 2, Operands { v0, v1 }) + // PMOVMSKB mm, r32 + if isMM(v0) && isReg32(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVMSKB xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVMSKB") + } + return p +} + +// PMOVSXBD performs "Move Packed Byte Integers to Doubleword Integers with Sign Extension". +// +// Mnemonic : PMOVSXBD +// Supported forms : (2 forms) +// +// * PMOVSXBD xmm, xmm [SSE4.1] +// * PMOVSXBD m32, xmm [SSE4.1] +// +func (self *Program) PMOVSXBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXBD", 2, Operands { v0, v1 }) + // PMOVSXBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXBD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXBD") + } + return p +} + +// PMOVSXBQ performs "Move Packed Byte Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : PMOVSXBQ +// Supported forms : (2 forms) +// +// * PMOVSXBQ xmm, xmm [SSE4.1] +// * PMOVSXBQ m16, xmm [SSE4.1] +// +func (self *Program) PMOVSXBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXBQ", 2, Operands { v0, v1 }) + // PMOVSXBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXBQ m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXBQ") + } + return p +} + +// PMOVSXBW performs "Move Packed Byte Integers to Word Integers with Sign Extension". +// +// Mnemonic : PMOVSXBW +// Supported forms : (2 forms) +// +// * PMOVSXBW xmm, xmm [SSE4.1] +// * PMOVSXBW m64, xmm [SSE4.1] +// +func (self *Program) PMOVSXBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXBW", 2, Operands { v0, v1 }) + // PMOVSXBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXBW m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXBW") + } + return p +} + +// PMOVSXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : PMOVSXDQ +// Supported forms : (2 forms) +// +// * PMOVSXDQ xmm, xmm [SSE4.1] +// * PMOVSXDQ m64, xmm [SSE4.1] +// +func (self *Program) PMOVSXDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXDQ", 2, Operands { v0, v1 }) + // PMOVSXDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXDQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXDQ") + } + return p +} + +// PMOVSXWD performs "Move Packed Word Integers to Doubleword Integers with Sign Extension". +// +// Mnemonic : PMOVSXWD +// Supported forms : (2 forms) +// +// * PMOVSXWD xmm, xmm [SSE4.1] +// * PMOVSXWD m64, xmm [SSE4.1] +// +func (self *Program) PMOVSXWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXWD", 2, Operands { v0, v1 }) + // PMOVSXWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXWD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXWD") + } + return p +} + +// PMOVSXWQ performs "Move Packed Word Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : PMOVSXWQ +// Supported forms : (2 forms) +// +// * PMOVSXWQ xmm, xmm [SSE4.1] +// * PMOVSXWQ m32, xmm [SSE4.1] +// +func (self *Program) PMOVSXWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXWQ", 2, Operands { v0, v1 }) + // PMOVSXWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXWQ m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXWQ") + } + return p +} + +// PMOVZXBD performs "Move Packed Byte Integers to Doubleword Integers with Zero Extension". +// +// Mnemonic : PMOVZXBD +// Supported forms : (2 forms) +// +// * PMOVZXBD xmm, xmm [SSE4.1] +// * PMOVZXBD m32, xmm [SSE4.1] +// +func (self *Program) PMOVZXBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXBD", 2, Operands { v0, v1 }) + // PMOVZXBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXBD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXBD") + } + return p +} + +// PMOVZXBQ performs "Move Packed Byte Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : PMOVZXBQ +// Supported forms : (2 forms) +// +// * PMOVZXBQ xmm, xmm [SSE4.1] +// * PMOVZXBQ m16, xmm [SSE4.1] +// +func (self *Program) PMOVZXBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXBQ", 2, Operands { v0, v1 }) + // PMOVZXBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXBQ m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXBQ") + } + return p +} + +// PMOVZXBW performs "Move Packed Byte Integers to Word Integers with Zero Extension". +// +// Mnemonic : PMOVZXBW +// Supported forms : (2 forms) +// +// * PMOVZXBW xmm, xmm [SSE4.1] +// * PMOVZXBW m64, xmm [SSE4.1] +// +func (self *Program) PMOVZXBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXBW", 2, Operands { v0, v1 }) + // PMOVZXBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXBW m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXBW") + } + return p +} + +// PMOVZXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : PMOVZXDQ +// Supported forms : (2 forms) +// +// * PMOVZXDQ xmm, xmm [SSE4.1] +// * PMOVZXDQ m64, xmm [SSE4.1] +// +func (self *Program) PMOVZXDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXDQ", 2, Operands { v0, v1 }) + // PMOVZXDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXDQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXDQ") + } + return p +} + +// PMOVZXWD performs "Move Packed Word Integers to Doubleword Integers with Zero Extension". +// +// Mnemonic : PMOVZXWD +// Supported forms : (2 forms) +// +// * PMOVZXWD xmm, xmm [SSE4.1] +// * PMOVZXWD m64, xmm [SSE4.1] +// +func (self *Program) PMOVZXWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXWD", 2, Operands { v0, v1 }) + // PMOVZXWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXWD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXWD") + } + return p +} + +// PMOVZXWQ performs "Move Packed Word Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : PMOVZXWQ +// Supported forms : (2 forms) +// +// * PMOVZXWQ xmm, xmm [SSE4.1] +// * PMOVZXWQ m32, xmm [SSE4.1] +// +func (self *Program) PMOVZXWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXWQ", 2, Operands { v0, v1 }) + // PMOVZXWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXWQ m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXWQ") + } + return p +} + +// PMULDQ performs "Multiply Packed Signed Doubleword Integers and Store Quadword Result". +// +// Mnemonic : PMULDQ +// Supported forms : (2 forms) +// +// * PMULDQ xmm, xmm [SSE4.1] +// * PMULDQ m128, xmm [SSE4.1] +// +func (self *Program) PMULDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULDQ", 2, Operands { v0, v1 }) + // PMULDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULDQ") + } + return p +} + +// PMULHRSW performs "Packed Multiply Signed Word Integers and Store High Result with Round and Scale". +// +// Mnemonic : PMULHRSW +// Supported forms : (4 forms) +// +// * PMULHRSW mm, mm [SSSE3] +// * PMULHRSW m64, mm [SSSE3] +// * PMULHRSW xmm, xmm [SSSE3] +// * PMULHRSW m128, xmm [SSSE3] +// +func (self *Program) PMULHRSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULHRSW", 2, Operands { v0, v1 }) + // PMULHRSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHRSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULHRSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHRSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULHRSW") + } + return p +} + +// PMULHRW performs "Packed Multiply High Rounded Word". +// +// Mnemonic : PMULHRW +// Supported forms : (2 forms) +// +// * PMULHRW mm, mm [3dnow!] +// * PMULHRW m64, mm [3dnow!] +// +func (self *Program) PMULHRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULHRW", 2, Operands { v0, v1 }) + // PMULHRW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xb7) + }) + } + // PMULHRW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xb7) + }) + } + if p.len == 0 { + panic("invalid operands for PMULHRW") + } + return p +} + +// PMULHUW performs "Multiply Packed Unsigned Word Integers and Store High Result". +// +// Mnemonic : PMULHUW +// Supported forms : (4 forms) +// +// * PMULHUW mm, mm [MMX+] +// * PMULHUW m64, mm [MMX+] +// * PMULHUW xmm, xmm [SSE2] +// * PMULHUW m128, xmm [SSE2] +// +func (self *Program) PMULHUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULHUW", 2, Operands { v0, v1 }) + // PMULHUW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHUW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULHUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULHUW") + } + return p +} + +// PMULHW performs "Multiply Packed Signed Word Integers and Store High Result". +// +// Mnemonic : PMULHW +// Supported forms : (4 forms) +// +// * PMULHW mm, mm [MMX] +// * PMULHW m64, mm [MMX] +// * PMULHW xmm, xmm [SSE2] +// * PMULHW m128, xmm [SSE2] +// +func (self *Program) PMULHW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULHW", 2, Operands { v0, v1 }) + // PMULHW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULHW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULHW") + } + return p +} + +// PMULLD performs "Multiply Packed Signed Doubleword Integers and Store Low Result". +// +// Mnemonic : PMULLD +// Supported forms : (2 forms) +// +// * PMULLD xmm, xmm [SSE4.1] +// * PMULLD m128, xmm [SSE4.1] +// +func (self *Program) PMULLD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULLD", 2, Operands { v0, v1 }) + // PMULLD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x40) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULLD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x40) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULLD") + } + return p +} + +// PMULLW performs "Multiply Packed Signed Word Integers and Store Low Result". +// +// Mnemonic : PMULLW +// Supported forms : (4 forms) +// +// * PMULLW mm, mm [MMX] +// * PMULLW m64, mm [MMX] +// * PMULLW xmm, xmm [SSE2] +// * PMULLW m128, xmm [SSE2] +// +func (self *Program) PMULLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULLW", 2, Operands { v0, v1 }) + // PMULLW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULLW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULLW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULLW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULLW") + } + return p +} + +// PMULUDQ performs "Multiply Packed Unsigned Doubleword Integers". +// +// Mnemonic : PMULUDQ +// Supported forms : (4 forms) +// +// * PMULUDQ mm, mm [SSE2] +// * PMULUDQ m64, mm [SSE2] +// * PMULUDQ xmm, xmm [SSE2] +// * PMULUDQ m128, xmm [SSE2] +// +func (self *Program) PMULUDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULUDQ", 2, Operands { v0, v1 }) + // PMULUDQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULUDQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULUDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULUDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULUDQ") + } + return p +} + +// POPCNTL performs "Count of Number of Bits Set to 1". +// +// Mnemonic : POPCNT +// Supported forms : (2 forms) +// +// * POPCNTL r32, r32 [POPCNT] +// * POPCNTL m32, r32 [POPCNT] +// +func (self *Program) POPCNTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("POPCNTL", 2, Operands { v0, v1 }) + // POPCNTL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POPCNTL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPCNTL") + } + return p +} + +// POPCNTQ performs "Count of Number of Bits Set to 1". +// +// Mnemonic : POPCNT +// Supported forms : (2 forms) +// +// * POPCNTQ r64, r64 [POPCNT] +// * POPCNTQ m64, r64 [POPCNT] +// +func (self *Program) POPCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("POPCNTQ", 2, Operands { v0, v1 }) + // POPCNTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POPCNTQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xb8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPCNTQ") + } + return p +} + +// POPCNTW performs "Count of Number of Bits Set to 1". +// +// Mnemonic : POPCNT +// Supported forms : (2 forms) +// +// * POPCNTW r16, r16 [POPCNT] +// * POPCNTW m16, r16 [POPCNT] +// +func (self *Program) POPCNTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("POPCNTW", 2, Operands { v0, v1 }) + // POPCNTW r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POPCNTW m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPCNTW") + } + return p +} + +// POPQ performs "Pop a Value from the Stack". +// +// Mnemonic : POP +// Supported forms : (2 forms) +// +// * POPQ r64 +// * POPQ m64 +// +func (self *Program) POPQ(v0 interface{}) *Instruction { + p := self.alloc("POPQ", 1, Operands { v0 }) + // POPQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x58 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x8f) + m.emit(0xc0 | lcode(v[0])) + }) + } + // POPQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x8f) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPQ") + } + return p +} + +// POPW performs "Pop a Value from the Stack". +// +// Mnemonic : POP +// Supported forms : (2 forms) +// +// * POPW r16 +// * POPW m16 +// +func (self *Program) POPW(v0 interface{}) *Instruction { + p := self.alloc("POPW", 1, Operands { v0 }) + // POPW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x58 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x8f) + m.emit(0xc0 | lcode(v[0])) + }) + } + // POPW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0x8f) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPW") + } + return p +} + +// POR performs "Packed Bitwise Logical OR". +// +// Mnemonic : POR +// Supported forms : (4 forms) +// +// * POR mm, mm [MMX] +// * POR m64, mm [MMX] +// * POR xmm, xmm [SSE2] +// * POR m128, xmm [SSE2] +// +func (self *Program) POR(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("POR", 2, Operands { v0, v1 }) + // POR mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POR m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xeb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // POR xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POR m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xeb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POR") + } + return p +} + +// PREFETCH performs "Prefetch Data into Caches". +// +// Mnemonic : PREFETCH +// Supported forms : (1 form) +// +// * PREFETCH m8 [PREFETCH] +// +func (self *Program) PREFETCH(v0 interface{}) *Instruction { + p := self.alloc("PREFETCH", 1, Operands { v0 }) + // PREFETCH m8 + if isM8(v0) { + self.require(ISA_PREFETCH) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0d) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCH") + } + return p +} + +// PREFETCHNTA performs "Prefetch Data Into Caches using NTA Hint". +// +// Mnemonic : PREFETCHNTA +// Supported forms : (1 form) +// +// * PREFETCHNTA m8 [MMX+] +// +func (self *Program) PREFETCHNTA(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHNTA", 1, Operands { v0 }) + // PREFETCHNTA m8 + if isM8(v0) { + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x18) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHNTA") + } + return p +} + +// PREFETCHT0 performs "Prefetch Data Into Caches using T0 Hint". +// +// Mnemonic : PREFETCHT0 +// Supported forms : (1 form) +// +// * PREFETCHT0 m8 [MMX+] +// +func (self *Program) PREFETCHT0(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHT0", 1, Operands { v0 }) + // PREFETCHT0 m8 + if isM8(v0) { + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x18) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHT0") + } + return p +} + +// PREFETCHT1 performs "Prefetch Data Into Caches using T1 Hint". +// +// Mnemonic : PREFETCHT1 +// Supported forms : (1 form) +// +// * PREFETCHT1 m8 [MMX+] +// +func (self *Program) PREFETCHT1(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHT1", 1, Operands { v0 }) + // PREFETCHT1 m8 + if isM8(v0) { + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x18) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHT1") + } + return p +} + +// PREFETCHT2 performs "Prefetch Data Into Caches using T2 Hint". +// +// Mnemonic : PREFETCHT2 +// Supported forms : (1 form) +// +// * PREFETCHT2 m8 [MMX+] +// +func (self *Program) PREFETCHT2(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHT2", 1, Operands { v0 }) + // PREFETCHT2 m8 + if isM8(v0) { + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x18) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHT2") + } + return p +} + +// PREFETCHW performs "Prefetch Data into Caches in Anticipation of a Write". +// +// Mnemonic : PREFETCHW +// Supported forms : (1 form) +// +// * PREFETCHW m8 [PREFETCHW] +// +func (self *Program) PREFETCHW(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHW", 1, Operands { v0 }) + // PREFETCHW m8 + if isM8(v0) { + self.require(ISA_PREFETCHW) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0d) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHW") + } + return p +} + +// PREFETCHWT1 performs "Prefetch Vector Data Into Caches with Intent to Write and T1 Hint". +// +// Mnemonic : PREFETCHWT1 +// Supported forms : (1 form) +// +// * PREFETCHWT1 m8 [PREFETCHWT1] +// +func (self *Program) PREFETCHWT1(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHWT1", 1, Operands { v0 }) + // PREFETCHWT1 m8 + if isM8(v0) { + self.require(ISA_PREFETCHWT1) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0d) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHWT1") + } + return p +} + +// PSADBW performs "Compute Sum of Absolute Differences". +// +// Mnemonic : PSADBW +// Supported forms : (4 forms) +// +// * PSADBW mm, mm [MMX+] +// * PSADBW m64, mm [MMX+] +// * PSADBW xmm, xmm [SSE2] +// * PSADBW m128, xmm [SSE2] +// +func (self *Program) PSADBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSADBW", 2, Operands { v0, v1 }) + // PSADBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSADBW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSADBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSADBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSADBW") + } + return p +} + +// PSHUFB performs "Packed Shuffle Bytes". +// +// Mnemonic : PSHUFB +// Supported forms : (4 forms) +// +// * PSHUFB mm, mm [SSSE3] +// * PSHUFB m64, mm [SSSE3] +// * PSHUFB xmm, xmm [SSSE3] +// * PSHUFB m128, xmm [SSSE3] +// +func (self *Program) PSHUFB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSHUFB", 2, Operands { v0, v1 }) + // PSHUFB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x00) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSHUFB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x00) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSHUFB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x00) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSHUFB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x00) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFB") + } + return p +} + +// PSHUFD performs "Shuffle Packed Doublewords". +// +// Mnemonic : PSHUFD +// Supported forms : (2 forms) +// +// * PSHUFD imm8, xmm, xmm [SSE2] +// * PSHUFD imm8, m128, xmm [SSE2] +// +func (self *Program) PSHUFD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PSHUFD", 3, Operands { v0, v1, v2 }) + // PSHUFD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSHUFD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFD") + } + return p +} + +// PSHUFHW performs "Shuffle Packed High Words". +// +// Mnemonic : PSHUFHW +// Supported forms : (2 forms) +// +// * PSHUFHW imm8, xmm, xmm [SSE2] +// * PSHUFHW imm8, m128, xmm [SSE2] +// +func (self *Program) PSHUFHW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PSHUFHW", 3, Operands { v0, v1, v2 }) + // PSHUFHW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSHUFHW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFHW") + } + return p +} + +// PSHUFLW performs "Shuffle Packed Low Words". +// +// Mnemonic : PSHUFLW +// Supported forms : (2 forms) +// +// * PSHUFLW imm8, xmm, xmm [SSE2] +// * PSHUFLW imm8, m128, xmm [SSE2] +// +func (self *Program) PSHUFLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PSHUFLW", 3, Operands { v0, v1, v2 }) + // PSHUFLW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSHUFLW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFLW") + } + return p +} + +// PSHUFW performs "Shuffle Packed Words". +// +// Mnemonic : PSHUFW +// Supported forms : (2 forms) +// +// * PSHUFW imm8, mm, mm [MMX+] +// * PSHUFW imm8, m64, mm [MMX+] +// +func (self *Program) PSHUFW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PSHUFW", 3, Operands { v0, v1, v2 }) + // PSHUFW imm8, mm, mm + if isImm8(v0) && isMM(v1) && isMM(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSHUFW imm8, m64, mm + if isImm8(v0) && isM64(v1) && isMM(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFW") + } + return p +} + +// PSIGNB performs "Packed Sign of Byte Integers". +// +// Mnemonic : PSIGNB +// Supported forms : (4 forms) +// +// * PSIGNB mm, mm [SSSE3] +// * PSIGNB m64, mm [SSSE3] +// * PSIGNB xmm, xmm [SSSE3] +// * PSIGNB m128, xmm [SSSE3] +// +func (self *Program) PSIGNB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSIGNB", 2, Operands { v0, v1 }) + // PSIGNB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x08) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGNB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x08) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSIGNB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x08) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGNB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x08) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSIGNB") + } + return p +} + +// PSIGND performs "Packed Sign of Doubleword Integers". +// +// Mnemonic : PSIGND +// Supported forms : (4 forms) +// +// * PSIGND mm, mm [SSSE3] +// * PSIGND m64, mm [SSSE3] +// * PSIGND xmm, xmm [SSSE3] +// * PSIGND m128, xmm [SSSE3] +// +func (self *Program) PSIGND(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSIGND", 2, Operands { v0, v1 }) + // PSIGND mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGND m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSIGND xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGND m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSIGND") + } + return p +} + +// PSIGNW performs "Packed Sign of Word Integers". +// +// Mnemonic : PSIGNW +// Supported forms : (4 forms) +// +// * PSIGNW mm, mm [SSSE3] +// * PSIGNW m64, mm [SSSE3] +// * PSIGNW xmm, xmm [SSSE3] +// * PSIGNW m128, xmm [SSSE3] +// +func (self *Program) PSIGNW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSIGNW", 2, Operands { v0, v1 }) + // PSIGNW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x09) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGNW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x09) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSIGNW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x09) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGNW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x09) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSIGNW") + } + return p +} + +// PSLLD performs "Shift Packed Doubleword Data Left Logical". +// +// Mnemonic : PSLLD +// Supported forms : (6 forms) +// +// * PSLLD imm8, mm [MMX] +// * PSLLD mm, mm [MMX] +// * PSLLD m64, mm [MMX] +// * PSLLD imm8, xmm [SSE2] +// * PSLLD xmm, xmm [SSE2] +// * PSLLD m128, xmm [SSE2] +// +func (self *Program) PSLLD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSLLD", 2, Operands { v0, v1 }) + // PSLLD imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSLLD imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSLLD") + } + return p +} + +// PSLLDQ performs "Shift Packed Double Quadword Left Logical". +// +// Mnemonic : PSLLDQ +// Supported forms : (1 form) +// +// * PSLLDQ imm8, xmm [SSE2] +// +func (self *Program) PSLLDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSLLDQ", 2, Operands { v0, v1 }) + // PSLLDQ imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSLLDQ") + } + return p +} + +// PSLLQ performs "Shift Packed Quadword Data Left Logical". +// +// Mnemonic : PSLLQ +// Supported forms : (6 forms) +// +// * PSLLQ imm8, mm [MMX] +// * PSLLQ mm, mm [MMX] +// * PSLLQ m64, mm [MMX] +// * PSLLQ imm8, xmm [SSE2] +// * PSLLQ xmm, xmm [SSE2] +// * PSLLQ m128, xmm [SSE2] +// +func (self *Program) PSLLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSLLQ", 2, Operands { v0, v1 }) + // PSLLQ imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSLLQ imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSLLQ") + } + return p +} + +// PSLLW performs "Shift Packed Word Data Left Logical". +// +// Mnemonic : PSLLW +// Supported forms : (6 forms) +// +// * PSLLW imm8, mm [MMX] +// * PSLLW mm, mm [MMX] +// * PSLLW m64, mm [MMX] +// * PSLLW imm8, xmm [SSE2] +// * PSLLW xmm, xmm [SSE2] +// * PSLLW m128, xmm [SSE2] +// +func (self *Program) PSLLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSLLW", 2, Operands { v0, v1 }) + // PSLLW imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSLLW imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSLLW") + } + return p +} + +// PSRAD performs "Shift Packed Doubleword Data Right Arithmetic". +// +// Mnemonic : PSRAD +// Supported forms : (6 forms) +// +// * PSRAD imm8, mm [MMX] +// * PSRAD mm, mm [MMX] +// * PSRAD m64, mm [MMX] +// * PSRAD imm8, xmm [SSE2] +// * PSRAD xmm, xmm [SSE2] +// * PSRAD m128, xmm [SSE2] +// +func (self *Program) PSRAD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRAD", 2, Operands { v0, v1 }) + // PSRAD imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRAD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRAD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRAD imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRAD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRAD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRAD") + } + return p +} + +// PSRAW performs "Shift Packed Word Data Right Arithmetic". +// +// Mnemonic : PSRAW +// Supported forms : (6 forms) +// +// * PSRAW imm8, mm [MMX] +// * PSRAW mm, mm [MMX] +// * PSRAW m64, mm [MMX] +// * PSRAW imm8, xmm [SSE2] +// * PSRAW xmm, xmm [SSE2] +// * PSRAW m128, xmm [SSE2] +// +func (self *Program) PSRAW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRAW", 2, Operands { v0, v1 }) + // PSRAW imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRAW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRAW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRAW imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRAW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRAW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRAW") + } + return p +} + +// PSRLD performs "Shift Packed Doubleword Data Right Logical". +// +// Mnemonic : PSRLD +// Supported forms : (6 forms) +// +// * PSRLD imm8, mm [MMX] +// * PSRLD mm, mm [MMX] +// * PSRLD m64, mm [MMX] +// * PSRLD imm8, xmm [SSE2] +// * PSRLD xmm, xmm [SSE2] +// * PSRLD m128, xmm [SSE2] +// +func (self *Program) PSRLD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRLD", 2, Operands { v0, v1 }) + // PSRLD imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRLD imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRLD") + } + return p +} + +// PSRLDQ performs "Shift Packed Double Quadword Right Logical". +// +// Mnemonic : PSRLDQ +// Supported forms : (1 form) +// +// * PSRLDQ imm8, xmm [SSE2] +// +func (self *Program) PSRLDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRLDQ", 2, Operands { v0, v1 }) + // PSRLDQ imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSRLDQ") + } + return p +} + +// PSRLQ performs "Shift Packed Quadword Data Right Logical". +// +// Mnemonic : PSRLQ +// Supported forms : (6 forms) +// +// * PSRLQ imm8, mm [MMX] +// * PSRLQ mm, mm [MMX] +// * PSRLQ m64, mm [MMX] +// * PSRLQ imm8, xmm [SSE2] +// * PSRLQ xmm, xmm [SSE2] +// * PSRLQ m128, xmm [SSE2] +// +func (self *Program) PSRLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRLQ", 2, Operands { v0, v1 }) + // PSRLQ imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRLQ imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRLQ") + } + return p +} + +// PSRLW performs "Shift Packed Word Data Right Logical". +// +// Mnemonic : PSRLW +// Supported forms : (6 forms) +// +// * PSRLW imm8, mm [MMX] +// * PSRLW mm, mm [MMX] +// * PSRLW m64, mm [MMX] +// * PSRLW imm8, xmm [SSE2] +// * PSRLW xmm, xmm [SSE2] +// * PSRLW m128, xmm [SSE2] +// +func (self *Program) PSRLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRLW", 2, Operands { v0, v1 }) + // PSRLW imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRLW imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRLW") + } + return p +} + +// PSUBB performs "Subtract Packed Byte Integers". +// +// Mnemonic : PSUBB +// Supported forms : (4 forms) +// +// * PSUBB mm, mm [MMX] +// * PSUBB m64, mm [MMX] +// * PSUBB xmm, xmm [SSE2] +// * PSUBB m128, xmm [SSE2] +// +func (self *Program) PSUBB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBB", 2, Operands { v0, v1 }) + // PSUBB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBB") + } + return p +} + +// PSUBD performs "Subtract Packed Doubleword Integers". +// +// Mnemonic : PSUBD +// Supported forms : (4 forms) +// +// * PSUBD mm, mm [MMX] +// * PSUBD m64, mm [MMX] +// * PSUBD xmm, xmm [SSE2] +// * PSUBD m128, xmm [SSE2] +// +func (self *Program) PSUBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBD", 2, Operands { v0, v1 }) + // PSUBD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfa) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfa) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBD") + } + return p +} + +// PSUBQ performs "Subtract Packed Quadword Integers". +// +// Mnemonic : PSUBQ +// Supported forms : (4 forms) +// +// * PSUBQ mm, mm [SSE2] +// * PSUBQ m64, mm [SSE2] +// * PSUBQ xmm, xmm [SSE2] +// * PSUBQ m128, xmm [SSE2] +// +func (self *Program) PSUBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBQ", 2, Operands { v0, v1 }) + // PSUBQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBQ") + } + return p +} + +// PSUBSB performs "Subtract Packed Signed Byte Integers with Signed Saturation". +// +// Mnemonic : PSUBSB +// Supported forms : (4 forms) +// +// * PSUBSB mm, mm [MMX] +// * PSUBSB m64, mm [MMX] +// * PSUBSB xmm, xmm [SSE2] +// * PSUBSB m128, xmm [SSE2] +// +func (self *Program) PSUBSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBSB", 2, Operands { v0, v1 }) + // PSUBSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBSB") + } + return p +} + +// PSUBSW performs "Subtract Packed Signed Word Integers with Signed Saturation". +// +// Mnemonic : PSUBSW +// Supported forms : (4 forms) +// +// * PSUBSW mm, mm [MMX] +// * PSUBSW m64, mm [MMX] +// * PSUBSW xmm, xmm [SSE2] +// * PSUBSW m128, xmm [SSE2] +// +func (self *Program) PSUBSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBSW", 2, Operands { v0, v1 }) + // PSUBSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBSW") + } + return p +} + +// PSUBUSB performs "Subtract Packed Unsigned Byte Integers with Unsigned Saturation". +// +// Mnemonic : PSUBUSB +// Supported forms : (4 forms) +// +// * PSUBUSB mm, mm [MMX] +// * PSUBUSB m64, mm [MMX] +// * PSUBUSB xmm, xmm [SSE2] +// * PSUBUSB m128, xmm [SSE2] +// +func (self *Program) PSUBUSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBUSB", 2, Operands { v0, v1 }) + // PSUBUSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBUSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBUSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBUSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBUSB") + } + return p +} + +// PSUBUSW performs "Subtract Packed Unsigned Word Integers with Unsigned Saturation". +// +// Mnemonic : PSUBUSW +// Supported forms : (4 forms) +// +// * PSUBUSW mm, mm [MMX] +// * PSUBUSW m64, mm [MMX] +// * PSUBUSW xmm, xmm [SSE2] +// * PSUBUSW m128, xmm [SSE2] +// +func (self *Program) PSUBUSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBUSW", 2, Operands { v0, v1 }) + // PSUBUSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBUSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBUSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBUSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBUSW") + } + return p +} + +// PSUBW performs "Subtract Packed Word Integers". +// +// Mnemonic : PSUBW +// Supported forms : (4 forms) +// +// * PSUBW mm, mm [MMX] +// * PSUBW m64, mm [MMX] +// * PSUBW xmm, xmm [SSE2] +// * PSUBW m128, xmm [SSE2] +// +func (self *Program) PSUBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBW", 2, Operands { v0, v1 }) + // PSUBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBW") + } + return p +} + +// PSWAPD performs "Packed Swap Doubleword". +// +// Mnemonic : PSWAPD +// Supported forms : (2 forms) +// +// * PSWAPD mm, mm [3dnow!+] +// * PSWAPD m64, mm [3dnow!+] +// +func (self *Program) PSWAPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSWAPD", 2, Operands { v0, v1 }) + // PSWAPD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xbb) + }) + } + // PSWAPD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xbb) + }) + } + if p.len == 0 { + panic("invalid operands for PSWAPD") + } + return p +} + +// PTEST performs "Packed Logical Compare". +// +// Mnemonic : PTEST +// Supported forms : (2 forms) +// +// * PTEST xmm, xmm [SSE4.1] +// * PTEST m128, xmm [SSE4.1] +// +func (self *Program) PTEST(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PTEST", 2, Operands { v0, v1 }) + // PTEST xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PTEST m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PTEST") + } + return p +} + +// PUNPCKHBW performs "Unpack and Interleave High-Order Bytes into Words". +// +// Mnemonic : PUNPCKHBW +// Supported forms : (4 forms) +// +// * PUNPCKHBW mm, mm [MMX] +// * PUNPCKHBW m64, mm [MMX] +// * PUNPCKHBW xmm, xmm [SSE2] +// * PUNPCKHBW m128, xmm [SSE2] +// +func (self *Program) PUNPCKHBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKHBW", 2, Operands { v0, v1 }) + // PUNPCKHBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x68) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHBW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x68) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKHBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x68) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x68) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKHBW") + } + return p +} + +// PUNPCKHDQ performs "Unpack and Interleave High-Order Doublewords into Quadwords". +// +// Mnemonic : PUNPCKHDQ +// Supported forms : (4 forms) +// +// * PUNPCKHDQ mm, mm [MMX] +// * PUNPCKHDQ m64, mm [MMX] +// * PUNPCKHDQ xmm, xmm [SSE2] +// * PUNPCKHDQ m128, xmm [SSE2] +// +func (self *Program) PUNPCKHDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKHDQ", 2, Operands { v0, v1 }) + // PUNPCKHDQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHDQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKHDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKHDQ") + } + return p +} + +// PUNPCKHQDQ performs "Unpack and Interleave High-Order Quadwords into Double Quadwords". +// +// Mnemonic : PUNPCKHQDQ +// Supported forms : (2 forms) +// +// * PUNPCKHQDQ xmm, xmm [SSE2] +// * PUNPCKHQDQ m128, xmm [SSE2] +// +func (self *Program) PUNPCKHQDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKHQDQ", 2, Operands { v0, v1 }) + // PUNPCKHQDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHQDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKHQDQ") + } + return p +} + +// PUNPCKHWD performs "Unpack and Interleave High-Order Words into Doublewords". +// +// Mnemonic : PUNPCKHWD +// Supported forms : (4 forms) +// +// * PUNPCKHWD mm, mm [MMX] +// * PUNPCKHWD m64, mm [MMX] +// * PUNPCKHWD xmm, xmm [SSE2] +// * PUNPCKHWD m128, xmm [SSE2] +// +func (self *Program) PUNPCKHWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKHWD", 2, Operands { v0, v1 }) + // PUNPCKHWD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x69) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHWD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x69) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKHWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x69) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x69) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKHWD") + } + return p +} + +// PUNPCKLBW performs "Unpack and Interleave Low-Order Bytes into Words". +// +// Mnemonic : PUNPCKLBW +// Supported forms : (4 forms) +// +// * PUNPCKLBW mm, mm [MMX] +// * PUNPCKLBW m32, mm [MMX] +// * PUNPCKLBW xmm, xmm [SSE2] +// * PUNPCKLBW m128, xmm [SSE2] +// +func (self *Program) PUNPCKLBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKLBW", 2, Operands { v0, v1 }) + // PUNPCKLBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x60) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLBW m32, mm + if isM32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x60) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKLBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x60) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x60) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKLBW") + } + return p +} + +// PUNPCKLDQ performs "Unpack and Interleave Low-Order Doublewords into Quadwords". +// +// Mnemonic : PUNPCKLDQ +// Supported forms : (4 forms) +// +// * PUNPCKLDQ mm, mm [MMX] +// * PUNPCKLDQ m32, mm [MMX] +// * PUNPCKLDQ xmm, xmm [SSE2] +// * PUNPCKLDQ m128, xmm [SSE2] +// +func (self *Program) PUNPCKLDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKLDQ", 2, Operands { v0, v1 }) + // PUNPCKLDQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x62) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLDQ m32, mm + if isM32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x62) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKLDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x62) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x62) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKLDQ") + } + return p +} + +// PUNPCKLQDQ performs "Unpack and Interleave Low-Order Quadwords into Double Quadwords". +// +// Mnemonic : PUNPCKLQDQ +// Supported forms : (2 forms) +// +// * PUNPCKLQDQ xmm, xmm [SSE2] +// * PUNPCKLQDQ m128, xmm [SSE2] +// +func (self *Program) PUNPCKLQDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKLQDQ", 2, Operands { v0, v1 }) + // PUNPCKLQDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLQDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKLQDQ") + } + return p +} + +// PUNPCKLWD performs "Unpack and Interleave Low-Order Words into Doublewords". +// +// Mnemonic : PUNPCKLWD +// Supported forms : (4 forms) +// +// * PUNPCKLWD mm, mm [MMX] +// * PUNPCKLWD m32, mm [MMX] +// * PUNPCKLWD xmm, xmm [SSE2] +// * PUNPCKLWD m128, xmm [SSE2] +// +func (self *Program) PUNPCKLWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKLWD", 2, Operands { v0, v1 }) + // PUNPCKLWD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x61) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLWD m32, mm + if isM32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x61) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKLWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x61) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x61) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKLWD") + } + return p +} + +// PUSHQ performs "Push Value Onto the Stack". +// +// Mnemonic : PUSH +// Supported forms : (4 forms) +// +// * PUSHQ imm8 +// * PUSHQ imm32 +// * PUSHQ r64 +// * PUSHQ m64 +// +func (self *Program) PUSHQ(v0 interface{}) *Instruction { + p := self.alloc("PUSHQ", 1, Operands { v0 }) + // PUSHQ imm8 + if isImm8Ext(v0, 8) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x6a) + m.imm1(toImmAny(v[0])) + }) + } + // PUSHQ imm32 + if isImm32Ext(v0, 8) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x68) + m.imm4(toImmAny(v[0])) + }) + } + // PUSHQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x50 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xf0 | lcode(v[0])) + }) + } + // PUSHQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUSHQ") + } + return p +} + +// PUSHW performs "Push Value Onto the Stack". +// +// Mnemonic : PUSH +// Supported forms : (2 forms) +// +// * PUSHW r16 +// * PUSHW m16 +// +func (self *Program) PUSHW(v0 interface{}) *Instruction { + p := self.alloc("PUSHW", 1, Operands { v0 }) + // PUSHW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x50 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xf0 | lcode(v[0])) + }) + } + // PUSHW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUSHW") + } + return p +} + +// PXOR performs "Packed Bitwise Logical Exclusive OR". +// +// Mnemonic : PXOR +// Supported forms : (4 forms) +// +// * PXOR mm, mm [MMX] +// * PXOR m64, mm [MMX] +// * PXOR xmm, xmm [SSE2] +// * PXOR m128, xmm [SSE2] +// +func (self *Program) PXOR(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PXOR", 2, Operands { v0, v1 }) + // PXOR mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xef) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PXOR m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xef) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PXOR xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xef) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PXOR m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xef) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PXOR") + } + return p +} + +// RCLB performs "Rotate Left through Carry Flag". +// +// Mnemonic : RCL +// Supported forms : (6 forms) +// +// * RCLB 1, r8 +// * RCLB imm8, r8 +// * RCLB cl, r8 +// * RCLB 1, m8 +// * RCLB imm8, m8 +// * RCLB cl, m8 +// +func (self *Program) RCLB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCLB", 2, Operands { v0, v1 }) + // RCLB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCLB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(2, addr(v[1]), 1) + }) + } + // RCLB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCLB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(2, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCLB") + } + return p +} + +// RCLL performs "Rotate Left through Carry Flag". +// +// Mnemonic : RCL +// Supported forms : (6 forms) +// +// * RCLL 1, r32 +// * RCLL imm8, r32 +// * RCLL cl, r32 +// * RCLL 1, m32 +// * RCLL imm8, m32 +// * RCLL cl, m32 +// +func (self *Program) RCLL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCLL", 2, Operands { v0, v1 }) + // RCLL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCLL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(2, addr(v[1]), 1) + }) + } + // RCLL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCLL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(2, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCLL") + } + return p +} + +// RCLQ performs "Rotate Left through Carry Flag". +// +// Mnemonic : RCL +// Supported forms : (6 forms) +// +// * RCLQ 1, r64 +// * RCLQ imm8, r64 +// * RCLQ cl, r64 +// * RCLQ 1, m64 +// * RCLQ imm8, m64 +// * RCLQ cl, m64 +// +func (self *Program) RCLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCLQ", 2, Operands { v0, v1 }) + // RCLQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCLQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(2, addr(v[1]), 1) + }) + } + // RCLQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCLQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(2, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCLQ") + } + return p +} + +// RCLW performs "Rotate Left through Carry Flag". +// +// Mnemonic : RCL +// Supported forms : (6 forms) +// +// * RCLW 1, r16 +// * RCLW imm8, r16 +// * RCLW cl, r16 +// * RCLW 1, m16 +// * RCLW imm8, m16 +// * RCLW cl, m16 +// +func (self *Program) RCLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCLW", 2, Operands { v0, v1 }) + // RCLW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCLW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(2, addr(v[1]), 1) + }) + } + // RCLW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCLW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(2, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCLW") + } + return p +} + +// RCPPS performs "Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : RCPPS +// Supported forms : (2 forms) +// +// * RCPPS xmm, xmm [SSE] +// * RCPPS m128, xmm [SSE] +// +func (self *Program) RCPPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCPPS", 2, Operands { v0, v1 }) + // RCPPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x53) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // RCPPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x53) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCPPS") + } + return p +} + +// RCPSS performs "Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : RCPSS +// Supported forms : (2 forms) +// +// * RCPSS xmm, xmm [SSE] +// * RCPSS m32, xmm [SSE] +// +func (self *Program) RCPSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCPSS", 2, Operands { v0, v1 }) + // RCPSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x53) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // RCPSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x53) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCPSS") + } + return p +} + +// RCRB performs "Rotate Right through Carry Flag". +// +// Mnemonic : RCR +// Supported forms : (6 forms) +// +// * RCRB 1, r8 +// * RCRB imm8, r8 +// * RCRB cl, r8 +// * RCRB 1, m8 +// * RCRB imm8, m8 +// * RCRB cl, m8 +// +func (self *Program) RCRB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCRB", 2, Operands { v0, v1 }) + // RCRB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCRB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(3, addr(v[1]), 1) + }) + } + // RCRB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCRB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(3, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCRB") + } + return p +} + +// RCRL performs "Rotate Right through Carry Flag". +// +// Mnemonic : RCR +// Supported forms : (6 forms) +// +// * RCRL 1, r32 +// * RCRL imm8, r32 +// * RCRL cl, r32 +// * RCRL 1, m32 +// * RCRL imm8, m32 +// * RCRL cl, m32 +// +func (self *Program) RCRL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCRL", 2, Operands { v0, v1 }) + // RCRL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCRL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(3, addr(v[1]), 1) + }) + } + // RCRL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCRL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(3, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCRL") + } + return p +} + +// RCRQ performs "Rotate Right through Carry Flag". +// +// Mnemonic : RCR +// Supported forms : (6 forms) +// +// * RCRQ 1, r64 +// * RCRQ imm8, r64 +// * RCRQ cl, r64 +// * RCRQ 1, m64 +// * RCRQ imm8, m64 +// * RCRQ cl, m64 +// +func (self *Program) RCRQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCRQ", 2, Operands { v0, v1 }) + // RCRQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCRQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(3, addr(v[1]), 1) + }) + } + // RCRQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCRQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(3, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCRQ") + } + return p +} + +// RCRW performs "Rotate Right through Carry Flag". +// +// Mnemonic : RCR +// Supported forms : (6 forms) +// +// * RCRW 1, r16 +// * RCRW imm8, r16 +// * RCRW cl, r16 +// * RCRW 1, m16 +// * RCRW imm8, m16 +// * RCRW cl, m16 +// +func (self *Program) RCRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCRW", 2, Operands { v0, v1 }) + // RCRW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCRW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(3, addr(v[1]), 1) + }) + } + // RCRW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCRW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(3, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCRW") + } + return p +} + +// RDRAND performs "Read Random Number". +// +// Mnemonic : RDRAND +// Supported forms : (3 forms) +// +// * RDRAND r16 [RDRAND] +// * RDRAND r32 [RDRAND] +// * RDRAND r64 [RDRAND] +// +func (self *Program) RDRAND(v0 interface{}) *Instruction { + p := self.alloc("RDRAND", 1, Operands { v0 }) + // RDRAND r16 + if isReg16(v0) { + self.require(ISA_RDRAND) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // RDRAND r32 + if isReg32(v0) { + self.require(ISA_RDRAND) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // RDRAND r64 + if isReg64(v0) { + self.require(ISA_RDRAND) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf0 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RDRAND") + } + return p +} + +// RDSEED performs "Read Random SEED". +// +// Mnemonic : RDSEED +// Supported forms : (3 forms) +// +// * RDSEED r16 [RDSEED] +// * RDSEED r32 [RDSEED] +// * RDSEED r64 [RDSEED] +// +func (self *Program) RDSEED(v0 interface{}) *Instruction { + p := self.alloc("RDSEED", 1, Operands { v0 }) + // RDSEED r16 + if isReg16(v0) { + self.require(ISA_RDSEED) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // RDSEED r32 + if isReg32(v0) { + self.require(ISA_RDSEED) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // RDSEED r64 + if isReg64(v0) { + self.require(ISA_RDSEED) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf8 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RDSEED") + } + return p +} + +// RDTSC performs "Read Time-Stamp Counter". +// +// Mnemonic : RDTSC +// Supported forms : (1 form) +// +// * RDTSC [RDTSC] +// +func (self *Program) RDTSC() *Instruction { + p := self.alloc("RDTSC", 0, Operands { }) + // RDTSC + self.require(ISA_RDTSC) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x31) + }) + return p +} + +// RDTSCP performs "Read Time-Stamp Counter and Processor ID". +// +// Mnemonic : RDTSCP +// Supported forms : (1 form) +// +// * RDTSCP [RDTSCP] +// +func (self *Program) RDTSCP() *Instruction { + p := self.alloc("RDTSCP", 0, Operands { }) + // RDTSCP + self.require(ISA_RDTSCP) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xf9) + }) + return p +} + +// RET performs "Return from Procedure". +// +// Mnemonic : RET +// Supported forms : (2 forms) +// +// * RET +// * RET imm16 +// +func (self *Program) RET(vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("RET", 0, Operands { }) + case 1 : p = self.alloc("RET", 1, Operands { vv[0] }) + default : panic("instruction RET takes 0 or 1 operands") + } + // RET + if len(vv) == 0 { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc3) + }) + } + // RET imm16 + if len(vv) == 1 && isImm16(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc2) + m.imm2(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RET") + } + return p +} + +// ROLB performs "Rotate Left". +// +// Mnemonic : ROL +// Supported forms : (6 forms) +// +// * ROLB 1, r8 +// * ROLB imm8, r8 +// * ROLB cl, r8 +// * ROLB 1, m8 +// * ROLB imm8, m8 +// * ROLB cl, m8 +// +func (self *Program) ROLB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ROLB", 2, Operands { v0, v1 }) + // ROLB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROLB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(0, addr(v[1]), 1) + }) + } + // ROLB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ROLB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(0, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ROLB") + } + return p +} + +// ROLL performs "Rotate Left". +// +// Mnemonic : ROL +// Supported forms : (6 forms) +// +// * ROLL 1, r32 +// * ROLL imm8, r32 +// * ROLL cl, r32 +// * ROLL 1, m32 +// * ROLL imm8, m32 +// * ROLL cl, m32 +// +func (self *Program) ROLL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ROLL", 2, Operands { v0, v1 }) + // ROLL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROLL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(0, addr(v[1]), 1) + }) + } + // ROLL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ROLL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(0, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ROLL") + } + return p +} + +// ROLQ performs "Rotate Left". +// +// Mnemonic : ROL +// Supported forms : (6 forms) +// +// * ROLQ 1, r64 +// * ROLQ imm8, r64 +// * ROLQ cl, r64 +// * ROLQ 1, m64 +// * ROLQ imm8, m64 +// * ROLQ cl, m64 +// +func (self *Program) ROLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ROLQ", 2, Operands { v0, v1 }) + // ROLQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROLQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(0, addr(v[1]), 1) + }) + } + // ROLQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ROLQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(0, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ROLQ") + } + return p +} + +// ROLW performs "Rotate Left". +// +// Mnemonic : ROL +// Supported forms : (6 forms) +// +// * ROLW 1, r16 +// * ROLW imm8, r16 +// * ROLW cl, r16 +// * ROLW 1, m16 +// * ROLW imm8, m16 +// * ROLW cl, m16 +// +func (self *Program) ROLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ROLW", 2, Operands { v0, v1 }) + // ROLW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROLW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(0, addr(v[1]), 1) + }) + } + // ROLW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ROLW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(0, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ROLW") + } + return p +} + +// RORB performs "Rotate Right". +// +// Mnemonic : ROR +// Supported forms : (6 forms) +// +// * RORB 1, r8 +// * RORB imm8, r8 +// * RORB cl, r8 +// * RORB 1, m8 +// * RORB imm8, m8 +// * RORB cl, m8 +// +func (self *Program) RORB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RORB", 2, Operands { v0, v1 }) + // RORB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(1, addr(v[1]), 1) + }) + } + // RORB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RORB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(1, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RORB") + } + return p +} + +// RORL performs "Rotate Right". +// +// Mnemonic : ROR +// Supported forms : (6 forms) +// +// * RORL 1, r32 +// * RORL imm8, r32 +// * RORL cl, r32 +// * RORL 1, m32 +// * RORL imm8, m32 +// * RORL cl, m32 +// +func (self *Program) RORL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RORL", 2, Operands { v0, v1 }) + // RORL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(1, addr(v[1]), 1) + }) + } + // RORL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RORL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(1, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RORL") + } + return p +} + +// RORQ performs "Rotate Right". +// +// Mnemonic : ROR +// Supported forms : (6 forms) +// +// * RORQ 1, r64 +// * RORQ imm8, r64 +// * RORQ cl, r64 +// * RORQ 1, m64 +// * RORQ imm8, m64 +// * RORQ cl, m64 +// +func (self *Program) RORQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RORQ", 2, Operands { v0, v1 }) + // RORQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(1, addr(v[1]), 1) + }) + } + // RORQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RORQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(1, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RORQ") + } + return p +} + +// RORW performs "Rotate Right". +// +// Mnemonic : ROR +// Supported forms : (6 forms) +// +// * RORW 1, r16 +// * RORW imm8, r16 +// * RORW cl, r16 +// * RORW 1, m16 +// * RORW imm8, m16 +// * RORW cl, m16 +// +func (self *Program) RORW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RORW", 2, Operands { v0, v1 }) + // RORW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(1, addr(v[1]), 1) + }) + } + // RORW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RORW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(1, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RORW") + } + return p +} + +// RORXL performs "Rotate Right Logical Without Affecting Flags". +// +// Mnemonic : RORX +// Supported forms : (2 forms) +// +// * RORXL imm8, r32, r32 [BMI2] +// * RORXL imm8, m32, r32 [BMI2] +// +func (self *Program) RORXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("RORXL", 3, Operands { v0, v1, v2 }) + // RORXL imm8, r32, r32 + if isImm8(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7b) + m.emit(0xf0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORXL imm8, m32, r32 + if isImm8(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x03, hcode(v[2]), addr(v[1]), 0) + m.emit(0xf0) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RORXL") + } + return p +} + +// RORXQ performs "Rotate Right Logical Without Affecting Flags". +// +// Mnemonic : RORX +// Supported forms : (2 forms) +// +// * RORXQ imm8, r64, r64 [BMI2] +// * RORXQ imm8, m64, r64 [BMI2] +// +func (self *Program) RORXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("RORXQ", 3, Operands { v0, v1, v2 }) + // RORXQ imm8, r64, r64 + if isImm8(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfb) + m.emit(0xf0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORXQ imm8, m64, r64 + if isImm8(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x83, hcode(v[2]), addr(v[1]), 0) + m.emit(0xf0) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RORXQ") + } + return p +} + +// ROUNDPD performs "Round Packed Double Precision Floating-Point Values". +// +// Mnemonic : ROUNDPD +// Supported forms : (2 forms) +// +// * ROUNDPD imm8, xmm, xmm [SSE4.1] +// * ROUNDPD imm8, m128, xmm [SSE4.1] +// +func (self *Program) ROUNDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ROUNDPD", 3, Operands { v0, v1, v2 }) + // ROUNDPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROUNDPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for ROUNDPD") + } + return p +} + +// ROUNDPS performs "Round Packed Single Precision Floating-Point Values". +// +// Mnemonic : ROUNDPS +// Supported forms : (2 forms) +// +// * ROUNDPS imm8, xmm, xmm [SSE4.1] +// * ROUNDPS imm8, m128, xmm [SSE4.1] +// +func (self *Program) ROUNDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ROUNDPS", 3, Operands { v0, v1, v2 }) + // ROUNDPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROUNDPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for ROUNDPS") + } + return p +} + +// ROUNDSD performs "Round Scalar Double Precision Floating-Point Values". +// +// Mnemonic : ROUNDSD +// Supported forms : (2 forms) +// +// * ROUNDSD imm8, xmm, xmm [SSE4.1] +// * ROUNDSD imm8, m64, xmm [SSE4.1] +// +func (self *Program) ROUNDSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ROUNDSD", 3, Operands { v0, v1, v2 }) + // ROUNDSD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROUNDSD imm8, m64, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for ROUNDSD") + } + return p +} + +// ROUNDSS performs "Round Scalar Single Precision Floating-Point Values". +// +// Mnemonic : ROUNDSS +// Supported forms : (2 forms) +// +// * ROUNDSS imm8, xmm, xmm [SSE4.1] +// * ROUNDSS imm8, m32, xmm [SSE4.1] +// +func (self *Program) ROUNDSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ROUNDSS", 3, Operands { v0, v1, v2 }) + // ROUNDSS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROUNDSS imm8, m32, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0a) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for ROUNDSS") + } + return p +} + +// RSQRTPS performs "Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : RSQRTPS +// Supported forms : (2 forms) +// +// * RSQRTPS xmm, xmm [SSE] +// * RSQRTPS m128, xmm [SSE] +// +func (self *Program) RSQRTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RSQRTPS", 2, Operands { v0, v1 }) + // RSQRTPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x52) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // RSQRTPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x52) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RSQRTPS") + } + return p +} + +// RSQRTSS performs "Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : RSQRTSS +// Supported forms : (2 forms) +// +// * RSQRTSS xmm, xmm [SSE] +// * RSQRTSS m32, xmm [SSE] +// +func (self *Program) RSQRTSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RSQRTSS", 2, Operands { v0, v1 }) + // RSQRTSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x52) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // RSQRTSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x52) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RSQRTSS") + } + return p +} + +// SALB performs "Arithmetic Shift Left". +// +// Mnemonic : SAL +// Supported forms : (6 forms) +// +// * SALB 1, r8 +// * SALB imm8, r8 +// * SALB cl, r8 +// * SALB 1, m8 +// * SALB imm8, m8 +// * SALB cl, m8 +// +func (self *Program) SALB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SALB", 2, Operands { v0, v1 }) + // SALB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SALB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SALB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SALB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SALB") + } + return p +} + +// SALL performs "Arithmetic Shift Left". +// +// Mnemonic : SAL +// Supported forms : (6 forms) +// +// * SALL 1, r32 +// * SALL imm8, r32 +// * SALL cl, r32 +// * SALL 1, m32 +// * SALL imm8, m32 +// * SALL cl, m32 +// +func (self *Program) SALL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SALL", 2, Operands { v0, v1 }) + // SALL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SALL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SALL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SALL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SALL") + } + return p +} + +// SALQ performs "Arithmetic Shift Left". +// +// Mnemonic : SAL +// Supported forms : (6 forms) +// +// * SALQ 1, r64 +// * SALQ imm8, r64 +// * SALQ cl, r64 +// * SALQ 1, m64 +// * SALQ imm8, m64 +// * SALQ cl, m64 +// +func (self *Program) SALQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SALQ", 2, Operands { v0, v1 }) + // SALQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SALQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SALQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SALQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SALQ") + } + return p +} + +// SALW performs "Arithmetic Shift Left". +// +// Mnemonic : SAL +// Supported forms : (6 forms) +// +// * SALW 1, r16 +// * SALW imm8, r16 +// * SALW cl, r16 +// * SALW 1, m16 +// * SALW imm8, m16 +// * SALW cl, m16 +// +func (self *Program) SALW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SALW", 2, Operands { v0, v1 }) + // SALW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SALW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SALW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SALW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SALW") + } + return p +} + +// SARB performs "Arithmetic Shift Right". +// +// Mnemonic : SAR +// Supported forms : (6 forms) +// +// * SARB 1, r8 +// * SARB imm8, r8 +// * SARB cl, r8 +// * SARB 1, m8 +// * SARB imm8, m8 +// * SARB cl, m8 +// +func (self *Program) SARB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SARB", 2, Operands { v0, v1 }) + // SARB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SARB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(7, addr(v[1]), 1) + }) + } + // SARB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SARB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(7, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARB") + } + return p +} + +// SARL performs "Arithmetic Shift Right". +// +// Mnemonic : SAR +// Supported forms : (6 forms) +// +// * SARL 1, r32 +// * SARL imm8, r32 +// * SARL cl, r32 +// * SARL 1, m32 +// * SARL imm8, m32 +// * SARL cl, m32 +// +func (self *Program) SARL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SARL", 2, Operands { v0, v1 }) + // SARL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SARL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(7, addr(v[1]), 1) + }) + } + // SARL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SARL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(7, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARL") + } + return p +} + +// SARQ performs "Arithmetic Shift Right". +// +// Mnemonic : SAR +// Supported forms : (6 forms) +// +// * SARQ 1, r64 +// * SARQ imm8, r64 +// * SARQ cl, r64 +// * SARQ 1, m64 +// * SARQ imm8, m64 +// * SARQ cl, m64 +// +func (self *Program) SARQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SARQ", 2, Operands { v0, v1 }) + // SARQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SARQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(7, addr(v[1]), 1) + }) + } + // SARQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SARQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(7, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARQ") + } + return p +} + +// SARW performs "Arithmetic Shift Right". +// +// Mnemonic : SAR +// Supported forms : (6 forms) +// +// * SARW 1, r16 +// * SARW imm8, r16 +// * SARW cl, r16 +// * SARW 1, m16 +// * SARW imm8, m16 +// * SARW cl, m16 +// +func (self *Program) SARW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SARW", 2, Operands { v0, v1 }) + // SARW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SARW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(7, addr(v[1]), 1) + }) + } + // SARW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SARW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(7, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARW") + } + return p +} + +// SARXL performs "Arithmetic Shift Right Without Affecting Flags". +// +// Mnemonic : SARX +// Supported forms : (2 forms) +// +// * SARXL r32, r32, r32 [BMI2] +// * SARXL r32, m32, r32 [BMI2] +// +func (self *Program) SARXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SARXL", 3, Operands { v0, v1, v2 }) + // SARXL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7a ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SARXL r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x02, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARXL") + } + return p +} + +// SARXQ performs "Arithmetic Shift Right Without Affecting Flags". +// +// Mnemonic : SARX +// Supported forms : (2 forms) +// +// * SARXQ r64, r64, r64 [BMI2] +// * SARXQ r64, m64, r64 [BMI2] +// +func (self *Program) SARXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SARXQ", 3, Operands { v0, v1, v2 }) + // SARXQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfa ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SARXQ r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x82, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARXQ") + } + return p +} + +// SBBB performs "Subtract with Borrow". +// +// Mnemonic : SBB +// Supported forms : (6 forms) +// +// * SBBB imm8, al +// * SBBB imm8, r8 +// * SBBB r8, r8 +// * SBBB m8, r8 +// * SBBB imm8, m8 +// * SBBB r8, m8 +// +func (self *Program) SBBB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SBBB", 2, Operands { v0, v1 }) + // SBBB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x1c) + m.imm1(toImmAny(v[0])) + }) + } + // SBBB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SBBB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x18) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x1a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SBBB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SBBB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SBBB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x18) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SBBB") + } + return p +} + +// SBBL performs "Subtract with Borrow". +// +// Mnemonic : SBB +// Supported forms : (8 forms) +// +// * SBBL imm32, eax +// * SBBL imm8, r32 +// * SBBL imm32, r32 +// * SBBL r32, r32 +// * SBBL m32, r32 +// * SBBL imm8, m32 +// * SBBL imm32, m32 +// * SBBL r32, m32 +// +func (self *Program) SBBL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SBBL", 2, Operands { v0, v1 }) + // SBBL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x1d) + m.imm4(toImmAny(v[0])) + }) + } + // SBBL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SBBL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xd8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // SBBL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x19) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SBBL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SBBL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SBBL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(3, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // SBBL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x19) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SBBL") + } + return p +} + +// SBBQ performs "Subtract with Borrow". +// +// Mnemonic : SBB +// Supported forms : (8 forms) +// +// * SBBQ imm32, rax +// * SBBQ imm8, r64 +// * SBBQ imm32, r64 +// * SBBQ r64, r64 +// * SBBQ m64, r64 +// * SBBQ imm8, m64 +// * SBBQ imm32, m64 +// * SBBQ r64, m64 +// +func (self *Program) SBBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SBBQ", 2, Operands { v0, v1 }) + // SBBQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x1d) + m.imm4(toImmAny(v[0])) + }) + } + // SBBQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SBBQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xd8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // SBBQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x19) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SBBQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SBBQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SBBQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(3, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // SBBQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x19) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SBBQ") + } + return p +} + +// SBBW performs "Subtract with Borrow". +// +// Mnemonic : SBB +// Supported forms : (8 forms) +// +// * SBBW imm16, ax +// * SBBW imm8, r16 +// * SBBW imm16, r16 +// * SBBW r16, r16 +// * SBBW m16, r16 +// * SBBW imm8, m16 +// * SBBW imm16, m16 +// * SBBW r16, m16 +// +func (self *Program) SBBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SBBW", 2, Operands { v0, v1 }) + // SBBW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x1d) + m.imm2(toImmAny(v[0])) + }) + } + // SBBW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SBBW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xd8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // SBBW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x19) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SBBW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SBBW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SBBW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(3, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // SBBW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x19) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SBBW") + } + return p +} + +// SETA performs "Set byte if above (CF == 0 and ZF == 0)". +// +// Mnemonic : SETA +// Supported forms : (2 forms) +// +// * SETA r8 +// * SETA m8 +// +func (self *Program) SETA(v0 interface{}) *Instruction { + p := self.alloc("SETA", 1, Operands { v0 }) + // SETA r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x97) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETA m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x97) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETA") + } + return p +} + +// SETAE performs "Set byte if above or equal (CF == 0)". +// +// Mnemonic : SETAE +// Supported forms : (2 forms) +// +// * SETAE r8 +// * SETAE m8 +// +func (self *Program) SETAE(v0 interface{}) *Instruction { + p := self.alloc("SETAE", 1, Operands { v0 }) + // SETAE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x93) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETAE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x93) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETAE") + } + return p +} + +// SETB performs "Set byte if below (CF == 1)". +// +// Mnemonic : SETB +// Supported forms : (2 forms) +// +// * SETB r8 +// * SETB m8 +// +func (self *Program) SETB(v0 interface{}) *Instruction { + p := self.alloc("SETB", 1, Operands { v0 }) + // SETB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x92) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x92) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETB") + } + return p +} + +// SETBE performs "Set byte if below or equal (CF == 1 or ZF == 1)". +// +// Mnemonic : SETBE +// Supported forms : (2 forms) +// +// * SETBE r8 +// * SETBE m8 +// +func (self *Program) SETBE(v0 interface{}) *Instruction { + p := self.alloc("SETBE", 1, Operands { v0 }) + // SETBE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x96) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETBE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x96) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETBE") + } + return p +} + +// SETC performs "Set byte if carry (CF == 1)". +// +// Mnemonic : SETC +// Supported forms : (2 forms) +// +// * SETC r8 +// * SETC m8 +// +func (self *Program) SETC(v0 interface{}) *Instruction { + p := self.alloc("SETC", 1, Operands { v0 }) + // SETC r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x92) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETC m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x92) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETC") + } + return p +} + +// SETE performs "Set byte if equal (ZF == 1)". +// +// Mnemonic : SETE +// Supported forms : (2 forms) +// +// * SETE r8 +// * SETE m8 +// +func (self *Program) SETE(v0 interface{}) *Instruction { + p := self.alloc("SETE", 1, Operands { v0 }) + // SETE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x94) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x94) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETE") + } + return p +} + +// SETG performs "Set byte if greater (ZF == 0 and SF == OF)". +// +// Mnemonic : SETG +// Supported forms : (2 forms) +// +// * SETG r8 +// * SETG m8 +// +func (self *Program) SETG(v0 interface{}) *Instruction { + p := self.alloc("SETG", 1, Operands { v0 }) + // SETG r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETG m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9f) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETG") + } + return p +} + +// SETGE performs "Set byte if greater or equal (SF == OF)". +// +// Mnemonic : SETGE +// Supported forms : (2 forms) +// +// * SETGE r8 +// * SETGE m8 +// +func (self *Program) SETGE(v0 interface{}) *Instruction { + p := self.alloc("SETGE", 1, Operands { v0 }) + // SETGE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETGE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9d) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETGE") + } + return p +} + +// SETL performs "Set byte if less (SF != OF)". +// +// Mnemonic : SETL +// Supported forms : (2 forms) +// +// * SETL r8 +// * SETL m8 +// +func (self *Program) SETL(v0 interface{}) *Instruction { + p := self.alloc("SETL", 1, Operands { v0 }) + // SETL r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETL m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9c) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETL") + } + return p +} + +// SETLE performs "Set byte if less or equal (ZF == 1 or SF != OF)". +// +// Mnemonic : SETLE +// Supported forms : (2 forms) +// +// * SETLE r8 +// * SETLE m8 +// +func (self *Program) SETLE(v0 interface{}) *Instruction { + p := self.alloc("SETLE", 1, Operands { v0 }) + // SETLE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETLE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9e) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETLE") + } + return p +} + +// SETNA performs "Set byte if not above (CF == 1 or ZF == 1)". +// +// Mnemonic : SETNA +// Supported forms : (2 forms) +// +// * SETNA r8 +// * SETNA m8 +// +func (self *Program) SETNA(v0 interface{}) *Instruction { + p := self.alloc("SETNA", 1, Operands { v0 }) + // SETNA r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x96) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNA m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x96) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNA") + } + return p +} + +// SETNAE performs "Set byte if not above or equal (CF == 1)". +// +// Mnemonic : SETNAE +// Supported forms : (2 forms) +// +// * SETNAE r8 +// * SETNAE m8 +// +func (self *Program) SETNAE(v0 interface{}) *Instruction { + p := self.alloc("SETNAE", 1, Operands { v0 }) + // SETNAE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x92) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNAE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x92) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNAE") + } + return p +} + +// SETNB performs "Set byte if not below (CF == 0)". +// +// Mnemonic : SETNB +// Supported forms : (2 forms) +// +// * SETNB r8 +// * SETNB m8 +// +func (self *Program) SETNB(v0 interface{}) *Instruction { + p := self.alloc("SETNB", 1, Operands { v0 }) + // SETNB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x93) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x93) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNB") + } + return p +} + +// SETNBE performs "Set byte if not below or equal (CF == 0 and ZF == 0)". +// +// Mnemonic : SETNBE +// Supported forms : (2 forms) +// +// * SETNBE r8 +// * SETNBE m8 +// +func (self *Program) SETNBE(v0 interface{}) *Instruction { + p := self.alloc("SETNBE", 1, Operands { v0 }) + // SETNBE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x97) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNBE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x97) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNBE") + } + return p +} + +// SETNC performs "Set byte if not carry (CF == 0)". +// +// Mnemonic : SETNC +// Supported forms : (2 forms) +// +// * SETNC r8 +// * SETNC m8 +// +func (self *Program) SETNC(v0 interface{}) *Instruction { + p := self.alloc("SETNC", 1, Operands { v0 }) + // SETNC r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x93) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNC m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x93) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNC") + } + return p +} + +// SETNE performs "Set byte if not equal (ZF == 0)". +// +// Mnemonic : SETNE +// Supported forms : (2 forms) +// +// * SETNE r8 +// * SETNE m8 +// +func (self *Program) SETNE(v0 interface{}) *Instruction { + p := self.alloc("SETNE", 1, Operands { v0 }) + // SETNE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x95) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x95) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNE") + } + return p +} + +// SETNG performs "Set byte if not greater (ZF == 1 or SF != OF)". +// +// Mnemonic : SETNG +// Supported forms : (2 forms) +// +// * SETNG r8 +// * SETNG m8 +// +func (self *Program) SETNG(v0 interface{}) *Instruction { + p := self.alloc("SETNG", 1, Operands { v0 }) + // SETNG r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNG m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9e) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNG") + } + return p +} + +// SETNGE performs "Set byte if not greater or equal (SF != OF)". +// +// Mnemonic : SETNGE +// Supported forms : (2 forms) +// +// * SETNGE r8 +// * SETNGE m8 +// +func (self *Program) SETNGE(v0 interface{}) *Instruction { + p := self.alloc("SETNGE", 1, Operands { v0 }) + // SETNGE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNGE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9c) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNGE") + } + return p +} + +// SETNL performs "Set byte if not less (SF == OF)". +// +// Mnemonic : SETNL +// Supported forms : (2 forms) +// +// * SETNL r8 +// * SETNL m8 +// +func (self *Program) SETNL(v0 interface{}) *Instruction { + p := self.alloc("SETNL", 1, Operands { v0 }) + // SETNL r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNL m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9d) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNL") + } + return p +} + +// SETNLE performs "Set byte if not less or equal (ZF == 0 and SF == OF)". +// +// Mnemonic : SETNLE +// Supported forms : (2 forms) +// +// * SETNLE r8 +// * SETNLE m8 +// +func (self *Program) SETNLE(v0 interface{}) *Instruction { + p := self.alloc("SETNLE", 1, Operands { v0 }) + // SETNLE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNLE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9f) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNLE") + } + return p +} + +// SETNO performs "Set byte if not overflow (OF == 0)". +// +// Mnemonic : SETNO +// Supported forms : (2 forms) +// +// * SETNO r8 +// * SETNO m8 +// +func (self *Program) SETNO(v0 interface{}) *Instruction { + p := self.alloc("SETNO", 1, Operands { v0 }) + // SETNO r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x91) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNO m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x91) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNO") + } + return p +} + +// SETNP performs "Set byte if not parity (PF == 0)". +// +// Mnemonic : SETNP +// Supported forms : (2 forms) +// +// * SETNP r8 +// * SETNP m8 +// +func (self *Program) SETNP(v0 interface{}) *Instruction { + p := self.alloc("SETNP", 1, Operands { v0 }) + // SETNP r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNP m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9b) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNP") + } + return p +} + +// SETNS performs "Set byte if not sign (SF == 0)". +// +// Mnemonic : SETNS +// Supported forms : (2 forms) +// +// * SETNS r8 +// * SETNS m8 +// +func (self *Program) SETNS(v0 interface{}) *Instruction { + p := self.alloc("SETNS", 1, Operands { v0 }) + // SETNS r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x99) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNS m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x99) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNS") + } + return p +} + +// SETNZ performs "Set byte if not zero (ZF == 0)". +// +// Mnemonic : SETNZ +// Supported forms : (2 forms) +// +// * SETNZ r8 +// * SETNZ m8 +// +func (self *Program) SETNZ(v0 interface{}) *Instruction { + p := self.alloc("SETNZ", 1, Operands { v0 }) + // SETNZ r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x95) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNZ m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x95) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNZ") + } + return p +} + +// SETO performs "Set byte if overflow (OF == 1)". +// +// Mnemonic : SETO +// Supported forms : (2 forms) +// +// * SETO r8 +// * SETO m8 +// +func (self *Program) SETO(v0 interface{}) *Instruction { + p := self.alloc("SETO", 1, Operands { v0 }) + // SETO r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x90) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETO m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x90) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETO") + } + return p +} + +// SETP performs "Set byte if parity (PF == 1)". +// +// Mnemonic : SETP +// Supported forms : (2 forms) +// +// * SETP r8 +// * SETP m8 +// +func (self *Program) SETP(v0 interface{}) *Instruction { + p := self.alloc("SETP", 1, Operands { v0 }) + // SETP r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETP m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9a) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETP") + } + return p +} + +// SETPE performs "Set byte if parity even (PF == 1)". +// +// Mnemonic : SETPE +// Supported forms : (2 forms) +// +// * SETPE r8 +// * SETPE m8 +// +func (self *Program) SETPE(v0 interface{}) *Instruction { + p := self.alloc("SETPE", 1, Operands { v0 }) + // SETPE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETPE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9a) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETPE") + } + return p +} + +// SETPO performs "Set byte if parity odd (PF == 0)". +// +// Mnemonic : SETPO +// Supported forms : (2 forms) +// +// * SETPO r8 +// * SETPO m8 +// +func (self *Program) SETPO(v0 interface{}) *Instruction { + p := self.alloc("SETPO", 1, Operands { v0 }) + // SETPO r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETPO m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9b) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETPO") + } + return p +} + +// SETS performs "Set byte if sign (SF == 1)". +// +// Mnemonic : SETS +// Supported forms : (2 forms) +// +// * SETS r8 +// * SETS m8 +// +func (self *Program) SETS(v0 interface{}) *Instruction { + p := self.alloc("SETS", 1, Operands { v0 }) + // SETS r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x98) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETS m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x98) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETS") + } + return p +} + +// SETZ performs "Set byte if zero (ZF == 1)". +// +// Mnemonic : SETZ +// Supported forms : (2 forms) +// +// * SETZ r8 +// * SETZ m8 +// +func (self *Program) SETZ(v0 interface{}) *Instruction { + p := self.alloc("SETZ", 1, Operands { v0 }) + // SETZ r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x94) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETZ m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x94) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETZ") + } + return p +} + +// SFENCE performs "Store Fence". +// +// Mnemonic : SFENCE +// Supported forms : (1 form) +// +// * SFENCE [MMX+] +// +func (self *Program) SFENCE() *Instruction { + p := self.alloc("SFENCE", 0, Operands { }) + // SFENCE + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0xae) + m.emit(0xf8) + }) + return p +} + +// SHA1MSG1 performs "Perform an Intermediate Calculation for the Next Four SHA1 Message Doublewords". +// +// Mnemonic : SHA1MSG1 +// Supported forms : (2 forms) +// +// * SHA1MSG1 xmm, xmm [SHA] +// * SHA1MSG1 m128, xmm [SHA] +// +func (self *Program) SHA1MSG1(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA1MSG1", 2, Operands { v0, v1 }) + // SHA1MSG1 xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xc9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA1MSG1 m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xc9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA1MSG1") + } + return p +} + +// SHA1MSG2 performs "Perform a Final Calculation for the Next Four SHA1 Message Doublewords". +// +// Mnemonic : SHA1MSG2 +// Supported forms : (2 forms) +// +// * SHA1MSG2 xmm, xmm [SHA] +// * SHA1MSG2 m128, xmm [SHA] +// +func (self *Program) SHA1MSG2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA1MSG2", 2, Operands { v0, v1 }) + // SHA1MSG2 xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xca) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA1MSG2 m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xca) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA1MSG2") + } + return p +} + +// SHA1NEXTE performs "Calculate SHA1 State Variable E after Four Rounds". +// +// Mnemonic : SHA1NEXTE +// Supported forms : (2 forms) +// +// * SHA1NEXTE xmm, xmm [SHA] +// * SHA1NEXTE m128, xmm [SHA] +// +func (self *Program) SHA1NEXTE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA1NEXTE", 2, Operands { v0, v1 }) + // SHA1NEXTE xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA1NEXTE m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xc8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA1NEXTE") + } + return p +} + +// SHA1RNDS4 performs "Perform Four Rounds of SHA1 Operation". +// +// Mnemonic : SHA1RNDS4 +// Supported forms : (2 forms) +// +// * SHA1RNDS4 imm8, xmm, xmm [SHA] +// * SHA1RNDS4 imm8, m128, xmm [SHA] +// +func (self *Program) SHA1RNDS4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHA1RNDS4", 3, Operands { v0, v1, v2 }) + // SHA1RNDS4 imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHA1RNDS4 imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0xcc) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for SHA1RNDS4") + } + return p +} + +// SHA256MSG1 performs "Perform an Intermediate Calculation for the Next Four SHA256 Message Doublewords". +// +// Mnemonic : SHA256MSG1 +// Supported forms : (2 forms) +// +// * SHA256MSG1 xmm, xmm [SHA] +// * SHA256MSG1 m128, xmm [SHA] +// +func (self *Program) SHA256MSG1(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA256MSG1", 2, Operands { v0, v1 }) + // SHA256MSG1 xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA256MSG1 m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA256MSG1") + } + return p +} + +// SHA256MSG2 performs "Perform a Final Calculation for the Next Four SHA256 Message Doublewords". +// +// Mnemonic : SHA256MSG2 +// Supported forms : (2 forms) +// +// * SHA256MSG2 xmm, xmm [SHA] +// * SHA256MSG2 m128, xmm [SHA] +// +func (self *Program) SHA256MSG2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA256MSG2", 2, Operands { v0, v1 }) + // SHA256MSG2 xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA256MSG2 m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA256MSG2") + } + return p +} + +// SHA256RNDS2 performs "Perform Two Rounds of SHA256 Operation". +// +// Mnemonic : SHA256RNDS2 +// Supported forms : (2 forms) +// +// * SHA256RNDS2 xmm0, xmm, xmm [SHA] +// * SHA256RNDS2 xmm0, m128, xmm [SHA] +// +func (self *Program) SHA256RNDS2(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHA256RNDS2", 3, Operands { v0, v1, v2 }) + // SHA256RNDS2 xmm0, xmm, xmm + if v0 == XMM0 && isXMM(v1) && isXMM(v2) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHA256RNDS2 xmm0, m128, xmm + if v0 == XMM0 && isM128(v1) && isXMM(v2) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcb) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA256RNDS2") + } + return p +} + +// SHLB performs "Logical Shift Left". +// +// Mnemonic : SHL +// Supported forms : (6 forms) +// +// * SHLB 1, r8 +// * SHLB imm8, r8 +// * SHLB cl, r8 +// * SHLB 1, m8 +// * SHLB imm8, m8 +// * SHLB cl, m8 +// +func (self *Program) SHLB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHLB", 2, Operands { v0, v1 }) + // SHLB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SHLB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLB") + } + return p +} + +// SHLDL performs "Integer Double Precision Shift Left". +// +// Mnemonic : SHLD +// Supported forms : (4 forms) +// +// * SHLDL imm8, r32, r32 +// * SHLDL cl, r32, r32 +// * SHLDL imm8, r32, m32 +// * SHLDL cl, r32, m32 +// +func (self *Program) SHLDL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLDL", 3, Operands { v0, v1, v2 }) + // SHLDL imm8, r32, r32 + if isImm8(v0) && isReg32(v1) && isReg32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xa4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDL cl, r32, r32 + if v0 == CL && isReg32(v1) && isReg32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xa5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHLDL imm8, r32, m32 + if isImm8(v0) && isReg32(v1) && isM32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xa4) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDL cl, r32, m32 + if v0 == CL && isReg32(v1) && isM32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xa5) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLDL") + } + return p +} + +// SHLDQ performs "Integer Double Precision Shift Left". +// +// Mnemonic : SHLD +// Supported forms : (4 forms) +// +// * SHLDQ imm8, r64, r64 +// * SHLDQ cl, r64, r64 +// * SHLDQ imm8, r64, m64 +// * SHLDQ cl, r64, m64 +// +func (self *Program) SHLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLDQ", 3, Operands { v0, v1, v2 }) + // SHLDQ imm8, r64, r64 + if isImm8(v0) && isReg64(v1) && isReg64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0xa4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDQ cl, r64, r64 + if v0 == CL && isReg64(v1) && isReg64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0xa5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHLDQ imm8, r64, m64 + if isImm8(v0) && isReg64(v1) && isM64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0xa4) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDQ cl, r64, m64 + if v0 == CL && isReg64(v1) && isM64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0xa5) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLDQ") + } + return p +} + +// SHLDW performs "Integer Double Precision Shift Left". +// +// Mnemonic : SHLD +// Supported forms : (4 forms) +// +// * SHLDW imm8, r16, r16 +// * SHLDW cl, r16, r16 +// * SHLDW imm8, r16, m16 +// * SHLDW cl, r16, m16 +// +func (self *Program) SHLDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLDW", 3, Operands { v0, v1, v2 }) + // SHLDW imm8, r16, r16 + if isImm8(v0) && isReg16(v1) && isReg16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xa4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDW cl, r16, r16 + if v0 == CL && isReg16(v1) && isReg16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xa5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHLDW imm8, r16, m16 + if isImm8(v0) && isReg16(v1) && isM16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xa4) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDW cl, r16, m16 + if v0 == CL && isReg16(v1) && isM16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xa5) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLDW") + } + return p +} + +// SHLL performs "Logical Shift Left". +// +// Mnemonic : SHL +// Supported forms : (6 forms) +// +// * SHLL 1, r32 +// * SHLL imm8, r32 +// * SHLL cl, r32 +// * SHLL 1, m32 +// * SHLL imm8, m32 +// * SHLL cl, m32 +// +func (self *Program) SHLL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHLL", 2, Operands { v0, v1 }) + // SHLL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SHLL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLL") + } + return p +} + +// SHLQ performs "Logical Shift Left". +// +// Mnemonic : SHL +// Supported forms : (6 forms) +// +// * SHLQ 1, r64 +// * SHLQ imm8, r64 +// * SHLQ cl, r64 +// * SHLQ 1, m64 +// * SHLQ imm8, m64 +// * SHLQ cl, m64 +// +func (self *Program) SHLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHLQ", 2, Operands { v0, v1 }) + // SHLQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SHLQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLQ") + } + return p +} + +// SHLW performs "Logical Shift Left". +// +// Mnemonic : SHL +// Supported forms : (6 forms) +// +// * SHLW 1, r16 +// * SHLW imm8, r16 +// * SHLW cl, r16 +// * SHLW 1, m16 +// * SHLW imm8, m16 +// * SHLW cl, m16 +// +func (self *Program) SHLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHLW", 2, Operands { v0, v1 }) + // SHLW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SHLW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLW") + } + return p +} + +// SHLXL performs "Logical Shift Left Without Affecting Flags". +// +// Mnemonic : SHLX +// Supported forms : (2 forms) +// +// * SHLXL r32, r32, r32 [BMI2] +// * SHLXL r32, m32, r32 [BMI2] +// +func (self *Program) SHLXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLXL", 3, Operands { v0, v1, v2 }) + // SHLXL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHLXL r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLXL") + } + return p +} + +// SHLXQ performs "Logical Shift Left Without Affecting Flags". +// +// Mnemonic : SHLX +// Supported forms : (2 forms) +// +// * SHLXQ r64, r64, r64 [BMI2] +// * SHLXQ r64, m64, r64 [BMI2] +// +func (self *Program) SHLXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLXQ", 3, Operands { v0, v1, v2 }) + // SHLXQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9 ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHLXQ r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLXQ") + } + return p +} + +// SHRB performs "Logical Shift Right". +// +// Mnemonic : SHR +// Supported forms : (6 forms) +// +// * SHRB 1, r8 +// * SHRB imm8, r8 +// * SHRB cl, r8 +// * SHRB 1, m8 +// * SHRB imm8, m8 +// * SHRB cl, m8 +// +func (self *Program) SHRB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHRB", 2, Operands { v0, v1 }) + // SHRB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(5, addr(v[1]), 1) + }) + } + // SHRB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(5, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRB") + } + return p +} + +// SHRDL performs "Integer Double Precision Shift Right". +// +// Mnemonic : SHRD +// Supported forms : (4 forms) +// +// * SHRDL imm8, r32, r32 +// * SHRDL cl, r32, r32 +// * SHRDL imm8, r32, m32 +// * SHRDL cl, r32, m32 +// +func (self *Program) SHRDL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRDL", 3, Operands { v0, v1, v2 }) + // SHRDL imm8, r32, r32 + if isImm8(v0) && isReg32(v1) && isReg32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xac) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDL cl, r32, r32 + if v0 == CL && isReg32(v1) && isReg32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xad) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHRDL imm8, r32, m32 + if isImm8(v0) && isReg32(v1) && isM32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xac) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDL cl, r32, m32 + if v0 == CL && isReg32(v1) && isM32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xad) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRDL") + } + return p +} + +// SHRDQ performs "Integer Double Precision Shift Right". +// +// Mnemonic : SHRD +// Supported forms : (4 forms) +// +// * SHRDQ imm8, r64, r64 +// * SHRDQ cl, r64, r64 +// * SHRDQ imm8, r64, m64 +// * SHRDQ cl, r64, m64 +// +func (self *Program) SHRDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRDQ", 3, Operands { v0, v1, v2 }) + // SHRDQ imm8, r64, r64 + if isImm8(v0) && isReg64(v1) && isReg64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0xac) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDQ cl, r64, r64 + if v0 == CL && isReg64(v1) && isReg64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0xad) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHRDQ imm8, r64, m64 + if isImm8(v0) && isReg64(v1) && isM64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0xac) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDQ cl, r64, m64 + if v0 == CL && isReg64(v1) && isM64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0xad) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRDQ") + } + return p +} + +// SHRDW performs "Integer Double Precision Shift Right". +// +// Mnemonic : SHRD +// Supported forms : (4 forms) +// +// * SHRDW imm8, r16, r16 +// * SHRDW cl, r16, r16 +// * SHRDW imm8, r16, m16 +// * SHRDW cl, r16, m16 +// +func (self *Program) SHRDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRDW", 3, Operands { v0, v1, v2 }) + // SHRDW imm8, r16, r16 + if isImm8(v0) && isReg16(v1) && isReg16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xac) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDW cl, r16, r16 + if v0 == CL && isReg16(v1) && isReg16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xad) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHRDW imm8, r16, m16 + if isImm8(v0) && isReg16(v1) && isM16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xac) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDW cl, r16, m16 + if v0 == CL && isReg16(v1) && isM16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xad) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRDW") + } + return p +} + +// SHRL performs "Logical Shift Right". +// +// Mnemonic : SHR +// Supported forms : (6 forms) +// +// * SHRL 1, r32 +// * SHRL imm8, r32 +// * SHRL cl, r32 +// * SHRL 1, m32 +// * SHRL imm8, m32 +// * SHRL cl, m32 +// +func (self *Program) SHRL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHRL", 2, Operands { v0, v1 }) + // SHRL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(5, addr(v[1]), 1) + }) + } + // SHRL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(5, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRL") + } + return p +} + +// SHRQ performs "Logical Shift Right". +// +// Mnemonic : SHR +// Supported forms : (6 forms) +// +// * SHRQ 1, r64 +// * SHRQ imm8, r64 +// * SHRQ cl, r64 +// * SHRQ 1, m64 +// * SHRQ imm8, m64 +// * SHRQ cl, m64 +// +func (self *Program) SHRQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHRQ", 2, Operands { v0, v1 }) + // SHRQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(5, addr(v[1]), 1) + }) + } + // SHRQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(5, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRQ") + } + return p +} + +// SHRW performs "Logical Shift Right". +// +// Mnemonic : SHR +// Supported forms : (6 forms) +// +// * SHRW 1, r16 +// * SHRW imm8, r16 +// * SHRW cl, r16 +// * SHRW 1, m16 +// * SHRW imm8, m16 +// * SHRW cl, m16 +// +func (self *Program) SHRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHRW", 2, Operands { v0, v1 }) + // SHRW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(5, addr(v[1]), 1) + }) + } + // SHRW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(5, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRW") + } + return p +} + +// SHRXL performs "Logical Shift Right Without Affecting Flags". +// +// Mnemonic : SHRX +// Supported forms : (2 forms) +// +// * SHRXL r32, r32, r32 [BMI2] +// * SHRXL r32, m32, r32 [BMI2] +// +func (self *Program) SHRXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRXL", 3, Operands { v0, v1, v2 }) + // SHRXL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7b ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHRXL r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x03, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRXL") + } + return p +} + +// SHRXQ performs "Logical Shift Right Without Affecting Flags". +// +// Mnemonic : SHRX +// Supported forms : (2 forms) +// +// * SHRXQ r64, r64, r64 [BMI2] +// * SHRXQ r64, m64, r64 [BMI2] +// +func (self *Program) SHRXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRXQ", 3, Operands { v0, v1, v2 }) + // SHRXQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfb ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHRXQ r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x83, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRXQ") + } + return p +} + +// SHUFPD performs "Shuffle Packed Double-Precision Floating-Point Values". +// +// Mnemonic : SHUFPD +// Supported forms : (2 forms) +// +// * SHUFPD imm8, xmm, xmm [SSE2] +// * SHUFPD imm8, m128, xmm [SSE2] +// +func (self *Program) SHUFPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHUFPD", 3, Operands { v0, v1, v2 }) + // SHUFPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHUFPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc6) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for SHUFPD") + } + return p +} + +// SHUFPS performs "Shuffle Packed Single-Precision Floating-Point Values". +// +// Mnemonic : SHUFPS +// Supported forms : (2 forms) +// +// * SHUFPS imm8, xmm, xmm [SSE] +// * SHUFPS imm8, m128, xmm [SSE] +// +func (self *Program) SHUFPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHUFPS", 3, Operands { v0, v1, v2 }) + // SHUFPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHUFPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc6) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for SHUFPS") + } + return p +} + +// SQRTPD performs "Compute Square Roots of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : SQRTPD +// Supported forms : (2 forms) +// +// * SQRTPD xmm, xmm [SSE2] +// * SQRTPD m128, xmm [SSE2] +// +func (self *Program) SQRTPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SQRTPD", 2, Operands { v0, v1 }) + // SQRTPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SQRTPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SQRTPD") + } + return p +} + +// SQRTPS performs "Compute Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : SQRTPS +// Supported forms : (2 forms) +// +// * SQRTPS xmm, xmm [SSE] +// * SQRTPS m128, xmm [SSE] +// +func (self *Program) SQRTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SQRTPS", 2, Operands { v0, v1 }) + // SQRTPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SQRTPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SQRTPS") + } + return p +} + +// SQRTSD performs "Compute Square Root of Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : SQRTSD +// Supported forms : (2 forms) +// +// * SQRTSD xmm, xmm [SSE2] +// * SQRTSD m64, xmm [SSE2] +// +func (self *Program) SQRTSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SQRTSD", 2, Operands { v0, v1 }) + // SQRTSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SQRTSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SQRTSD") + } + return p +} + +// SQRTSS performs "Compute Square Root of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : SQRTSS +// Supported forms : (2 forms) +// +// * SQRTSS xmm, xmm [SSE] +// * SQRTSS m32, xmm [SSE] +// +func (self *Program) SQRTSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SQRTSS", 2, Operands { v0, v1 }) + // SQRTSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SQRTSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SQRTSS") + } + return p +} + +// STC performs "Set Carry Flag". +// +// Mnemonic : STC +// Supported forms : (1 form) +// +// * STC +// +func (self *Program) STC() *Instruction { + p := self.alloc("STC", 0, Operands { }) + // STC + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf9) + }) + return p +} + +// STD performs "Set Direction Flag". +// +// Mnemonic : STD +// Supported forms : (1 form) +// +// * STD +// +func (self *Program) STD() *Instruction { + p := self.alloc("STD", 0, Operands { }) + // STD + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xfd) + }) + return p +} + +// STMXCSR performs "Store MXCSR Register State". +// +// Mnemonic : STMXCSR +// Supported forms : (1 form) +// +// * STMXCSR m32 [SSE] +// +func (self *Program) STMXCSR(v0 interface{}) *Instruction { + p := self.alloc("STMXCSR", 1, Operands { v0 }) + // STMXCSR m32 + if isM32(v0) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for STMXCSR") + } + return p +} + +// SUBB performs "Subtract". +// +// Mnemonic : SUB +// Supported forms : (6 forms) +// +// * SUBB imm8, al +// * SUBB imm8, r8 +// * SUBB r8, r8 +// * SUBB m8, r8 +// * SUBB imm8, m8 +// * SUBB r8, m8 +// +func (self *Program) SUBB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBB", 2, Operands { v0, v1 }) + // SUBB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x2c) + m.imm1(toImmAny(v[0])) + }) + } + // SUBB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SUBB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x28) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SUBB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SUBB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x28) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBB") + } + return p +} + +// SUBL performs "Subtract". +// +// Mnemonic : SUB +// Supported forms : (8 forms) +// +// * SUBL imm32, eax +// * SUBL imm8, r32 +// * SUBL imm32, r32 +// * SUBL r32, r32 +// * SUBL m32, r32 +// * SUBL imm8, m32 +// * SUBL imm32, m32 +// * SUBL r32, m32 +// +func (self *Program) SUBL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBL", 2, Operands { v0, v1 }) + // SUBL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x2d) + m.imm4(toImmAny(v[0])) + }) + } + // SUBL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SUBL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xe8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // SUBL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x2b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SUBL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SUBL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(5, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // SUBL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBL") + } + return p +} + +// SUBPD performs "Subtract Packed Double-Precision Floating-Point Values". +// +// Mnemonic : SUBPD +// Supported forms : (2 forms) +// +// * SUBPD xmm, xmm [SSE2] +// * SUBPD m128, xmm [SSE2] +// +func (self *Program) SUBPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBPD", 2, Operands { v0, v1 }) + // SUBPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBPD") + } + return p +} + +// SUBPS performs "Subtract Packed Single-Precision Floating-Point Values". +// +// Mnemonic : SUBPS +// Supported forms : (2 forms) +// +// * SUBPS xmm, xmm [SSE] +// * SUBPS m128, xmm [SSE] +// +func (self *Program) SUBPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBPS", 2, Operands { v0, v1 }) + // SUBPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBPS") + } + return p +} + +// SUBQ performs "Subtract". +// +// Mnemonic : SUB +// Supported forms : (8 forms) +// +// * SUBQ imm32, rax +// * SUBQ imm8, r64 +// * SUBQ imm32, r64 +// * SUBQ r64, r64 +// * SUBQ m64, r64 +// * SUBQ imm8, m64 +// * SUBQ imm32, m64 +// * SUBQ r64, m64 +// +func (self *Program) SUBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBQ", 2, Operands { v0, v1 }) + // SUBQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x2d) + m.imm4(toImmAny(v[0])) + }) + } + // SUBQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SUBQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xe8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // SUBQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x2b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SUBQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SUBQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(5, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // SUBQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBQ") + } + return p +} + +// SUBSD performs "Subtract Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : SUBSD +// Supported forms : (2 forms) +// +// * SUBSD xmm, xmm [SSE2] +// * SUBSD m64, xmm [SSE2] +// +func (self *Program) SUBSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBSD", 2, Operands { v0, v1 }) + // SUBSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBSD") + } + return p +} + +// SUBSS performs "Subtract Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : SUBSS +// Supported forms : (2 forms) +// +// * SUBSS xmm, xmm [SSE] +// * SUBSS m32, xmm [SSE] +// +func (self *Program) SUBSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBSS", 2, Operands { v0, v1 }) + // SUBSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBSS") + } + return p +} + +// SUBW performs "Subtract". +// +// Mnemonic : SUB +// Supported forms : (8 forms) +// +// * SUBW imm16, ax +// * SUBW imm8, r16 +// * SUBW imm16, r16 +// * SUBW r16, r16 +// * SUBW m16, r16 +// * SUBW imm8, m16 +// * SUBW imm16, m16 +// * SUBW r16, m16 +// +func (self *Program) SUBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBW", 2, Operands { v0, v1 }) + // SUBW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x2d) + m.imm2(toImmAny(v[0])) + }) + } + // SUBW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SUBW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xe8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // SUBW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x2b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SUBW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SUBW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(5, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // SUBW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBW") + } + return p +} + +// SYSCALL performs "Fast System Call". +// +// Mnemonic : SYSCALL +// Supported forms : (1 form) +// +// * SYSCALL +// +func (self *Program) SYSCALL() *Instruction { + p := self.alloc("SYSCALL", 0, Operands { }) + // SYSCALL + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x05) + }) + return p +} + +// T1MSKC performs "Inverse Mask From Trailing Ones". +// +// Mnemonic : T1MSKC +// Supported forms : (4 forms) +// +// * T1MSKC r32, r32 [TBM] +// * T1MSKC m32, r32 [TBM] +// * T1MSKC r64, r64 [TBM] +// * T1MSKC m64, r64 [TBM] +// +func (self *Program) T1MSKC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("T1MSKC", 2, Operands { v0, v1 }) + // T1MSKC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xf8 | lcode(v[0])) + }) + } + // T1MSKC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(7, addr(v[0]), 1) + }) + } + // T1MSKC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xf8 | lcode(v[0])) + }) + } + // T1MSKC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for T1MSKC") + } + return p +} + +// TESTB performs "Logical Compare". +// +// Mnemonic : TEST +// Supported forms : (5 forms) +// +// * TESTB imm8, al +// * TESTB imm8, r8 +// * TESTB r8, r8 +// * TESTB imm8, m8 +// * TESTB r8, m8 +// +func (self *Program) TESTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TESTB", 2, Operands { v0, v1 }) + // TESTB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xa8) + m.imm1(toImmAny(v[0])) + }) + } + // TESTB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // TESTB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x84) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // TESTB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xf6) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // TESTB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x84) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TESTB") + } + return p +} + +// TESTL performs "Logical Compare". +// +// Mnemonic : TEST +// Supported forms : (5 forms) +// +// * TESTL imm32, eax +// * TESTL imm32, r32 +// * TESTL r32, r32 +// * TESTL imm32, m32 +// * TESTL r32, m32 +// +func (self *Program) TESTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TESTL", 2, Operands { v0, v1 }) + // TESTL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xa9) + m.imm4(toImmAny(v[0])) + }) + } + // TESTL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // TESTL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x85) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // TESTL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xf7) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // TESTL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x85) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TESTL") + } + return p +} + +// TESTQ performs "Logical Compare". +// +// Mnemonic : TEST +// Supported forms : (5 forms) +// +// * TESTQ imm32, rax +// * TESTQ imm32, r64 +// * TESTQ r64, r64 +// * TESTQ imm32, m64 +// * TESTQ r64, m64 +// +func (self *Program) TESTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TESTQ", 2, Operands { v0, v1 }) + // TESTQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0xa9) + m.imm4(toImmAny(v[0])) + }) + } + // TESTQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // TESTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x85) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // TESTQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xf7) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // TESTQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x85) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TESTQ") + } + return p +} + +// TESTW performs "Logical Compare". +// +// Mnemonic : TEST +// Supported forms : (5 forms) +// +// * TESTW imm16, ax +// * TESTW imm16, r16 +// * TESTW r16, r16 +// * TESTW imm16, m16 +// * TESTW r16, m16 +// +func (self *Program) TESTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TESTW", 2, Operands { v0, v1 }) + // TESTW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xa9) + m.imm2(toImmAny(v[0])) + }) + } + // TESTW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // TESTW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x85) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // TESTW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xf7) + m.mrsd(0, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // TESTW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x85) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TESTW") + } + return p +} + +// TZCNTL performs "Count the Number of Trailing Zero Bits". +// +// Mnemonic : TZCNT +// Supported forms : (2 forms) +// +// * TZCNTL r32, r32 [BMI] +// * TZCNTL m32, r32 [BMI] +// +func (self *Program) TZCNTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TZCNTL", 2, Operands { v0, v1 }) + // TZCNTL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // TZCNTL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TZCNTL") + } + return p +} + +// TZCNTQ performs "Count the Number of Trailing Zero Bits". +// +// Mnemonic : TZCNT +// Supported forms : (2 forms) +// +// * TZCNTQ r64, r64 [BMI] +// * TZCNTQ m64, r64 [BMI] +// +func (self *Program) TZCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TZCNTQ", 2, Operands { v0, v1 }) + // TZCNTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // TZCNTQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TZCNTQ") + } + return p +} + +// TZCNTW performs "Count the Number of Trailing Zero Bits". +// +// Mnemonic : TZCNT +// Supported forms : (2 forms) +// +// * TZCNTW r16, r16 [BMI] +// * TZCNTW m16, r16 [BMI] +// +func (self *Program) TZCNTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TZCNTW", 2, Operands { v0, v1 }) + // TZCNTW r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // TZCNTW m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TZCNTW") + } + return p +} + +// TZMSK performs "Mask From Trailing Zeros". +// +// Mnemonic : TZMSK +// Supported forms : (4 forms) +// +// * TZMSK r32, r32 [TBM] +// * TZMSK m32, r32 [TBM] +// * TZMSK r64, r64 [TBM] +// * TZMSK m64, r64 [TBM] +// +func (self *Program) TZMSK(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TZMSK", 2, Operands { v0, v1 }) + // TZMSK r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xe0 | lcode(v[0])) + }) + } + // TZMSK m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(4, addr(v[0]), 1) + }) + } + // TZMSK r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xe0 | lcode(v[0])) + }) + } + // TZMSK m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TZMSK") + } + return p +} + +// UCOMISD performs "Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : UCOMISD +// Supported forms : (2 forms) +// +// * UCOMISD xmm, xmm [SSE2] +// * UCOMISD m64, xmm [SSE2] +// +func (self *Program) UCOMISD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UCOMISD", 2, Operands { v0, v1 }) + // UCOMISD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UCOMISD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UCOMISD") + } + return p +} + +// UCOMISS performs "Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : UCOMISS +// Supported forms : (2 forms) +// +// * UCOMISS xmm, xmm [SSE] +// * UCOMISS m32, xmm [SSE] +// +func (self *Program) UCOMISS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UCOMISS", 2, Operands { v0, v1 }) + // UCOMISS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UCOMISS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UCOMISS") + } + return p +} + +// UD2 performs "Undefined Instruction". +// +// Mnemonic : UD2 +// Supported forms : (1 form) +// +// * UD2 +// +func (self *Program) UD2() *Instruction { + p := self.alloc("UD2", 0, Operands { }) + // UD2 + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x0b) + }) + return p +} + +// UNPCKHPD performs "Unpack and Interleave High Packed Double-Precision Floating-Point Values". +// +// Mnemonic : UNPCKHPD +// Supported forms : (2 forms) +// +// * UNPCKHPD xmm, xmm [SSE2] +// * UNPCKHPD m128, xmm [SSE2] +// +func (self *Program) UNPCKHPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UNPCKHPD", 2, Operands { v0, v1 }) + // UNPCKHPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UNPCKHPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UNPCKHPD") + } + return p +} + +// UNPCKHPS performs "Unpack and Interleave High Packed Single-Precision Floating-Point Values". +// +// Mnemonic : UNPCKHPS +// Supported forms : (2 forms) +// +// * UNPCKHPS xmm, xmm [SSE] +// * UNPCKHPS m128, xmm [SSE] +// +func (self *Program) UNPCKHPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UNPCKHPS", 2, Operands { v0, v1 }) + // UNPCKHPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UNPCKHPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UNPCKHPS") + } + return p +} + +// UNPCKLPD performs "Unpack and Interleave Low Packed Double-Precision Floating-Point Values". +// +// Mnemonic : UNPCKLPD +// Supported forms : (2 forms) +// +// * UNPCKLPD xmm, xmm [SSE2] +// * UNPCKLPD m128, xmm [SSE2] +// +func (self *Program) UNPCKLPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UNPCKLPD", 2, Operands { v0, v1 }) + // UNPCKLPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UNPCKLPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UNPCKLPD") + } + return p +} + +// UNPCKLPS performs "Unpack and Interleave Low Packed Single-Precision Floating-Point Values". +// +// Mnemonic : UNPCKLPS +// Supported forms : (2 forms) +// +// * UNPCKLPS xmm, xmm [SSE] +// * UNPCKLPS m128, xmm [SSE] +// +func (self *Program) UNPCKLPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UNPCKLPS", 2, Operands { v0, v1 }) + // UNPCKLPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UNPCKLPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UNPCKLPS") + } + return p +} + +// VADDPD performs "Add Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VADDPD +// Supported forms : (11 forms) +// +// * VADDPD xmm, xmm, xmm [AVX] +// * VADDPD m128, xmm, xmm [AVX] +// * VADDPD ymm, ymm, ymm [AVX] +// * VADDPD m256, ymm, ymm [AVX] +// * VADDPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VADDPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VADDPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VADDPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VADDPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VADDPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VADDPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VADDPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VADDPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VADDPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VADDPD takes 3 or 4 operands") + } + // VADDPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VADDPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x58) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VADDPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VADDPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VADDPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VADDPD") + } + return p +} + +// VADDPS performs "Add Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VADDPS +// Supported forms : (11 forms) +// +// * VADDPS xmm, xmm, xmm [AVX] +// * VADDPS m128, xmm, xmm [AVX] +// * VADDPS ymm, ymm, ymm [AVX] +// * VADDPS m256, ymm, ymm [AVX] +// * VADDPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VADDPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VADDPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VADDPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VADDPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VADDPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VADDPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VADDPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VADDPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VADDPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VADDPS takes 3 or 4 operands") + } + // VADDPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VADDPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x58) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VADDPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VADDPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VADDPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VADDPS") + } + return p +} + +// VADDSD performs "Add Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VADDSD +// Supported forms : (5 forms) +// +// * VADDSD xmm, xmm, xmm [AVX] +// * VADDSD m64, xmm, xmm [AVX] +// * VADDSD m64, xmm, xmm{k}{z} [AVX512F] +// * VADDSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VADDSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VADDSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VADDSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VADDSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VADDSD takes 3 or 4 operands") + } + // VADDSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VADDSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x58) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VADDSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VADDSD") + } + return p +} + +// VADDSS performs "Add Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VADDSS +// Supported forms : (5 forms) +// +// * VADDSS xmm, xmm, xmm [AVX] +// * VADDSS m32, xmm, xmm [AVX] +// * VADDSS m32, xmm, xmm{k}{z} [AVX512F] +// * VADDSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VADDSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VADDSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VADDSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VADDSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VADDSS takes 3 or 4 operands") + } + // VADDSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VADDSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x58) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VADDSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VADDSS") + } + return p +} + +// VADDSUBPD performs "Packed Double-FP Add/Subtract". +// +// Mnemonic : VADDSUBPD +// Supported forms : (4 forms) +// +// * VADDSUBPD xmm, xmm, xmm [AVX] +// * VADDSUBPD m128, xmm, xmm [AVX] +// * VADDSUBPD ymm, ymm, ymm [AVX] +// * VADDSUBPD m256, ymm, ymm [AVX] +// +func (self *Program) VADDSUBPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VADDSUBPD", 3, Operands { v0, v1, v2 }) + // VADDSUBPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSUBPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDSUBPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSUBPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VADDSUBPD") + } + return p +} + +// VADDSUBPS performs "Packed Single-FP Add/Subtract". +// +// Mnemonic : VADDSUBPS +// Supported forms : (4 forms) +// +// * VADDSUBPS xmm, xmm, xmm [AVX] +// * VADDSUBPS m128, xmm, xmm [AVX] +// * VADDSUBPS ymm, ymm, ymm [AVX] +// * VADDSUBPS m256, ymm, ymm [AVX] +// +func (self *Program) VADDSUBPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VADDSUBPS", 3, Operands { v0, v1, v2 }) + // VADDSUBPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSUBPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDSUBPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSUBPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VADDSUBPS") + } + return p +} + +// VAESDEC performs "Perform One Round of an AES Decryption Flow". +// +// Mnemonic : VAESDEC +// Supported forms : (2 forms) +// +// * VAESDEC xmm, xmm, xmm [AES,AVX] +// * VAESDEC m128, xmm, xmm [AES,AVX] +// +func (self *Program) VAESDEC(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESDEC", 3, Operands { v0, v1, v2 }) + // VAESDEC xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VAESDEC m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESDEC") + } + return p +} + +// VAESDECLAST performs "Perform Last Round of an AES Decryption Flow". +// +// Mnemonic : VAESDECLAST +// Supported forms : (2 forms) +// +// * VAESDECLAST xmm, xmm, xmm [AES,AVX] +// * VAESDECLAST m128, xmm, xmm [AES,AVX] +// +func (self *Program) VAESDECLAST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESDECLAST", 3, Operands { v0, v1, v2 }) + // VAESDECLAST xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VAESDECLAST m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESDECLAST") + } + return p +} + +// VAESENC performs "Perform One Round of an AES Encryption Flow". +// +// Mnemonic : VAESENC +// Supported forms : (2 forms) +// +// * VAESENC xmm, xmm, xmm [AES,AVX] +// * VAESENC m128, xmm, xmm [AES,AVX] +// +func (self *Program) VAESENC(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESENC", 3, Operands { v0, v1, v2 }) + // VAESENC xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VAESENC m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESENC") + } + return p +} + +// VAESENCLAST performs "Perform Last Round of an AES Encryption Flow". +// +// Mnemonic : VAESENCLAST +// Supported forms : (2 forms) +// +// * VAESENCLAST xmm, xmm, xmm [AES,AVX] +// * VAESENCLAST m128, xmm, xmm [AES,AVX] +// +func (self *Program) VAESENCLAST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESENCLAST", 3, Operands { v0, v1, v2 }) + // VAESENCLAST xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VAESENCLAST m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESENCLAST") + } + return p +} + +// VAESIMC performs "Perform the AES InvMixColumn Transformation". +// +// Mnemonic : VAESIMC +// Supported forms : (2 forms) +// +// * VAESIMC xmm, xmm [AES,AVX] +// * VAESIMC m128, xmm [AES,AVX] +// +func (self *Program) VAESIMC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VAESIMC", 2, Operands { v0, v1 }) + // VAESIMC xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VAESIMC m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESIMC") + } + return p +} + +// VAESKEYGENASSIST performs "AES Round Key Generation Assist". +// +// Mnemonic : VAESKEYGENASSIST +// Supported forms : (2 forms) +// +// * VAESKEYGENASSIST imm8, xmm, xmm [AES,AVX] +// * VAESKEYGENASSIST imm8, m128, xmm [AES,AVX] +// +func (self *Program) VAESKEYGENASSIST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESKEYGENASSIST", 3, Operands { v0, v1, v2 }) + // VAESKEYGENASSIST imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VAESKEYGENASSIST imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VAESKEYGENASSIST") + } + return p +} + +// VALIGND performs "Align Doubleword Vectors". +// +// Mnemonic : VALIGND +// Supported forms : (6 forms) +// +// * VALIGND imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VALIGND imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VALIGND imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VALIGND imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VALIGND imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VALIGND imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VALIGND(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VALIGND", 4, Operands { v0, v1, v2, v3 }) + // VALIGND imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, m128/m32bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VALIGND") + } + return p +} + +// VALIGNQ performs "Align Quadword Vectors". +// +// Mnemonic : VALIGNQ +// Supported forms : (6 forms) +// +// * VALIGNQ imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VALIGNQ imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VALIGNQ imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VALIGNQ imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VALIGNQ imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VALIGNQ imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VALIGNQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VALIGNQ", 4, Operands { v0, v1, v2, v3 }) + // VALIGNQ imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, m128/m64bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VALIGNQ") + } + return p +} + +// VANDNPD performs "Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VANDNPD +// Supported forms : (10 forms) +// +// * VANDNPD xmm, xmm, xmm [AVX] +// * VANDNPD m128, xmm, xmm [AVX] +// * VANDNPD ymm, ymm, ymm [AVX] +// * VANDNPD m256, ymm, ymm [AVX] +// * VANDNPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VANDNPD zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VANDNPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VANDNPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VANDNPD", 3, Operands { v0, v1, v2 }) + // VANDNPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDNPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDNPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VANDNPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VANDNPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VANDNPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VANDNPD") + } + return p +} + +// VANDNPS performs "Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VANDNPS +// Supported forms : (10 forms) +// +// * VANDNPS xmm, xmm, xmm [AVX] +// * VANDNPS m128, xmm, xmm [AVX] +// * VANDNPS ymm, ymm, ymm [AVX] +// * VANDNPS m256, ymm, ymm [AVX] +// * VANDNPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VANDNPS zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VANDNPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VANDNPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VANDNPS", 3, Operands { v0, v1, v2 }) + // VANDNPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDNPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDNPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VANDNPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VANDNPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VANDNPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VANDNPS") + } + return p +} + +// VANDPD performs "Bitwise Logical AND of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VANDPD +// Supported forms : (10 forms) +// +// * VANDPD xmm, xmm, xmm [AVX] +// * VANDPD m128, xmm, xmm [AVX] +// * VANDPD ymm, ymm, ymm [AVX] +// * VANDPD m256, ymm, ymm [AVX] +// * VANDPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VANDPD zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VANDPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VANDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VANDPD", 3, Operands { v0, v1, v2 }) + // VANDPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VANDPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VANDPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VANDPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VANDPD") + } + return p +} + +// VANDPS performs "Bitwise Logical AND of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VANDPS +// Supported forms : (10 forms) +// +// * VANDPS xmm, xmm, xmm [AVX] +// * VANDPS m128, xmm, xmm [AVX] +// * VANDPS ymm, ymm, ymm [AVX] +// * VANDPS m256, ymm, ymm [AVX] +// * VANDPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VANDPS zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VANDPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VANDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VANDPS", 3, Operands { v0, v1, v2 }) + // VANDPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VANDPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VANDPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VANDPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VANDPS") + } + return p +} + +// VBLENDMPD performs "Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control". +// +// Mnemonic : VBLENDMPD +// Supported forms : (6 forms) +// +// * VBLENDMPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VBLENDMPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VBLENDMPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBLENDMPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VBLENDMPD", 3, Operands { v0, v1, v2 }) + // VBLENDMPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VBLENDMPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VBLENDMPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VBLENDMPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VBLENDMPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VBLENDMPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDMPD") + } + return p +} + +// VBLENDMPS performs "Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control". +// +// Mnemonic : VBLENDMPS +// Supported forms : (6 forms) +// +// * VBLENDMPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VBLENDMPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VBLENDMPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBLENDMPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VBLENDMPS", 3, Operands { v0, v1, v2 }) + // VBLENDMPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VBLENDMPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VBLENDMPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VBLENDMPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VBLENDMPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VBLENDMPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDMPS") + } + return p +} + +// VBLENDPD performs "Blend Packed Double Precision Floating-Point Values". +// +// Mnemonic : VBLENDPD +// Supported forms : (4 forms) +// +// * VBLENDPD imm8, xmm, xmm, xmm [AVX] +// * VBLENDPD imm8, m128, xmm, xmm [AVX] +// * VBLENDPD imm8, ymm, ymm, ymm [AVX] +// * VBLENDPD imm8, m256, ymm, ymm [AVX] +// +func (self *Program) VBLENDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VBLENDPD", 4, Operands { v0, v1, v2, v3 }) + // VBLENDPD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPD imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPD imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDPD") + } + return p +} + +// VBLENDPS performs " Blend Packed Single Precision Floating-Point Values". +// +// Mnemonic : VBLENDPS +// Supported forms : (4 forms) +// +// * VBLENDPS imm8, xmm, xmm, xmm [AVX] +// * VBLENDPS imm8, m128, xmm, xmm [AVX] +// * VBLENDPS imm8, ymm, ymm, ymm [AVX] +// * VBLENDPS imm8, m256, ymm, ymm [AVX] +// +func (self *Program) VBLENDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VBLENDPS", 4, Operands { v0, v1, v2, v3 }) + // VBLENDPS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPS imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPS imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPS imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDPS") + } + return p +} + +// VBLENDVPD performs " Variable Blend Packed Double Precision Floating-Point Values". +// +// Mnemonic : VBLENDVPD +// Supported forms : (4 forms) +// +// * VBLENDVPD xmm, xmm, xmm, xmm [AVX] +// * VBLENDVPD xmm, m128, xmm, xmm [AVX] +// * VBLENDVPD ymm, ymm, ymm, ymm [AVX] +// * VBLENDVPD ymm, m256, ymm, ymm [AVX] +// +func (self *Program) VBLENDVPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VBLENDVPD", 4, Operands { v0, v1, v2, v3 }) + // VBLENDVPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDVPD") + } + return p +} + +// VBLENDVPS performs " Variable Blend Packed Single Precision Floating-Point Values". +// +// Mnemonic : VBLENDVPS +// Supported forms : (4 forms) +// +// * VBLENDVPS xmm, xmm, xmm, xmm [AVX] +// * VBLENDVPS xmm, m128, xmm, xmm [AVX] +// * VBLENDVPS ymm, ymm, ymm, ymm [AVX] +// * VBLENDVPS ymm, m256, ymm, ymm [AVX] +// +func (self *Program) VBLENDVPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VBLENDVPS", 4, Operands { v0, v1, v2, v3 }) + // VBLENDVPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDVPS") + } + return p +} + +// VBROADCASTF128 performs "Broadcast 128 Bit of Floating-Point Data". +// +// Mnemonic : VBROADCASTF128 +// Supported forms : (1 form) +// +// * VBROADCASTF128 m128, ymm [AVX] +// +func (self *Program) VBROADCASTF128(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF128", 2, Operands { v0, v1 }) + // VBROADCASTF128 m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF128") + } + return p +} + +// VBROADCASTF32X2 performs "Broadcast Two Single-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF32X2 +// Supported forms : (4 forms) +// +// * VBROADCASTF32X2 xmm, zmm{k}{z} [AVX512DQ] +// * VBROADCASTF32X2 m64, zmm{k}{z} [AVX512DQ] +// * VBROADCASTF32X2 xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VBROADCASTF32X2 m64, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VBROADCASTF32X2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF32X2", 2, Operands { v0, v1 }) + // VBROADCASTF32X2 xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTF32X2 m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VBROADCASTF32X2 xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTF32X2 m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF32X2") + } + return p +} + +// VBROADCASTF32X4 performs "Broadcast Four Single-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF32X4 +// Supported forms : (2 forms) +// +// * VBROADCASTF32X4 m128, zmm{k}{z} [AVX512F] +// * VBROADCASTF32X4 m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBROADCASTF32X4(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF32X4", 2, Operands { v0, v1 }) + // VBROADCASTF32X4 m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VBROADCASTF32X4 m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF32X4") + } + return p +} + +// VBROADCASTF32X8 performs "Broadcast Eight Single-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF32X8 +// Supported forms : (1 form) +// +// * VBROADCASTF32X8 m256, zmm{k}{z} [AVX512DQ] +// +func (self *Program) VBROADCASTF32X8(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF32X8", 2, Operands { v0, v1 }) + // VBROADCASTF32X8 m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF32X8") + } + return p +} + +// VBROADCASTF64X2 performs "Broadcast Two Double-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF64X2 +// Supported forms : (2 forms) +// +// * VBROADCASTF64X2 m128, zmm{k}{z} [AVX512DQ] +// * VBROADCASTF64X2 m128, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VBROADCASTF64X2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF64X2", 2, Operands { v0, v1 }) + // VBROADCASTF64X2 m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VBROADCASTF64X2 m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF64X2") + } + return p +} + +// VBROADCASTF64X4 performs "Broadcast Four Double-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF64X4 +// Supported forms : (1 form) +// +// * VBROADCASTF64X4 m256, zmm{k}{z} [AVX512F] +// +func (self *Program) VBROADCASTF64X4(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF64X4", 2, Operands { v0, v1 }) + // VBROADCASTF64X4 m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF64X4") + } + return p +} + +// VBROADCASTI128 performs "Broadcast 128 Bits of Integer Data". +// +// Mnemonic : VBROADCASTI128 +// Supported forms : (1 form) +// +// * VBROADCASTI128 m128, ymm [AVX2] +// +func (self *Program) VBROADCASTI128(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI128", 2, Operands { v0, v1 }) + // VBROADCASTI128 m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI128") + } + return p +} + +// VBROADCASTI32X2 performs "Broadcast Two Doubleword Elements". +// +// Mnemonic : VBROADCASTI32X2 +// Supported forms : (6 forms) +// +// * VBROADCASTI32X2 xmm, zmm{k}{z} [AVX512DQ] +// * VBROADCASTI32X2 m64, zmm{k}{z} [AVX512DQ] +// * VBROADCASTI32X2 xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VBROADCASTI32X2 xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VBROADCASTI32X2 m64, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VBROADCASTI32X2 m64, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VBROADCASTI32X2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI32X2", 2, Operands { v0, v1 }) + // VBROADCASTI32X2 xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTI32X2 m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VBROADCASTI32X2 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTI32X2 xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTI32X2 m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VBROADCASTI32X2 m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI32X2") + } + return p +} + +// VBROADCASTI32X4 performs "Broadcast Four Doubleword Elements". +// +// Mnemonic : VBROADCASTI32X4 +// Supported forms : (2 forms) +// +// * VBROADCASTI32X4 m128, zmm{k}{z} [AVX512F] +// * VBROADCASTI32X4 m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBROADCASTI32X4(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI32X4", 2, Operands { v0, v1 }) + // VBROADCASTI32X4 m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VBROADCASTI32X4 m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI32X4") + } + return p +} + +// VBROADCASTI32X8 performs "Broadcast Eight Doubleword Elements". +// +// Mnemonic : VBROADCASTI32X8 +// Supported forms : (1 form) +// +// * VBROADCASTI32X8 m256, zmm{k}{z} [AVX512DQ] +// +func (self *Program) VBROADCASTI32X8(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI32X8", 2, Operands { v0, v1 }) + // VBROADCASTI32X8 m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI32X8") + } + return p +} + +// VBROADCASTI64X2 performs "Broadcast Two Quadword Elements". +// +// Mnemonic : VBROADCASTI64X2 +// Supported forms : (2 forms) +// +// * VBROADCASTI64X2 m128, zmm{k}{z} [AVX512DQ] +// * VBROADCASTI64X2 m128, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VBROADCASTI64X2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI64X2", 2, Operands { v0, v1 }) + // VBROADCASTI64X2 m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VBROADCASTI64X2 m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI64X2") + } + return p +} + +// VBROADCASTI64X4 performs "Broadcast Four Quadword Elements". +// +// Mnemonic : VBROADCASTI64X4 +// Supported forms : (1 form) +// +// * VBROADCASTI64X4 m256, zmm{k}{z} [AVX512F] +// +func (self *Program) VBROADCASTI64X4(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI64X4", 2, Operands { v0, v1 }) + // VBROADCASTI64X4 m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI64X4") + } + return p +} + +// VBROADCASTSD performs "Broadcast Double-Precision Floating-Point Element". +// +// Mnemonic : VBROADCASTSD +// Supported forms : (6 forms) +// +// * VBROADCASTSD m64, ymm [AVX] +// * VBROADCASTSD xmm, ymm [AVX2] +// * VBROADCASTSD xmm, zmm{k}{z} [AVX512F] +// * VBROADCASTSD m64, zmm{k}{z} [AVX512F] +// * VBROADCASTSD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VBROADCASTSD m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBROADCASTSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTSD", 2, Operands { v0, v1 }) + // VBROADCASTSD m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VBROADCASTSD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSD xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSD m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VBROADCASTSD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSD m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTSD") + } + return p +} + +// VBROADCASTSS performs "Broadcast Single-Precision Floating-Point Element". +// +// Mnemonic : VBROADCASTSS +// Supported forms : (8 forms) +// +// * VBROADCASTSS m32, xmm [AVX] +// * VBROADCASTSS m32, ymm [AVX] +// * VBROADCASTSS xmm, xmm [AVX2] +// * VBROADCASTSS xmm, ymm [AVX2] +// * VBROADCASTSS xmm, zmm{k}{z} [AVX512F] +// * VBROADCASTSS m32, zmm{k}{z} [AVX512F] +// * VBROADCASTSS xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VBROADCASTSS m32, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBROADCASTSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTSS", 2, Operands { v0, v1 }) + // VBROADCASTSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x18) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VBROADCASTSS m32, ymm + if isM32(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x18) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VBROADCASTSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x18) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSS xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x18) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSS xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x18) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSS m32, zmm{k}{z} + if isM32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x18) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VBROADCASTSS xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x18) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSS m32, ymm{k}{z} + if isM32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x18) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTSS") + } + return p +} + +// VCMPPD performs "Compare Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VCMPPD +// Supported forms : (11 forms) +// +// * VCMPPD imm8, xmm, xmm, xmm [AVX] +// * VCMPPD imm8, m128, xmm, xmm [AVX] +// * VCMPPD imm8, ymm, ymm, ymm [AVX] +// * VCMPPD imm8, m256, ymm, ymm [AVX] +// * VCMPPD imm8, m512/m64bcst, zmm, k{k} [AVX512F] +// * VCMPPD imm8, {sae}, zmm, zmm, k{k} [AVX512F] +// * VCMPPD imm8, zmm, zmm, k{k} [AVX512F] +// * VCMPPD imm8, m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VCMPPD imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VCMPPD imm8, m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VCMPPD imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VCMPPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCMPPD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VCMPPD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VCMPPD takes 4 or 5 operands") + } + // VCMPPD imm8, xmm, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m128, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, ymm, ymm, ymm + if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m256, ymm, ymm + if len(vv) == 0 && isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m512/m64bcst, zmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, {sae}, zmm, zmm, k{k} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isKk(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, zmm, zmm, k{k} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m128/m64bcst, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, xmm, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m256/m64bcst, ymm, k{k} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, ymm, ymm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCMPPD") + } + return p +} + +// VCMPPS performs "Compare Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VCMPPS +// Supported forms : (11 forms) +// +// * VCMPPS imm8, xmm, xmm, xmm [AVX] +// * VCMPPS imm8, m128, xmm, xmm [AVX] +// * VCMPPS imm8, ymm, ymm, ymm [AVX] +// * VCMPPS imm8, m256, ymm, ymm [AVX] +// * VCMPPS imm8, m512/m32bcst, zmm, k{k} [AVX512F] +// * VCMPPS imm8, {sae}, zmm, zmm, k{k} [AVX512F] +// * VCMPPS imm8, zmm, zmm, k{k} [AVX512F] +// * VCMPPS imm8, m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VCMPPS imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VCMPPS imm8, m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VCMPPS imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VCMPPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCMPPS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VCMPPS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VCMPPS takes 4 or 5 operands") + } + // VCMPPS imm8, xmm, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m128, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, ymm, ymm, ymm + if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m256, ymm, ymm + if len(vv) == 0 && isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m512/m32bcst, zmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, {sae}, zmm, zmm, k{k} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isKk(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7c ^ (hlcode(v[3]) << 3)) + m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, zmm, zmm, k{k} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m128/m32bcst, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, xmm, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m256/m32bcst, ymm, k{k} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, ymm, ymm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCMPPS") + } + return p +} + +// VCMPSD performs "Compare Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VCMPSD +// Supported forms : (5 forms) +// +// * VCMPSD imm8, xmm, xmm, xmm [AVX] +// * VCMPSD imm8, m64, xmm, xmm [AVX] +// * VCMPSD imm8, m64, xmm, k{k} [AVX512F] +// * VCMPSD imm8, {sae}, xmm, xmm, k{k} [AVX512F] +// * VCMPSD imm8, xmm, xmm, k{k} [AVX512F] +// +func (self *Program) VCMPSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCMPSD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VCMPSD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VCMPSD takes 4 or 5 operands") + } + // VCMPSD imm8, xmm, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSD imm8, m64, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSD imm8, m64, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSD imm8, {sae}, xmm, xmm, k{k} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isKk(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xff ^ (hlcode(v[3]) << 3)) + m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSD imm8, xmm, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCMPSD") + } + return p +} + +// VCMPSS performs "Compare Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VCMPSS +// Supported forms : (5 forms) +// +// * VCMPSS imm8, xmm, xmm, xmm [AVX] +// * VCMPSS imm8, m32, xmm, xmm [AVX] +// * VCMPSS imm8, m32, xmm, k{k} [AVX512F] +// * VCMPSS imm8, {sae}, xmm, xmm, k{k} [AVX512F] +// * VCMPSS imm8, xmm, xmm, k{k} [AVX512F] +// +func (self *Program) VCMPSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCMPSS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VCMPSS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VCMPSS takes 4 or 5 operands") + } + // VCMPSS imm8, xmm, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSS imm8, m32, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSS imm8, m32, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSS imm8, {sae}, xmm, xmm, k{k} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isKk(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7e ^ (hlcode(v[3]) << 3)) + m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSS imm8, xmm, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCMPSS") + } + return p +} + +// VCOMISD performs "Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : VCOMISD +// Supported forms : (5 forms) +// +// * VCOMISD xmm, xmm [AVX] +// * VCOMISD m64, xmm [AVX] +// * VCOMISD m64, xmm [AVX512F] +// * VCOMISD {sae}, xmm, xmm [AVX512F] +// * VCOMISD xmm, xmm [AVX512F] +// +func (self *Program) VCOMISD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCOMISD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCOMISD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCOMISD takes 2 or 3 operands") + } + // VCOMISD xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCOMISD m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCOMISD m64, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCOMISD {sae}, xmm, xmm + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(0x18) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCOMISD xmm, xmm + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit(0x48) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCOMISD") + } + return p +} + +// VCOMISS performs "Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : VCOMISS +// Supported forms : (5 forms) +// +// * VCOMISS xmm, xmm [AVX] +// * VCOMISS m32, xmm [AVX] +// * VCOMISS m32, xmm [AVX512F] +// * VCOMISS {sae}, xmm, xmm [AVX512F] +// * VCOMISS xmm, xmm [AVX512F] +// +func (self *Program) VCOMISS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCOMISS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCOMISS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCOMISS takes 2 or 3 operands") + } + // VCOMISS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCOMISS m32, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCOMISS m32, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCOMISS {sae}, xmm, xmm + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit(0x18) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCOMISS xmm, xmm + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit(0x48) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCOMISS") + } + return p +} + +// VCOMPRESSPD performs "Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register". +// +// Mnemonic : VCOMPRESSPD +// Supported forms : (6 forms) +// +// * VCOMPRESSPD zmm, zmm{k}{z} [AVX512F] +// * VCOMPRESSPD zmm, m512{k}{z} [AVX512F] +// * VCOMPRESSPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPD xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPD ymm, m256{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCOMPRESSPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VCOMPRESSPD", 2, Operands { v0, v1 }) + // VCOMPRESSPD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPD zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VCOMPRESSPD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPD xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VCOMPRESSPD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPD ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VCOMPRESSPD") + } + return p +} + +// VCOMPRESSPS performs "Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register". +// +// Mnemonic : VCOMPRESSPS +// Supported forms : (6 forms) +// +// * VCOMPRESSPS zmm, zmm{k}{z} [AVX512F] +// * VCOMPRESSPS zmm, m512{k}{z} [AVX512F] +// * VCOMPRESSPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPS xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPS ymm, m256{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCOMPRESSPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VCOMPRESSPS", 2, Operands { v0, v1 }) + // VCOMPRESSPS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPS zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VCOMPRESSPS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPS xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VCOMPRESSPS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPS ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VCOMPRESSPS") + } + return p +} + +// VCVTDQ2PD performs "Convert Packed Dword Integers to Packed Double-Precision FP Values". +// +// Mnemonic : VCVTDQ2PD +// Supported forms : (10 forms) +// +// * VCVTDQ2PD xmm, xmm [AVX] +// * VCVTDQ2PD m64, xmm [AVX] +// * VCVTDQ2PD xmm, ymm [AVX] +// * VCVTDQ2PD m128, ymm [AVX] +// * VCVTDQ2PD m256/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTDQ2PD ymm, zmm{k}{z} [AVX512F] +// * VCVTDQ2PD m64/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PD m128/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTDQ2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VCVTDQ2PD", 2, Operands { v0, v1 }) + // VCVTDQ2PD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTDQ2PD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PD m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTDQ2PD m256/m32bcst, zmm{k}{z} + if isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTDQ2PD ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PD m64/m32bcst, xmm{k}{z} + if isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTDQ2PD m128/m32bcst, ymm{k}{z} + if isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTDQ2PD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTDQ2PD") + } + return p +} + +// VCVTDQ2PS performs "Convert Packed Dword Integers to Packed Single-Precision FP Values". +// +// Mnemonic : VCVTDQ2PS +// Supported forms : (11 forms) +// +// * VCVTDQ2PS xmm, xmm [AVX] +// * VCVTDQ2PS m128, xmm [AVX] +// * VCVTDQ2PS ymm, ymm [AVX] +// * VCVTDQ2PS m256, ymm [AVX] +// * VCVTDQ2PS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTDQ2PS {er}, zmm, zmm{k}{z} [AVX512F] +// * VCVTDQ2PS zmm, zmm{k}{z} [AVX512F] +// * VCVTDQ2PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTDQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTDQ2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTDQ2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTDQ2PS takes 2 or 3 operands") + } + // VCVTDQ2PS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PS m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTDQ2PS ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PS m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTDQ2PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTDQ2PS {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTDQ2PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PS m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTDQ2PS m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTDQ2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PS ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTDQ2PS") + } + return p +} + +// VCVTPD2DQ performs "Convert Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : VCVTPD2DQ +// Supported forms : (11 forms) +// +// * VCVTPD2DQ xmm, xmm [AVX] +// * VCVTPD2DQ ymm, xmm [AVX] +// * VCVTPD2DQ m128, xmm [AVX] +// * VCVTPD2DQ m256, xmm [AVX] +// * VCVTPD2DQ m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTPD2DQ {er}, zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2DQ zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2DQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2DQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2DQ ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPD2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2DQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2DQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2DQ takes 2 or 3 operands") + } + // VCVTPD2DQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2DQ ymm, xmm + if len(vv) == 0 && isYMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2DQ m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPD2DQ m256, xmm + if len(vv) == 0 && isM256(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPD2DQ m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2DQ {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2DQ zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2DQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2DQ m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2DQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2DQ ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2DQ") + } + return p +} + +// VCVTPD2PS performs "Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values". +// +// Mnemonic : VCVTPD2PS +// Supported forms : (11 forms) +// +// * VCVTPD2PS xmm, xmm [AVX] +// * VCVTPD2PS ymm, xmm [AVX] +// * VCVTPD2PS m128, xmm [AVX] +// * VCVTPD2PS m256, xmm [AVX] +// * VCVTPD2PS m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTPD2PS {er}, zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2PS zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2PS m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2PS m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2PS ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPD2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2PS takes 2 or 3 operands") + } + // VCVTPD2PS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2PS ymm, xmm + if len(vv) == 0 && isYMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2PS m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPD2PS m256, xmm + if len(vv) == 0 && isM256(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPD2PS m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2PS {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2PS zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2PS m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2PS m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2PS ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2PS") + } + return p +} + +// VCVTPD2QQ performs "Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers". +// +// Mnemonic : VCVTPD2QQ +// Supported forms : (7 forms) +// +// * VCVTPD2QQ m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTPD2QQ {er}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTPD2QQ zmm, zmm{k}{z} [AVX512DQ] +// * VCVTPD2QQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2QQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2QQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTPD2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2QQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2QQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2QQ takes 2 or 3 operands") + } + // VCVTPD2QQ m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2QQ {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2QQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2QQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2QQ m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2QQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2QQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2QQ") + } + return p +} + +// VCVTPD2UDQ performs "Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers". +// +// Mnemonic : VCVTPD2UDQ +// Supported forms : (7 forms) +// +// * VCVTPD2UDQ m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTPD2UDQ {er}, zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2UDQ zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2UDQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2UDQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2UDQ ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPD2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2UDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2UDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2UDQ takes 2 or 3 operands") + } + // VCVTPD2UDQ m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2UDQ {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2UDQ zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2UDQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2UDQ m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2UDQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2UDQ ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2UDQ") + } + return p +} + +// VCVTPD2UQQ performs "Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers". +// +// Mnemonic : VCVTPD2UQQ +// Supported forms : (7 forms) +// +// * VCVTPD2UQQ m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTPD2UQQ {er}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTPD2UQQ zmm, zmm{k}{z} [AVX512DQ] +// * VCVTPD2UQQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2UQQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2UQQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTPD2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2UQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2UQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2UQQ takes 2 or 3 operands") + } + // VCVTPD2UQQ m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2UQQ {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2UQQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2UQQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2UQQ m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2UQQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2UQQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2UQQ") + } + return p +} + +// VCVTPH2PS performs "Convert Half-Precision FP Values to Single-Precision FP Values". +// +// Mnemonic : VCVTPH2PS +// Supported forms : (11 forms) +// +// * VCVTPH2PS xmm, xmm [F16C] +// * VCVTPH2PS m64, xmm [F16C] +// * VCVTPH2PS xmm, ymm [F16C] +// * VCVTPH2PS m128, ymm [F16C] +// * VCVTPH2PS m256, zmm{k}{z} [AVX512F] +// * VCVTPH2PS {sae}, ymm, zmm{k}{z} [AVX512F] +// * VCVTPH2PS ymm, zmm{k}{z} [AVX512F] +// * VCVTPH2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPH2PS xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTPH2PS m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPH2PS m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPH2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPH2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPH2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPH2PS takes 2 or 3 operands") + } + // VCVTPH2PS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPH2PS xmm, ymm + if len(vv) == 0 && isXMM(v0) && isYMM(v1) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS m128, ymm + if len(vv) == 0 && isM128(v0) && isYMM(v1) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPH2PS m256, zmm{k}{z} + if len(vv) == 0 && isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPH2PS {sae}, ymm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x13) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPH2PS ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS m64, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTPH2PS m128, ymm{k}{z} + if len(vv) == 0 && isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPH2PS") + } + return p +} + +// VCVTPS2DQ performs "Convert Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : VCVTPS2DQ +// Supported forms : (11 forms) +// +// * VCVTPS2DQ xmm, xmm [AVX] +// * VCVTPS2DQ m128, xmm [AVX] +// * VCVTPS2DQ ymm, ymm [AVX] +// * VCVTPS2DQ m256, ymm [AVX] +// * VCVTPS2DQ m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTPS2DQ {er}, zmm, zmm{k}{z} [AVX512F] +// * VCVTPS2DQ zmm, zmm{k}{z} [AVX512F] +// * VCVTPS2DQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2DQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2DQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPS2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2DQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2DQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2DQ takes 2 or 3 operands") + } + // VCVTPS2DQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2DQ m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPS2DQ ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2DQ m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPS2DQ m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPS2DQ {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2DQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2DQ m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2DQ m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2DQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2DQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2DQ") + } + return p +} + +// VCVTPS2PD performs "Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values". +// +// Mnemonic : VCVTPS2PD +// Supported forms : (11 forms) +// +// * VCVTPS2PD xmm, xmm [AVX] +// * VCVTPS2PD m64, xmm [AVX] +// * VCVTPS2PD xmm, ymm [AVX] +// * VCVTPS2PD m128, ymm [AVX] +// * VCVTPS2PD m256/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTPS2PD {sae}, ymm, zmm{k}{z} [AVX512F] +// * VCVTPS2PD ymm, zmm{k}{z} [AVX512F] +// * VCVTPS2PD m64/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PD m128/m32bcst, ymm{k}{z} [AVX512VL] +// * VCVTPS2PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PD xmm, ymm{k}{z} [AVX512VL] +// +func (self *Program) VCVTPS2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2PD takes 2 or 3 operands") + } + // VCVTPS2PD xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2PD m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPS2PD xmm, ymm + if len(vv) == 0 && isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2PD m128, ymm + if len(vv) == 0 && isM128(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPS2PD m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2PD {sae}, ymm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2PD ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2PD m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTPS2PD m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2PD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2PD xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2PD") + } + return p +} + +// VCVTPS2PH performs "Convert Single-Precision FP value to Half-Precision FP value". +// +// Mnemonic : VCVTPS2PH +// Supported forms : (11 forms) +// +// * VCVTPS2PH imm8, xmm, xmm [F16C] +// * VCVTPS2PH imm8, ymm, xmm [F16C] +// * VCVTPS2PH imm8, xmm, m64 [F16C] +// * VCVTPS2PH imm8, ymm, m128 [F16C] +// * VCVTPS2PH imm8, zmm, m256{k}{z} [AVX512F] +// * VCVTPS2PH imm8, {sae}, zmm, ymm{k}{z} [AVX512F] +// * VCVTPS2PH imm8, zmm, ymm{k}{z} [AVX512F] +// * VCVTPS2PH imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PH imm8, xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PH imm8, ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PH imm8, ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPS2PH(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2PH", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTPS2PH", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTPS2PH takes 3 or 4 operands") + } + // VCVTPS2PH imm8, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, ymm, xmm + if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isXMM(v2) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, xmm, m64 + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isM64(v2) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, ymm, m128 + if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isM128(v2) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[1]), addr(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, zmm, m256{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, {sae}, zmm, ymm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[3]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[3])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, zmm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, xmm, m64{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isM64kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, ymm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, ymm, m128{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2PH") + } + return p +} + +// VCVTPS2QQ performs "Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values". +// +// Mnemonic : VCVTPS2QQ +// Supported forms : (7 forms) +// +// * VCVTPS2QQ m256/m32bcst, zmm{k}{z} [AVX512DQ] +// * VCVTPS2QQ {er}, ymm, zmm{k}{z} [AVX512DQ] +// * VCVTPS2QQ ymm, zmm{k}{z} [AVX512DQ] +// * VCVTPS2QQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2QQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2QQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTPS2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2QQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2QQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2QQ takes 2 or 3 operands") + } + // VCVTPS2QQ m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2QQ {er}, ymm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2QQ ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2QQ m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTPS2QQ m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2QQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2QQ xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2QQ") + } + return p +} + +// VCVTPS2UDQ performs "Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values". +// +// Mnemonic : VCVTPS2UDQ +// Supported forms : (7 forms) +// +// * VCVTPS2UDQ m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTPS2UDQ {er}, zmm, zmm{k}{z} [AVX512F] +// * VCVTPS2UDQ zmm, zmm{k}{z} [AVX512F] +// * VCVTPS2UDQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2UDQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2UDQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPS2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2UDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2UDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2UDQ takes 2 or 3 operands") + } + // VCVTPS2UDQ m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPS2UDQ {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2UDQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2UDQ m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2UDQ m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2UDQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2UDQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2UDQ") + } + return p +} + +// VCVTPS2UQQ performs "Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values". +// +// Mnemonic : VCVTPS2UQQ +// Supported forms : (7 forms) +// +// * VCVTPS2UQQ m256/m32bcst, zmm{k}{z} [AVX512DQ] +// * VCVTPS2UQQ {er}, ymm, zmm{k}{z} [AVX512DQ] +// * VCVTPS2UQQ ymm, zmm{k}{z} [AVX512DQ] +// * VCVTPS2UQQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2UQQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2UQQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTPS2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2UQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2UQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2UQQ takes 2 or 3 operands") + } + // VCVTPS2UQQ m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2UQQ {er}, ymm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2UQQ ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2UQQ m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTPS2UQQ m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2UQQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2UQQ xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2UQQ") + } + return p +} + +// VCVTQQ2PD performs "Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VCVTQQ2PD +// Supported forms : (7 forms) +// +// * VCVTQQ2PD m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTQQ2PD {er}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTQQ2PD zmm, zmm{k}{z} [AVX512DQ] +// * VCVTQQ2PD m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PD m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PD xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PD ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTQQ2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTQQ2PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTQQ2PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTQQ2PD takes 2 or 3 operands") + } + // VCVTQQ2PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTQQ2PD {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTQQ2PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTQQ2PD m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTQQ2PD m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTQQ2PD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTQQ2PD ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTQQ2PD") + } + return p +} + +// VCVTQQ2PS performs "Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VCVTQQ2PS +// Supported forms : (7 forms) +// +// * VCVTQQ2PS m512/m64bcst, ymm{k}{z} [AVX512DQ] +// * VCVTQQ2PS {er}, zmm, ymm{k}{z} [AVX512DQ] +// * VCVTQQ2PS zmm, ymm{k}{z} [AVX512DQ] +// * VCVTQQ2PS m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PS m256/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PS xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PS ymm, xmm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTQQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTQQ2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTQQ2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTQQ2PS takes 2 or 3 operands") + } + // VCVTQQ2PS m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTQQ2PS {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTQQ2PS zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTQQ2PS m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTQQ2PS m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTQQ2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTQQ2PS ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTQQ2PS") + } + return p +} + +// VCVTSD2SI performs "Convert Scalar Double-Precision FP Value to Integer". +// +// Mnemonic : VCVTSD2SI +// Supported forms : (10 forms) +// +// * VCVTSD2SI xmm, r32 [AVX] +// * VCVTSD2SI m64, r32 [AVX] +// * VCVTSD2SI xmm, r64 [AVX] +// * VCVTSD2SI m64, r64 [AVX] +// * VCVTSD2SI m64, r32 [AVX512F] +// * VCVTSD2SI m64, r64 [AVX512F] +// * VCVTSD2SI {er}, xmm, r32 [AVX512F] +// * VCVTSD2SI {er}, xmm, r64 [AVX512F] +// * VCVTSD2SI xmm, r32 [AVX512F] +// * VCVTSD2SI xmm, r64 [AVX512F] +// +func (self *Program) VCVTSD2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSD2SI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTSD2SI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTSD2SI takes 2 or 3 operands") + } + // VCVTSD2SI xmm, r32 + if len(vv) == 0 && isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), v[0], 0) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2SI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTSD2SI xmm, r64 + if len(vv) == 0 && isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2SI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x83, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTSD2SI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTSD2SI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTSD2SI {er}, xmm, r32 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2SI {er}, xmm, r64 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2SI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit(0x48) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2SI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit(0x48) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSD2SI") + } + return p +} + +// VCVTSD2SS performs "Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value". +// +// Mnemonic : VCVTSD2SS +// Supported forms : (5 forms) +// +// * VCVTSD2SS xmm, xmm, xmm [AVX] +// * VCVTSD2SS m64, xmm, xmm [AVX] +// * VCVTSD2SS m64, xmm, xmm{k}{z} [AVX512F] +// * VCVTSD2SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VCVTSD2SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VCVTSD2SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSD2SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTSD2SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTSD2SS takes 3 or 4 operands") + } + // VCVTSD2SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2SS m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSD2SS m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTSD2SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSD2SS") + } + return p +} + +// VCVTSD2USI performs "Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer". +// +// Mnemonic : VCVTSD2USI +// Supported forms : (6 forms) +// +// * VCVTSD2USI m64, r32 [AVX512F] +// * VCVTSD2USI m64, r64 [AVX512F] +// * VCVTSD2USI {er}, xmm, r32 [AVX512F] +// * VCVTSD2USI {er}, xmm, r64 [AVX512F] +// * VCVTSD2USI xmm, r32 [AVX512F] +// * VCVTSD2USI xmm, r64 [AVX512F] +// +func (self *Program) VCVTSD2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSD2USI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTSD2USI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTSD2USI takes 2 or 3 operands") + } + // VCVTSD2USI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTSD2USI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTSD2USI {er}, xmm, r32 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2USI {er}, xmm, r64 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2USI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit(0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2USI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit(0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSD2USI") + } + return p +} + +// VCVTSI2SD performs "Convert Dword Integer to Scalar Double-Precision FP Value". +// +// Mnemonic : VCVTSI2SD +// Supported forms : (9 forms) +// +// * VCVTSI2SD r32, xmm, xmm [AVX] +// * VCVTSI2SD r64, xmm, xmm [AVX] +// * VCVTSI2SD m32, xmm, xmm [AVX] +// * VCVTSI2SD m64, xmm, xmm [AVX] +// * VCVTSI2SD r32, xmm, xmm [AVX512F] +// * VCVTSI2SD m32, xmm, xmm [AVX512F] +// * VCVTSI2SD m64, xmm, xmm [AVX512F] +// * VCVTSI2SD {er}, r64, xmm, xmm [AVX512F] +// * VCVTSI2SD r64, xmm, xmm [AVX512F] +// +func (self *Program) VCVTSI2SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSI2SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTSI2SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTSI2SD takes 3 or 4 operands") + } + // VCVTSI2SD r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SD r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb ^ (hlcode(v[1]) << 3)) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SD m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSI2SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x83, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSI2SD r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SD m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTSI2SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTSI2SD {er}, r64, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSI2SD r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSI2SD") + } + return p +} + +// VCVTSI2SS performs "Convert Dword Integer to Scalar Single-Precision FP Value". +// +// Mnemonic : VCVTSI2SS +// Supported forms : (10 forms) +// +// * VCVTSI2SS r32, xmm, xmm [AVX] +// * VCVTSI2SS r64, xmm, xmm [AVX] +// * VCVTSI2SS m32, xmm, xmm [AVX] +// * VCVTSI2SS m64, xmm, xmm [AVX] +// * VCVTSI2SS m32, xmm, xmm [AVX512F] +// * VCVTSI2SS m64, xmm, xmm [AVX512F] +// * VCVTSI2SS {er}, r32, xmm, xmm [AVX512F] +// * VCVTSI2SS {er}, r64, xmm, xmm [AVX512F] +// * VCVTSI2SS r32, xmm, xmm [AVX512F] +// * VCVTSI2SS r64, xmm, xmm [AVX512F] +// +func (self *Program) VCVTSI2SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSI2SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTSI2SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTSI2SS takes 3 or 4 operands") + } + // VCVTSI2SS r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SS r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfa ^ (hlcode(v[1]) << 3)) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSI2SS m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x82, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSI2SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTSI2SS m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTSI2SS {er}, r32, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSI2SS {er}, r64, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfe ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSI2SS r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SS r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSI2SS") + } + return p +} + +// VCVTSS2SD performs "Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value". +// +// Mnemonic : VCVTSS2SD +// Supported forms : (5 forms) +// +// * VCVTSS2SD xmm, xmm, xmm [AVX] +// * VCVTSS2SD m32, xmm, xmm [AVX] +// * VCVTSS2SD m32, xmm, xmm{k}{z} [AVX512F] +// * VCVTSS2SD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VCVTSS2SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VCVTSS2SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSS2SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTSS2SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTSS2SD takes 3 or 4 operands") + } + // VCVTSS2SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2SD m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSS2SD m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTSS2SD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSS2SD") + } + return p +} + +// VCVTSS2SI performs "Convert Scalar Single-Precision FP Value to Dword Integer". +// +// Mnemonic : VCVTSS2SI +// Supported forms : (10 forms) +// +// * VCVTSS2SI xmm, r32 [AVX] +// * VCVTSS2SI m32, r32 [AVX] +// * VCVTSS2SI xmm, r64 [AVX] +// * VCVTSS2SI m32, r64 [AVX] +// * VCVTSS2SI m32, r32 [AVX512F] +// * VCVTSS2SI m32, r64 [AVX512F] +// * VCVTSS2SI {er}, xmm, r32 [AVX512F] +// * VCVTSS2SI {er}, xmm, r64 [AVX512F] +// * VCVTSS2SI xmm, r32 [AVX512F] +// * VCVTSS2SI xmm, r64 [AVX512F] +// +func (self *Program) VCVTSS2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSS2SI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTSS2SI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTSS2SI takes 2 or 3 operands") + } + // VCVTSS2SI xmm, r32 + if len(vv) == 0 && isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2SI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTSS2SI xmm, r64 + if len(vv) == 0 && isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfa) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2SI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x82, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTSS2SI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTSS2SI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTSS2SI {er}, xmm, r32 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2SI {er}, xmm, r64 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2SI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2SI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSS2SI") + } + return p +} + +// VCVTSS2USI performs "Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer". +// +// Mnemonic : VCVTSS2USI +// Supported forms : (6 forms) +// +// * VCVTSS2USI m32, r32 [AVX512F] +// * VCVTSS2USI m32, r64 [AVX512F] +// * VCVTSS2USI {er}, xmm, r32 [AVX512F] +// * VCVTSS2USI {er}, xmm, r64 [AVX512F] +// * VCVTSS2USI xmm, r32 [AVX512F] +// * VCVTSS2USI xmm, r64 [AVX512F] +// +func (self *Program) VCVTSS2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSS2USI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTSS2USI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTSS2USI takes 2 or 3 operands") + } + // VCVTSS2USI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTSS2USI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTSS2USI {er}, xmm, r32 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2USI {er}, xmm, r64 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2USI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2USI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSS2USI") + } + return p +} + +// VCVTTPD2DQ performs "Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : VCVTTPD2DQ +// Supported forms : (11 forms) +// +// * VCVTTPD2DQ xmm, xmm [AVX] +// * VCVTTPD2DQ ymm, xmm [AVX] +// * VCVTTPD2DQ m128, xmm [AVX] +// * VCVTTPD2DQ m256, xmm [AVX] +// * VCVTTPD2DQ m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTTPD2DQ {sae}, zmm, ymm{k}{z} [AVX512F] +// * VCVTTPD2DQ zmm, ymm{k}{z} [AVX512F] +// * VCVTTPD2DQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2DQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2DQ ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTTPD2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPD2DQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPD2DQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPD2DQ takes 2 or 3 operands") + } + // VCVTTPD2DQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2DQ ymm, xmm + if len(vv) == 0 && isYMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2DQ m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTPD2DQ m256, xmm + if len(vv) == 0 && isM256(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTPD2DQ m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPD2DQ {sae}, zmm, ymm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPD2DQ zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2DQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPD2DQ m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPD2DQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2DQ ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPD2DQ") + } + return p +} + +// VCVTTPD2QQ performs "Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers". +// +// Mnemonic : VCVTTPD2QQ +// Supported forms : (7 forms) +// +// * VCVTTPD2QQ m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2QQ {sae}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2QQ zmm, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2QQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2QQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2QQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTTPD2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPD2QQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPD2QQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPD2QQ takes 2 or 3 operands") + } + // VCVTTPD2QQ m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPD2QQ {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPD2QQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2QQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPD2QQ m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPD2QQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2QQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPD2QQ") + } + return p +} + +// VCVTTPD2UDQ performs "Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers". +// +// Mnemonic : VCVTTPD2UDQ +// Supported forms : (7 forms) +// +// * VCVTTPD2UDQ m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTTPD2UDQ {sae}, zmm, ymm{k}{z} [AVX512F] +// * VCVTTPD2UDQ zmm, ymm{k}{z} [AVX512F] +// * VCVTTPD2UDQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2UDQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2UDQ ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTTPD2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPD2UDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPD2UDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPD2UDQ takes 2 or 3 operands") + } + // VCVTTPD2UDQ m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPD2UDQ {sae}, zmm, ymm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPD2UDQ zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2UDQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPD2UDQ m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPD2UDQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2UDQ ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPD2UDQ") + } + return p +} + +// VCVTTPD2UQQ performs "Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers". +// +// Mnemonic : VCVTTPD2UQQ +// Supported forms : (7 forms) +// +// * VCVTTPD2UQQ m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2UQQ {sae}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2UQQ zmm, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2UQQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2UQQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2UQQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTTPD2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPD2UQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPD2UQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPD2UQQ takes 2 or 3 operands") + } + // VCVTTPD2UQQ m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPD2UQQ {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPD2UQQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2UQQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPD2UQQ m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPD2UQQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2UQQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPD2UQQ") + } + return p +} + +// VCVTTPS2DQ performs "Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : VCVTTPS2DQ +// Supported forms : (11 forms) +// +// * VCVTTPS2DQ xmm, xmm [AVX] +// * VCVTTPS2DQ m128, xmm [AVX] +// * VCVTTPS2DQ ymm, ymm [AVX] +// * VCVTTPS2DQ m256, ymm [AVX] +// * VCVTTPS2DQ m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTTPS2DQ {sae}, zmm, zmm{k}{z} [AVX512F] +// * VCVTTPS2DQ zmm, zmm{k}{z} [AVX512F] +// * VCVTTPS2DQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2DQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2DQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTTPS2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPS2DQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPS2DQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPS2DQ takes 2 or 3 operands") + } + // VCVTTPS2DQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2DQ m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTPS2DQ ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2DQ m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTPS2DQ m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPS2DQ {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPS2DQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2DQ m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPS2DQ m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPS2DQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2DQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPS2DQ") + } + return p +} + +// VCVTTPS2QQ performs "Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values". +// +// Mnemonic : VCVTTPS2QQ +// Supported forms : (7 forms) +// +// * VCVTTPS2QQ m256/m32bcst, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2QQ {sae}, ymm, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2QQ ymm, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2QQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2QQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2QQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTTPS2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPS2QQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPS2QQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPS2QQ takes 2 or 3 operands") + } + // VCVTTPS2QQ m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPS2QQ {sae}, ymm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPS2QQ ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2QQ m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTPS2QQ m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPS2QQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2QQ xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPS2QQ") + } + return p +} + +// VCVTTPS2UDQ performs "Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values". +// +// Mnemonic : VCVTTPS2UDQ +// Supported forms : (7 forms) +// +// * VCVTTPS2UDQ m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTTPS2UDQ {sae}, zmm, zmm{k}{z} [AVX512F] +// * VCVTTPS2UDQ zmm, zmm{k}{z} [AVX512F] +// * VCVTTPS2UDQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2UDQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2UDQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTTPS2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPS2UDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPS2UDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPS2UDQ takes 2 or 3 operands") + } + // VCVTTPS2UDQ m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPS2UDQ {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPS2UDQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2UDQ m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPS2UDQ m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPS2UDQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2UDQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPS2UDQ") + } + return p +} + +// VCVTTPS2UQQ performs "Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values". +// +// Mnemonic : VCVTTPS2UQQ +// Supported forms : (7 forms) +// +// * VCVTTPS2UQQ m256/m32bcst, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2UQQ {sae}, ymm, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2UQQ ymm, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2UQQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2UQQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2UQQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTTPS2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPS2UQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPS2UQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPS2UQQ takes 2 or 3 operands") + } + // VCVTTPS2UQQ m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPS2UQQ {sae}, ymm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPS2UQQ ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2UQQ m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTPS2UQQ m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPS2UQQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2UQQ xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPS2UQQ") + } + return p +} + +// VCVTTSD2SI performs "Convert with Truncation Scalar Double-Precision FP Value to Signed Integer". +// +// Mnemonic : VCVTTSD2SI +// Supported forms : (10 forms) +// +// * VCVTTSD2SI xmm, r32 [AVX] +// * VCVTTSD2SI m64, r32 [AVX] +// * VCVTTSD2SI xmm, r64 [AVX] +// * VCVTTSD2SI m64, r64 [AVX] +// * VCVTTSD2SI m64, r32 [AVX512F] +// * VCVTTSD2SI m64, r64 [AVX512F] +// * VCVTTSD2SI {sae}, xmm, r32 [AVX512F] +// * VCVTTSD2SI {sae}, xmm, r64 [AVX512F] +// * VCVTTSD2SI xmm, r32 [AVX512F] +// * VCVTTSD2SI xmm, r64 [AVX512F] +// +func (self *Program) VCVTTSD2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTSD2SI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTSD2SI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTSD2SI takes 2 or 3 operands") + } + // VCVTTSD2SI xmm, r32 + if len(vv) == 0 && isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), v[0], 0) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSD2SI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTSD2SI xmm, r64 + if len(vv) == 0 && isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSD2SI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x83, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTSD2SI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTSD2SI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTSD2SI {sae}, xmm, r32 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit(0x18) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSD2SI {sae}, xmm, r64 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit(0x18) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSD2SI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit(0x48) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSD2SI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit(0x48) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTSD2SI") + } + return p +} + +// VCVTTSD2USI performs "Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer". +// +// Mnemonic : VCVTTSD2USI +// Supported forms : (6 forms) +// +// * VCVTTSD2USI m64, r32 [AVX512F] +// * VCVTTSD2USI m64, r64 [AVX512F] +// * VCVTTSD2USI {sae}, xmm, r32 [AVX512F] +// * VCVTTSD2USI {sae}, xmm, r64 [AVX512F] +// * VCVTTSD2USI xmm, r32 [AVX512F] +// * VCVTTSD2USI xmm, r64 [AVX512F] +// +func (self *Program) VCVTTSD2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTSD2USI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTSD2USI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTSD2USI takes 2 or 3 operands") + } + // VCVTTSD2USI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTSD2USI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTSD2USI {sae}, xmm, r32 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit(0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSD2USI {sae}, xmm, r64 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit(0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSD2USI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit(0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSD2USI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit(0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTSD2USI") + } + return p +} + +// VCVTTSS2SI performs "Convert with Truncation Scalar Single-Precision FP Value to Dword Integer". +// +// Mnemonic : VCVTTSS2SI +// Supported forms : (10 forms) +// +// * VCVTTSS2SI xmm, r32 [AVX] +// * VCVTTSS2SI m32, r32 [AVX] +// * VCVTTSS2SI xmm, r64 [AVX] +// * VCVTTSS2SI m32, r64 [AVX] +// * VCVTTSS2SI m32, r32 [AVX512F] +// * VCVTTSS2SI m32, r64 [AVX512F] +// * VCVTTSS2SI {sae}, xmm, r32 [AVX512F] +// * VCVTTSS2SI {sae}, xmm, r64 [AVX512F] +// * VCVTTSS2SI xmm, r32 [AVX512F] +// * VCVTTSS2SI xmm, r64 [AVX512F] +// +func (self *Program) VCVTTSS2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTSS2SI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTSS2SI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTSS2SI takes 2 or 3 operands") + } + // VCVTTSS2SI xmm, r32 + if len(vv) == 0 && isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSS2SI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTSS2SI xmm, r64 + if len(vv) == 0 && isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfa) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSS2SI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x82, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTSS2SI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTTSS2SI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTTSS2SI {sae}, xmm, r32 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit(0x18) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSS2SI {sae}, xmm, r64 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit(0x18) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSS2SI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSS2SI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTSS2SI") + } + return p +} + +// VCVTTSS2USI performs "Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer". +// +// Mnemonic : VCVTTSS2USI +// Supported forms : (6 forms) +// +// * VCVTTSS2USI m32, r32 [AVX512F] +// * VCVTTSS2USI m32, r64 [AVX512F] +// * VCVTTSS2USI {sae}, xmm, r32 [AVX512F] +// * VCVTTSS2USI {sae}, xmm, r64 [AVX512F] +// * VCVTTSS2USI xmm, r32 [AVX512F] +// * VCVTTSS2USI xmm, r64 [AVX512F] +// +func (self *Program) VCVTTSS2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTSS2USI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTSS2USI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTSS2USI takes 2 or 3 operands") + } + // VCVTTSS2USI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTTSS2USI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTTSS2USI {sae}, xmm, r32 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit(0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSS2USI {sae}, xmm, r64 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit(0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSS2USI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSS2USI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTSS2USI") + } + return p +} + +// VCVTUDQ2PD performs "Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VCVTUDQ2PD +// Supported forms : (6 forms) +// +// * VCVTUDQ2PD m256/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PD ymm, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PD m64/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PD m128/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTUDQ2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VCVTUDQ2PD", 2, Operands { v0, v1 }) + // VCVTUDQ2PD m256/m32bcst, zmm{k}{z} + if isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTUDQ2PD ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUDQ2PD m64/m32bcst, xmm{k}{z} + if isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTUDQ2PD m128/m32bcst, ymm{k}{z} + if isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTUDQ2PD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUDQ2PD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUDQ2PD") + } + return p +} + +// VCVTUDQ2PS performs "Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VCVTUDQ2PS +// Supported forms : (7 forms) +// +// * VCVTUDQ2PS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PS {er}, zmm, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PS zmm, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTUDQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUDQ2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTUDQ2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTUDQ2PS takes 2 or 3 operands") + } + // VCVTUDQ2PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTUDQ2PS {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTUDQ2PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUDQ2PS m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTUDQ2PS m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTUDQ2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUDQ2PS ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUDQ2PS") + } + return p +} + +// VCVTUQQ2PD performs "Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VCVTUQQ2PD +// Supported forms : (7 forms) +// +// * VCVTUQQ2PD m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTUQQ2PD {er}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTUQQ2PD zmm, zmm{k}{z} [AVX512DQ] +// * VCVTUQQ2PD m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PD m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PD xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PD ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTUQQ2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUQQ2PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTUQQ2PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTUQQ2PD takes 2 or 3 operands") + } + // VCVTUQQ2PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTUQQ2PD {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTUQQ2PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUQQ2PD m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTUQQ2PD m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTUQQ2PD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUQQ2PD ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUQQ2PD") + } + return p +} + +// VCVTUQQ2PS performs "Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VCVTUQQ2PS +// Supported forms : (7 forms) +// +// * VCVTUQQ2PS m512/m64bcst, ymm{k}{z} [AVX512DQ] +// * VCVTUQQ2PS {er}, zmm, ymm{k}{z} [AVX512DQ] +// * VCVTUQQ2PS zmm, ymm{k}{z} [AVX512DQ] +// * VCVTUQQ2PS m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PS m256/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PS xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PS ymm, xmm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTUQQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUQQ2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTUQQ2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTUQQ2PS takes 2 or 3 operands") + } + // VCVTUQQ2PS m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTUQQ2PS {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTUQQ2PS zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUQQ2PS m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTUQQ2PS m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTUQQ2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUQQ2PS ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUQQ2PS") + } + return p +} + +// VCVTUSI2SD performs "Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VCVTUSI2SD +// Supported forms : (5 forms) +// +// * VCVTUSI2SD r32, xmm, xmm [AVX512F] +// * VCVTUSI2SD m32, xmm, xmm [AVX512F] +// * VCVTUSI2SD m64, xmm, xmm [AVX512F] +// * VCVTUSI2SD {er}, r64, xmm, xmm [AVX512F] +// * VCVTUSI2SD r64, xmm, xmm [AVX512F] +// +func (self *Program) VCVTUSI2SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUSI2SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTUSI2SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTUSI2SD takes 3 or 4 operands") + } + // VCVTUSI2SD r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTUSI2SD m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x7b) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTUSI2SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x7b) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTUSI2SD {er}, r64, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTUSI2SD r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUSI2SD") + } + return p +} + +// VCVTUSI2SS performs "Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VCVTUSI2SS +// Supported forms : (6 forms) +// +// * VCVTUSI2SS m32, xmm, xmm [AVX512F] +// * VCVTUSI2SS m64, xmm, xmm [AVX512F] +// * VCVTUSI2SS {er}, r32, xmm, xmm [AVX512F] +// * VCVTUSI2SS {er}, r64, xmm, xmm [AVX512F] +// * VCVTUSI2SS r32, xmm, xmm [AVX512F] +// * VCVTUSI2SS r64, xmm, xmm [AVX512F] +// +func (self *Program) VCVTUSI2SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUSI2SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTUSI2SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTUSI2SS takes 3 or 4 operands") + } + // VCVTUSI2SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x7b) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTUSI2SS m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x7b) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTUSI2SS {er}, r32, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTUSI2SS {er}, r64, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfe ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTUSI2SS r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTUSI2SS r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUSI2SS") + } + return p +} + +// VDBPSADBW performs "Double Block Packed Sum-Absolute-Differences on Unsigned Bytes". +// +// Mnemonic : VDBPSADBW +// Supported forms : (6 forms) +// +// * VDBPSADBW imm8, zmm, zmm, zmm{k}{z} [AVX512BW] +// * VDBPSADBW imm8, m512, zmm, zmm{k}{z} [AVX512BW] +// * VDBPSADBW imm8, xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VDBPSADBW imm8, m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VDBPSADBW imm8, ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VDBPSADBW imm8, m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VDBPSADBW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VDBPSADBW", 4, Operands { v0, v1, v2, v3 }) + // VDBPSADBW imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, m512, zmm, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, m128, xmm, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, m256, ymm, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDBPSADBW") + } + return p +} + +// VDIVPD performs "Divide Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VDIVPD +// Supported forms : (11 forms) +// +// * VDIVPD xmm, xmm, xmm [AVX] +// * VDIVPD m128, xmm, xmm [AVX] +// * VDIVPD ymm, ymm, ymm [AVX] +// * VDIVPD m256, ymm, ymm [AVX] +// * VDIVPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VDIVPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VDIVPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VDIVPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VDIVPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VDIVPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VDIVPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VDIVPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VDIVPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VDIVPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VDIVPD takes 3 or 4 operands") + } + // VDIVPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VDIVPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VDIVPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VDIVPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VDIVPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDIVPD") + } + return p +} + +// VDIVPS performs "Divide Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VDIVPS +// Supported forms : (11 forms) +// +// * VDIVPS xmm, xmm, xmm [AVX] +// * VDIVPS m128, xmm, xmm [AVX] +// * VDIVPS ymm, ymm, ymm [AVX] +// * VDIVPS m256, ymm, ymm [AVX] +// * VDIVPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VDIVPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VDIVPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VDIVPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VDIVPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VDIVPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VDIVPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VDIVPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VDIVPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VDIVPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VDIVPS takes 3 or 4 operands") + } + // VDIVPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VDIVPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VDIVPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VDIVPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VDIVPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDIVPS") + } + return p +} + +// VDIVSD performs "Divide Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VDIVSD +// Supported forms : (5 forms) +// +// * VDIVSD xmm, xmm, xmm [AVX] +// * VDIVSD m64, xmm, xmm [AVX] +// * VDIVSD m64, xmm, xmm{k}{z} [AVX512F] +// * VDIVSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VDIVSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VDIVSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VDIVSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VDIVSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VDIVSD takes 3 or 4 operands") + } + // VDIVSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VDIVSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VDIVSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDIVSD") + } + return p +} + +// VDIVSS performs "Divide Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VDIVSS +// Supported forms : (5 forms) +// +// * VDIVSS xmm, xmm, xmm [AVX] +// * VDIVSS m32, xmm, xmm [AVX] +// * VDIVSS m32, xmm, xmm{k}{z} [AVX512F] +// * VDIVSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VDIVSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VDIVSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VDIVSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VDIVSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VDIVSS takes 3 or 4 operands") + } + // VDIVSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VDIVSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VDIVSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDIVSS") + } + return p +} + +// VDPPD performs "Dot Product of Packed Double Precision Floating-Point Values". +// +// Mnemonic : VDPPD +// Supported forms : (2 forms) +// +// * VDPPD imm8, xmm, xmm, xmm [AVX] +// * VDPPD imm8, m128, xmm, xmm [AVX] +// +func (self *Program) VDPPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VDPPD", 4, Operands { v0, v1, v2, v3 }) + // VDPPD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x41) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDPPD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x41) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDPPD") + } + return p +} + +// VDPPS performs "Dot Product of Packed Single Precision Floating-Point Values". +// +// Mnemonic : VDPPS +// Supported forms : (4 forms) +// +// * VDPPS imm8, xmm, xmm, xmm [AVX] +// * VDPPS imm8, m128, xmm, xmm [AVX] +// * VDPPS imm8, ymm, ymm, ymm [AVX] +// * VDPPS imm8, m256, ymm, ymm [AVX] +// +func (self *Program) VDPPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VDPPS", 4, Operands { v0, v1, v2, v3 }) + // VDPPS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x40) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDPPS imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x40) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VDPPS imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x40) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDPPS imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x40) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDPPS") + } + return p +} + +// VEXP2PD performs "Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error". +// +// Mnemonic : VEXP2PD +// Supported forms : (3 forms) +// +// * VEXP2PD m512/m64bcst, zmm{k}{z} [AVX512ER] +// * VEXP2PD {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VEXP2PD zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VEXP2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VEXP2PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VEXP2PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VEXP2PD takes 2 or 3 operands") + } + // VEXP2PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc8) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VEXP2PD {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VEXP2PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXP2PD") + } + return p +} + +// VEXP2PS performs "Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error". +// +// Mnemonic : VEXP2PS +// Supported forms : (3 forms) +// +// * VEXP2PS m512/m32bcst, zmm{k}{z} [AVX512ER] +// * VEXP2PS {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VEXP2PS zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VEXP2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VEXP2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VEXP2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VEXP2PS takes 2 or 3 operands") + } + // VEXP2PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc8) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VEXP2PS {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VEXP2PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXP2PS") + } + return p +} + +// VEXPANDPD performs "Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory". +// +// Mnemonic : VEXPANDPD +// Supported forms : (6 forms) +// +// * VEXPANDPD zmm, zmm{k}{z} [AVX512F] +// * VEXPANDPD m512, zmm{k}{z} [AVX512F] +// * VEXPANDPD xmm, xmm{k}{z} [AVX512VL] +// * VEXPANDPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VEXPANDPD m128, xmm{k}{z} [AVX512VL] +// * VEXPANDPD m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VEXPANDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VEXPANDPD", 2, Operands { v0, v1 }) + // VEXPANDPD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPD m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VEXPANDPD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPD m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VEXPANDPD m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VEXPANDPD") + } + return p +} + +// VEXPANDPS performs "Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory". +// +// Mnemonic : VEXPANDPS +// Supported forms : (6 forms) +// +// * VEXPANDPS zmm, zmm{k}{z} [AVX512F] +// * VEXPANDPS m512, zmm{k}{z} [AVX512F] +// * VEXPANDPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VEXPANDPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VEXPANDPS m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VEXPANDPS m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VEXPANDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VEXPANDPS", 2, Operands { v0, v1 }) + // VEXPANDPS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPS m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VEXPANDPS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPS m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VEXPANDPS m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VEXPANDPS") + } + return p +} + +// VEXTRACTF128 performs "Extract Packed Floating-Point Values". +// +// Mnemonic : VEXTRACTF128 +// Supported forms : (2 forms) +// +// * VEXTRACTF128 imm8, ymm, xmm [AVX] +// * VEXTRACTF128 imm8, ymm, m128 [AVX] +// +func (self *Program) VEXTRACTF128(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF128", 3, Operands { v0, v1, v2 }) + // VEXTRACTF128 imm8, ymm, xmm + if isImm8(v0) && isYMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF128 imm8, ymm, m128 + if isImm8(v0) && isYMM(v1) && isM128(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[1]), addr(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF128") + } + return p +} + +// VEXTRACTF32X4 performs "Extract 128 Bits of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VEXTRACTF32X4 +// Supported forms : (4 forms) +// +// * VEXTRACTF32X4 imm8, zmm, xmm{k}{z} [AVX512F] +// * VEXTRACTF32X4 imm8, zmm, m128{k}{z} [AVX512F] +// * VEXTRACTF32X4 imm8, ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VEXTRACTF32X4 imm8, ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VEXTRACTF32X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF32X4", 3, Operands { v0, v1, v2 }) + // VEXTRACTF32X4 imm8, zmm, xmm{k}{z} + if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF32X4 imm8, zmm, m128{k}{z} + if isImm8(v0) && isZMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF32X4 imm8, ymm, xmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF32X4 imm8, ymm, m128{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF32X4") + } + return p +} + +// VEXTRACTF32X8 performs "Extract 256 Bits of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VEXTRACTF32X8 +// Supported forms : (2 forms) +// +// * VEXTRACTF32X8 imm8, zmm, ymm{k}{z} [AVX512DQ] +// * VEXTRACTF32X8 imm8, zmm, m256{k}{z} [AVX512DQ] +// +func (self *Program) VEXTRACTF32X8(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF32X8", 3, Operands { v0, v1, v2 }) + // VEXTRACTF32X8 imm8, zmm, ymm{k}{z} + if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF32X8 imm8, zmm, m256{k}{z} + if isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF32X8") + } + return p +} + +// VEXTRACTF64X2 performs "Extract 128 Bits of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VEXTRACTF64X2 +// Supported forms : (4 forms) +// +// * VEXTRACTF64X2 imm8, zmm, xmm{k}{z} [AVX512DQ] +// * VEXTRACTF64X2 imm8, zmm, m128{k}{z} [AVX512DQ] +// * VEXTRACTF64X2 imm8, ymm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VEXTRACTF64X2 imm8, ymm, m128{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VEXTRACTF64X2(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF64X2", 3, Operands { v0, v1, v2 }) + // VEXTRACTF64X2 imm8, zmm, xmm{k}{z} + if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF64X2 imm8, zmm, m128{k}{z} + if isImm8(v0) && isZMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF64X2 imm8, ymm, xmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF64X2 imm8, ymm, m128{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF64X2") + } + return p +} + +// VEXTRACTF64X4 performs "Extract 256 Bits of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VEXTRACTF64X4 +// Supported forms : (2 forms) +// +// * VEXTRACTF64X4 imm8, zmm, ymm{k}{z} [AVX512F] +// * VEXTRACTF64X4 imm8, zmm, m256{k}{z} [AVX512F] +// +func (self *Program) VEXTRACTF64X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF64X4", 3, Operands { v0, v1, v2 }) + // VEXTRACTF64X4 imm8, zmm, ymm{k}{z} + if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF64X4 imm8, zmm, m256{k}{z} + if isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF64X4") + } + return p +} + +// VEXTRACTI128 performs "Extract Packed Integer Values". +// +// Mnemonic : VEXTRACTI128 +// Supported forms : (2 forms) +// +// * VEXTRACTI128 imm8, ymm, xmm [AVX2] +// * VEXTRACTI128 imm8, ymm, m128 [AVX2] +// +func (self *Program) VEXTRACTI128(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI128", 3, Operands { v0, v1, v2 }) + // VEXTRACTI128 imm8, ymm, xmm + if isImm8(v0) && isYMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI128 imm8, ymm, m128 + if isImm8(v0) && isYMM(v1) && isM128(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[1]), addr(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI128") + } + return p +} + +// VEXTRACTI32X4 performs "Extract 128 Bits of Packed Doubleword Integer Values". +// +// Mnemonic : VEXTRACTI32X4 +// Supported forms : (4 forms) +// +// * VEXTRACTI32X4 imm8, zmm, xmm{k}{z} [AVX512F] +// * VEXTRACTI32X4 imm8, zmm, m128{k}{z} [AVX512F] +// * VEXTRACTI32X4 imm8, ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VEXTRACTI32X4 imm8, ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VEXTRACTI32X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI32X4", 3, Operands { v0, v1, v2 }) + // VEXTRACTI32X4 imm8, zmm, xmm{k}{z} + if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI32X4 imm8, zmm, m128{k}{z} + if isImm8(v0) && isZMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI32X4 imm8, ymm, xmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI32X4 imm8, ymm, m128{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI32X4") + } + return p +} + +// VEXTRACTI32X8 performs "Extract 256 Bits of Packed Doubleword Integer Values". +// +// Mnemonic : VEXTRACTI32X8 +// Supported forms : (2 forms) +// +// * VEXTRACTI32X8 imm8, zmm, ymm{k}{z} [AVX512DQ] +// * VEXTRACTI32X8 imm8, zmm, m256{k}{z} [AVX512DQ] +// +func (self *Program) VEXTRACTI32X8(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI32X8", 3, Operands { v0, v1, v2 }) + // VEXTRACTI32X8 imm8, zmm, ymm{k}{z} + if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI32X8 imm8, zmm, m256{k}{z} + if isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI32X8") + } + return p +} + +// VEXTRACTI64X2 performs "Extract 128 Bits of Packed Quadword Integer Values". +// +// Mnemonic : VEXTRACTI64X2 +// Supported forms : (4 forms) +// +// * VEXTRACTI64X2 imm8, zmm, xmm{k}{z} [AVX512DQ] +// * VEXTRACTI64X2 imm8, zmm, m128{k}{z} [AVX512DQ] +// * VEXTRACTI64X2 imm8, ymm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VEXTRACTI64X2 imm8, ymm, m128{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VEXTRACTI64X2(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI64X2", 3, Operands { v0, v1, v2 }) + // VEXTRACTI64X2 imm8, zmm, xmm{k}{z} + if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI64X2 imm8, zmm, m128{k}{z} + if isImm8(v0) && isZMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI64X2 imm8, ymm, xmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI64X2 imm8, ymm, m128{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI64X2") + } + return p +} + +// VEXTRACTI64X4 performs "Extract 256 Bits of Packed Quadword Integer Values". +// +// Mnemonic : VEXTRACTI64X4 +// Supported forms : (2 forms) +// +// * VEXTRACTI64X4 imm8, zmm, ymm{k}{z} [AVX512F] +// * VEXTRACTI64X4 imm8, zmm, m256{k}{z} [AVX512F] +// +func (self *Program) VEXTRACTI64X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI64X4", 3, Operands { v0, v1, v2 }) + // VEXTRACTI64X4 imm8, zmm, ymm{k}{z} + if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI64X4 imm8, zmm, m256{k}{z} + if isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI64X4") + } + return p +} + +// VEXTRACTPS performs "Extract Packed Single Precision Floating-Point Value". +// +// Mnemonic : VEXTRACTPS +// Supported forms : (4 forms) +// +// * VEXTRACTPS imm8, xmm, r32 [AVX] +// * VEXTRACTPS imm8, xmm, m32 [AVX] +// * VEXTRACTPS imm8, xmm, r32 [AVX512F] +// * VEXTRACTPS imm8, xmm, m32 [AVX512F] +// +func (self *Program) VEXTRACTPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTPS", 3, Operands { v0, v1, v2 }) + // VEXTRACTPS imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTPS imm8, xmm, m32 + if isImm8(v0) && isXMM(v1) && isM32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTPS imm8, xmm, r32 + if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTPS imm8, xmm, m32 + if isImm8(v0) && isEVEXXMM(v1) && isM32(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[2]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTPS") + } + return p +} + +// VFIXUPIMMPD performs "Fix Up Special Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFIXUPIMMPD +// Supported forms : (7 forms) +// +// * VFIXUPIMMPD imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPD imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPD imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPD imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFIXUPIMMPD imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFIXUPIMMPD imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFIXUPIMMPD imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFIXUPIMMPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFIXUPIMMPD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VFIXUPIMMPD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VFIXUPIMMPD takes 4 or 5 operands") + } + // VFIXUPIMMPD imm8, m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x54) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFIXUPIMMPD") + } + return p +} + +// VFIXUPIMMPS performs "Fix Up Special Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFIXUPIMMPS +// Supported forms : (7 forms) +// +// * VFIXUPIMMPS imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPS imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPS imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPS imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512VL] +// * VFIXUPIMMPS imm8, xmm, xmm, xmm{k}{z} [AVX512VL] +// * VFIXUPIMMPS imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFIXUPIMMPS imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFIXUPIMMPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFIXUPIMMPS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VFIXUPIMMPS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VFIXUPIMMPS takes 4 or 5 operands") + } + // VFIXUPIMMPS imm8, m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x54) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFIXUPIMMPS") + } + return p +} + +// VFIXUPIMMSD performs "Fix Up Special Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VFIXUPIMMSD +// Supported forms : (3 forms) +// +// * VFIXUPIMMSD imm8, m64, xmm, xmm{k}{z} [AVX512F] +// * VFIXUPIMMSD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFIXUPIMMSD imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFIXUPIMMSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFIXUPIMMSD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VFIXUPIMMSD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VFIXUPIMMSD takes 4 or 5 operands") + } + // VFIXUPIMMSD imm8, m64, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x55) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMSD imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x55) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMSD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x55) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFIXUPIMMSD") + } + return p +} + +// VFIXUPIMMSS performs "Fix Up Special Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VFIXUPIMMSS +// Supported forms : (3 forms) +// +// * VFIXUPIMMSS imm8, m32, xmm, xmm{k}{z} [AVX512F] +// * VFIXUPIMMSS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFIXUPIMMSS imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFIXUPIMMSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFIXUPIMMSS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VFIXUPIMMSS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VFIXUPIMMSS takes 4 or 5 operands") + } + // VFIXUPIMMSS imm8, m32, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x55) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMSS imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x55) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMSS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x55) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFIXUPIMMSS") + } + return p +} + +// VFMADD132PD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD132PD +// Supported forms : (11 forms) +// +// * VFMADD132PD xmm, xmm, xmm [FMA3] +// * VFMADD132PD m128, xmm, xmm [FMA3] +// * VFMADD132PD ymm, ymm, ymm [FMA3] +// * VFMADD132PD m256, ymm, ymm [FMA3] +// * VFMADD132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD132PD takes 3 or 4 operands") + } + // VFMADD132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x98) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD132PD") + } + return p +} + +// VFMADD132PS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD132PS +// Supported forms : (11 forms) +// +// * VFMADD132PS xmm, xmm, xmm [FMA3] +// * VFMADD132PS m128, xmm, xmm [FMA3] +// * VFMADD132PS ymm, ymm, ymm [FMA3] +// * VFMADD132PS m256, ymm, ymm [FMA3] +// * VFMADD132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD132PS takes 3 or 4 operands") + } + // VFMADD132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x98) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD132PS") + } + return p +} + +// VFMADD132SD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD132SD +// Supported forms : (5 forms) +// +// * VFMADD132SD xmm, xmm, xmm [FMA3] +// * VFMADD132SD m64, xmm, xmm [FMA3] +// * VFMADD132SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMADD132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD132SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD132SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD132SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD132SD takes 3 or 4 operands") + } + // VFMADD132SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMADD132SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x99) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD132SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD132SD") + } + return p +} + +// VFMADD132SS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD132SS +// Supported forms : (5 forms) +// +// * VFMADD132SS xmm, xmm, xmm [FMA3] +// * VFMADD132SS m32, xmm, xmm [FMA3] +// * VFMADD132SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMADD132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD132SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD132SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD132SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD132SS takes 3 or 4 operands") + } + // VFMADD132SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMADD132SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x99) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD132SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD132SS") + } + return p +} + +// VFMADD213PD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD213PD +// Supported forms : (11 forms) +// +// * VFMADD213PD xmm, xmm, xmm [FMA3] +// * VFMADD213PD m128, xmm, xmm [FMA3] +// * VFMADD213PD ymm, ymm, ymm [FMA3] +// * VFMADD213PD m256, ymm, ymm [FMA3] +// * VFMADD213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD213PD takes 3 or 4 operands") + } + // VFMADD213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD213PD") + } + return p +} + +// VFMADD213PS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD213PS +// Supported forms : (11 forms) +// +// * VFMADD213PS xmm, xmm, xmm [FMA3] +// * VFMADD213PS m128, xmm, xmm [FMA3] +// * VFMADD213PS ymm, ymm, ymm [FMA3] +// * VFMADD213PS m256, ymm, ymm [FMA3] +// * VFMADD213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD213PS takes 3 or 4 operands") + } + // VFMADD213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD213PS") + } + return p +} + +// VFMADD213SD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD213SD +// Supported forms : (5 forms) +// +// * VFMADD213SD xmm, xmm, xmm [FMA3] +// * VFMADD213SD m64, xmm, xmm [FMA3] +// * VFMADD213SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMADD213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD213SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD213SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD213SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD213SD takes 3 or 4 operands") + } + // VFMADD213SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xa9) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMADD213SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD213SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD213SD") + } + return p +} + +// VFMADD213SS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD213SS +// Supported forms : (5 forms) +// +// * VFMADD213SS xmm, xmm, xmm [FMA3] +// * VFMADD213SS m32, xmm, xmm [FMA3] +// * VFMADD213SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMADD213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD213SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD213SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD213SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD213SS takes 3 or 4 operands") + } + // VFMADD213SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xa9) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMADD213SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD213SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD213SS") + } + return p +} + +// VFMADD231PD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD231PD +// Supported forms : (11 forms) +// +// * VFMADD231PD xmm, xmm, xmm [FMA3] +// * VFMADD231PD m128, xmm, xmm [FMA3] +// * VFMADD231PD ymm, ymm, ymm [FMA3] +// * VFMADD231PD m256, ymm, ymm [FMA3] +// * VFMADD231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD231PD takes 3 or 4 operands") + } + // VFMADD231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD231PD") + } + return p +} + +// VFMADD231PS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD231PS +// Supported forms : (11 forms) +// +// * VFMADD231PS xmm, xmm, xmm [FMA3] +// * VFMADD231PS m128, xmm, xmm [FMA3] +// * VFMADD231PS ymm, ymm, ymm [FMA3] +// * VFMADD231PS m256, ymm, ymm [FMA3] +// * VFMADD231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD231PS takes 3 or 4 operands") + } + // VFMADD231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD231PS") + } + return p +} + +// VFMADD231SD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD231SD +// Supported forms : (5 forms) +// +// * VFMADD231SD xmm, xmm, xmm [FMA3] +// * VFMADD231SD m64, xmm, xmm [FMA3] +// * VFMADD231SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMADD231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD231SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD231SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD231SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD231SD takes 3 or 4 operands") + } + // VFMADD231SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xb9) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMADD231SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD231SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD231SD") + } + return p +} + +// VFMADD231SS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD231SS +// Supported forms : (5 forms) +// +// * VFMADD231SS xmm, xmm, xmm [FMA3] +// * VFMADD231SS m32, xmm, xmm [FMA3] +// * VFMADD231SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMADD231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD231SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD231SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD231SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD231SS takes 3 or 4 operands") + } + // VFMADD231SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xb9) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMADD231SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD231SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD231SS") + } + return p +} + +// VFMADDPD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDPD +// Supported forms : (6 forms) +// +// * VFMADDPD xmm, xmm, xmm, xmm [FMA4] +// * VFMADDPD m128, xmm, xmm, xmm [FMA4] +// * VFMADDPD xmm, m128, xmm, xmm [FMA4] +// * VFMADDPD ymm, ymm, ymm, ymm [FMA4] +// * VFMADDPD m256, ymm, ymm, ymm [FMA4] +// * VFMADDPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMADDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDPD", 4, Operands { v0, v1, v2, v3 }) + // VFMADDPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x69) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x69) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x69) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x69) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x69) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x69) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x69) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x69) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDPD") + } + return p +} + +// VFMADDPS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDPS +// Supported forms : (6 forms) +// +// * VFMADDPS xmm, xmm, xmm, xmm [FMA4] +// * VFMADDPS m128, xmm, xmm, xmm [FMA4] +// * VFMADDPS xmm, m128, xmm, xmm [FMA4] +// * VFMADDPS ymm, ymm, ymm, ymm [FMA4] +// * VFMADDPS m256, ymm, ymm, ymm [FMA4] +// * VFMADDPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMADDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDPS", 4, Operands { v0, v1, v2, v3 }) + // VFMADDPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x68) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x68) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x68) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x68) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x68) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x68) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x68) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x68) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDPS") + } + return p +} + +// VFMADDSD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSD +// Supported forms : (3 forms) +// +// * VFMADDSD xmm, xmm, xmm, xmm [FMA4] +// * VFMADDSD m64, xmm, xmm, xmm [FMA4] +// * VFMADDSD xmm, m64, xmm, xmm [FMA4] +// +func (self *Program) VFMADDSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDSD", 4, Operands { v0, v1, v2, v3 }) + // VFMADDSD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSD m64, xmm, xmm, xmm + if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6b) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSD xmm, m64, xmm, xmm + if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSD") + } + return p +} + +// VFMADDSS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSS +// Supported forms : (3 forms) +// +// * VFMADDSS xmm, xmm, xmm, xmm [FMA4] +// * VFMADDSS m32, xmm, xmm, xmm [FMA4] +// * VFMADDSS xmm, m32, xmm, xmm [FMA4] +// +func (self *Program) VFMADDSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDSS", 4, Operands { v0, v1, v2, v3 }) + // VFMADDSS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSS m32, xmm, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6a) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSS xmm, m32, xmm, xmm + if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSS") + } + return p +} + +// VFMADDSUB132PD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB132PD +// Supported forms : (11 forms) +// +// * VFMADDSUB132PD xmm, xmm, xmm [FMA3] +// * VFMADDSUB132PD m128, xmm, xmm [FMA3] +// * VFMADDSUB132PD ymm, ymm, ymm [FMA3] +// * VFMADDSUB132PD m256, ymm, ymm [FMA3] +// * VFMADDSUB132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB132PD takes 3 or 4 operands") + } + // VFMADDSUB132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x96) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB132PD") + } + return p +} + +// VFMADDSUB132PS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB132PS +// Supported forms : (11 forms) +// +// * VFMADDSUB132PS xmm, xmm, xmm [FMA3] +// * VFMADDSUB132PS m128, xmm, xmm [FMA3] +// * VFMADDSUB132PS ymm, ymm, ymm [FMA3] +// * VFMADDSUB132PS m256, ymm, ymm [FMA3] +// * VFMADDSUB132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB132PS takes 3 or 4 operands") + } + // VFMADDSUB132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x96) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB132PS") + } + return p +} + +// VFMADDSUB213PD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB213PD +// Supported forms : (11 forms) +// +// * VFMADDSUB213PD xmm, xmm, xmm [FMA3] +// * VFMADDSUB213PD m128, xmm, xmm [FMA3] +// * VFMADDSUB213PD ymm, ymm, ymm [FMA3] +// * VFMADDSUB213PD m256, ymm, ymm [FMA3] +// * VFMADDSUB213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB213PD takes 3 or 4 operands") + } + // VFMADDSUB213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB213PD") + } + return p +} + +// VFMADDSUB213PS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB213PS +// Supported forms : (11 forms) +// +// * VFMADDSUB213PS xmm, xmm, xmm [FMA3] +// * VFMADDSUB213PS m128, xmm, xmm [FMA3] +// * VFMADDSUB213PS ymm, ymm, ymm [FMA3] +// * VFMADDSUB213PS m256, ymm, ymm [FMA3] +// * VFMADDSUB213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB213PS takes 3 or 4 operands") + } + // VFMADDSUB213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB213PS") + } + return p +} + +// VFMADDSUB231PD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB231PD +// Supported forms : (11 forms) +// +// * VFMADDSUB231PD xmm, xmm, xmm [FMA3] +// * VFMADDSUB231PD m128, xmm, xmm [FMA3] +// * VFMADDSUB231PD ymm, ymm, ymm [FMA3] +// * VFMADDSUB231PD m256, ymm, ymm [FMA3] +// * VFMADDSUB231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB231PD takes 3 or 4 operands") + } + // VFMADDSUB231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB231PD") + } + return p +} + +// VFMADDSUB231PS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB231PS +// Supported forms : (11 forms) +// +// * VFMADDSUB231PS xmm, xmm, xmm [FMA3] +// * VFMADDSUB231PS m128, xmm, xmm [FMA3] +// * VFMADDSUB231PS ymm, ymm, ymm [FMA3] +// * VFMADDSUB231PS m256, ymm, ymm [FMA3] +// * VFMADDSUB231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB231PS takes 3 or 4 operands") + } + // VFMADDSUB231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB231PS") + } + return p +} + +// VFMADDSUBPD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUBPD +// Supported forms : (6 forms) +// +// * VFMADDSUBPD xmm, xmm, xmm, xmm [FMA4] +// * VFMADDSUBPD m128, xmm, xmm, xmm [FMA4] +// * VFMADDSUBPD xmm, m128, xmm, xmm [FMA4] +// * VFMADDSUBPD ymm, ymm, ymm, ymm [FMA4] +// * VFMADDSUBPD m256, ymm, ymm, ymm [FMA4] +// * VFMADDSUBPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMADDSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDSUBPD", 4, Operands { v0, v1, v2, v3 }) + // VFMADDSUBPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSUBPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSUBPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUBPD") + } + return p +} + +// VFMADDSUBPS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUBPS +// Supported forms : (6 forms) +// +// * VFMADDSUBPS xmm, xmm, xmm, xmm [FMA4] +// * VFMADDSUBPS m128, xmm, xmm, xmm [FMA4] +// * VFMADDSUBPS xmm, m128, xmm, xmm [FMA4] +// * VFMADDSUBPS ymm, ymm, ymm, ymm [FMA4] +// * VFMADDSUBPS m256, ymm, ymm, ymm [FMA4] +// * VFMADDSUBPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMADDSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDSUBPS", 4, Operands { v0, v1, v2, v3 }) + // VFMADDSUBPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSUBPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSUBPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUBPS") + } + return p +} + +// VFMSUB132PD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB132PD +// Supported forms : (11 forms) +// +// * VFMSUB132PD xmm, xmm, xmm [FMA3] +// * VFMSUB132PD m128, xmm, xmm [FMA3] +// * VFMSUB132PD ymm, ymm, ymm [FMA3] +// * VFMSUB132PD m256, ymm, ymm [FMA3] +// * VFMSUB132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB132PD takes 3 or 4 operands") + } + // VFMSUB132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB132PD") + } + return p +} + +// VFMSUB132PS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB132PS +// Supported forms : (11 forms) +// +// * VFMSUB132PS xmm, xmm, xmm [FMA3] +// * VFMSUB132PS m128, xmm, xmm [FMA3] +// * VFMSUB132PS ymm, ymm, ymm [FMA3] +// * VFMSUB132PS m256, ymm, ymm [FMA3] +// * VFMSUB132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB132PS takes 3 or 4 operands") + } + // VFMSUB132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB132PS") + } + return p +} + +// VFMSUB132SD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB132SD +// Supported forms : (5 forms) +// +// * VFMSUB132SD xmm, xmm, xmm [FMA3] +// * VFMSUB132SD m64, xmm, xmm [FMA3] +// * VFMSUB132SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB132SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB132SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB132SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB132SD takes 3 or 4 operands") + } + // VFMSUB132SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMSUB132SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB132SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB132SD") + } + return p +} + +// VFMSUB132SS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB132SS +// Supported forms : (5 forms) +// +// * VFMSUB132SS xmm, xmm, xmm [FMA3] +// * VFMSUB132SS m32, xmm, xmm [FMA3] +// * VFMSUB132SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB132SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB132SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB132SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB132SS takes 3 or 4 operands") + } + // VFMSUB132SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMSUB132SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB132SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB132SS") + } + return p +} + +// VFMSUB213PD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB213PD +// Supported forms : (11 forms) +// +// * VFMSUB213PD xmm, xmm, xmm [FMA3] +// * VFMSUB213PD m128, xmm, xmm [FMA3] +// * VFMSUB213PD ymm, ymm, ymm [FMA3] +// * VFMSUB213PD m256, ymm, ymm [FMA3] +// * VFMSUB213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB213PD takes 3 or 4 operands") + } + // VFMSUB213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB213PD") + } + return p +} + +// VFMSUB213PS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB213PS +// Supported forms : (11 forms) +// +// * VFMSUB213PS xmm, xmm, xmm [FMA3] +// * VFMSUB213PS m128, xmm, xmm [FMA3] +// * VFMSUB213PS ymm, ymm, ymm [FMA3] +// * VFMSUB213PS m256, ymm, ymm [FMA3] +// * VFMSUB213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB213PS takes 3 or 4 operands") + } + // VFMSUB213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB213PS") + } + return p +} + +// VFMSUB213SD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB213SD +// Supported forms : (5 forms) +// +// * VFMSUB213SD xmm, xmm, xmm [FMA3] +// * VFMSUB213SD m64, xmm, xmm [FMA3] +// * VFMSUB213SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB213SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB213SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB213SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB213SD takes 3 or 4 operands") + } + // VFMSUB213SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xab) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xab) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xab) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMSUB213SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xab) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB213SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xab) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB213SD") + } + return p +} + +// VFMSUB213SS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB213SS +// Supported forms : (5 forms) +// +// * VFMSUB213SS xmm, xmm, xmm [FMA3] +// * VFMSUB213SS m32, xmm, xmm [FMA3] +// * VFMSUB213SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB213SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB213SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB213SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB213SS takes 3 or 4 operands") + } + // VFMSUB213SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xab) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xab) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xab) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMSUB213SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xab) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB213SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xab) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB213SS") + } + return p +} + +// VFMSUB231PD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB231PD +// Supported forms : (11 forms) +// +// * VFMSUB231PD xmm, xmm, xmm [FMA3] +// * VFMSUB231PD m128, xmm, xmm [FMA3] +// * VFMSUB231PD ymm, ymm, ymm [FMA3] +// * VFMSUB231PD m256, ymm, ymm [FMA3] +// * VFMSUB231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB231PD takes 3 or 4 operands") + } + // VFMSUB231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xba) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB231PD") + } + return p +} + +// VFMSUB231PS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB231PS +// Supported forms : (11 forms) +// +// * VFMSUB231PS xmm, xmm, xmm [FMA3] +// * VFMSUB231PS m128, xmm, xmm [FMA3] +// * VFMSUB231PS ymm, ymm, ymm [FMA3] +// * VFMSUB231PS m256, ymm, ymm [FMA3] +// * VFMSUB231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB231PS takes 3 or 4 operands") + } + // VFMSUB231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xba) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB231PS") + } + return p +} + +// VFMSUB231SD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB231SD +// Supported forms : (5 forms) +// +// * VFMSUB231SD xmm, xmm, xmm [FMA3] +// * VFMSUB231SD m64, xmm, xmm [FMA3] +// * VFMSUB231SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB231SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB231SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB231SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB231SD takes 3 or 4 operands") + } + // VFMSUB231SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbb) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMSUB231SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB231SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB231SD") + } + return p +} + +// VFMSUB231SS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB231SS +// Supported forms : (5 forms) +// +// * VFMSUB231SS xmm, xmm, xmm [FMA3] +// * VFMSUB231SS m32, xmm, xmm [FMA3] +// * VFMSUB231SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB231SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB231SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB231SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB231SS takes 3 or 4 operands") + } + // VFMSUB231SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbb) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMSUB231SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB231SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB231SS") + } + return p +} + +// VFMSUBADD132PD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD132PD +// Supported forms : (11 forms) +// +// * VFMSUBADD132PD xmm, xmm, xmm [FMA3] +// * VFMSUBADD132PD m128, xmm, xmm [FMA3] +// * VFMSUBADD132PD ymm, ymm, ymm [FMA3] +// * VFMSUBADD132PD m256, ymm, ymm [FMA3] +// * VFMSUBADD132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD132PD takes 3 or 4 operands") + } + // VFMSUBADD132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x97) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD132PD") + } + return p +} + +// VFMSUBADD132PS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD132PS +// Supported forms : (11 forms) +// +// * VFMSUBADD132PS xmm, xmm, xmm [FMA3] +// * VFMSUBADD132PS m128, xmm, xmm [FMA3] +// * VFMSUBADD132PS ymm, ymm, ymm [FMA3] +// * VFMSUBADD132PS m256, ymm, ymm [FMA3] +// * VFMSUBADD132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD132PS takes 3 or 4 operands") + } + // VFMSUBADD132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x97) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD132PS") + } + return p +} + +// VFMSUBADD213PD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD213PD +// Supported forms : (11 forms) +// +// * VFMSUBADD213PD xmm, xmm, xmm [FMA3] +// * VFMSUBADD213PD m128, xmm, xmm [FMA3] +// * VFMSUBADD213PD ymm, ymm, ymm [FMA3] +// * VFMSUBADD213PD m256, ymm, ymm [FMA3] +// * VFMSUBADD213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD213PD takes 3 or 4 operands") + } + // VFMSUBADD213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD213PD") + } + return p +} + +// VFMSUBADD213PS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD213PS +// Supported forms : (11 forms) +// +// * VFMSUBADD213PS xmm, xmm, xmm [FMA3] +// * VFMSUBADD213PS m128, xmm, xmm [FMA3] +// * VFMSUBADD213PS ymm, ymm, ymm [FMA3] +// * VFMSUBADD213PS m256, ymm, ymm [FMA3] +// * VFMSUBADD213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD213PS takes 3 or 4 operands") + } + // VFMSUBADD213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD213PS") + } + return p +} + +// VFMSUBADD231PD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD231PD +// Supported forms : (11 forms) +// +// * VFMSUBADD231PD xmm, xmm, xmm [FMA3] +// * VFMSUBADD231PD m128, xmm, xmm [FMA3] +// * VFMSUBADD231PD ymm, ymm, ymm [FMA3] +// * VFMSUBADD231PD m256, ymm, ymm [FMA3] +// * VFMSUBADD231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD231PD takes 3 or 4 operands") + } + // VFMSUBADD231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD231PD") + } + return p +} + +// VFMSUBADD231PS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD231PS +// Supported forms : (11 forms) +// +// * VFMSUBADD231PS xmm, xmm, xmm [FMA3] +// * VFMSUBADD231PS m128, xmm, xmm [FMA3] +// * VFMSUBADD231PS ymm, ymm, ymm [FMA3] +// * VFMSUBADD231PS m256, ymm, ymm [FMA3] +// * VFMSUBADD231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD231PS takes 3 or 4 operands") + } + // VFMSUBADD231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD231PS") + } + return p +} + +// VFMSUBADDPD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADDPD +// Supported forms : (6 forms) +// +// * VFMSUBADDPD xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBADDPD m128, xmm, xmm, xmm [FMA4] +// * VFMSUBADDPD xmm, m128, xmm, xmm [FMA4] +// * VFMSUBADDPD ymm, ymm, ymm, ymm [FMA4] +// * VFMSUBADDPD m256, ymm, ymm, ymm [FMA4] +// * VFMSUBADDPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMSUBADDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBADDPD", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBADDPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5f) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBADDPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5f) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBADDPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADDPD") + } + return p +} + +// VFMSUBADDPS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADDPS +// Supported forms : (6 forms) +// +// * VFMSUBADDPS xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBADDPS m128, xmm, xmm, xmm [FMA4] +// * VFMSUBADDPS xmm, m128, xmm, xmm [FMA4] +// * VFMSUBADDPS ymm, ymm, ymm, ymm [FMA4] +// * VFMSUBADDPS m256, ymm, ymm, ymm [FMA4] +// * VFMSUBADDPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMSUBADDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBADDPS", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBADDPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5e) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBADDPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5e) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBADDPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADDPS") + } + return p +} + +// VFMSUBPD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBPD +// Supported forms : (6 forms) +// +// * VFMSUBPD xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBPD m128, xmm, xmm, xmm [FMA4] +// * VFMSUBPD xmm, m128, xmm, xmm [FMA4] +// * VFMSUBPD ymm, ymm, ymm, ymm [FMA4] +// * VFMSUBPD m256, ymm, ymm, ymm [FMA4] +// * VFMSUBPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBPD", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBPD") + } + return p +} + +// VFMSUBPS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBPS +// Supported forms : (6 forms) +// +// * VFMSUBPS xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBPS m128, xmm, xmm, xmm [FMA4] +// * VFMSUBPS xmm, m128, xmm, xmm [FMA4] +// * VFMSUBPS ymm, ymm, ymm, ymm [FMA4] +// * VFMSUBPS m256, ymm, ymm, ymm [FMA4] +// * VFMSUBPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBPS", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBPS") + } + return p +} + +// VFMSUBSD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBSD +// Supported forms : (3 forms) +// +// * VFMSUBSD xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBSD m64, xmm, xmm, xmm [FMA4] +// * VFMSUBSD xmm, m64, xmm, xmm [FMA4] +// +func (self *Program) VFMSUBSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBSD", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBSD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBSD m64, xmm, xmm, xmm + if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6f) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBSD xmm, m64, xmm, xmm + if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBSD") + } + return p +} + +// VFMSUBSS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBSS +// Supported forms : (3 forms) +// +// * VFMSUBSS xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBSS m32, xmm, xmm, xmm [FMA4] +// * VFMSUBSS xmm, m32, xmm, xmm [FMA4] +// +func (self *Program) VFMSUBSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBSS", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBSS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBSS m32, xmm, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6e) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBSS xmm, m32, xmm, xmm + if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBSS") + } + return p +} + +// VFNMADD132PD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD132PD +// Supported forms : (11 forms) +// +// * VFNMADD132PD xmm, xmm, xmm [FMA3] +// * VFNMADD132PD m128, xmm, xmm [FMA3] +// * VFNMADD132PD ymm, ymm, ymm [FMA3] +// * VFNMADD132PD m256, ymm, ymm [FMA3] +// * VFNMADD132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD132PD takes 3 or 4 operands") + } + // VFNMADD132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD132PD") + } + return p +} + +// VFNMADD132PS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD132PS +// Supported forms : (11 forms) +// +// * VFNMADD132PS xmm, xmm, xmm [FMA3] +// * VFNMADD132PS m128, xmm, xmm [FMA3] +// * VFNMADD132PS ymm, ymm, ymm [FMA3] +// * VFNMADD132PS m256, ymm, ymm [FMA3] +// * VFNMADD132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD132PS takes 3 or 4 operands") + } + // VFNMADD132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD132PS") + } + return p +} + +// VFNMADD132SD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD132SD +// Supported forms : (5 forms) +// +// * VFNMADD132SD xmm, xmm, xmm [FMA3] +// * VFNMADD132SD m64, xmm, xmm [FMA3] +// * VFNMADD132SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD132SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD132SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD132SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD132SD takes 3 or 4 operands") + } + // VFNMADD132SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9d) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMADD132SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD132SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD132SD") + } + return p +} + +// VFNMADD132SS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD132SS +// Supported forms : (5 forms) +// +// * VFNMADD132SS xmm, xmm, xmm [FMA3] +// * VFNMADD132SS m32, xmm, xmm [FMA3] +// * VFNMADD132SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD132SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD132SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD132SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD132SS takes 3 or 4 operands") + } + // VFNMADD132SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9d) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMADD132SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD132SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD132SS") + } + return p +} + +// VFNMADD213PD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD213PD +// Supported forms : (11 forms) +// +// * VFNMADD213PD xmm, xmm, xmm [FMA3] +// * VFNMADD213PD m128, xmm, xmm [FMA3] +// * VFNMADD213PD ymm, ymm, ymm [FMA3] +// * VFNMADD213PD m256, ymm, ymm [FMA3] +// * VFNMADD213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD213PD takes 3 or 4 operands") + } + // VFNMADD213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xac) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD213PD") + } + return p +} + +// VFNMADD213PS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD213PS +// Supported forms : (11 forms) +// +// * VFNMADD213PS xmm, xmm, xmm [FMA3] +// * VFNMADD213PS m128, xmm, xmm [FMA3] +// * VFNMADD213PS ymm, ymm, ymm [FMA3] +// * VFNMADD213PS m256, ymm, ymm [FMA3] +// * VFNMADD213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD213PS takes 3 or 4 operands") + } + // VFNMADD213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xac) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD213PS") + } + return p +} + +// VFNMADD213SD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD213SD +// Supported forms : (5 forms) +// +// * VFNMADD213SD xmm, xmm, xmm [FMA3] +// * VFNMADD213SD m64, xmm, xmm [FMA3] +// * VFNMADD213SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD213SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD213SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD213SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD213SD takes 3 or 4 operands") + } + // VFNMADD213SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xad) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xad) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xad) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMADD213SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xad) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD213SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xad) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD213SD") + } + return p +} + +// VFNMADD213SS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD213SS +// Supported forms : (5 forms) +// +// * VFNMADD213SS xmm, xmm, xmm [FMA3] +// * VFNMADD213SS m32, xmm, xmm [FMA3] +// * VFNMADD213SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD213SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD213SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD213SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD213SS takes 3 or 4 operands") + } + // VFNMADD213SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xad) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xad) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xad) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMADD213SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xad) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD213SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xad) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD213SS") + } + return p +} + +// VFNMADD231PD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD231PD +// Supported forms : (11 forms) +// +// * VFNMADD231PD xmm, xmm, xmm [FMA3] +// * VFNMADD231PD m128, xmm, xmm [FMA3] +// * VFNMADD231PD ymm, ymm, ymm [FMA3] +// * VFNMADD231PD m256, ymm, ymm [FMA3] +// * VFNMADD231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD231PD takes 3 or 4 operands") + } + // VFNMADD231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD231PD") + } + return p +} + +// VFNMADD231PS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD231PS +// Supported forms : (11 forms) +// +// * VFNMADD231PS xmm, xmm, xmm [FMA3] +// * VFNMADD231PS m128, xmm, xmm [FMA3] +// * VFNMADD231PS ymm, ymm, ymm [FMA3] +// * VFNMADD231PS m256, ymm, ymm [FMA3] +// * VFNMADD231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD231PS takes 3 or 4 operands") + } + // VFNMADD231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD231PS") + } + return p +} + +// VFNMADD231SD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD231SD +// Supported forms : (5 forms) +// +// * VFNMADD231SD xmm, xmm, xmm [FMA3] +// * VFNMADD231SD m64, xmm, xmm [FMA3] +// * VFNMADD231SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD231SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD231SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD231SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD231SD takes 3 or 4 operands") + } + // VFNMADD231SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbd) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMADD231SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD231SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD231SD") + } + return p +} + +// VFNMADD231SS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD231SS +// Supported forms : (5 forms) +// +// * VFNMADD231SS xmm, xmm, xmm [FMA3] +// * VFNMADD231SS m32, xmm, xmm [FMA3] +// * VFNMADD231SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD231SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD231SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD231SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD231SS takes 3 or 4 operands") + } + // VFNMADD231SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbd) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMADD231SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD231SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD231SS") + } + return p +} + +// VFNMADDPD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADDPD +// Supported forms : (6 forms) +// +// * VFNMADDPD xmm, xmm, xmm, xmm [FMA4] +// * VFNMADDPD m128, xmm, xmm, xmm [FMA4] +// * VFNMADDPD xmm, m128, xmm, xmm [FMA4] +// * VFNMADDPD ymm, ymm, ymm, ymm [FMA4] +// * VFNMADDPD m256, ymm, ymm, ymm [FMA4] +// * VFNMADDPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFNMADDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMADDPD", 4, Operands { v0, v1, v2, v3 }) + // VFNMADDPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x79) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x79) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x79) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x79) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x79) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x79) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x79) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x79) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADDPD") + } + return p +} + +// VFNMADDPS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADDPS +// Supported forms : (6 forms) +// +// * VFNMADDPS xmm, xmm, xmm, xmm [FMA4] +// * VFNMADDPS m128, xmm, xmm, xmm [FMA4] +// * VFNMADDPS xmm, m128, xmm, xmm [FMA4] +// * VFNMADDPS ymm, ymm, ymm, ymm [FMA4] +// * VFNMADDPS m256, ymm, ymm, ymm [FMA4] +// * VFNMADDPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFNMADDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMADDPS", 4, Operands { v0, v1, v2, v3 }) + // VFNMADDPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x78) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x78) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x78) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x78) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADDPS") + } + return p +} + +// VFNMADDSD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADDSD +// Supported forms : (3 forms) +// +// * VFNMADDSD xmm, xmm, xmm, xmm [FMA4] +// * VFNMADDSD m64, xmm, xmm, xmm [FMA4] +// * VFNMADDSD xmm, m64, xmm, xmm [FMA4] +// +func (self *Program) VFNMADDSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMADDSD", 4, Operands { v0, v1, v2, v3 }) + // VFNMADDSD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDSD m64, xmm, xmm, xmm + if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7b) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDSD xmm, m64, xmm, xmm + if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADDSD") + } + return p +} + +// VFNMADDSS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADDSS +// Supported forms : (3 forms) +// +// * VFNMADDSS xmm, xmm, xmm, xmm [FMA4] +// * VFNMADDSS m32, xmm, xmm, xmm [FMA4] +// * VFNMADDSS xmm, m32, xmm, xmm [FMA4] +// +func (self *Program) VFNMADDSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMADDSS", 4, Operands { v0, v1, v2, v3 }) + // VFNMADDSS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDSS m32, xmm, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7a) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDSS xmm, m32, xmm, xmm + if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADDSS") + } + return p +} + +// VFNMSUB132PD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB132PD +// Supported forms : (11 forms) +// +// * VFNMSUB132PD xmm, xmm, xmm [FMA3] +// * VFNMSUB132PD m128, xmm, xmm [FMA3] +// * VFNMSUB132PD ymm, ymm, ymm [FMA3] +// * VFNMSUB132PD m256, ymm, ymm [FMA3] +// * VFNMSUB132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB132PD takes 3 or 4 operands") + } + // VFNMSUB132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB132PD") + } + return p +} + +// VFNMSUB132PS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB132PS +// Supported forms : (11 forms) +// +// * VFNMSUB132PS xmm, xmm, xmm [FMA3] +// * VFNMSUB132PS m128, xmm, xmm [FMA3] +// * VFNMSUB132PS ymm, ymm, ymm [FMA3] +// * VFNMSUB132PS m256, ymm, ymm [FMA3] +// * VFNMSUB132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB132PS takes 3 or 4 operands") + } + // VFNMSUB132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB132PS") + } + return p +} + +// VFNMSUB132SD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB132SD +// Supported forms : (5 forms) +// +// * VFNMSUB132SD xmm, xmm, xmm [FMA3] +// * VFNMSUB132SD m64, xmm, xmm [FMA3] +// * VFNMSUB132SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB132SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB132SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB132SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB132SD takes 3 or 4 operands") + } + // VFNMSUB132SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9f) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMSUB132SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB132SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB132SD") + } + return p +} + +// VFNMSUB132SS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB132SS +// Supported forms : (5 forms) +// +// * VFNMSUB132SS xmm, xmm, xmm [FMA3] +// * VFNMSUB132SS m32, xmm, xmm [FMA3] +// * VFNMSUB132SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB132SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB132SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB132SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB132SS takes 3 or 4 operands") + } + // VFNMSUB132SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9f) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMSUB132SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB132SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB132SS") + } + return p +} + +// VFNMSUB213PD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB213PD +// Supported forms : (11 forms) +// +// * VFNMSUB213PD xmm, xmm, xmm [FMA3] +// * VFNMSUB213PD m128, xmm, xmm [FMA3] +// * VFNMSUB213PD ymm, ymm, ymm [FMA3] +// * VFNMSUB213PD m256, ymm, ymm [FMA3] +// * VFNMSUB213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB213PD takes 3 or 4 operands") + } + // VFNMSUB213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xae) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB213PD") + } + return p +} + +// VFNMSUB213PS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB213PS +// Supported forms : (11 forms) +// +// * VFNMSUB213PS xmm, xmm, xmm [FMA3] +// * VFNMSUB213PS m128, xmm, xmm [FMA3] +// * VFNMSUB213PS ymm, ymm, ymm [FMA3] +// * VFNMSUB213PS m256, ymm, ymm [FMA3] +// * VFNMSUB213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB213PS takes 3 or 4 operands") + } + // VFNMSUB213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xae) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB213PS") + } + return p +} + +// VFNMSUB213SD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB213SD +// Supported forms : (5 forms) +// +// * VFNMSUB213SD xmm, xmm, xmm [FMA3] +// * VFNMSUB213SD m64, xmm, xmm [FMA3] +// * VFNMSUB213SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB213SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB213SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB213SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB213SD takes 3 or 4 operands") + } + // VFNMSUB213SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xaf) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMSUB213SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB213SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB213SD") + } + return p +} + +// VFNMSUB213SS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB213SS +// Supported forms : (5 forms) +// +// * VFNMSUB213SS xmm, xmm, xmm [FMA3] +// * VFNMSUB213SS m32, xmm, xmm [FMA3] +// * VFNMSUB213SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB213SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB213SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB213SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB213SS takes 3 or 4 operands") + } + // VFNMSUB213SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xaf) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMSUB213SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB213SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB213SS") + } + return p +} + +// VFNMSUB231PD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB231PD +// Supported forms : (11 forms) +// +// * VFNMSUB231PD xmm, xmm, xmm [FMA3] +// * VFNMSUB231PD m128, xmm, xmm [FMA3] +// * VFNMSUB231PD ymm, ymm, ymm [FMA3] +// * VFNMSUB231PD m256, ymm, ymm [FMA3] +// * VFNMSUB231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB231PD takes 3 or 4 operands") + } + // VFNMSUB231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB231PD") + } + return p +} + +// VFNMSUB231PS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB231PS +// Supported forms : (11 forms) +// +// * VFNMSUB231PS xmm, xmm, xmm [FMA3] +// * VFNMSUB231PS m128, xmm, xmm [FMA3] +// * VFNMSUB231PS ymm, ymm, ymm [FMA3] +// * VFNMSUB231PS m256, ymm, ymm [FMA3] +// * VFNMSUB231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB231PS takes 3 or 4 operands") + } + // VFNMSUB231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB231PS") + } + return p +} + +// VFNMSUB231SD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB231SD +// Supported forms : (5 forms) +// +// * VFNMSUB231SD xmm, xmm, xmm [FMA3] +// * VFNMSUB231SD m64, xmm, xmm [FMA3] +// * VFNMSUB231SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB231SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB231SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB231SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB231SD takes 3 or 4 operands") + } + // VFNMSUB231SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbf) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMSUB231SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB231SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB231SD") + } + return p +} + +// VFNMSUB231SS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB231SS +// Supported forms : (5 forms) +// +// * VFNMSUB231SS xmm, xmm, xmm [FMA3] +// * VFNMSUB231SS m32, xmm, xmm [FMA3] +// * VFNMSUB231SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB231SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB231SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB231SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB231SS takes 3 or 4 operands") + } + // VFNMSUB231SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbf) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMSUB231SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB231SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB231SS") + } + return p +} + +// VFNMSUBPD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUBPD +// Supported forms : (6 forms) +// +// * VFNMSUBPD xmm, xmm, xmm, xmm [FMA4] +// * VFNMSUBPD m128, xmm, xmm, xmm [FMA4] +// * VFNMSUBPD xmm, m128, xmm, xmm [FMA4] +// * VFNMSUBPD ymm, ymm, ymm, ymm [FMA4] +// * VFNMSUBPD m256, ymm, ymm, ymm [FMA4] +// * VFNMSUBPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFNMSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMSUBPD", 4, Operands { v0, v1, v2, v3 }) + // VFNMSUBPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUBPD") + } + return p +} + +// VFNMSUBPS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUBPS +// Supported forms : (6 forms) +// +// * VFNMSUBPS xmm, xmm, xmm, xmm [FMA4] +// * VFNMSUBPS m128, xmm, xmm, xmm [FMA4] +// * VFNMSUBPS xmm, m128, xmm, xmm [FMA4] +// * VFNMSUBPS ymm, ymm, ymm, ymm [FMA4] +// * VFNMSUBPS m256, ymm, ymm, ymm [FMA4] +// * VFNMSUBPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFNMSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMSUBPS", 4, Operands { v0, v1, v2, v3 }) + // VFNMSUBPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUBPS") + } + return p +} + +// VFNMSUBSD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUBSD +// Supported forms : (3 forms) +// +// * VFNMSUBSD xmm, xmm, xmm, xmm [FMA4] +// * VFNMSUBSD m64, xmm, xmm, xmm [FMA4] +// * VFNMSUBSD xmm, m64, xmm, xmm [FMA4] +// +func (self *Program) VFNMSUBSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMSUBSD", 4, Operands { v0, v1, v2, v3 }) + // VFNMSUBSD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBSD m64, xmm, xmm, xmm + if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7f) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBSD xmm, m64, xmm, xmm + if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUBSD") + } + return p +} + +// VFNMSUBSS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUBSS +// Supported forms : (3 forms) +// +// * VFNMSUBSS xmm, xmm, xmm, xmm [FMA4] +// * VFNMSUBSS m32, xmm, xmm, xmm [FMA4] +// * VFNMSUBSS xmm, m32, xmm, xmm [FMA4] +// +func (self *Program) VFNMSUBSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMSUBSS", 4, Operands { v0, v1, v2, v3 }) + // VFNMSUBSS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBSS m32, xmm, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7e) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBSS xmm, m32, xmm, xmm + if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUBSS") + } + return p +} + +// VFPCLASSPD performs "Test Class of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFPCLASSPD +// Supported forms : (6 forms) +// +// * VFPCLASSPD imm8, m512/m64bcst, k{k} [AVX512DQ] +// * VFPCLASSPD imm8, zmm, k{k} [AVX512DQ] +// * VFPCLASSPD imm8, m128/m64bcst, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPD imm8, m256/m64bcst, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPD imm8, xmm, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPD imm8, ymm, k{k} [AVX512DQ,AVX512VL] +// +func (self *Program) VFPCLASSPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VFPCLASSPD", 3, Operands { v0, v1, v2 }) + // VFPCLASSPD imm8, m512/m64bcst, k{k} + if isImm8(v0) && isM512M64bcst(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(kcode(v[2]) | 0x48) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, m128/m64bcst, k{k} + if isImm8(v0) && isM128M64bcst(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, m256/m64bcst, k{k} + if isImm8(v0) && isM256M64bcst(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(kcode(v[2]) | 0x08) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(kcode(v[2]) | 0x28) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFPCLASSPD") + } + return p +} + +// VFPCLASSPS performs "Test Class of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFPCLASSPS +// Supported forms : (6 forms) +// +// * VFPCLASSPS imm8, m512/m32bcst, k{k} [AVX512DQ] +// * VFPCLASSPS imm8, zmm, k{k} [AVX512DQ] +// * VFPCLASSPS imm8, m128/m32bcst, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPS imm8, m256/m32bcst, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPS imm8, xmm, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPS imm8, ymm, k{k} [AVX512DQ,AVX512VL] +// +func (self *Program) VFPCLASSPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VFPCLASSPS", 3, Operands { v0, v1, v2 }) + // VFPCLASSPS imm8, m512/m32bcst, k{k} + if isImm8(v0) && isM512M32bcst(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(kcode(v[2]) | 0x48) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, m128/m32bcst, k{k} + if isImm8(v0) && isM128M32bcst(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, m256/m32bcst, k{k} + if isImm8(v0) && isM256M32bcst(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(kcode(v[2]) | 0x08) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(kcode(v[2]) | 0x28) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFPCLASSPS") + } + return p +} + +// VFPCLASSSD performs "Test Class of Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VFPCLASSSD +// Supported forms : (2 forms) +// +// * VFPCLASSSD imm8, xmm, k{k} [AVX512DQ] +// * VFPCLASSSD imm8, m64, k{k} [AVX512DQ] +// +func (self *Program) VFPCLASSSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VFPCLASSSD", 3, Operands { v0, v1, v2 }) + // VFPCLASSSD imm8, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(kcode(v[2]) | 0x08) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSSD imm8, m64, k{k} + if isImm8(v0) && isM64(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFPCLASSSD") + } + return p +} + +// VFPCLASSSS performs "Test Class of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VFPCLASSSS +// Supported forms : (2 forms) +// +// * VFPCLASSSS imm8, xmm, k{k} [AVX512DQ] +// * VFPCLASSSS imm8, m32, k{k} [AVX512DQ] +// +func (self *Program) VFPCLASSSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VFPCLASSSS", 3, Operands { v0, v1, v2 }) + // VFPCLASSSS imm8, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(kcode(v[2]) | 0x08) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSSS imm8, m32, k{k} + if isImm8(v0) && isM32(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFPCLASSSS") + } + return p +} + +// VFRCZPD performs "Extract Fraction Packed Double-Precision Floating-Point". +// +// Mnemonic : VFRCZPD +// Supported forms : (4 forms) +// +// * VFRCZPD xmm, xmm [XOP] +// * VFRCZPD m128, xmm [XOP] +// * VFRCZPD ymm, ymm [XOP] +// * VFRCZPD m256, ymm [XOP] +// +func (self *Program) VFRCZPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VFRCZPD", 2, Operands { v0, v1 }) + // VFRCZPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0x81) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VFRCZPD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7c) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZPD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x04, hcode(v[1]), addr(v[0]), 0) + m.emit(0x81) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VFRCZPD") + } + return p +} + +// VFRCZPS performs "Extract Fraction Packed Single-Precision Floating-Point". +// +// Mnemonic : VFRCZPS +// Supported forms : (4 forms) +// +// * VFRCZPS xmm, xmm [XOP] +// * VFRCZPS m128, xmm [XOP] +// * VFRCZPS ymm, ymm [XOP] +// * VFRCZPS m256, ymm [XOP] +// +func (self *Program) VFRCZPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VFRCZPS", 2, Operands { v0, v1 }) + // VFRCZPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0x80) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0x80) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VFRCZPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7c) + m.emit(0x80) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x04, hcode(v[1]), addr(v[0]), 0) + m.emit(0x80) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VFRCZPS") + } + return p +} + +// VFRCZSD performs "Extract Fraction Scalar Double-Precision Floating-Point". +// +// Mnemonic : VFRCZSD +// Supported forms : (2 forms) +// +// * VFRCZSD xmm, xmm [XOP] +// * VFRCZSD m64, xmm [XOP] +// +func (self *Program) VFRCZSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VFRCZSD", 2, Operands { v0, v1 }) + // VFRCZSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0x83) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0x83) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VFRCZSD") + } + return p +} + +// VFRCZSS performs "Extract Fraction Scalar Single-Precision Floating Point". +// +// Mnemonic : VFRCZSS +// Supported forms : (2 forms) +// +// * VFRCZSS xmm, xmm [XOP] +// * VFRCZSS m32, xmm [XOP] +// +func (self *Program) VFRCZSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VFRCZSS", 2, Operands { v0, v1 }) + // VFRCZSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0x82) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0x82) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VFRCZSS") + } + return p +} + +// VGATHERDPD performs "Gather Packed Double-Precision Floating-Point Values Using Signed Doubleword Indices". +// +// Mnemonic : VGATHERDPD +// Supported forms : (5 forms) +// +// * VGATHERDPD xmm, vm32x, xmm [AVX2] +// * VGATHERDPD ymm, vm32x, ymm [AVX2] +// * VGATHERDPD vm32y, zmm{k} [AVX512F] +// * VGATHERDPD vm32x, xmm{k} [AVX512F,AVX512VL] +// * VGATHERDPD vm32x, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VGATHERDPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGATHERDPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGATHERDPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGATHERDPD takes 2 or 3 operands") + } + // VGATHERDPD xmm, vm32x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERDPD ymm, vm32x, ymm + if len(vv) == 1 && isYMM(v0) && isVMX(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERDPD vm32y, zmm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VGATHERDPD vm32x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VGATHERDPD vm32x, ymm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERDPD") + } + return p +} + +// VGATHERDPS performs "Gather Packed Single-Precision Floating-Point Values Using Signed Doubleword Indices". +// +// Mnemonic : VGATHERDPS +// Supported forms : (5 forms) +// +// * VGATHERDPS xmm, vm32x, xmm [AVX2] +// * VGATHERDPS ymm, vm32y, ymm [AVX2] +// * VGATHERDPS vm32z, zmm{k} [AVX512F] +// * VGATHERDPS vm32x, xmm{k} [AVX512F,AVX512VL] +// * VGATHERDPS vm32y, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VGATHERDPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGATHERDPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGATHERDPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGATHERDPS takes 2 or 3 operands") + } + // VGATHERDPS xmm, vm32x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERDPS ymm, vm32y, ymm + if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERDPS vm32z, zmm{k} + if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VGATHERDPS vm32x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VGATHERDPS vm32y, ymm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERDPS") + } + return p +} + +// VGATHERPF0DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint". +// +// Mnemonic : VGATHERPF0DPD +// Supported forms : (1 form) +// +// * VGATHERPF0DPD vm32y{k} [AVX512PF] +// +func (self *Program) VGATHERPF0DPD(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF0DPD", 1, Operands { v0 }) + // VGATHERPF0DPD vm32y{k} + if isVMYk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(1, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF0DPD") + } + return p +} + +// VGATHERPF0DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint". +// +// Mnemonic : VGATHERPF0DPS +// Supported forms : (1 form) +// +// * VGATHERPF0DPS vm32z{k} [AVX512PF] +// +func (self *Program) VGATHERPF0DPS(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF0DPS", 1, Operands { v0 }) + // VGATHERPF0DPS vm32z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(1, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF0DPS") + } + return p +} + +// VGATHERPF0QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint". +// +// Mnemonic : VGATHERPF0QPD +// Supported forms : (1 form) +// +// * VGATHERPF0QPD vm64z{k} [AVX512PF] +// +func (self *Program) VGATHERPF0QPD(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF0QPD", 1, Operands { v0 }) + // VGATHERPF0QPD vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(1, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF0QPD") + } + return p +} + +// VGATHERPF0QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint". +// +// Mnemonic : VGATHERPF0QPS +// Supported forms : (1 form) +// +// * VGATHERPF0QPS vm64z{k} [AVX512PF] +// +func (self *Program) VGATHERPF0QPS(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF0QPS", 1, Operands { v0 }) + // VGATHERPF0QPS vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(1, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF0QPS") + } + return p +} + +// VGATHERPF1DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint". +// +// Mnemonic : VGATHERPF1DPD +// Supported forms : (1 form) +// +// * VGATHERPF1DPD vm32y{k} [AVX512PF] +// +func (self *Program) VGATHERPF1DPD(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF1DPD", 1, Operands { v0 }) + // VGATHERPF1DPD vm32y{k} + if isVMYk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(2, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF1DPD") + } + return p +} + +// VGATHERPF1DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint". +// +// Mnemonic : VGATHERPF1DPS +// Supported forms : (1 form) +// +// * VGATHERPF1DPS vm32z{k} [AVX512PF] +// +func (self *Program) VGATHERPF1DPS(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF1DPS", 1, Operands { v0 }) + // VGATHERPF1DPS vm32z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(2, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF1DPS") + } + return p +} + +// VGATHERPF1QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint". +// +// Mnemonic : VGATHERPF1QPD +// Supported forms : (1 form) +// +// * VGATHERPF1QPD vm64z{k} [AVX512PF] +// +func (self *Program) VGATHERPF1QPD(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF1QPD", 1, Operands { v0 }) + // VGATHERPF1QPD vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(2, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF1QPD") + } + return p +} + +// VGATHERPF1QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint". +// +// Mnemonic : VGATHERPF1QPS +// Supported forms : (1 form) +// +// * VGATHERPF1QPS vm64z{k} [AVX512PF] +// +func (self *Program) VGATHERPF1QPS(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF1QPS", 1, Operands { v0 }) + // VGATHERPF1QPS vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(2, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF1QPS") + } + return p +} + +// VGATHERQPD performs "Gather Packed Double-Precision Floating-Point Values Using Signed Quadword Indices". +// +// Mnemonic : VGATHERQPD +// Supported forms : (5 forms) +// +// * VGATHERQPD xmm, vm64x, xmm [AVX2] +// * VGATHERQPD ymm, vm64y, ymm [AVX2] +// * VGATHERQPD vm64z, zmm{k} [AVX512F] +// * VGATHERQPD vm64x, xmm{k} [AVX512F,AVX512VL] +// * VGATHERQPD vm64y, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VGATHERQPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGATHERQPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGATHERQPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGATHERQPD takes 2 or 3 operands") + } + // VGATHERQPD xmm, vm64x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERQPD ymm, vm64y, ymm + if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERQPD vm64z, zmm{k} + if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VGATHERQPD vm64x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VGATHERQPD vm64y, ymm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERQPD") + } + return p +} + +// VGATHERQPS performs "Gather Packed Single-Precision Floating-Point Values Using Signed Quadword Indices". +// +// Mnemonic : VGATHERQPS +// Supported forms : (5 forms) +// +// * VGATHERQPS xmm, vm64x, xmm [AVX2] +// * VGATHERQPS xmm, vm64y, xmm [AVX2] +// * VGATHERQPS vm64z, ymm{k} [AVX512F] +// * VGATHERQPS vm64x, xmm{k} [AVX512F,AVX512VL] +// * VGATHERQPS vm64y, xmm{k} [AVX512F,AVX512VL] +// +func (self *Program) VGATHERQPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGATHERQPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGATHERQPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGATHERQPS takes 2 or 3 operands") + } + // VGATHERQPS xmm, vm64x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERQPS xmm, vm64y, xmm + if len(vv) == 1 && isXMM(v0) && isVMY(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERQPS vm64z, ymm{k} + if len(vv) == 0 && isVMZ(v0) && isYMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VGATHERQPS vm64x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VGATHERQPS vm64y, xmm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERQPS") + } + return p +} + +// VGETEXPPD performs "Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values". +// +// Mnemonic : VGETEXPPD +// Supported forms : (7 forms) +// +// * VGETEXPPD m512/m64bcst, zmm{k}{z} [AVX512F] +// * VGETEXPPD {sae}, zmm, zmm{k}{z} [AVX512F] +// * VGETEXPPD zmm, zmm{k}{z} [AVX512F] +// * VGETEXPPD m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPD m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VGETEXPPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETEXPPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGETEXPPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGETEXPPD takes 2 or 3 operands") + } + // VGETEXPPD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VGETEXPPD {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VGETEXPPD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VGETEXPPD m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VGETEXPPD m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VGETEXPPD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VGETEXPPD ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETEXPPD") + } + return p +} + +// VGETEXPPS performs "Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values". +// +// Mnemonic : VGETEXPPS +// Supported forms : (7 forms) +// +// * VGETEXPPS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VGETEXPPS {sae}, zmm, zmm{k}{z} [AVX512F] +// * VGETEXPPS zmm, zmm{k}{z} [AVX512F] +// * VGETEXPPS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VGETEXPPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETEXPPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGETEXPPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGETEXPPS takes 2 or 3 operands") + } + // VGETEXPPS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VGETEXPPS {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VGETEXPPS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VGETEXPPS m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VGETEXPPS m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VGETEXPPS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VGETEXPPS ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETEXPPS") + } + return p +} + +// VGETEXPSD performs "Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value". +// +// Mnemonic : VGETEXPSD +// Supported forms : (3 forms) +// +// * VGETEXPSD m64, xmm, xmm{k}{z} [AVX512F] +// * VGETEXPSD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VGETEXPSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VGETEXPSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETEXPSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VGETEXPSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VGETEXPSD takes 3 or 4 operands") + } + // VGETEXPSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x43) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VGETEXPSD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VGETEXPSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x43) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETEXPSD") + } + return p +} + +// VGETEXPSS performs "Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value". +// +// Mnemonic : VGETEXPSS +// Supported forms : (3 forms) +// +// * VGETEXPSS m32, xmm, xmm{k}{z} [AVX512F] +// * VGETEXPSS {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VGETEXPSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VGETEXPSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETEXPSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VGETEXPSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VGETEXPSS takes 3 or 4 operands") + } + // VGETEXPSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x43) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VGETEXPSS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VGETEXPSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x43) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETEXPSS") + } + return p +} + +// VGETMANTPD performs "Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VGETMANTPD +// Supported forms : (7 forms) +// +// * VGETMANTPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VGETMANTPD imm8, {sae}, zmm, zmm{k}{z} [AVX512F] +// * VGETMANTPD imm8, zmm, zmm{k}{z} [AVX512F] +// * VGETMANTPD imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VGETMANTPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETMANTPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VGETMANTPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VGETMANTPD takes 3 or 4 operands") + } + // VGETMANTPD imm8, m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x26) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETMANTPD") + } + return p +} + +// VGETMANTPS performs "Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VGETMANTPS +// Supported forms : (7 forms) +// +// * VGETMANTPS imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VGETMANTPS imm8, {sae}, zmm, zmm{k}{z} [AVX512F] +// * VGETMANTPS imm8, zmm, zmm{k}{z} [AVX512F] +// * VGETMANTPS imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPS imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPS imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPS imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VGETMANTPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETMANTPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VGETMANTPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VGETMANTPS takes 3 or 4 operands") + } + // VGETMANTPS imm8, m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x26) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETMANTPS") + } + return p +} + +// VGETMANTSD performs "Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VGETMANTSD +// Supported forms : (3 forms) +// +// * VGETMANTSD imm8, m64, xmm, xmm{k}{z} [AVX512F] +// * VGETMANTSD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VGETMANTSD imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VGETMANTSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETMANTSD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VGETMANTSD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VGETMANTSD takes 4 or 5 operands") + } + // VGETMANTSD imm8, m64, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x27) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTSD imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x27) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTSD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETMANTSD") + } + return p +} + +// VGETMANTSS performs "Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VGETMANTSS +// Supported forms : (3 forms) +// +// * VGETMANTSS imm8, m32, xmm, xmm{k}{z} [AVX512F] +// * VGETMANTSS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VGETMANTSS imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VGETMANTSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETMANTSS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VGETMANTSS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VGETMANTSS takes 4 or 5 operands") + } + // VGETMANTSS imm8, m32, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x27) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTSS imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x27) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTSS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETMANTSS") + } + return p +} + +// VHADDPD performs "Packed Double-FP Horizontal Add". +// +// Mnemonic : VHADDPD +// Supported forms : (4 forms) +// +// * VHADDPD xmm, xmm, xmm [AVX] +// * VHADDPD m128, xmm, xmm [AVX] +// * VHADDPD ymm, ymm, ymm [AVX] +// * VHADDPD m256, ymm, ymm [AVX] +// +func (self *Program) VHADDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VHADDPD", 3, Operands { v0, v1, v2 }) + // VHADDPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHADDPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VHADDPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHADDPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VHADDPD") + } + return p +} + +// VHADDPS performs "Packed Single-FP Horizontal Add". +// +// Mnemonic : VHADDPS +// Supported forms : (4 forms) +// +// * VHADDPS xmm, xmm, xmm [AVX] +// * VHADDPS m128, xmm, xmm [AVX] +// * VHADDPS ymm, ymm, ymm [AVX] +// * VHADDPS m256, ymm, ymm [AVX] +// +func (self *Program) VHADDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VHADDPS", 3, Operands { v0, v1, v2 }) + // VHADDPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHADDPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VHADDPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHADDPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VHADDPS") + } + return p +} + +// VHSUBPD performs "Packed Double-FP Horizontal Subtract". +// +// Mnemonic : VHSUBPD +// Supported forms : (4 forms) +// +// * VHSUBPD xmm, xmm, xmm [AVX] +// * VHSUBPD m128, xmm, xmm [AVX] +// * VHSUBPD ymm, ymm, ymm [AVX] +// * VHSUBPD m256, ymm, ymm [AVX] +// +func (self *Program) VHSUBPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VHSUBPD", 3, Operands { v0, v1, v2 }) + // VHSUBPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHSUBPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VHSUBPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHSUBPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VHSUBPD") + } + return p +} + +// VHSUBPS performs "Packed Single-FP Horizontal Subtract". +// +// Mnemonic : VHSUBPS +// Supported forms : (4 forms) +// +// * VHSUBPS xmm, xmm, xmm [AVX] +// * VHSUBPS m128, xmm, xmm [AVX] +// * VHSUBPS ymm, ymm, ymm [AVX] +// * VHSUBPS m256, ymm, ymm [AVX] +// +func (self *Program) VHSUBPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VHSUBPS", 3, Operands { v0, v1, v2 }) + // VHSUBPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHSUBPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VHSUBPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHSUBPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VHSUBPS") + } + return p +} + +// VINSERTF128 performs "Insert Packed Floating-Point Values". +// +// Mnemonic : VINSERTF128 +// Supported forms : (2 forms) +// +// * VINSERTF128 imm8, xmm, ymm, ymm [AVX] +// * VINSERTF128 imm8, m128, ymm, ymm [AVX] +// +func (self *Program) VINSERTF128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF128", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF128 imm8, xmm, ymm, ymm + if isImm8(v0) && isXMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF128 imm8, m128, ymm, ymm + if isImm8(v0) && isM128(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF128") + } + return p +} + +// VINSERTF32X4 performs "Insert 128 Bits of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VINSERTF32X4 +// Supported forms : (4 forms) +// +// * VINSERTF32X4 imm8, xmm, zmm, zmm{k}{z} [AVX512F] +// * VINSERTF32X4 imm8, m128, zmm, zmm{k}{z} [AVX512F] +// * VINSERTF32X4 imm8, xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VINSERTF32X4 imm8, m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VINSERTF32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF32X4", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF32X4 imm8, xmm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF32X4 imm8, m128, zmm, zmm{k}{z} + if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF32X4 imm8, xmm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF32X4 imm8, m128, ymm, ymm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF32X4") + } + return p +} + +// VINSERTF32X8 performs "Insert 256 Bits of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VINSERTF32X8 +// Supported forms : (2 forms) +// +// * VINSERTF32X8 imm8, ymm, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTF32X8 imm8, m256, zmm, zmm{k}{z} [AVX512DQ] +// +func (self *Program) VINSERTF32X8(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF32X8", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF32X8 imm8, ymm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF32X8 imm8, m256, zmm, zmm{k}{z} + if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF32X8") + } + return p +} + +// VINSERTF64X2 performs "Insert 128 Bits of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VINSERTF64X2 +// Supported forms : (4 forms) +// +// * VINSERTF64X2 imm8, xmm, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTF64X2 imm8, m128, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTF64X2 imm8, xmm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VINSERTF64X2 imm8, m128, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VINSERTF64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF64X2", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF64X2 imm8, xmm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF64X2 imm8, m128, zmm, zmm{k}{z} + if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF64X2 imm8, xmm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF64X2 imm8, m128, ymm, ymm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF64X2") + } + return p +} + +// VINSERTF64X4 performs "Insert 256 Bits of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VINSERTF64X4 +// Supported forms : (2 forms) +// +// * VINSERTF64X4 imm8, ymm, zmm, zmm{k}{z} [AVX512F] +// * VINSERTF64X4 imm8, m256, zmm, zmm{k}{z} [AVX512F] +// +func (self *Program) VINSERTF64X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF64X4", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF64X4 imm8, ymm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF64X4 imm8, m256, zmm, zmm{k}{z} + if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF64X4") + } + return p +} + +// VINSERTI128 performs "Insert Packed Integer Values". +// +// Mnemonic : VINSERTI128 +// Supported forms : (2 forms) +// +// * VINSERTI128 imm8, xmm, ymm, ymm [AVX2] +// * VINSERTI128 imm8, m128, ymm, ymm [AVX2] +// +func (self *Program) VINSERTI128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI128", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI128 imm8, xmm, ymm, ymm + if isImm8(v0) && isXMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI128 imm8, m128, ymm, ymm + if isImm8(v0) && isM128(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI128") + } + return p +} + +// VINSERTI32X4 performs "Insert 128 Bits of Packed Doubleword Integer Values". +// +// Mnemonic : VINSERTI32X4 +// Supported forms : (4 forms) +// +// * VINSERTI32X4 imm8, xmm, zmm, zmm{k}{z} [AVX512F] +// * VINSERTI32X4 imm8, m128, zmm, zmm{k}{z} [AVX512F] +// * VINSERTI32X4 imm8, xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VINSERTI32X4 imm8, m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VINSERTI32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI32X4", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI32X4 imm8, xmm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI32X4 imm8, m128, zmm, zmm{k}{z} + if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI32X4 imm8, xmm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI32X4 imm8, m128, ymm, ymm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI32X4") + } + return p +} + +// VINSERTI32X8 performs "Insert 256 Bits of Packed Doubleword Integer Values". +// +// Mnemonic : VINSERTI32X8 +// Supported forms : (2 forms) +// +// * VINSERTI32X8 imm8, ymm, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTI32X8 imm8, m256, zmm, zmm{k}{z} [AVX512DQ] +// +func (self *Program) VINSERTI32X8(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI32X8", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI32X8 imm8, ymm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI32X8 imm8, m256, zmm, zmm{k}{z} + if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI32X8") + } + return p +} + +// VINSERTI64X2 performs "Insert 128 Bits of Packed Quadword Integer Values". +// +// Mnemonic : VINSERTI64X2 +// Supported forms : (4 forms) +// +// * VINSERTI64X2 imm8, xmm, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTI64X2 imm8, m128, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTI64X2 imm8, xmm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VINSERTI64X2 imm8, m128, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VINSERTI64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI64X2", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI64X2 imm8, xmm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI64X2 imm8, m128, zmm, zmm{k}{z} + if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI64X2 imm8, xmm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI64X2 imm8, m128, ymm, ymm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI64X2") + } + return p +} + +// VINSERTI64X4 performs "Insert 256 Bits of Packed Quadword Integer Values". +// +// Mnemonic : VINSERTI64X4 +// Supported forms : (2 forms) +// +// * VINSERTI64X4 imm8, ymm, zmm, zmm{k}{z} [AVX512F] +// * VINSERTI64X4 imm8, m256, zmm, zmm{k}{z} [AVX512F] +// +func (self *Program) VINSERTI64X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI64X4", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI64X4 imm8, ymm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI64X4 imm8, m256, zmm, zmm{k}{z} + if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI64X4") + } + return p +} + +// VINSERTPS performs "Insert Packed Single Precision Floating-Point Value". +// +// Mnemonic : VINSERTPS +// Supported forms : (4 forms) +// +// * VINSERTPS imm8, xmm, xmm, xmm [AVX] +// * VINSERTPS imm8, m32, xmm, xmm [AVX] +// * VINSERTPS imm8, xmm, xmm, xmm [AVX512F] +// * VINSERTPS imm8, m32, xmm, xmm [AVX512F] +// +func (self *Program) VINSERTPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTPS", 4, Operands { v0, v1, v2, v3 }) + // VINSERTPS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x21) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTPS imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x21) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTPS imm8, xmm, xmm, xmm + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x21) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTPS imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x21) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTPS") + } + return p +} + +// VLDDQU performs "Load Unaligned Integer 128 Bits". +// +// Mnemonic : VLDDQU +// Supported forms : (2 forms) +// +// * VLDDQU m128, xmm [AVX] +// * VLDDQU m256, ymm [AVX] +// +func (self *Program) VLDDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VLDDQU", 2, Operands { v0, v1 }) + // VLDDQU m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VLDDQU m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), addr(v[0]), 0) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VLDDQU") + } + return p +} + +// VLDMXCSR performs "Load MXCSR Register". +// +// Mnemonic : VLDMXCSR +// Supported forms : (1 form) +// +// * VLDMXCSR m32 [AVX] +// +func (self *Program) VLDMXCSR(v0 interface{}) *Instruction { + p := self.alloc("VLDMXCSR", 1, Operands { v0 }) + // VLDMXCSR m32 + if isM32(v0) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, addr(v[0]), 0) + m.emit(0xae) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VLDMXCSR") + } + return p +} + +// VMASKMOVDQU performs "Store Selected Bytes of Double Quadword". +// +// Mnemonic : VMASKMOVDQU +// Supported forms : (1 form) +// +// * VMASKMOVDQU xmm, xmm [AVX] +// +func (self *Program) VMASKMOVDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMASKMOVDQU", 2, Operands { v0, v1 }) + // VMASKMOVDQU xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMASKMOVDQU") + } + return p +} + +// VMASKMOVPD performs "Conditional Move Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMASKMOVPD +// Supported forms : (4 forms) +// +// * VMASKMOVPD m128, xmm, xmm [AVX] +// * VMASKMOVPD m256, ymm, ymm [AVX] +// * VMASKMOVPD xmm, xmm, m128 [AVX] +// * VMASKMOVPD ymm, ymm, m256 [AVX] +// +func (self *Program) VMASKMOVPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VMASKMOVPD", 3, Operands { v0, v1, v2 }) + // VMASKMOVPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMASKMOVPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMASKMOVPD xmm, xmm, m128 + if isXMM(v0) && isXMM(v1) && isM128(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x2f) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + // VMASKMOVPD ymm, ymm, m256 + if isYMM(v0) && isYMM(v1) && isM256(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x2f) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VMASKMOVPD") + } + return p +} + +// VMASKMOVPS performs "Conditional Move Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMASKMOVPS +// Supported forms : (4 forms) +// +// * VMASKMOVPS m128, xmm, xmm [AVX] +// * VMASKMOVPS m256, ymm, ymm [AVX] +// * VMASKMOVPS xmm, xmm, m128 [AVX] +// * VMASKMOVPS ymm, ymm, m256 [AVX] +// +func (self *Program) VMASKMOVPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VMASKMOVPS", 3, Operands { v0, v1, v2 }) + // VMASKMOVPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMASKMOVPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMASKMOVPS xmm, xmm, m128 + if isXMM(v0) && isXMM(v1) && isM128(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x2e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + // VMASKMOVPS ymm, ymm, m256 + if isYMM(v0) && isYMM(v1) && isM256(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x2e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VMASKMOVPS") + } + return p +} + +// VMAXPD performs "Return Maximum Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMAXPD +// Supported forms : (11 forms) +// +// * VMAXPD xmm, xmm, xmm [AVX] +// * VMAXPD m128, xmm, xmm [AVX] +// * VMAXPD ymm, ymm, ymm [AVX] +// * VMAXPD m256, ymm, ymm [AVX] +// * VMAXPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VMAXPD {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMAXPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VMAXPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMAXPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMAXPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMAXPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMAXPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMAXPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMAXPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMAXPD takes 3 or 4 operands") + } + // VMAXPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMAXPD {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMAXPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMAXPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMAXPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMAXPD") + } + return p +} + +// VMAXPS performs "Return Maximum Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMAXPS +// Supported forms : (11 forms) +// +// * VMAXPS xmm, xmm, xmm [AVX] +// * VMAXPS m128, xmm, xmm [AVX] +// * VMAXPS ymm, ymm, ymm [AVX] +// * VMAXPS m256, ymm, ymm [AVX] +// * VMAXPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VMAXPS {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMAXPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VMAXPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMAXPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMAXPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMAXPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMAXPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMAXPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMAXPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMAXPS takes 3 or 4 operands") + } + // VMAXPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMAXPS {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMAXPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMAXPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMAXPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMAXPS") + } + return p +} + +// VMAXSD performs "Return Maximum Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VMAXSD +// Supported forms : (5 forms) +// +// * VMAXSD xmm, xmm, xmm [AVX] +// * VMAXSD m64, xmm, xmm [AVX] +// * VMAXSD m64, xmm, xmm{k}{z} [AVX512F] +// * VMAXSD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMAXSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMAXSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMAXSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMAXSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMAXSD takes 3 or 4 operands") + } + // VMAXSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VMAXSD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMAXSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMAXSD") + } + return p +} + +// VMAXSS performs "Return Maximum Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VMAXSS +// Supported forms : (5 forms) +// +// * VMAXSS xmm, xmm, xmm [AVX] +// * VMAXSS m32, xmm, xmm [AVX] +// * VMAXSS m32, xmm, xmm{k}{z} [AVX512F] +// * VMAXSS {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMAXSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMAXSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMAXSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMAXSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMAXSS takes 3 or 4 operands") + } + // VMAXSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VMAXSS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMAXSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMAXSS") + } + return p +} + +// VMINPD performs "Return Minimum Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMINPD +// Supported forms : (11 forms) +// +// * VMINPD xmm, xmm, xmm [AVX] +// * VMINPD m128, xmm, xmm [AVX] +// * VMINPD ymm, ymm, ymm [AVX] +// * VMINPD m256, ymm, ymm [AVX] +// * VMINPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VMINPD {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMINPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VMINPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMINPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMINPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMINPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMINPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMINPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMINPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMINPD takes 3 or 4 operands") + } + // VMINPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMINPD {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMINPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMINPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMINPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMINPD") + } + return p +} + +// VMINPS performs "Return Minimum Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMINPS +// Supported forms : (11 forms) +// +// * VMINPS xmm, xmm, xmm [AVX] +// * VMINPS m128, xmm, xmm [AVX] +// * VMINPS ymm, ymm, ymm [AVX] +// * VMINPS m256, ymm, ymm [AVX] +// * VMINPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VMINPS {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMINPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VMINPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMINPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMINPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMINPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMINPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMINPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMINPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMINPS takes 3 or 4 operands") + } + // VMINPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMINPS {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMINPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMINPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMINPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMINPS") + } + return p +} + +// VMINSD performs "Return Minimum Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VMINSD +// Supported forms : (5 forms) +// +// * VMINSD xmm, xmm, xmm [AVX] +// * VMINSD m64, xmm, xmm [AVX] +// * VMINSD m64, xmm, xmm{k}{z} [AVX512F] +// * VMINSD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMINSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMINSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMINSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMINSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMINSD takes 3 or 4 operands") + } + // VMINSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VMINSD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMINSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMINSD") + } + return p +} + +// VMINSS performs "Return Minimum Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VMINSS +// Supported forms : (5 forms) +// +// * VMINSS xmm, xmm, xmm [AVX] +// * VMINSS m32, xmm, xmm [AVX] +// * VMINSS m32, xmm, xmm{k}{z} [AVX512F] +// * VMINSS {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMINSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMINSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMINSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMINSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMINSS takes 3 or 4 operands") + } + // VMINSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VMINSS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMINSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMINSS") + } + return p +} + +// VMOVAPD performs "Move Aligned Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMOVAPD +// Supported forms : (15 forms) +// +// * VMOVAPD xmm, xmm [AVX] +// * VMOVAPD m128, xmm [AVX] +// * VMOVAPD ymm, ymm [AVX] +// * VMOVAPD m256, ymm [AVX] +// * VMOVAPD xmm, m128 [AVX] +// * VMOVAPD ymm, m256 [AVX] +// * VMOVAPD zmm, m512{k}{z} [AVX512F] +// * VMOVAPD zmm, zmm{k}{z} [AVX512F] +// * VMOVAPD m512, zmm{k}{z} [AVX512F] +// * VMOVAPD xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVAPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVAPD", 2, Operands { v0, v1 }) + // VMOVAPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVAPD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), v[1], 0) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVAPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVAPD ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVAPD zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVAPD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVAPD xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVAPD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVAPD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVAPD m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVAPD") + } + return p +} + +// VMOVAPS performs "Move Aligned Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVAPS +// Supported forms : (15 forms) +// +// * VMOVAPS xmm, xmm [AVX] +// * VMOVAPS m128, xmm [AVX] +// * VMOVAPS ymm, ymm [AVX] +// * VMOVAPS m256, ymm [AVX] +// * VMOVAPS xmm, m128 [AVX] +// * VMOVAPS ymm, m256 [AVX] +// * VMOVAPS zmm, m512{k}{z} [AVX512F] +// * VMOVAPS zmm, zmm{k}{z} [AVX512F] +// * VMOVAPS m512, zmm{k}{z} [AVX512F] +// * VMOVAPS xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVAPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVAPS", 2, Operands { v0, v1 }) + // VMOVAPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), v[1], 0) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVAPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), v[1], 0) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVAPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVAPS ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), addr(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVAPS zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVAPS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVAPS xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVAPS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVAPS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVAPS m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVAPS") + } + return p +} + +// VMOVD performs "Move Doubleword". +// +// Mnemonic : VMOVD +// Supported forms : (8 forms) +// +// * VMOVD xmm, r32 [AVX] +// * VMOVD r32, xmm [AVX] +// * VMOVD m32, xmm [AVX] +// * VMOVD xmm, m32 [AVX] +// * VMOVD xmm, r32 [AVX512F] +// * VMOVD r32, xmm [AVX512F] +// * VMOVD m32, xmm [AVX512F] +// * VMOVD xmm, m32 [AVX512F] +// +func (self *Program) VMOVD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVD", 2, Operands { v0, v1 }) + // VMOVD xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVD r32, xmm + if isReg32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVD xmm, m32 + if isXMM(v0) && isM32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVD xmm, r32 + if isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVD r32, xmm + if isReg32(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVD m32, xmm + if isM32(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VMOVD xmm, m32 + if isEVEXXMM(v0) && isM32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVD") + } + return p +} + +// VMOVDDUP performs "Move One Double-FP and Duplicate". +// +// Mnemonic : VMOVDDUP +// Supported forms : (10 forms) +// +// * VMOVDDUP xmm, xmm [AVX] +// * VMOVDDUP m64, xmm [AVX] +// * VMOVDDUP ymm, ymm [AVX] +// * VMOVDDUP m256, ymm [AVX] +// * VMOVDDUP zmm, zmm{k}{z} [AVX512F] +// * VMOVDDUP m512, zmm{k}{z} [AVX512F] +// * VMOVDDUP xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDDUP ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDDUP m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDDUP m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDDUP", 2, Operands { v0, v1 }) + // VMOVDDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), v[0], 0) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDDUP ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), v[0], 0) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), addr(v[0]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDDUP zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDDUP xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VMOVDDUP m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDDUP") + } + return p +} + +// VMOVDQA performs "Move Aligned Double Quadword". +// +// Mnemonic : VMOVDQA +// Supported forms : (6 forms) +// +// * VMOVDQA xmm, xmm [AVX] +// * VMOVDQA m128, xmm [AVX] +// * VMOVDQA ymm, ymm [AVX] +// * VMOVDQA m256, ymm [AVX] +// * VMOVDQA xmm, m128 [AVX] +// * VMOVDQA ymm, m256 [AVX] +// +func (self *Program) VMOVDQA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQA", 2, Operands { v0, v1 }) + // VMOVDQA xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDQA ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), v[1], 0) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDQA xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVDQA ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQA") + } + return p +} + +// VMOVDQA32 performs "Move Aligned Doubleword Values". +// +// Mnemonic : VMOVDQA32 +// Supported forms : (9 forms) +// +// * VMOVDQA32 zmm, m512{k}{z} [AVX512F] +// * VMOVDQA32 zmm, zmm{k}{z} [AVX512F] +// * VMOVDQA32 m512, zmm{k}{z} [AVX512F] +// * VMOVDQA32 xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDQA32(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQA32", 2, Operands { v0, v1 }) + // VMOVDQA32 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQA32 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA32 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQA32 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQA32 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA32 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQA32 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA32 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQA32 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQA32") + } + return p +} + +// VMOVDQA64 performs "Move Aligned Quadword Values". +// +// Mnemonic : VMOVDQA64 +// Supported forms : (9 forms) +// +// * VMOVDQA64 zmm, m512{k}{z} [AVX512F] +// * VMOVDQA64 zmm, zmm{k}{z} [AVX512F] +// * VMOVDQA64 m512, zmm{k}{z} [AVX512F] +// * VMOVDQA64 xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDQA64(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQA64", 2, Operands { v0, v1 }) + // VMOVDQA64 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQA64 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA64 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQA64 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQA64 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA64 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQA64 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA64 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQA64 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQA64") + } + return p +} + +// VMOVDQU performs "Move Unaligned Double Quadword". +// +// Mnemonic : VMOVDQU +// Supported forms : (6 forms) +// +// * VMOVDQU xmm, xmm [AVX] +// * VMOVDQU m128, xmm [AVX] +// * VMOVDQU ymm, ymm [AVX] +// * VMOVDQU m256, ymm [AVX] +// * VMOVDQU xmm, m128 [AVX] +// * VMOVDQU ymm, m256 [AVX] +// +func (self *Program) VMOVDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU", 2, Operands { v0, v1 }) + // VMOVDQU xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[0]), v[1], 0) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDQU ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[0]), v[1], 0) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDQU xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVDQU ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU") + } + return p +} + +// VMOVDQU16 performs "Move Unaligned Word Values". +// +// Mnemonic : VMOVDQU16 +// Supported forms : (9 forms) +// +// * VMOVDQU16 zmm, m512{k}{z} [AVX512BW] +// * VMOVDQU16 zmm, zmm{k}{z} [AVX512BW] +// * VMOVDQU16 m512, zmm{k}{z} [AVX512BW] +// * VMOVDQU16 xmm, m128{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 ymm, m256{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VMOVDQU16(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU16", 2, Operands { v0, v1 }) + // VMOVDQU16 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQU16 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU16 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQU16 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQU16 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU16 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQU16 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU16 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQU16 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU16") + } + return p +} + +// VMOVDQU32 performs "Move Unaligned Doubleword Values". +// +// Mnemonic : VMOVDQU32 +// Supported forms : (9 forms) +// +// * VMOVDQU32 zmm, m512{k}{z} [AVX512F] +// * VMOVDQU32 zmm, zmm{k}{z} [AVX512F] +// * VMOVDQU32 m512, zmm{k}{z} [AVX512F] +// * VMOVDQU32 xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDQU32(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU32", 2, Operands { v0, v1 }) + // VMOVDQU32 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQU32 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU32 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQU32 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQU32 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU32 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQU32 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU32 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQU32 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU32") + } + return p +} + +// VMOVDQU64 performs "Move Unaligned Quadword Values". +// +// Mnemonic : VMOVDQU64 +// Supported forms : (9 forms) +// +// * VMOVDQU64 zmm, m512{k}{z} [AVX512F] +// * VMOVDQU64 zmm, zmm{k}{z} [AVX512F] +// * VMOVDQU64 m512, zmm{k}{z} [AVX512F] +// * VMOVDQU64 xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDQU64(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU64", 2, Operands { v0, v1 }) + // VMOVDQU64 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQU64 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU64 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQU64 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQU64 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU64 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQU64 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU64 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQU64 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU64") + } + return p +} + +// VMOVDQU8 performs "Move Unaligned Byte Values". +// +// Mnemonic : VMOVDQU8 +// Supported forms : (9 forms) +// +// * VMOVDQU8 zmm, m512{k}{z} [AVX512BW] +// * VMOVDQU8 zmm, zmm{k}{z} [AVX512BW] +// * VMOVDQU8 m512, zmm{k}{z} [AVX512BW] +// * VMOVDQU8 xmm, m128{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 ymm, m256{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VMOVDQU8(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU8", 2, Operands { v0, v1 }) + // VMOVDQU8 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQU8 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU8 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQU8 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQU8 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU8 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQU8 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU8 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQU8 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU8") + } + return p +} + +// VMOVHLPS performs "Move Packed Single-Precision Floating-Point Values High to Low". +// +// Mnemonic : VMOVHLPS +// Supported forms : (2 forms) +// +// * VMOVHLPS xmm, xmm, xmm [AVX] +// * VMOVHLPS xmm, xmm, xmm [AVX512F] +// +func (self *Program) VMOVHLPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VMOVHLPS", 3, Operands { v0, v1, v2 }) + // VMOVHLPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMOVHLPS xmm, xmm, xmm + if isEVEXXMM(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVHLPS") + } + return p +} + +// VMOVHPD performs "Move High Packed Double-Precision Floating-Point Value". +// +// Mnemonic : VMOVHPD +// Supported forms : (4 forms) +// +// * VMOVHPD xmm, m64 [AVX] +// * VMOVHPD m64, xmm, xmm [AVX] +// * VMOVHPD xmm, m64 [AVX512F] +// * VMOVHPD m64, xmm, xmm [AVX512F] +// +func (self *Program) VMOVHPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVHPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVHPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVHPD takes 2 or 3 operands") + } + // VMOVHPD xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVHPD m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMOVHPD xmm, m64 + if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVHPD m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVHPD") + } + return p +} + +// VMOVHPS performs "Move High Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVHPS +// Supported forms : (4 forms) +// +// * VMOVHPS xmm, m64 [AVX] +// * VMOVHPS m64, xmm, xmm [AVX] +// * VMOVHPS xmm, m64 [AVX512F] +// * VMOVHPS m64, xmm, xmm [AVX512F] +// +func (self *Program) VMOVHPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVHPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVHPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVHPS takes 2 or 3 operands") + } + // VMOVHPS xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVHPS m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMOVHPS xmm, m64 + if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVHPS m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVHPS") + } + return p +} + +// VMOVLHPS performs "Move Packed Single-Precision Floating-Point Values Low to High". +// +// Mnemonic : VMOVLHPS +// Supported forms : (2 forms) +// +// * VMOVLHPS xmm, xmm, xmm [AVX] +// * VMOVLHPS xmm, xmm, xmm [AVX512F] +// +func (self *Program) VMOVLHPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VMOVLHPS", 3, Operands { v0, v1, v2 }) + // VMOVLHPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMOVLHPS xmm, xmm, xmm + if isEVEXXMM(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVLHPS") + } + return p +} + +// VMOVLPD performs "Move Low Packed Double-Precision Floating-Point Value". +// +// Mnemonic : VMOVLPD +// Supported forms : (4 forms) +// +// * VMOVLPD xmm, m64 [AVX] +// * VMOVLPD m64, xmm, xmm [AVX] +// * VMOVLPD xmm, m64 [AVX512F] +// * VMOVLPD m64, xmm, xmm [AVX512F] +// +func (self *Program) VMOVLPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVLPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVLPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVLPD takes 2 or 3 operands") + } + // VMOVLPD xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVLPD m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMOVLPD xmm, m64 + if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVLPD m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVLPD") + } + return p +} + +// VMOVLPS performs "Move Low Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVLPS +// Supported forms : (4 forms) +// +// * VMOVLPS xmm, m64 [AVX] +// * VMOVLPS m64, xmm, xmm [AVX] +// * VMOVLPS xmm, m64 [AVX512F] +// * VMOVLPS m64, xmm, xmm [AVX512F] +// +func (self *Program) VMOVLPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVLPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVLPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVLPS takes 2 or 3 operands") + } + // VMOVLPS xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVLPS m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMOVLPS xmm, m64 + if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVLPS m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVLPS") + } + return p +} + +// VMOVMSKPD performs "Extract Packed Double-Precision Floating-Point Sign Mask". +// +// Mnemonic : VMOVMSKPD +// Supported forms : (2 forms) +// +// * VMOVMSKPD xmm, r32 [AVX] +// * VMOVMSKPD ymm, r32 [AVX] +// +func (self *Program) VMOVMSKPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVMSKPD", 2, Operands { v0, v1 }) + // VMOVMSKPD xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVMSKPD ymm, r32 + if isYMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVMSKPD") + } + return p +} + +// VMOVMSKPS performs "Extract Packed Single-Precision Floating-Point Sign Mask". +// +// Mnemonic : VMOVMSKPS +// Supported forms : (2 forms) +// +// * VMOVMSKPS xmm, r32 [AVX] +// * VMOVMSKPS ymm, r32 [AVX] +// +func (self *Program) VMOVMSKPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVMSKPS", 2, Operands { v0, v1 }) + // VMOVMSKPS xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVMSKPS ymm, r32 + if isYMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVMSKPS") + } + return p +} + +// VMOVNTDQ performs "Store Double Quadword Using Non-Temporal Hint". +// +// Mnemonic : VMOVNTDQ +// Supported forms : (5 forms) +// +// * VMOVNTDQ xmm, m128 [AVX] +// * VMOVNTDQ ymm, m256 [AVX] +// * VMOVNTDQ zmm, m512 [AVX512F] +// * VMOVNTDQ xmm, m128 [AVX512F,AVX512VL] +// * VMOVNTDQ ymm, m256 [AVX512F,AVX512VL] +// +func (self *Program) VMOVNTDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVNTDQ", 2, Operands { v0, v1 }) + // VMOVNTDQ xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTDQ ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTDQ zmm, m512 + if isZMM(v0) && isM512(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVNTDQ xmm, m128 + if isEVEXXMM(v0) && isM128(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVNTDQ ymm, m256 + if isEVEXYMM(v0) && isM256(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVNTDQ") + } + return p +} + +// VMOVNTDQA performs "Load Double Quadword Non-Temporal Aligned Hint". +// +// Mnemonic : VMOVNTDQA +// Supported forms : (5 forms) +// +// * VMOVNTDQA m128, xmm [AVX] +// * VMOVNTDQA m256, ymm [AVX2] +// * VMOVNTDQA m512, zmm [AVX512F] +// * VMOVNTDQA m128, xmm [AVX512F,AVX512VL] +// * VMOVNTDQA m256, ymm [AVX512F,AVX512VL] +// +func (self *Program) VMOVNTDQA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVNTDQA", 2, Operands { v0, v1 }) + // VMOVNTDQA m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVNTDQA m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVNTDQA m512, zmm + if isM512(v0) && isZMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVNTDQA m128, xmm + if isM128(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVNTDQA m256, ymm + if isM256(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVNTDQA") + } + return p +} + +// VMOVNTPD performs "Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : VMOVNTPD +// Supported forms : (5 forms) +// +// * VMOVNTPD xmm, m128 [AVX] +// * VMOVNTPD ymm, m256 [AVX] +// * VMOVNTPD zmm, m512 [AVX512F] +// * VMOVNTPD xmm, m128 [AVX512F,AVX512VL] +// * VMOVNTPD ymm, m256 [AVX512F,AVX512VL] +// +func (self *Program) VMOVNTPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVNTPD", 2, Operands { v0, v1 }) + // VMOVNTPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTPD ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTPD zmm, m512 + if isZMM(v0) && isM512(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVNTPD xmm, m128 + if isEVEXXMM(v0) && isM128(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVNTPD ymm, m256 + if isEVEXYMM(v0) && isM256(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVNTPD") + } + return p +} + +// VMOVNTPS performs "Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : VMOVNTPS +// Supported forms : (5 forms) +// +// * VMOVNTPS xmm, m128 [AVX] +// * VMOVNTPS ymm, m256 [AVX] +// * VMOVNTPS zmm, m512 [AVX512F] +// * VMOVNTPS xmm, m128 [AVX512F,AVX512VL] +// * VMOVNTPS ymm, m256 [AVX512F,AVX512VL] +// +func (self *Program) VMOVNTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVNTPS", 2, Operands { v0, v1 }) + // VMOVNTPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTPS ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), addr(v[1]), 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTPS zmm, m512 + if isZMM(v0) && isM512(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVNTPS xmm, m128 + if isEVEXXMM(v0) && isM128(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVNTPS ymm, m256 + if isEVEXYMM(v0) && isM256(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVNTPS") + } + return p +} + +// VMOVQ performs "Move Quadword". +// +// Mnemonic : VMOVQ +// Supported forms : (10 forms) +// +// * VMOVQ xmm, r64 [AVX] +// * VMOVQ r64, xmm [AVX] +// * VMOVQ xmm, xmm [AVX] +// * VMOVQ m64, xmm [AVX] +// * VMOVQ xmm, m64 [AVX] +// * VMOVQ xmm, r64 [AVX512F] +// * VMOVQ r64, xmm [AVX512F] +// * VMOVQ xmm, xmm [AVX512F] +// * VMOVQ m64, xmm [AVX512F] +// * VMOVQ xmm, m64 [AVX512F] +// +func (self *Program) VMOVQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVQ", 2, Operands { v0, v1 }) + // VMOVQ xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[0]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVQ r64, xmm + if isReg64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x7e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x81, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVQ xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0xd6) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x81, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVQ xmm, r64 + if isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit(0x08) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVQ r64, xmm + if isReg64(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit(0x08) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVQ xmm, xmm + if isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit(0x08) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVQ m64, xmm + if isM64(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x7e) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VMOVQ xmm, m64 + if isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0xd6) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVQ") + } + return p +} + +// VMOVSD performs "Move Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VMOVSD +// Supported forms : (6 forms) +// +// * VMOVSD m64, xmm [AVX] +// * VMOVSD xmm, m64 [AVX] +// * VMOVSD xmm, xmm, xmm [AVX] +// * VMOVSD xmm, m64{k} [AVX512F] +// * VMOVSD m64, xmm{k}{z} [AVX512F] +// * VMOVSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMOVSD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVSD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVSD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVSD takes 2 or 3 operands") + } + // VMOVSD m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSD xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVSD xmm, xmm, xmm + if len(vv) == 1 && isXMM(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[0]), v[2], hlcode(v[1])) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) + }) + } + // VMOVSD xmm, m64{k} + if len(vv) == 0 && isEVEXXMM(v0) && isM64k(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVSD m64, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VMOVSD xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVSD") + } + return p +} + +// VMOVSHDUP performs "Move Packed Single-FP High and Duplicate". +// +// Mnemonic : VMOVSHDUP +// Supported forms : (10 forms) +// +// * VMOVSHDUP xmm, xmm [AVX] +// * VMOVSHDUP m128, xmm [AVX] +// * VMOVSHDUP ymm, ymm [AVX] +// * VMOVSHDUP m256, ymm [AVX] +// * VMOVSHDUP zmm, zmm{k}{z} [AVX512F] +// * VMOVSHDUP m512, zmm{k}{z} [AVX512F] +// * VMOVSHDUP xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVSHDUP ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVSHDUP m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVSHDUP m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVSHDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVSHDUP", 2, Operands { v0, v1 }) + // VMOVSHDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSHDUP ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSHDUP zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVSHDUP xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVSHDUP m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVSHDUP") + } + return p +} + +// VMOVSLDUP performs "Move Packed Single-FP Low and Duplicate". +// +// Mnemonic : VMOVSLDUP +// Supported forms : (10 forms) +// +// * VMOVSLDUP xmm, xmm [AVX] +// * VMOVSLDUP m128, xmm [AVX] +// * VMOVSLDUP ymm, ymm [AVX] +// * VMOVSLDUP m256, ymm [AVX] +// * VMOVSLDUP zmm, zmm{k}{z} [AVX512F] +// * VMOVSLDUP m512, zmm{k}{z} [AVX512F] +// * VMOVSLDUP xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVSLDUP ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVSLDUP m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVSLDUP m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVSLDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVSLDUP", 2, Operands { v0, v1 }) + // VMOVSLDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSLDUP ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSLDUP zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVSLDUP xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVSLDUP m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVSLDUP") + } + return p +} + +// VMOVSS performs "Move Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVSS +// Supported forms : (6 forms) +// +// * VMOVSS m32, xmm [AVX] +// * VMOVSS xmm, m32 [AVX] +// * VMOVSS xmm, xmm, xmm [AVX] +// * VMOVSS xmm, m32{k} [AVX512F] +// * VMOVSS m32, xmm{k}{z} [AVX512F] +// * VMOVSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMOVSS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVSS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVSS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVSS takes 2 or 3 operands") + } + // VMOVSS m32, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSS xmm, m32 + if len(vv) == 0 && isXMM(v0) && isM32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVSS xmm, xmm, xmm + if len(vv) == 1 && isXMM(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[0]), v[2], hlcode(v[1])) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) + }) + } + // VMOVSS xmm, m32{k} + if len(vv) == 0 && isEVEXXMM(v0) && isM32k(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VMOVSS m32, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VMOVSS xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVSS") + } + return p +} + +// VMOVUPD performs "Move Unaligned Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMOVUPD +// Supported forms : (15 forms) +// +// * VMOVUPD xmm, xmm [AVX] +// * VMOVUPD m128, xmm [AVX] +// * VMOVUPD ymm, ymm [AVX] +// * VMOVUPD m256, ymm [AVX] +// * VMOVUPD xmm, m128 [AVX] +// * VMOVUPD ymm, m256 [AVX] +// * VMOVUPD zmm, m512{k}{z} [AVX512F] +// * VMOVUPD zmm, zmm{k}{z} [AVX512F] +// * VMOVUPD m512, zmm{k}{z} [AVX512F] +// * VMOVUPD xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVUPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVUPD", 2, Operands { v0, v1 }) + // VMOVUPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVUPD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), v[1], 0) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVUPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVUPD ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVUPD zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVUPD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVUPD xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVUPD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVUPD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVUPD m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVUPD") + } + return p +} + +// VMOVUPS performs "Move Unaligned Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVUPS +// Supported forms : (15 forms) +// +// * VMOVUPS xmm, xmm [AVX] +// * VMOVUPS m128, xmm [AVX] +// * VMOVUPS ymm, ymm [AVX] +// * VMOVUPS m256, ymm [AVX] +// * VMOVUPS xmm, m128 [AVX] +// * VMOVUPS ymm, m256 [AVX] +// * VMOVUPS zmm, m512{k}{z} [AVX512F] +// * VMOVUPS zmm, zmm{k}{z} [AVX512F] +// * VMOVUPS m512, zmm{k}{z} [AVX512F] +// * VMOVUPS xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVUPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVUPS", 2, Operands { v0, v1 }) + // VMOVUPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), v[1], 0) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVUPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), v[1], 0) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVUPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVUPS ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVUPS zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVUPS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVUPS xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVUPS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVUPS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVUPS m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVUPS") + } + return p +} + +// VMPSADBW performs "Compute Multiple Packed Sums of Absolute Difference". +// +// Mnemonic : VMPSADBW +// Supported forms : (4 forms) +// +// * VMPSADBW imm8, xmm, xmm, xmm [AVX] +// * VMPSADBW imm8, m128, xmm, xmm [AVX] +// * VMPSADBW imm8, ymm, ymm, ymm [AVX2] +// * VMPSADBW imm8, m256, ymm, ymm [AVX2] +// +func (self *Program) VMPSADBW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VMPSADBW", 4, Operands { v0, v1, v2, v3 }) + // VMPSADBW imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VMPSADBW imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VMPSADBW imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VMPSADBW imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMPSADBW") + } + return p +} + +// VMULPD performs "Multiply Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMULPD +// Supported forms : (11 forms) +// +// * VMULPD xmm, xmm, xmm [AVX] +// * VMULPD m128, xmm, xmm [AVX] +// * VMULPD ymm, ymm, ymm [AVX] +// * VMULPD m256, ymm, ymm [AVX] +// * VMULPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VMULPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMULPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VMULPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMULPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMULPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMULPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMULPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMULPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMULPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMULPD takes 3 or 4 operands") + } + // VMULPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMULPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x59) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMULPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMULPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMULPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMULPD") + } + return p +} + +// VMULPS performs "Multiply Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMULPS +// Supported forms : (11 forms) +// +// * VMULPS xmm, xmm, xmm [AVX] +// * VMULPS m128, xmm, xmm [AVX] +// * VMULPS ymm, ymm, ymm [AVX] +// * VMULPS m256, ymm, ymm [AVX] +// * VMULPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VMULPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMULPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VMULPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMULPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMULPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMULPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMULPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMULPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMULPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMULPS takes 3 or 4 operands") + } + // VMULPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMULPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x59) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMULPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMULPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMULPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMULPS") + } + return p +} + +// VMULSD performs "Multiply Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VMULSD +// Supported forms : (5 forms) +// +// * VMULSD xmm, xmm, xmm [AVX] +// * VMULSD m64, xmm, xmm [AVX] +// * VMULSD m64, xmm, xmm{k}{z} [AVX512F] +// * VMULSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMULSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMULSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMULSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMULSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMULSD takes 3 or 4 operands") + } + // VMULSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VMULSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x59) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMULSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMULSD") + } + return p +} + +// VMULSS performs "Multiply Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VMULSS +// Supported forms : (5 forms) +// +// * VMULSS xmm, xmm, xmm [AVX] +// * VMULSS m32, xmm, xmm [AVX] +// * VMULSS m32, xmm, xmm{k}{z} [AVX512F] +// * VMULSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMULSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMULSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMULSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMULSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMULSS takes 3 or 4 operands") + } + // VMULSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VMULSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x59) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMULSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMULSS") + } + return p +} + +// VORPD performs "Bitwise Logical OR of Double-Precision Floating-Point Values". +// +// Mnemonic : VORPD +// Supported forms : (10 forms) +// +// * VORPD xmm, xmm, xmm [AVX] +// * VORPD m128, xmm, xmm [AVX] +// * VORPD ymm, ymm, ymm [AVX] +// * VORPD m256, ymm, ymm [AVX] +// * VORPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VORPD zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VORPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VORPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VORPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VORPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VORPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VORPD", 3, Operands { v0, v1, v2 }) + // VORPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VORPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VORPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VORPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VORPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VORPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VORPD") + } + return p +} + +// VORPS performs "Bitwise Logical OR of Single-Precision Floating-Point Values". +// +// Mnemonic : VORPS +// Supported forms : (10 forms) +// +// * VORPS xmm, xmm, xmm [AVX] +// * VORPS m128, xmm, xmm [AVX] +// * VORPS ymm, ymm, ymm [AVX] +// * VORPS m256, ymm, ymm [AVX] +// * VORPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VORPS zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VORPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VORPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VORPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VORPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VORPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VORPS", 3, Operands { v0, v1, v2 }) + // VORPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VORPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VORPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VORPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VORPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VORPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VORPS") + } + return p +} + +// VPABSB performs "Packed Absolute Value of Byte Integers". +// +// Mnemonic : VPABSB +// Supported forms : (10 forms) +// +// * VPABSB xmm, xmm [AVX] +// * VPABSB m128, xmm [AVX] +// * VPABSB ymm, ymm [AVX2] +// * VPABSB m256, ymm [AVX2] +// * VPABSB zmm, zmm{k}{z} [AVX512BW] +// * VPABSB m512, zmm{k}{z} [AVX512BW] +// * VPABSB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPABSB ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPABSB m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPABSB m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPABSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPABSB", 2, Operands { v0, v1 }) + // VPABSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSB ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSB zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPABSB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPABSB m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPABSB") + } + return p +} + +// VPABSD performs "Packed Absolute Value of Doubleword Integers". +// +// Mnemonic : VPABSD +// Supported forms : (10 forms) +// +// * VPABSD xmm, xmm [AVX] +// * VPABSD m128, xmm [AVX] +// * VPABSD ymm, ymm [AVX2] +// * VPABSD m256, ymm [AVX2] +// * VPABSD m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPABSD zmm, zmm{k}{z} [AVX512F] +// * VPABSD m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPABSD m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPABSD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPABSD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPABSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPABSD", 2, Operands { v0, v1 }) + // VPABSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSD m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPABSD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSD m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPABSD m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPABSD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPABSD") + } + return p +} + +// VPABSQ performs "Packed Absolute Value of Quadword Integers". +// +// Mnemonic : VPABSQ +// Supported forms : (6 forms) +// +// * VPABSQ m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPABSQ zmm, zmm{k}{z} [AVX512F] +// * VPABSQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPABSQ m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPABSQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPABSQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPABSQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPABSQ", 2, Operands { v0, v1 }) + // VPABSQ m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPABSQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSQ m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPABSQ m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPABSQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPABSQ") + } + return p +} + +// VPABSW performs "Packed Absolute Value of Word Integers". +// +// Mnemonic : VPABSW +// Supported forms : (10 forms) +// +// * VPABSW xmm, xmm [AVX] +// * VPABSW m128, xmm [AVX] +// * VPABSW ymm, ymm [AVX2] +// * VPABSW m256, ymm [AVX2] +// * VPABSW zmm, zmm{k}{z} [AVX512BW] +// * VPABSW m512, zmm{k}{z} [AVX512BW] +// * VPABSW xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPABSW ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPABSW m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPABSW m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPABSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPABSW", 2, Operands { v0, v1 }) + // VPABSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSW ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSW zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPABSW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPABSW m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPABSW") + } + return p +} + +// VPACKSSDW performs "Pack Doublewords into Words with Signed Saturation". +// +// Mnemonic : VPACKSSDW +// Supported forms : (10 forms) +// +// * VPACKSSDW xmm, xmm, xmm [AVX] +// * VPACKSSDW m128, xmm, xmm [AVX] +// * VPACKSSDW ymm, ymm, ymm [AVX2] +// * VPACKSSDW m256, ymm, ymm [AVX2] +// * VPACKSSDW m512/m32bcst, zmm, zmm{k}{z} [AVX512BW] +// * VPACKSSDW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPACKSSDW m128/m32bcst, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSDW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSDW m256/m32bcst, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSDW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPACKSSDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPACKSSDW", 3, Operands { v0, v1, v2 }) + // VPACKSSDW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSDW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKSSDW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSDW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKSSDW m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPACKSSDW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSDW m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPACKSSDW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSDW m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPACKSSDW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPACKSSDW") + } + return p +} + +// VPACKSSWB performs "Pack Words into Bytes with Signed Saturation". +// +// Mnemonic : VPACKSSWB +// Supported forms : (10 forms) +// +// * VPACKSSWB xmm, xmm, xmm [AVX] +// * VPACKSSWB m128, xmm, xmm [AVX] +// * VPACKSSWB ymm, ymm, ymm [AVX2] +// * VPACKSSWB m256, ymm, ymm [AVX2] +// * VPACKSSWB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPACKSSWB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPACKSSWB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSWB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSWB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSWB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPACKSSWB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPACKSSWB", 3, Operands { v0, v1, v2 }) + // VPACKSSWB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKSSWB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKSSWB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPACKSSWB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPACKSSWB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPACKSSWB") + } + return p +} + +// VPACKUSDW performs "Pack Doublewords into Words with Unsigned Saturation". +// +// Mnemonic : VPACKUSDW +// Supported forms : (10 forms) +// +// * VPACKUSDW xmm, xmm, xmm [AVX] +// * VPACKUSDW m128, xmm, xmm [AVX] +// * VPACKUSDW ymm, ymm, ymm [AVX2] +// * VPACKUSDW m256, ymm, ymm [AVX2] +// * VPACKUSDW m512/m32bcst, zmm, zmm{k}{z} [AVX512BW] +// * VPACKUSDW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPACKUSDW m128/m32bcst, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSDW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSDW m256/m32bcst, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSDW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPACKUSDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPACKUSDW", 3, Operands { v0, v1, v2 }) + // VPACKUSDW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSDW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKUSDW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSDW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKUSDW m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPACKUSDW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSDW m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPACKUSDW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSDW m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPACKUSDW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPACKUSDW") + } + return p +} + +// VPACKUSWB performs "Pack Words into Bytes with Unsigned Saturation". +// +// Mnemonic : VPACKUSWB +// Supported forms : (10 forms) +// +// * VPACKUSWB xmm, xmm, xmm [AVX] +// * VPACKUSWB m128, xmm, xmm [AVX] +// * VPACKUSWB ymm, ymm, ymm [AVX2] +// * VPACKUSWB m256, ymm, ymm [AVX2] +// * VPACKUSWB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPACKUSWB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPACKUSWB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSWB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSWB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSWB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPACKUSWB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPACKUSWB", 3, Operands { v0, v1, v2 }) + // VPACKUSWB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKUSWB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKUSWB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPACKUSWB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPACKUSWB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPACKUSWB") + } + return p +} + +// VPADDB performs "Add Packed Byte Integers". +// +// Mnemonic : VPADDB +// Supported forms : (10 forms) +// +// * VPADDB xmm, xmm, xmm [AVX] +// * VPADDB m128, xmm, xmm [AVX] +// * VPADDB ymm, ymm, ymm [AVX2] +// * VPADDB m256, ymm, ymm [AVX2] +// * VPADDB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDB", 3, Operands { v0, v1, v2 }) + // VPADDB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDB") + } + return p +} + +// VPADDD performs "Add Packed Doubleword Integers". +// +// Mnemonic : VPADDD +// Supported forms : (10 forms) +// +// * VPADDD xmm, xmm, xmm [AVX] +// * VPADDD m128, xmm, xmm [AVX] +// * VPADDD ymm, ymm, ymm [AVX2] +// * VPADDD m256, ymm, ymm [AVX2] +// * VPADDD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPADDD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPADDD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPADDD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPADDD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPADDD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPADDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDD", 3, Operands { v0, v1, v2 }) + // VPADDD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPADDD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDD") + } + return p +} + +// VPADDQ performs "Add Packed Quadword Integers". +// +// Mnemonic : VPADDQ +// Supported forms : (10 forms) +// +// * VPADDQ xmm, xmm, xmm [AVX] +// * VPADDQ m128, xmm, xmm [AVX] +// * VPADDQ ymm, ymm, ymm [AVX2] +// * VPADDQ m256, ymm, ymm [AVX2] +// * VPADDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPADDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPADDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPADDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPADDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPADDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPADDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDQ", 3, Operands { v0, v1, v2 }) + // VPADDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPADDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDQ") + } + return p +} + +// VPADDSB performs "Add Packed Signed Byte Integers with Signed Saturation". +// +// Mnemonic : VPADDSB +// Supported forms : (10 forms) +// +// * VPADDSB xmm, xmm, xmm [AVX] +// * VPADDSB m128, xmm, xmm [AVX] +// * VPADDSB ymm, ymm, ymm [AVX2] +// * VPADDSB m256, ymm, ymm [AVX2] +// * VPADDSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDSB", 3, Operands { v0, v1, v2 }) + // VPADDSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDSB") + } + return p +} + +// VPADDSW performs "Add Packed Signed Word Integers with Signed Saturation". +// +// Mnemonic : VPADDSW +// Supported forms : (10 forms) +// +// * VPADDSW xmm, xmm, xmm [AVX] +// * VPADDSW m128, xmm, xmm [AVX] +// * VPADDSW ymm, ymm, ymm [AVX2] +// * VPADDSW m256, ymm, ymm [AVX2] +// * VPADDSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDSW", 3, Operands { v0, v1, v2 }) + // VPADDSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDSW") + } + return p +} + +// VPADDUSB performs "Add Packed Unsigned Byte Integers with Unsigned Saturation". +// +// Mnemonic : VPADDUSB +// Supported forms : (10 forms) +// +// * VPADDUSB xmm, xmm, xmm [AVX] +// * VPADDUSB m128, xmm, xmm [AVX] +// * VPADDUSB ymm, ymm, ymm [AVX2] +// * VPADDUSB m256, ymm, ymm [AVX2] +// * VPADDUSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDUSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDUSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDUSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDUSB", 3, Operands { v0, v1, v2 }) + // VPADDUSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDUSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDUSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDUSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDUSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDUSB") + } + return p +} + +// VPADDUSW performs "Add Packed Unsigned Word Integers with Unsigned Saturation". +// +// Mnemonic : VPADDUSW +// Supported forms : (10 forms) +// +// * VPADDUSW xmm, xmm, xmm [AVX] +// * VPADDUSW m128, xmm, xmm [AVX] +// * VPADDUSW ymm, ymm, ymm [AVX2] +// * VPADDUSW m256, ymm, ymm [AVX2] +// * VPADDUSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDUSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDUSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDUSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDUSW", 3, Operands { v0, v1, v2 }) + // VPADDUSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDUSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDUSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDUSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDUSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDUSW") + } + return p +} + +// VPADDW performs "Add Packed Word Integers". +// +// Mnemonic : VPADDW +// Supported forms : (10 forms) +// +// * VPADDW xmm, xmm, xmm [AVX] +// * VPADDW m128, xmm, xmm [AVX] +// * VPADDW ymm, ymm, ymm [AVX2] +// * VPADDW m256, ymm, ymm [AVX2] +// * VPADDW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDW", 3, Operands { v0, v1, v2 }) + // VPADDW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDW") + } + return p +} + +// VPALIGNR performs "Packed Align Right". +// +// Mnemonic : VPALIGNR +// Supported forms : (10 forms) +// +// * VPALIGNR imm8, xmm, xmm, xmm [AVX] +// * VPALIGNR imm8, m128, xmm, xmm [AVX] +// * VPALIGNR imm8, ymm, ymm, ymm [AVX2] +// * VPALIGNR imm8, m256, ymm, ymm [AVX2] +// * VPALIGNR imm8, zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPALIGNR imm8, m512, zmm, zmm{k}{z} [AVX512BW] +// * VPALIGNR imm8, xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPALIGNR imm8, m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPALIGNR imm8, ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPALIGNR imm8, m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPALIGNR(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPALIGNR", 4, Operands { v0, v1, v2, v3 }) + // VPALIGNR imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m512, zmm, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m128, xmm, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m256, ymm, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPALIGNR") + } + return p +} + +// VPAND performs "Packed Bitwise Logical AND". +// +// Mnemonic : VPAND +// Supported forms : (4 forms) +// +// * VPAND xmm, xmm, xmm [AVX] +// * VPAND m128, xmm, xmm [AVX] +// * VPAND ymm, ymm, ymm [AVX2] +// * VPAND m256, ymm, ymm [AVX2] +// +func (self *Program) VPAND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPAND", 3, Operands { v0, v1, v2 }) + // VPAND xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAND m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAND ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAND m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPAND") + } + return p +} + +// VPANDD performs "Bitwise Logical AND of Packed Doubleword Integers". +// +// Mnemonic : VPANDD +// Supported forms : (6 forms) +// +// * VPANDD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPANDD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPANDD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPANDD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPANDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDD", 3, Operands { v0, v1, v2 }) + // VPANDD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPANDD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPANDD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPANDD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDD") + } + return p +} + +// VPANDN performs "Packed Bitwise Logical AND NOT". +// +// Mnemonic : VPANDN +// Supported forms : (4 forms) +// +// * VPANDN xmm, xmm, xmm [AVX] +// * VPANDN m128, xmm, xmm [AVX] +// * VPANDN ymm, ymm, ymm [AVX2] +// * VPANDN m256, ymm, ymm [AVX2] +// +func (self *Program) VPANDN(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDN", 3, Operands { v0, v1, v2 }) + // VPANDN xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDN m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPANDN ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDN m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDN") + } + return p +} + +// VPANDND performs "Bitwise Logical AND NOT of Packed Doubleword Integers". +// +// Mnemonic : VPANDND +// Supported forms : (6 forms) +// +// * VPANDND m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPANDND zmm, zmm, zmm{k}{z} [AVX512F] +// * VPANDND m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDND xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDND m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPANDND ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPANDND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDND", 3, Operands { v0, v1, v2 }) + // VPANDND m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPANDND zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDND m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPANDND xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDND m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPANDND ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDND") + } + return p +} + +// VPANDNQ performs "Bitwise Logical AND NOT of Packed Quadword Integers". +// +// Mnemonic : VPANDNQ +// Supported forms : (6 forms) +// +// * VPANDNQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPANDNQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPANDNQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDNQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDNQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPANDNQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPANDNQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDNQ", 3, Operands { v0, v1, v2 }) + // VPANDNQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPANDNQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDNQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPANDNQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDNQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPANDNQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDNQ") + } + return p +} + +// VPANDQ performs "Bitwise Logical AND of Packed Quadword Integers". +// +// Mnemonic : VPANDQ +// Supported forms : (6 forms) +// +// * VPANDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPANDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPANDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPANDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPANDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDQ", 3, Operands { v0, v1, v2 }) + // VPANDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPANDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPANDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPANDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDQ") + } + return p +} + +// VPAVGB performs "Average Packed Byte Integers". +// +// Mnemonic : VPAVGB +// Supported forms : (10 forms) +// +// * VPAVGB xmm, xmm, xmm [AVX] +// * VPAVGB m128, xmm, xmm [AVX] +// * VPAVGB ymm, ymm, ymm [AVX2] +// * VPAVGB m256, ymm, ymm [AVX2] +// * VPAVGB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPAVGB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPAVGB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPAVGB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPAVGB", 3, Operands { v0, v1, v2 }) + // VPAVGB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAVGB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAVGB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPAVGB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPAVGB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPAVGB") + } + return p +} + +// VPAVGW performs "Average Packed Word Integers". +// +// Mnemonic : VPAVGW +// Supported forms : (10 forms) +// +// * VPAVGW xmm, xmm, xmm [AVX] +// * VPAVGW m128, xmm, xmm [AVX] +// * VPAVGW ymm, ymm, ymm [AVX2] +// * VPAVGW m256, ymm, ymm [AVX2] +// * VPAVGW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPAVGW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPAVGW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPAVGW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPAVGW", 3, Operands { v0, v1, v2 }) + // VPAVGW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAVGW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAVGW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPAVGW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPAVGW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPAVGW") + } + return p +} + +// VPBLENDD performs "Blend Packed Doublewords". +// +// Mnemonic : VPBLENDD +// Supported forms : (4 forms) +// +// * VPBLENDD imm8, xmm, xmm, xmm [AVX2] +// * VPBLENDD imm8, m128, xmm, xmm [AVX2] +// * VPBLENDD imm8, ymm, ymm, ymm [AVX2] +// * VPBLENDD imm8, m256, ymm, ymm [AVX2] +// +func (self *Program) VPBLENDD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPBLENDD", 4, Operands { v0, v1, v2, v3 }) + // VPBLENDD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x02) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x02) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDD imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x02) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDD imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x02) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDD") + } + return p +} + +// VPBLENDMB performs "Blend Byte Vectors Using an OpMask Control". +// +// Mnemonic : VPBLENDMB +// Supported forms : (6 forms) +// +// * VPBLENDMB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPBLENDMB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPBLENDMB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPBLENDMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPBLENDMB", 3, Operands { v0, v1, v2 }) + // VPBLENDMB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPBLENDMB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPBLENDMB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDMB") + } + return p +} + +// VPBLENDMD performs "Blend Doubleword Vectors Using an OpMask Control". +// +// Mnemonic : VPBLENDMD +// Supported forms : (6 forms) +// +// * VPBLENDMD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPBLENDMD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPBLENDMD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPBLENDMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPBLENDMD", 3, Operands { v0, v1, v2 }) + // VPBLENDMD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPBLENDMD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPBLENDMD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPBLENDMD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDMD") + } + return p +} + +// VPBLENDMQ performs "Blend Quadword Vectors Using an OpMask Control". +// +// Mnemonic : VPBLENDMQ +// Supported forms : (6 forms) +// +// * VPBLENDMQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPBLENDMQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPBLENDMQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPBLENDMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPBLENDMQ", 3, Operands { v0, v1, v2 }) + // VPBLENDMQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPBLENDMQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPBLENDMQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPBLENDMQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDMQ") + } + return p +} + +// VPBLENDMW performs "Blend Word Vectors Using an OpMask Control". +// +// Mnemonic : VPBLENDMW +// Supported forms : (6 forms) +// +// * VPBLENDMW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPBLENDMW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPBLENDMW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPBLENDMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPBLENDMW", 3, Operands { v0, v1, v2 }) + // VPBLENDMW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPBLENDMW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPBLENDMW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDMW") + } + return p +} + +// VPBLENDVB performs "Variable Blend Packed Bytes". +// +// Mnemonic : VPBLENDVB +// Supported forms : (4 forms) +// +// * VPBLENDVB xmm, xmm, xmm, xmm [AVX] +// * VPBLENDVB xmm, m128, xmm, xmm [AVX] +// * VPBLENDVB ymm, ymm, ymm, ymm [AVX2] +// * VPBLENDVB ymm, m256, ymm, ymm [AVX2] +// +func (self *Program) VPBLENDVB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPBLENDVB", 4, Operands { v0, v1, v2, v3 }) + // VPBLENDVB xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPBLENDVB xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPBLENDVB ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPBLENDVB ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDVB") + } + return p +} + +// VPBLENDW performs "Blend Packed Words". +// +// Mnemonic : VPBLENDW +// Supported forms : (4 forms) +// +// * VPBLENDW imm8, xmm, xmm, xmm [AVX] +// * VPBLENDW imm8, m128, xmm, xmm [AVX] +// * VPBLENDW imm8, ymm, ymm, ymm [AVX2] +// * VPBLENDW imm8, m256, ymm, ymm [AVX2] +// +func (self *Program) VPBLENDW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPBLENDW", 4, Operands { v0, v1, v2, v3 }) + // VPBLENDW imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDW imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDW imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDW imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDW") + } + return p +} + +// VPBROADCASTB performs "Broadcast Byte Integer". +// +// Mnemonic : VPBROADCASTB +// Supported forms : (13 forms) +// +// * VPBROADCASTB xmm, xmm [AVX2] +// * VPBROADCASTB m8, xmm [AVX2] +// * VPBROADCASTB xmm, ymm [AVX2] +// * VPBROADCASTB m8, ymm [AVX2] +// * VPBROADCASTB r32, zmm{k}{z} [AVX512BW] +// * VPBROADCASTB xmm, zmm{k}{z} [AVX512BW] +// * VPBROADCASTB m8, zmm{k}{z} [AVX512BW] +// * VPBROADCASTB r32, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB r32, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB xmm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB m8, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB m8, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPBROADCASTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTB", 2, Operands { v0, v1 }) + // VPBROADCASTB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB m8, xmm + if isM8(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTB xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB m8, ymm + if isM8(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTB r32, zmm{k}{z} + if isReg32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB m8, zmm{k}{z} + if isM8(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTB r32, xmm{k}{z} + if isReg32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB r32, ymm{k}{z} + if isReg32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB m8, xmm{k}{z} + if isM8(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTB m8, ymm{k}{z} + if isM8(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTB") + } + return p +} + +// VPBROADCASTD performs "Broadcast Doubleword Integer". +// +// Mnemonic : VPBROADCASTD +// Supported forms : (13 forms) +// +// * VPBROADCASTD xmm, xmm [AVX2] +// * VPBROADCASTD m32, xmm [AVX2] +// * VPBROADCASTD xmm, ymm [AVX2] +// * VPBROADCASTD m32, ymm [AVX2] +// * VPBROADCASTD r32, zmm{k}{z} [AVX512F] +// * VPBROADCASTD xmm, zmm{k}{z} [AVX512F] +// * VPBROADCASTD m32, zmm{k}{z} [AVX512F] +// * VPBROADCASTD r32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD r32, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD m32, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPBROADCASTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTD", 2, Operands { v0, v1 }) + // VPBROADCASTD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD m32, ymm + if isM32(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTD r32, zmm{k}{z} + if isReg32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD m32, zmm{k}{z} + if isM32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPBROADCASTD r32, xmm{k}{z} + if isReg32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD r32, ymm{k}{z} + if isReg32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPBROADCASTD m32, ymm{k}{z} + if isM32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTD") + } + return p +} + +// VPBROADCASTMB2Q performs "Broadcast Low Byte of Mask Register to Packed Quadword Values". +// +// Mnemonic : VPBROADCASTMB2Q +// Supported forms : (3 forms) +// +// * VPBROADCASTMB2Q k, xmm [AVX512CD,AVX512VL] +// * VPBROADCASTMB2Q k, ymm [AVX512CD,AVX512VL] +// * VPBROADCASTMB2Q k, zmm [AVX512CD] +// +func (self *Program) VPBROADCASTMB2Q(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTMB2Q", 2, Operands { v0, v1 }) + // VPBROADCASTMB2Q k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTMB2Q k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTMB2Q k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTMB2Q") + } + return p +} + +// VPBROADCASTMW2D performs "Broadcast Low Word of Mask Register to Packed Doubleword Values". +// +// Mnemonic : VPBROADCASTMW2D +// Supported forms : (3 forms) +// +// * VPBROADCASTMW2D k, xmm [AVX512CD,AVX512VL] +// * VPBROADCASTMW2D k, ymm [AVX512CD,AVX512VL] +// * VPBROADCASTMW2D k, zmm [AVX512CD] +// +func (self *Program) VPBROADCASTMW2D(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTMW2D", 2, Operands { v0, v1 }) + // VPBROADCASTMW2D k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTMW2D k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTMW2D k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTMW2D") + } + return p +} + +// VPBROADCASTQ performs "Broadcast Quadword Integer". +// +// Mnemonic : VPBROADCASTQ +// Supported forms : (13 forms) +// +// * VPBROADCASTQ xmm, xmm [AVX2] +// * VPBROADCASTQ m64, xmm [AVX2] +// * VPBROADCASTQ xmm, ymm [AVX2] +// * VPBROADCASTQ m64, ymm [AVX2] +// * VPBROADCASTQ r64, zmm{k}{z} [AVX512F] +// * VPBROADCASTQ xmm, zmm{k}{z} [AVX512F] +// * VPBROADCASTQ m64, zmm{k}{z} [AVX512F] +// * VPBROADCASTQ r64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ r64, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPBROADCASTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTQ", 2, Operands { v0, v1 }) + // VPBROADCASTQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTQ r64, zmm{k}{z} + if isReg64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPBROADCASTQ r64, xmm{k}{z} + if isReg64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ r64, ymm{k}{z} + if isReg64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPBROADCASTQ m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTQ") + } + return p +} + +// VPBROADCASTW performs "Broadcast Word Integer". +// +// Mnemonic : VPBROADCASTW +// Supported forms : (13 forms) +// +// * VPBROADCASTW xmm, xmm [AVX2] +// * VPBROADCASTW m16, xmm [AVX2] +// * VPBROADCASTW xmm, ymm [AVX2] +// * VPBROADCASTW m16, ymm [AVX2] +// * VPBROADCASTW r32, zmm{k}{z} [AVX512BW] +// * VPBROADCASTW xmm, zmm{k}{z} [AVX512BW] +// * VPBROADCASTW m16, zmm{k}{z} [AVX512BW] +// * VPBROADCASTW r32, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW r32, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW xmm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW m16, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW m16, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPBROADCASTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTW", 2, Operands { v0, v1 }) + // VPBROADCASTW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTW xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW m16, ymm + if isM16(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTW r32, zmm{k}{z} + if isReg32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW m16, zmm{k}{z} + if isM16(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + // VPBROADCASTW r32, xmm{k}{z} + if isReg32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW r32, ymm{k}{z} + if isReg32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW m16, xmm{k}{z} + if isM16(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + // VPBROADCASTW m16, ymm{k}{z} + if isM16(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTW") + } + return p +} + +// VPCLMULQDQ performs "Carry-Less Quadword Multiplication". +// +// Mnemonic : VPCLMULQDQ +// Supported forms : (2 forms) +// +// * VPCLMULQDQ imm8, xmm, xmm, xmm [AVX,PCLMULQDQ] +// * VPCLMULQDQ imm8, m128, xmm, xmm [AVX,PCLMULQDQ] +// +func (self *Program) VPCLMULQDQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCLMULQDQ", 4, Operands { v0, v1, v2, v3 }) + // VPCLMULQDQ imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX | ISA_PCLMULQDQ) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x44) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCLMULQDQ imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX | ISA_PCLMULQDQ) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x44) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCLMULQDQ") + } + return p +} + +// VPCMOV performs "Packed Conditional Move". +// +// Mnemonic : VPCMOV +// Supported forms : (6 forms) +// +// * VPCMOV xmm, xmm, xmm, xmm [XOP] +// * VPCMOV m128, xmm, xmm, xmm [XOP] +// * VPCMOV xmm, m128, xmm, xmm [XOP] +// * VPCMOV ymm, ymm, ymm, ymm [XOP] +// * VPCMOV m256, ymm, ymm, ymm [XOP] +// * VPCMOV ymm, m256, ymm, ymm [XOP] +// +func (self *Program) VPCMOV(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMOV", 4, Operands { v0, v1, v2, v3 }) + // VPCMOV xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xa2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[2]) << 3)) + m.emit(0xa2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPCMOV m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x80, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0xa2) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPCMOV xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xa2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPCMOV ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit(0xa2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfc ^ (hlcode(v[2]) << 3)) + m.emit(0xa2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPCMOV m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x84, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0xa2) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPCMOV ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x04, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xa2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMOV") + } + return p +} + +// VPCMPB performs "Compare Packed Signed Byte Values". +// +// Mnemonic : VPCMPB +// Supported forms : (6 forms) +// +// * VPCMPB imm8, zmm, zmm, k{k} [AVX512BW] +// * VPCMPB imm8, m512, zmm, k{k} [AVX512BW] +// * VPCMPB imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPB imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPB imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPB imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPB", 4, Operands { v0, v1, v2, v3 }) + // VPCMPB imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, m512, zmm, k{k} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, m128, xmm, k{k} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, m256, ymm, k{k} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPB") + } + return p +} + +// VPCMPD performs "Compare Packed Signed Doubleword Values". +// +// Mnemonic : VPCMPD +// Supported forms : (6 forms) +// +// * VPCMPD imm8, m512/m32bcst, zmm, k{k} [AVX512F] +// * VPCMPD imm8, zmm, zmm, k{k} [AVX512F] +// * VPCMPD imm8, m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPD imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPD imm8, m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPD imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPD", 4, Operands { v0, v1, v2, v3 }) + // VPCMPD imm8, m512/m32bcst, zmm, k{k} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, m128/m32bcst, xmm, k{k} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, m256/m32bcst, ymm, k{k} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPD") + } + return p +} + +// VPCMPEQB performs "Compare Packed Byte Data for Equality". +// +// Mnemonic : VPCMPEQB +// Supported forms : (10 forms) +// +// * VPCMPEQB xmm, xmm, xmm [AVX] +// * VPCMPEQB m128, xmm, xmm [AVX] +// * VPCMPEQB ymm, ymm, ymm [AVX2] +// * VPCMPEQB m256, ymm, ymm [AVX2] +// * VPCMPEQB zmm, zmm, k{k} [AVX512BW] +// * VPCMPEQB m512, zmm, k{k} [AVX512BW] +// * VPCMPEQB xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQB m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQB ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQB m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPEQB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPEQB", 3, Operands { v0, v1, v2 }) + // VPCMPEQB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQB zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPEQB xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPEQB ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPEQB") + } + return p +} + +// VPCMPEQD performs "Compare Packed Doubleword Data for Equality". +// +// Mnemonic : VPCMPEQD +// Supported forms : (10 forms) +// +// * VPCMPEQD xmm, xmm, xmm [AVX] +// * VPCMPEQD m128, xmm, xmm [AVX] +// * VPCMPEQD ymm, ymm, ymm [AVX2] +// * VPCMPEQD m256, ymm, ymm [AVX2] +// * VPCMPEQD m512/m32bcst, zmm, k{k} [AVX512F] +// * VPCMPEQD zmm, zmm, k{k} [AVX512F] +// * VPCMPEQD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQD xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQD ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPEQD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPEQD", 3, Operands { v0, v1, v2 }) + // VPCMPEQD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQD m512/m32bcst, zmm, k{k} + if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPEQD zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQD m128/m32bcst, xmm, k{k} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPEQD xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQD m256/m32bcst, ymm, k{k} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPCMPEQD ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPEQD") + } + return p +} + +// VPCMPEQQ performs "Compare Packed Quadword Data for Equality". +// +// Mnemonic : VPCMPEQQ +// Supported forms : (10 forms) +// +// * VPCMPEQQ xmm, xmm, xmm [AVX] +// * VPCMPEQQ m128, xmm, xmm [AVX] +// * VPCMPEQQ ymm, ymm, ymm [AVX2] +// * VPCMPEQQ m256, ymm, ymm [AVX2] +// * VPCMPEQQ m512/m64bcst, zmm, k{k} [AVX512F] +// * VPCMPEQQ zmm, zmm, k{k} [AVX512F] +// * VPCMPEQQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQQ xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQQ ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPEQQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPEQQ", 3, Operands { v0, v1, v2 }) + // VPCMPEQQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQQ m512/m64bcst, zmm, k{k} + if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPEQQ zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQQ m128/m64bcst, xmm, k{k} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPEQQ xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQQ m256/m64bcst, ymm, k{k} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPCMPEQQ ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPEQQ") + } + return p +} + +// VPCMPEQW performs "Compare Packed Word Data for Equality". +// +// Mnemonic : VPCMPEQW +// Supported forms : (10 forms) +// +// * VPCMPEQW xmm, xmm, xmm [AVX] +// * VPCMPEQW m128, xmm, xmm [AVX] +// * VPCMPEQW ymm, ymm, ymm [AVX2] +// * VPCMPEQW m256, ymm, ymm [AVX2] +// * VPCMPEQW zmm, zmm, k{k} [AVX512BW] +// * VPCMPEQW m512, zmm, k{k} [AVX512BW] +// * VPCMPEQW xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQW m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQW ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQW m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPEQW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPEQW", 3, Operands { v0, v1, v2 }) + // VPCMPEQW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQW zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPEQW xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPEQW ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPEQW") + } + return p +} + +// VPCMPESTRI performs "Packed Compare Explicit Length Strings, Return Index". +// +// Mnemonic : VPCMPESTRI +// Supported forms : (2 forms) +// +// * VPCMPESTRI imm8, xmm, xmm [AVX] +// * VPCMPESTRI imm8, m128, xmm [AVX] +// +func (self *Program) VPCMPESTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPESTRI", 3, Operands { v0, v1, v2 }) + // VPCMPESTRI imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPESTRI imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPESTRI") + } + return p +} + +// VPCMPESTRM performs "Packed Compare Explicit Length Strings, Return Mask". +// +// Mnemonic : VPCMPESTRM +// Supported forms : (2 forms) +// +// * VPCMPESTRM imm8, xmm, xmm [AVX] +// * VPCMPESTRM imm8, m128, xmm [AVX] +// +func (self *Program) VPCMPESTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPESTRM", 3, Operands { v0, v1, v2 }) + // VPCMPESTRM imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPESTRM imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPESTRM") + } + return p +} + +// VPCMPGTB performs "Compare Packed Signed Byte Integers for Greater Than". +// +// Mnemonic : VPCMPGTB +// Supported forms : (10 forms) +// +// * VPCMPGTB xmm, xmm, xmm [AVX] +// * VPCMPGTB m128, xmm, xmm [AVX] +// * VPCMPGTB ymm, ymm, ymm [AVX2] +// * VPCMPGTB m256, ymm, ymm [AVX2] +// * VPCMPGTB zmm, zmm, k{k} [AVX512BW] +// * VPCMPGTB m512, zmm, k{k} [AVX512BW] +// * VPCMPGTB xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTB m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTB ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTB m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPGTB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPGTB", 3, Operands { v0, v1, v2 }) + // VPCMPGTB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTB zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPGTB xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPGTB ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPGTB") + } + return p +} + +// VPCMPGTD performs "Compare Packed Signed Doubleword Integers for Greater Than". +// +// Mnemonic : VPCMPGTD +// Supported forms : (10 forms) +// +// * VPCMPGTD xmm, xmm, xmm [AVX] +// * VPCMPGTD m128, xmm, xmm [AVX] +// * VPCMPGTD ymm, ymm, ymm [AVX2] +// * VPCMPGTD m256, ymm, ymm [AVX2] +// * VPCMPGTD m512/m32bcst, zmm, k{k} [AVX512F] +// * VPCMPGTD zmm, zmm, k{k} [AVX512F] +// * VPCMPGTD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTD xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTD ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPGTD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPGTD", 3, Operands { v0, v1, v2 }) + // VPCMPGTD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTD m512/m32bcst, zmm, k{k} + if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPGTD zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTD m128/m32bcst, xmm, k{k} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPGTD xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTD m256/m32bcst, ymm, k{k} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPCMPGTD ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPGTD") + } + return p +} + +// VPCMPGTQ performs "Compare Packed Data for Greater Than". +// +// Mnemonic : VPCMPGTQ +// Supported forms : (10 forms) +// +// * VPCMPGTQ xmm, xmm, xmm [AVX] +// * VPCMPGTQ m128, xmm, xmm [AVX] +// * VPCMPGTQ ymm, ymm, ymm [AVX2] +// * VPCMPGTQ m256, ymm, ymm [AVX2] +// * VPCMPGTQ m512/m64bcst, zmm, k{k} [AVX512F] +// * VPCMPGTQ zmm, zmm, k{k} [AVX512F] +// * VPCMPGTQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTQ xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTQ ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPGTQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPGTQ", 3, Operands { v0, v1, v2 }) + // VPCMPGTQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTQ m512/m64bcst, zmm, k{k} + if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPGTQ zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTQ m128/m64bcst, xmm, k{k} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPGTQ xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTQ m256/m64bcst, ymm, k{k} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPCMPGTQ ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPGTQ") + } + return p +} + +// VPCMPGTW performs "Compare Packed Signed Word Integers for Greater Than". +// +// Mnemonic : VPCMPGTW +// Supported forms : (10 forms) +// +// * VPCMPGTW xmm, xmm, xmm [AVX] +// * VPCMPGTW m128, xmm, xmm [AVX] +// * VPCMPGTW ymm, ymm, ymm [AVX2] +// * VPCMPGTW m256, ymm, ymm [AVX2] +// * VPCMPGTW zmm, zmm, k{k} [AVX512BW] +// * VPCMPGTW m512, zmm, k{k} [AVX512BW] +// * VPCMPGTW xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTW m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTW ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTW m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPGTW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPGTW", 3, Operands { v0, v1, v2 }) + // VPCMPGTW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTW zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPGTW xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPGTW ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPGTW") + } + return p +} + +// VPCMPISTRI performs "Packed Compare Implicit Length Strings, Return Index". +// +// Mnemonic : VPCMPISTRI +// Supported forms : (2 forms) +// +// * VPCMPISTRI imm8, xmm, xmm [AVX] +// * VPCMPISTRI imm8, m128, xmm [AVX] +// +func (self *Program) VPCMPISTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPISTRI", 3, Operands { v0, v1, v2 }) + // VPCMPISTRI imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPISTRI imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPISTRI") + } + return p +} + +// VPCMPISTRM performs "Packed Compare Implicit Length Strings, Return Mask". +// +// Mnemonic : VPCMPISTRM +// Supported forms : (2 forms) +// +// * VPCMPISTRM imm8, xmm, xmm [AVX] +// * VPCMPISTRM imm8, m128, xmm [AVX] +// +func (self *Program) VPCMPISTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPISTRM", 3, Operands { v0, v1, v2 }) + // VPCMPISTRM imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPISTRM imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPISTRM") + } + return p +} + +// VPCMPQ performs "Compare Packed Signed Quadword Values". +// +// Mnemonic : VPCMPQ +// Supported forms : (6 forms) +// +// * VPCMPQ imm8, m512/m64bcst, zmm, k{k} [AVX512F] +// * VPCMPQ imm8, zmm, zmm, k{k} [AVX512F] +// * VPCMPQ imm8, m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPQ imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPQ imm8, m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPQ imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPQ", 4, Operands { v0, v1, v2, v3 }) + // VPCMPQ imm8, m512/m64bcst, zmm, k{k} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, m128/m64bcst, xmm, k{k} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, m256/m64bcst, ymm, k{k} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPQ") + } + return p +} + +// VPCMPUB performs "Compare Packed Unsigned Byte Values". +// +// Mnemonic : VPCMPUB +// Supported forms : (6 forms) +// +// * VPCMPUB imm8, zmm, zmm, k{k} [AVX512BW] +// * VPCMPUB imm8, m512, zmm, k{k} [AVX512BW] +// * VPCMPUB imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUB imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUB imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUB imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPUB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPUB", 4, Operands { v0, v1, v2, v3 }) + // VPCMPUB imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, m512, zmm, k{k} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, m128, xmm, k{k} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, m256, ymm, k{k} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPUB") + } + return p +} + +// VPCMPUD performs "Compare Packed Unsigned Doubleword Values". +// +// Mnemonic : VPCMPUD +// Supported forms : (6 forms) +// +// * VPCMPUD imm8, m512/m32bcst, zmm, k{k} [AVX512F] +// * VPCMPUD imm8, zmm, zmm, k{k} [AVX512F] +// * VPCMPUD imm8, m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPUD imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPUD imm8, m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPUD imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPUD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPUD", 4, Operands { v0, v1, v2, v3 }) + // VPCMPUD imm8, m512/m32bcst, zmm, k{k} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, m128/m32bcst, xmm, k{k} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, m256/m32bcst, ymm, k{k} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPUD") + } + return p +} + +// VPCMPUQ performs "Compare Packed Unsigned Quadword Values". +// +// Mnemonic : VPCMPUQ +// Supported forms : (6 forms) +// +// * VPCMPUQ imm8, m512/m64bcst, zmm, k{k} [AVX512F] +// * VPCMPUQ imm8, zmm, zmm, k{k} [AVX512F] +// * VPCMPUQ imm8, m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPUQ imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPUQ imm8, m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPUQ imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPUQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPUQ", 4, Operands { v0, v1, v2, v3 }) + // VPCMPUQ imm8, m512/m64bcst, zmm, k{k} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, m128/m64bcst, xmm, k{k} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, m256/m64bcst, ymm, k{k} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPUQ") + } + return p +} + +// VPCMPUW performs "Compare Packed Unsigned Word Values". +// +// Mnemonic : VPCMPUW +// Supported forms : (6 forms) +// +// * VPCMPUW imm8, zmm, zmm, k{k} [AVX512BW] +// * VPCMPUW imm8, m512, zmm, k{k} [AVX512BW] +// * VPCMPUW imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUW imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUW imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUW imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPUW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPUW", 4, Operands { v0, v1, v2, v3 }) + // VPCMPUW imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, m512, zmm, k{k} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, m128, xmm, k{k} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, m256, ymm, k{k} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPUW") + } + return p +} + +// VPCMPW performs "Compare Packed Signed Word Values". +// +// Mnemonic : VPCMPW +// Supported forms : (6 forms) +// +// * VPCMPW imm8, zmm, zmm, k{k} [AVX512BW] +// * VPCMPW imm8, m512, zmm, k{k} [AVX512BW] +// * VPCMPW imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPW imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPW imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPW imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPW", 4, Operands { v0, v1, v2, v3 }) + // VPCMPW imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, m512, zmm, k{k} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, m128, xmm, k{k} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, m256, ymm, k{k} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPW") + } + return p +} + +// VPCOMB performs "Compare Packed Signed Byte Integers". +// +// Mnemonic : VPCOMB +// Supported forms : (2 forms) +// +// * VPCOMB imm8, xmm, xmm, xmm [XOP] +// * VPCOMB imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMB", 4, Operands { v0, v1, v2, v3 }) + // VPCOMB imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMB imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xcc) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMB") + } + return p +} + +// VPCOMD performs "Compare Packed Signed Doubleword Integers". +// +// Mnemonic : VPCOMD +// Supported forms : (2 forms) +// +// * VPCOMD imm8, xmm, xmm, xmm [XOP] +// * VPCOMD imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMD", 4, Operands { v0, v1, v2, v3 }) + // VPCOMD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xce) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xce) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMD") + } + return p +} + +// VPCOMPRESSD performs "Store Sparse Packed Doubleword Integer Values into Dense Memory/Register". +// +// Mnemonic : VPCOMPRESSD +// Supported forms : (6 forms) +// +// * VPCOMPRESSD zmm, zmm{k}{z} [AVX512F] +// * VPCOMPRESSD zmm, m512{k}{z} [AVX512F] +// * VPCOMPRESSD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSD xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSD ymm, m256{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPCOMPRESSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPCOMPRESSD", 2, Operands { v0, v1 }) + // VPCOMPRESSD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSD zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPCOMPRESSD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSD xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPCOMPRESSD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSD ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMPRESSD") + } + return p +} + +// VPCOMPRESSQ performs "Store Sparse Packed Quadword Integer Values into Dense Memory/Register". +// +// Mnemonic : VPCOMPRESSQ +// Supported forms : (6 forms) +// +// * VPCOMPRESSQ zmm, zmm{k}{z} [AVX512F] +// * VPCOMPRESSQ zmm, m512{k}{z} [AVX512F] +// * VPCOMPRESSQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSQ xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSQ ymm, m256{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPCOMPRESSQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPCOMPRESSQ", 2, Operands { v0, v1 }) + // VPCOMPRESSQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSQ zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPCOMPRESSQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSQ xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPCOMPRESSQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSQ ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMPRESSQ") + } + return p +} + +// VPCOMQ performs "Compare Packed Signed Quadword Integers". +// +// Mnemonic : VPCOMQ +// Supported forms : (2 forms) +// +// * VPCOMQ imm8, xmm, xmm, xmm [XOP] +// * VPCOMQ imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMQ", 4, Operands { v0, v1, v2, v3 }) + // VPCOMQ imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xcf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMQ imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xcf) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMQ") + } + return p +} + +// VPCOMUB performs "Compare Packed Unsigned Byte Integers". +// +// Mnemonic : VPCOMUB +// Supported forms : (2 forms) +// +// * VPCOMUB imm8, xmm, xmm, xmm [XOP] +// * VPCOMUB imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMUB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMUB", 4, Operands { v0, v1, v2, v3 }) + // VPCOMUB imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xec) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMUB imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xec) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMUB") + } + return p +} + +// VPCOMUD performs "Compare Packed Unsigned Doubleword Integers". +// +// Mnemonic : VPCOMUD +// Supported forms : (2 forms) +// +// * VPCOMUD imm8, xmm, xmm, xmm [XOP] +// * VPCOMUD imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMUD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMUD", 4, Operands { v0, v1, v2, v3 }) + // VPCOMUD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xee) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMUD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xee) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMUD") + } + return p +} + +// VPCOMUQ performs "Compare Packed Unsigned Quadword Integers". +// +// Mnemonic : VPCOMUQ +// Supported forms : (2 forms) +// +// * VPCOMUQ imm8, xmm, xmm, xmm [XOP] +// * VPCOMUQ imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMUQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMUQ", 4, Operands { v0, v1, v2, v3 }) + // VPCOMUQ imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xef) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMUQ imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xef) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMUQ") + } + return p +} + +// VPCOMUW performs "Compare Packed Unsigned Word Integers". +// +// Mnemonic : VPCOMUW +// Supported forms : (2 forms) +// +// * VPCOMUW imm8, xmm, xmm, xmm [XOP] +// * VPCOMUW imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMUW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMUW", 4, Operands { v0, v1, v2, v3 }) + // VPCOMUW imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xed) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMUW imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xed) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMUW") + } + return p +} + +// VPCOMW performs "Compare Packed Signed Word Integers". +// +// Mnemonic : VPCOMW +// Supported forms : (2 forms) +// +// * VPCOMW imm8, xmm, xmm, xmm [XOP] +// * VPCOMW imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMW", 4, Operands { v0, v1, v2, v3 }) + // VPCOMW imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMW imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xcd) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMW") + } + return p +} + +// VPCONFLICTD performs "Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register". +// +// Mnemonic : VPCONFLICTD +// Supported forms : (6 forms) +// +// * VPCONFLICTD m128/m32bcst, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTD m256/m32bcst, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTD m512/m32bcst, zmm{k}{z} [AVX512CD] +// * VPCONFLICTD xmm, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTD ymm, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTD zmm, zmm{k}{z} [AVX512CD] +// +func (self *Program) VPCONFLICTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPCONFLICTD", 2, Operands { v0, v1 }) + // VPCONFLICTD m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPCONFLICTD m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPCONFLICTD m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPCONFLICTD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPCONFLICTD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPCONFLICTD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCONFLICTD") + } + return p +} + +// VPCONFLICTQ performs "Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register". +// +// Mnemonic : VPCONFLICTQ +// Supported forms : (6 forms) +// +// * VPCONFLICTQ m128/m64bcst, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTQ m256/m64bcst, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTQ m512/m64bcst, zmm{k}{z} [AVX512CD] +// * VPCONFLICTQ xmm, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTQ ymm, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTQ zmm, zmm{k}{z} [AVX512CD] +// +func (self *Program) VPCONFLICTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPCONFLICTQ", 2, Operands { v0, v1 }) + // VPCONFLICTQ m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPCONFLICTQ m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPCONFLICTQ m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPCONFLICTQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPCONFLICTQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPCONFLICTQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCONFLICTQ") + } + return p +} + +// VPERM2F128 performs "Permute Floating-Point Values". +// +// Mnemonic : VPERM2F128 +// Supported forms : (2 forms) +// +// * VPERM2F128 imm8, ymm, ymm, ymm [AVX] +// * VPERM2F128 imm8, m256, ymm, ymm [AVX] +// +func (self *Program) VPERM2F128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPERM2F128", 4, Operands { v0, v1, v2, v3 }) + // VPERM2F128 imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x06) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERM2F128 imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x06) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERM2F128") + } + return p +} + +// VPERM2I128 performs "Permute 128-Bit Integer Values". +// +// Mnemonic : VPERM2I128 +// Supported forms : (2 forms) +// +// * VPERM2I128 imm8, ymm, ymm, ymm [AVX2] +// * VPERM2I128 imm8, m256, ymm, ymm [AVX2] +// +func (self *Program) VPERM2I128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPERM2I128", 4, Operands { v0, v1, v2, v3 }) + // VPERM2I128 imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERM2I128 imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x46) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERM2I128") + } + return p +} + +// VPERMB performs "Permute Byte Integers". +// +// Mnemonic : VPERMB +// Supported forms : (6 forms) +// +// * VPERMB xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMB m128, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMB ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMB m256, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMB zmm, zmm, zmm{k}{z} [AVX512VBMI] +// * VPERMB m512, zmm, zmm{k}{z} [AVX512VBMI] +// +func (self *Program) VPERMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMB", 3, Operands { v0, v1, v2 }) + // VPERMB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMB") + } + return p +} + +// VPERMD performs "Permute Doubleword Integers". +// +// Mnemonic : VPERMD +// Supported forms : (6 forms) +// +// * VPERMD ymm, ymm, ymm [AVX2] +// * VPERMD m256, ymm, ymm [AVX2] +// * VPERMD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMD", 3, Operands { v0, v1, v2 }) + // VPERMD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMD") + } + return p +} + +// VPERMI2B performs "Full Permute of Bytes From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2B +// Supported forms : (6 forms) +// +// * VPERMI2B xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMI2B m128, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMI2B ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMI2B m256, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMI2B zmm, zmm, zmm{k}{z} [AVX512VBMI] +// * VPERMI2B m512, zmm, zmm{k}{z} [AVX512VBMI] +// +func (self *Program) VPERMI2B(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2B", 3, Operands { v0, v1, v2 }) + // VPERMI2B xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2B m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2B ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2B m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2B zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2B m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2B") + } + return p +} + +// VPERMI2D performs "Full Permute of Doublewords From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2D +// Supported forms : (6 forms) +// +// * VPERMI2D m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2D zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2D m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2D xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2D m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2D ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMI2D(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2D", 3, Operands { v0, v1, v2 }) + // VPERMI2D m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2D zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2D m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2D xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2D m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2D ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2D") + } + return p +} + +// VPERMI2PD performs "Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2PD +// Supported forms : (6 forms) +// +// * VPERMI2PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMI2PD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2PD", 3, Operands { v0, v1, v2 }) + // VPERMI2PD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2PD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2PD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2PD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2PD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2PD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2PD") + } + return p +} + +// VPERMI2PS performs "Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2PS +// Supported forms : (6 forms) +// +// * VPERMI2PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMI2PS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2PS", 3, Operands { v0, v1, v2 }) + // VPERMI2PS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2PS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2PS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2PS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2PS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2PS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2PS") + } + return p +} + +// VPERMI2Q performs "Full Permute of Quadwords From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2Q +// Supported forms : (6 forms) +// +// * VPERMI2Q m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2Q zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2Q m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2Q xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2Q m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2Q ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMI2Q(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2Q", 3, Operands { v0, v1, v2 }) + // VPERMI2Q m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2Q zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2Q m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2Q xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2Q m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2Q ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2Q") + } + return p +} + +// VPERMI2W performs "Full Permute of Words From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2W +// Supported forms : (6 forms) +// +// * VPERMI2W zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPERMI2W m512, zmm, zmm{k}{z} [AVX512BW] +// * VPERMI2W xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMI2W m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMI2W ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPERMI2W m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPERMI2W(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2W", 3, Operands { v0, v1, v2 }) + // VPERMI2W zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2W m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2W xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2W m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2W ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2W m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2W") + } + return p +} + +// VPERMIL2PD performs "Permute Two-Source Double-Precision Floating-Point Vectors". +// +// Mnemonic : VPERMIL2PD +// Supported forms : (6 forms) +// +// * VPERMIL2PD imm4, xmm, xmm, xmm, xmm [XOP] +// * VPERMIL2PD imm4, m128, xmm, xmm, xmm [XOP] +// * VPERMIL2PD imm4, xmm, m128, xmm, xmm [XOP] +// * VPERMIL2PD imm4, ymm, ymm, ymm, ymm [XOP] +// * VPERMIL2PD imm4, m256, ymm, ymm, ymm [XOP] +// * VPERMIL2PD imm4, ymm, m256, ymm, ymm [XOP] +// +func (self *Program) VPERMIL2PD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, v4 interface{}) *Instruction { + p := self.alloc("VPERMIL2PD", 5, Operands { v0, v1, v2, v3, v4 }) + // VPERMIL2PD imm4, xmm, xmm, xmm, xmm + if isImm4(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79 ^ (hlcode(v[3]) << 3)) + m.emit(0x49) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9 ^ (hlcode(v[3]) << 3)) + m.emit(0x49) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, m128, xmm, xmm, xmm + if isImm4(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[4]), addr(v[1]), hlcode(v[3])) + m.emit(0x49) + m.mrsd(lcode(v[4]), addr(v[1]), 1) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, xmm, m128, xmm, xmm + if isImm4(v0) && isXMM(v1) && isM128(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[4]), addr(v[2]), hlcode(v[3])) + m.emit(0x49) + m.mrsd(lcode(v[4]), addr(v[2]), 1) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, ymm, ymm, ymm, ymm + if isImm4(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit(0x49) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit(0x49) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, m256, ymm, ymm, ymm + if isImm4(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[4]), addr(v[1]), hlcode(v[3])) + m.emit(0x49) + m.mrsd(lcode(v[4]), addr(v[1]), 1) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, ymm, m256, ymm, ymm + if isImm4(v0) && isYMM(v1) && isM256(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[4]), addr(v[2]), hlcode(v[3])) + m.emit(0x49) + m.mrsd(lcode(v[4]), addr(v[2]), 1) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMIL2PD") + } + return p +} + +// VPERMIL2PS performs "Permute Two-Source Single-Precision Floating-Point Vectors". +// +// Mnemonic : VPERMIL2PS +// Supported forms : (6 forms) +// +// * VPERMIL2PS imm4, xmm, xmm, xmm, xmm [XOP] +// * VPERMIL2PS imm4, m128, xmm, xmm, xmm [XOP] +// * VPERMIL2PS imm4, xmm, m128, xmm, xmm [XOP] +// * VPERMIL2PS imm4, ymm, ymm, ymm, ymm [XOP] +// * VPERMIL2PS imm4, m256, ymm, ymm, ymm [XOP] +// * VPERMIL2PS imm4, ymm, m256, ymm, ymm [XOP] +// +func (self *Program) VPERMIL2PS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, v4 interface{}) *Instruction { + p := self.alloc("VPERMIL2PS", 5, Operands { v0, v1, v2, v3, v4 }) + // VPERMIL2PS imm4, xmm, xmm, xmm, xmm + if isImm4(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79 ^ (hlcode(v[3]) << 3)) + m.emit(0x48) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9 ^ (hlcode(v[3]) << 3)) + m.emit(0x48) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, m128, xmm, xmm, xmm + if isImm4(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[4]), addr(v[1]), hlcode(v[3])) + m.emit(0x48) + m.mrsd(lcode(v[4]), addr(v[1]), 1) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, xmm, m128, xmm, xmm + if isImm4(v0) && isXMM(v1) && isM128(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[4]), addr(v[2]), hlcode(v[3])) + m.emit(0x48) + m.mrsd(lcode(v[4]), addr(v[2]), 1) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, ymm, ymm, ymm, ymm + if isImm4(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit(0x48) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit(0x48) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, m256, ymm, ymm, ymm + if isImm4(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[4]), addr(v[1]), hlcode(v[3])) + m.emit(0x48) + m.mrsd(lcode(v[4]), addr(v[1]), 1) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, ymm, m256, ymm, ymm + if isImm4(v0) && isYMM(v1) && isM256(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[4]), addr(v[2]), hlcode(v[3])) + m.emit(0x48) + m.mrsd(lcode(v[4]), addr(v[2]), 1) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMIL2PS") + } + return p +} + +// VPERMILPD performs "Permute Double-Precision Floating-Point Values". +// +// Mnemonic : VPERMILPD +// Supported forms : (20 forms) +// +// * VPERMILPD imm8, xmm, xmm [AVX] +// * VPERMILPD xmm, xmm, xmm [AVX] +// * VPERMILPD m128, xmm, xmm [AVX] +// * VPERMILPD imm8, m128, xmm [AVX] +// * VPERMILPD imm8, ymm, ymm [AVX] +// * VPERMILPD ymm, ymm, ymm [AVX] +// * VPERMILPD m256, ymm, ymm [AVX] +// * VPERMILPD imm8, m256, ymm [AVX] +// * VPERMILPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPERMILPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPD imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMILPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMILPD", 3, Operands { v0, v1, v2 }) + // VPERMILPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMILPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMILPD imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMILPD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPD imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMILPD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMILPD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMILPD") + } + return p +} + +// VPERMILPS performs "Permute Single-Precision Floating-Point Values". +// +// Mnemonic : VPERMILPS +// Supported forms : (20 forms) +// +// * VPERMILPS imm8, xmm, xmm [AVX] +// * VPERMILPS xmm, xmm, xmm [AVX] +// * VPERMILPS m128, xmm, xmm [AVX] +// * VPERMILPS imm8, m128, xmm [AVX] +// * VPERMILPS imm8, ymm, ymm [AVX] +// * VPERMILPS ymm, ymm, ymm [AVX] +// * VPERMILPS m256, ymm, ymm [AVX] +// * VPERMILPS imm8, m256, ymm [AVX] +// * VPERMILPS imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPERMILPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPS imm8, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPS imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMILPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMILPS", 3, Operands { v0, v1, v2 }) + // VPERMILPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMILPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMILPS imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMILPS imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPS imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMILPS imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMILPS imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMILPS") + } + return p +} + +// VPERMPD performs "Permute Double-Precision Floating-Point Elements". +// +// Mnemonic : VPERMPD +// Supported forms : (10 forms) +// +// * VPERMPD imm8, ymm, ymm [AVX2] +// * VPERMPD imm8, m256, ymm [AVX2] +// * VPERMPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPERMPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMPD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPERMPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMPD", 3, Operands { v0, v1, v2 }) + // VPERMPD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfd) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[2]), addr(v[1]), 0) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMPD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMPD imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMPD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMPD") + } + return p +} + +// VPERMPS performs "Permute Single-Precision Floating-Point Elements". +// +// Mnemonic : VPERMPS +// Supported forms : (6 forms) +// +// * VPERMPS ymm, ymm, ymm [AVX2] +// * VPERMPS m256, ymm, ymm [AVX2] +// * VPERMPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMPS", 3, Operands { v0, v1, v2 }) + // VPERMPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMPS") + } + return p +} + +// VPERMQ performs "Permute Quadword Integers". +// +// Mnemonic : VPERMQ +// Supported forms : (10 forms) +// +// * VPERMQ imm8, ymm, ymm [AVX2] +// * VPERMQ imm8, m256, ymm [AVX2] +// * VPERMQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPERMQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPERMQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMQ", 3, Operands { v0, v1, v2 }) + // VPERMQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfd) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[2]), addr(v[1]), 0) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMQ") + } + return p +} + +// VPERMT2B performs "Full Permute of Bytes From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2B +// Supported forms : (6 forms) +// +// * VPERMT2B xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMT2B m128, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMT2B ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMT2B m256, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMT2B zmm, zmm, zmm{k}{z} [AVX512VBMI] +// * VPERMT2B m512, zmm, zmm{k}{z} [AVX512VBMI] +// +func (self *Program) VPERMT2B(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2B", 3, Operands { v0, v1, v2 }) + // VPERMT2B xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2B m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2B ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2B m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2B zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2B m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2B") + } + return p +} + +// VPERMT2D performs "Full Permute of Doublewords From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2D +// Supported forms : (6 forms) +// +// * VPERMT2D m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2D zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2D m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2D xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2D m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2D ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMT2D(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2D", 3, Operands { v0, v1, v2 }) + // VPERMT2D m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2D zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2D m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2D xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2D m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2D ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2D") + } + return p +} + +// VPERMT2PD performs "Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2PD +// Supported forms : (6 forms) +// +// * VPERMT2PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMT2PD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2PD", 3, Operands { v0, v1, v2 }) + // VPERMT2PD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2PD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2PD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2PD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2PD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2PD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2PD") + } + return p +} + +// VPERMT2PS performs "Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2PS +// Supported forms : (6 forms) +// +// * VPERMT2PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMT2PS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2PS", 3, Operands { v0, v1, v2 }) + // VPERMT2PS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2PS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2PS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2PS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2PS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2PS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2PS") + } + return p +} + +// VPERMT2Q performs "Full Permute of Quadwords From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2Q +// Supported forms : (6 forms) +// +// * VPERMT2Q m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2Q zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2Q m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2Q xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2Q m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2Q ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMT2Q(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2Q", 3, Operands { v0, v1, v2 }) + // VPERMT2Q m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2Q zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2Q m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2Q xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2Q m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2Q ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2Q") + } + return p +} + +// VPERMT2W performs "Full Permute of Words From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2W +// Supported forms : (6 forms) +// +// * VPERMT2W zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPERMT2W m512, zmm, zmm{k}{z} [AVX512BW] +// * VPERMT2W xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMT2W m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMT2W ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPERMT2W m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPERMT2W(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2W", 3, Operands { v0, v1, v2 }) + // VPERMT2W zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2W m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2W xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2W m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2W ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2W m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2W") + } + return p +} + +// VPERMW performs "Permute Word Integers". +// +// Mnemonic : VPERMW +// Supported forms : (6 forms) +// +// * VPERMW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPERMW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPERMW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPERMW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPERMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMW", 3, Operands { v0, v1, v2 }) + // VPERMW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMW") + } + return p +} + +// VPEXPANDD performs "Load Sparse Packed Doubleword Integer Values from Dense Memory/Register". +// +// Mnemonic : VPEXPANDD +// Supported forms : (6 forms) +// +// * VPEXPANDD zmm, zmm{k}{z} [AVX512F] +// * VPEXPANDD m512, zmm{k}{z} [AVX512F] +// * VPEXPANDD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDD m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDD m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPEXPANDD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPEXPANDD", 2, Operands { v0, v1 }) + // VPEXPANDD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDD m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPEXPANDD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDD m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPEXPANDD m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXPANDD") + } + return p +} + +// VPEXPANDQ performs "Load Sparse Packed Quadword Integer Values from Dense Memory/Register". +// +// Mnemonic : VPEXPANDQ +// Supported forms : (6 forms) +// +// * VPEXPANDQ zmm, zmm{k}{z} [AVX512F] +// * VPEXPANDQ m512, zmm{k}{z} [AVX512F] +// * VPEXPANDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDQ m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDQ m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPEXPANDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPEXPANDQ", 2, Operands { v0, v1 }) + // VPEXPANDQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDQ m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPEXPANDQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDQ m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPEXPANDQ m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXPANDQ") + } + return p +} + +// VPEXTRB performs "Extract Byte". +// +// Mnemonic : VPEXTRB +// Supported forms : (4 forms) +// +// * VPEXTRB imm8, xmm, r32 [AVX] +// * VPEXTRB imm8, xmm, m8 [AVX] +// * VPEXTRB imm8, xmm, r32 [AVX512BW] +// * VPEXTRB imm8, xmm, m8 [AVX512BW] +// +func (self *Program) VPEXTRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPEXTRB", 3, Operands { v0, v1, v2 }) + // VPEXTRB imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRB imm8, xmm, m8 + if isImm8(v0) && isXMM(v1) && isM8(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRB imm8, xmm, r32 + if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRB imm8, xmm, m8 + if isImm8(v0) && isEVEXXMM(v1) && isM8(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXTRB") + } + return p +} + +// VPEXTRD performs "Extract Doubleword". +// +// Mnemonic : VPEXTRD +// Supported forms : (4 forms) +// +// * VPEXTRD imm8, xmm, r32 [AVX] +// * VPEXTRD imm8, xmm, m32 [AVX] +// * VPEXTRD imm8, xmm, r32 [AVX512DQ] +// * VPEXTRD imm8, xmm, m32 [AVX512DQ] +// +func (self *Program) VPEXTRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPEXTRD", 3, Operands { v0, v1, v2 }) + // VPEXTRD imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRD imm8, xmm, m32 + if isImm8(v0) && isXMM(v1) && isM32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRD imm8, xmm, r32 + if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRD imm8, xmm, m32 + if isImm8(v0) && isEVEXXMM(v1) && isM32(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXTRD") + } + return p +} + +// VPEXTRQ performs "Extract Quadword". +// +// Mnemonic : VPEXTRQ +// Supported forms : (4 forms) +// +// * VPEXTRQ imm8, xmm, r64 [AVX] +// * VPEXTRQ imm8, xmm, m64 [AVX] +// * VPEXTRQ imm8, xmm, r64 [AVX512DQ] +// * VPEXTRQ imm8, xmm, m64 [AVX512DQ] +// +func (self *Program) VPEXTRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPEXTRQ", 3, Operands { v0, v1, v2 }) + // VPEXTRQ imm8, xmm, r64 + if isImm8(v0) && isXMM(v1) && isReg64(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0xf9) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRQ imm8, xmm, m64 + if isImm8(v0) && isXMM(v1) && isM64(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[1]), addr(v[2]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRQ imm8, xmm, r64 + if isImm8(v0) && isEVEXXMM(v1) && isReg64(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit(0x08) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRQ imm8, xmm, m64 + if isImm8(v0) && isEVEXXMM(v1) && isM64(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 8) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXTRQ") + } + return p +} + +// VPEXTRW performs "Extract Word". +// +// Mnemonic : VPEXTRW +// Supported forms : (4 forms) +// +// * VPEXTRW imm8, xmm, r32 [AVX] +// * VPEXTRW imm8, xmm, m16 [AVX] +// * VPEXTRW imm8, xmm, r32 [AVX512BW] +// * VPEXTRW imm8, xmm, m16 [AVX512BW] +// +func (self *Program) VPEXTRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPEXTRW", 3, Operands { v0, v1, v2 }) + // VPEXTRW imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[1], 0) + m.emit(0xc5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRW imm8, xmm, m16 + if isImm8(v0) && isXMM(v1) && isM16(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRW imm8, xmm, r32 + if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0xc5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRW imm8, xmm, m16 + if isImm8(v0) && isEVEXXMM(v1) && isM16(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[2]), 2) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXTRW") + } + return p +} + +// VPGATHERDD performs "Gather Packed Doubleword Values Using Signed Doubleword Indices". +// +// Mnemonic : VPGATHERDD +// Supported forms : (5 forms) +// +// * VPGATHERDD xmm, vm32x, xmm [AVX2] +// * VPGATHERDD ymm, vm32y, ymm [AVX2] +// * VPGATHERDD vm32z, zmm{k} [AVX512F] +// * VPGATHERDD vm32x, xmm{k} [AVX512F,AVX512VL] +// * VPGATHERDD vm32y, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VPGATHERDD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VPGATHERDD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VPGATHERDD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VPGATHERDD takes 2 or 3 operands") + } + // VPGATHERDD xmm, vm32x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERDD ymm, vm32y, ymm + if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERDD vm32z, zmm{k} + if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPGATHERDD vm32x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPGATHERDD vm32y, ymm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPGATHERDD") + } + return p +} + +// VPGATHERDQ performs "Gather Packed Quadword Values Using Signed Doubleword Indices". +// +// Mnemonic : VPGATHERDQ +// Supported forms : (5 forms) +// +// * VPGATHERDQ xmm, vm32x, xmm [AVX2] +// * VPGATHERDQ ymm, vm32x, ymm [AVX2] +// * VPGATHERDQ vm32y, zmm{k} [AVX512F] +// * VPGATHERDQ vm32x, xmm{k} [AVX512F,AVX512VL] +// * VPGATHERDQ vm32x, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VPGATHERDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VPGATHERDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VPGATHERDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VPGATHERDQ takes 2 or 3 operands") + } + // VPGATHERDQ xmm, vm32x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERDQ ymm, vm32x, ymm + if len(vv) == 1 && isYMM(v0) && isVMX(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERDQ vm32y, zmm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPGATHERDQ vm32x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPGATHERDQ vm32x, ymm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPGATHERDQ") + } + return p +} + +// VPGATHERQD performs "Gather Packed Doubleword Values Using Signed Quadword Indices". +// +// Mnemonic : VPGATHERQD +// Supported forms : (5 forms) +// +// * VPGATHERQD xmm, vm64x, xmm [AVX2] +// * VPGATHERQD xmm, vm64y, xmm [AVX2] +// * VPGATHERQD vm64z, ymm{k} [AVX512F] +// * VPGATHERQD vm64x, xmm{k} [AVX512F,AVX512VL] +// * VPGATHERQD vm64y, xmm{k} [AVX512F,AVX512VL] +// +func (self *Program) VPGATHERQD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VPGATHERQD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VPGATHERQD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VPGATHERQD takes 2 or 3 operands") + } + // VPGATHERQD xmm, vm64x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERQD xmm, vm64y, xmm + if len(vv) == 1 && isXMM(v0) && isVMY(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERQD vm64z, ymm{k} + if len(vv) == 0 && isVMZ(v0) && isYMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPGATHERQD vm64x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPGATHERQD vm64y, xmm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPGATHERQD") + } + return p +} + +// VPGATHERQQ performs "Gather Packed Quadword Values Using Signed Quadword Indices". +// +// Mnemonic : VPGATHERQQ +// Supported forms : (5 forms) +// +// * VPGATHERQQ xmm, vm64x, xmm [AVX2] +// * VPGATHERQQ ymm, vm64y, ymm [AVX2] +// * VPGATHERQQ vm64z, zmm{k} [AVX512F] +// * VPGATHERQQ vm64x, xmm{k} [AVX512F,AVX512VL] +// * VPGATHERQQ vm64y, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VPGATHERQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VPGATHERQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VPGATHERQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VPGATHERQQ takes 2 or 3 operands") + } + // VPGATHERQQ xmm, vm64x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERQQ ymm, vm64y, ymm + if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERQQ vm64z, zmm{k} + if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPGATHERQQ vm64x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPGATHERQQ vm64y, ymm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPGATHERQQ") + } + return p +} + +// VPHADDBD performs "Packed Horizontal Add Signed Byte to Signed Doubleword". +// +// Mnemonic : VPHADDBD +// Supported forms : (2 forms) +// +// * VPHADDBD xmm, xmm [XOP] +// * VPHADDBD m128, xmm [XOP] +// +func (self *Program) VPHADDBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDBD", 2, Operands { v0, v1 }) + // VPHADDBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDBD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDBD") + } + return p +} + +// VPHADDBQ performs "Packed Horizontal Add Signed Byte to Signed Quadword". +// +// Mnemonic : VPHADDBQ +// Supported forms : (2 forms) +// +// * VPHADDBQ xmm, xmm [XOP] +// * VPHADDBQ m128, xmm [XOP] +// +func (self *Program) VPHADDBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDBQ", 2, Operands { v0, v1 }) + // VPHADDBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDBQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDBQ") + } + return p +} + +// VPHADDBW performs "Packed Horizontal Add Signed Byte to Signed Word". +// +// Mnemonic : VPHADDBW +// Supported forms : (2 forms) +// +// * VPHADDBW xmm, xmm [XOP] +// * VPHADDBW m128, xmm [XOP] +// +func (self *Program) VPHADDBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDBW", 2, Operands { v0, v1 }) + // VPHADDBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDBW") + } + return p +} + +// VPHADDD performs "Packed Horizontal Add Doubleword Integer". +// +// Mnemonic : VPHADDD +// Supported forms : (4 forms) +// +// * VPHADDD xmm, xmm, xmm [AVX] +// * VPHADDD m128, xmm, xmm [AVX] +// * VPHADDD ymm, ymm, ymm [AVX2] +// * VPHADDD m256, ymm, ymm [AVX2] +// +func (self *Program) VPHADDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHADDD", 3, Operands { v0, v1, v2 }) + // VPHADDD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHADDD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDD") + } + return p +} + +// VPHADDDQ performs "Packed Horizontal Add Signed Doubleword to Signed Quadword". +// +// Mnemonic : VPHADDDQ +// Supported forms : (2 forms) +// +// * VPHADDDQ xmm, xmm [XOP] +// * VPHADDDQ m128, xmm [XOP] +// +func (self *Program) VPHADDDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDDQ", 2, Operands { v0, v1 }) + // VPHADDDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xcb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDDQ") + } + return p +} + +// VPHADDSW performs "Packed Horizontal Add Signed Word Integers with Signed Saturation". +// +// Mnemonic : VPHADDSW +// Supported forms : (4 forms) +// +// * VPHADDSW xmm, xmm, xmm [AVX] +// * VPHADDSW m128, xmm, xmm [AVX] +// * VPHADDSW ymm, ymm, ymm [AVX2] +// * VPHADDSW m256, ymm, ymm [AVX2] +// +func (self *Program) VPHADDSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHADDSW", 3, Operands { v0, v1, v2 }) + // VPHADDSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x03) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHADDSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x03) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDSW") + } + return p +} + +// VPHADDUBD performs "Packed Horizontal Add Unsigned Byte to Doubleword". +// +// Mnemonic : VPHADDUBD +// Supported forms : (2 forms) +// +// * VPHADDUBD xmm, xmm [XOP] +// * VPHADDUBD m128, xmm [XOP] +// +func (self *Program) VPHADDUBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUBD", 2, Operands { v0, v1 }) + // VPHADDUBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUBD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUBD") + } + return p +} + +// VPHADDUBQ performs "Packed Horizontal Add Unsigned Byte to Quadword". +// +// Mnemonic : VPHADDUBQ +// Supported forms : (2 forms) +// +// * VPHADDUBQ xmm, xmm [XOP] +// * VPHADDUBQ m128, xmm [XOP] +// +func (self *Program) VPHADDUBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUBQ", 2, Operands { v0, v1 }) + // VPHADDUBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUBQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUBQ") + } + return p +} + +// VPHADDUBW performs "Packed Horizontal Add Unsigned Byte to Word". +// +// Mnemonic : VPHADDUBW +// Supported forms : (2 forms) +// +// * VPHADDUBW xmm, xmm [XOP] +// * VPHADDUBW m128, xmm [XOP] +// +func (self *Program) VPHADDUBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUBW", 2, Operands { v0, v1 }) + // VPHADDUBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUBW") + } + return p +} + +// VPHADDUDQ performs "Packed Horizontal Add Unsigned Doubleword to Quadword". +// +// Mnemonic : VPHADDUDQ +// Supported forms : (2 forms) +// +// * VPHADDUDQ xmm, xmm [XOP] +// * VPHADDUDQ m128, xmm [XOP] +// +func (self *Program) VPHADDUDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUDQ", 2, Operands { v0, v1 }) + // VPHADDUDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUDQ") + } + return p +} + +// VPHADDUWD performs "Packed Horizontal Add Unsigned Word to Doubleword". +// +// Mnemonic : VPHADDUWD +// Supported forms : (2 forms) +// +// * VPHADDUWD xmm, xmm [XOP] +// * VPHADDUWD m128, xmm [XOP] +// +func (self *Program) VPHADDUWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUWD", 2, Operands { v0, v1 }) + // VPHADDUWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUWD") + } + return p +} + +// VPHADDUWQ performs "Packed Horizontal Add Unsigned Word to Quadword". +// +// Mnemonic : VPHADDUWQ +// Supported forms : (2 forms) +// +// * VPHADDUWQ xmm, xmm [XOP] +// * VPHADDUWQ m128, xmm [XOP] +// +func (self *Program) VPHADDUWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUWQ", 2, Operands { v0, v1 }) + // VPHADDUWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUWQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd7) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUWQ") + } + return p +} + +// VPHADDW performs "Packed Horizontal Add Word Integers". +// +// Mnemonic : VPHADDW +// Supported forms : (4 forms) +// +// * VPHADDW xmm, xmm, xmm [AVX] +// * VPHADDW m128, xmm, xmm [AVX] +// * VPHADDW ymm, ymm, ymm [AVX2] +// * VPHADDW m256, ymm, ymm [AVX2] +// +func (self *Program) VPHADDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHADDW", 3, Operands { v0, v1, v2 }) + // VPHADDW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHADDW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDW") + } + return p +} + +// VPHADDWD performs "Packed Horizontal Add Signed Word to Signed Doubleword". +// +// Mnemonic : VPHADDWD +// Supported forms : (2 forms) +// +// * VPHADDWD xmm, xmm [XOP] +// * VPHADDWD m128, xmm [XOP] +// +func (self *Program) VPHADDWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDWD", 2, Operands { v0, v1 }) + // VPHADDWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDWD") + } + return p +} + +// VPHADDWQ performs "Packed Horizontal Add Signed Word to Signed Quadword". +// +// Mnemonic : VPHADDWQ +// Supported forms : (2 forms) +// +// * VPHADDWQ xmm, xmm [XOP] +// * VPHADDWQ m128, xmm [XOP] +// +func (self *Program) VPHADDWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDWQ", 2, Operands { v0, v1 }) + // VPHADDWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDWQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc7) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDWQ") + } + return p +} + +// VPHMINPOSUW performs "Packed Horizontal Minimum of Unsigned Word Integers". +// +// Mnemonic : VPHMINPOSUW +// Supported forms : (2 forms) +// +// * VPHMINPOSUW xmm, xmm [AVX] +// * VPHMINPOSUW m128, xmm [AVX] +// +func (self *Program) VPHMINPOSUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHMINPOSUW", 2, Operands { v0, v1 }) + // VPHMINPOSUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHMINPOSUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHMINPOSUW") + } + return p +} + +// VPHSUBBW performs "Packed Horizontal Subtract Signed Byte to Signed Word". +// +// Mnemonic : VPHSUBBW +// Supported forms : (2 forms) +// +// * VPHSUBBW xmm, xmm [XOP] +// * VPHSUBBW m128, xmm [XOP] +// +func (self *Program) VPHSUBBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHSUBBW", 2, Operands { v0, v1 }) + // VPHSUBBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHSUBBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBBW") + } + return p +} + +// VPHSUBD performs "Packed Horizontal Subtract Doubleword Integers". +// +// Mnemonic : VPHSUBD +// Supported forms : (4 forms) +// +// * VPHSUBD xmm, xmm, xmm [AVX] +// * VPHSUBD m128, xmm, xmm [AVX] +// * VPHSUBD ymm, ymm, ymm [AVX2] +// * VPHSUBD m256, ymm, ymm [AVX2] +// +func (self *Program) VPHSUBD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHSUBD", 3, Operands { v0, v1, v2 }) + // VPHSUBD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x06) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x06) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHSUBD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x06) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x06) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBD") + } + return p +} + +// VPHSUBDQ performs "Packed Horizontal Subtract Signed Doubleword to Signed Quadword". +// +// Mnemonic : VPHSUBDQ +// Supported forms : (2 forms) +// +// * VPHSUBDQ xmm, xmm [XOP] +// * VPHSUBDQ m128, xmm [XOP] +// +func (self *Program) VPHSUBDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHSUBDQ", 2, Operands { v0, v1 }) + // VPHSUBDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHSUBDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBDQ") + } + return p +} + +// VPHSUBSW performs "Packed Horizontal Subtract Signed Word Integers with Signed Saturation". +// +// Mnemonic : VPHSUBSW +// Supported forms : (4 forms) +// +// * VPHSUBSW xmm, xmm, xmm [AVX] +// * VPHSUBSW m128, xmm, xmm [AVX] +// * VPHSUBSW ymm, ymm, ymm [AVX2] +// * VPHSUBSW m256, ymm, ymm [AVX2] +// +func (self *Program) VPHSUBSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHSUBSW", 3, Operands { v0, v1, v2 }) + // VPHSUBSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x07) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x07) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHSUBSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x07) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x07) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBSW") + } + return p +} + +// VPHSUBW performs "Packed Horizontal Subtract Word Integers". +// +// Mnemonic : VPHSUBW +// Supported forms : (4 forms) +// +// * VPHSUBW xmm, xmm, xmm [AVX] +// * VPHSUBW m128, xmm, xmm [AVX] +// * VPHSUBW ymm, ymm, ymm [AVX2] +// * VPHSUBW m256, ymm, ymm [AVX2] +// +func (self *Program) VPHSUBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHSUBW", 3, Operands { v0, v1, v2 }) + // VPHSUBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHSUBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBW") + } + return p +} + +// VPHSUBWD performs "Packed Horizontal Subtract Signed Word to Signed Doubleword". +// +// Mnemonic : VPHSUBWD +// Supported forms : (2 forms) +// +// * VPHSUBWD xmm, xmm [XOP] +// * VPHSUBWD m128, xmm [XOP] +// +func (self *Program) VPHSUBWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHSUBWD", 2, Operands { v0, v1 }) + // VPHSUBWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHSUBWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBWD") + } + return p +} + +// VPINSRB performs "Insert Byte". +// +// Mnemonic : VPINSRB +// Supported forms : (4 forms) +// +// * VPINSRB imm8, r32, xmm, xmm [AVX] +// * VPINSRB imm8, m8, xmm, xmm [AVX] +// * VPINSRB imm8, r32, xmm, xmm [AVX512BW] +// * VPINSRB imm8, m8, xmm, xmm [AVX512BW] +// +func (self *Program) VPINSRB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPINSRB", 4, Operands { v0, v1, v2, v3 }) + // VPINSRB imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x20) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRB imm8, m8, xmm, xmm + if isImm8(v0) && isM8(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x20) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRB imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x20) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRB imm8, m8, xmm, xmm + if isImm8(v0) && isM8(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x20) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPINSRB") + } + return p +} + +// VPINSRD performs "Insert Doubleword". +// +// Mnemonic : VPINSRD +// Supported forms : (4 forms) +// +// * VPINSRD imm8, r32, xmm, xmm [AVX] +// * VPINSRD imm8, m32, xmm, xmm [AVX] +// * VPINSRD imm8, r32, xmm, xmm [AVX512DQ] +// * VPINSRD imm8, m32, xmm, xmm [AVX512DQ] +// +func (self *Program) VPINSRD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPINSRD", 4, Operands { v0, v1, v2, v3 }) + // VPINSRD imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x22) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRD imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x22) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRD imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x22) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRD imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x22) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPINSRD") + } + return p +} + +// VPINSRQ performs "Insert Quadword". +// +// Mnemonic : VPINSRQ +// Supported forms : (4 forms) +// +// * VPINSRQ imm8, r64, xmm, xmm [AVX] +// * VPINSRQ imm8, m64, xmm, xmm [AVX] +// * VPINSRQ imm8, r64, xmm, xmm [AVX512DQ] +// * VPINSRQ imm8, m64, xmm, xmm [AVX512DQ] +// +func (self *Program) VPINSRQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPINSRQ", 4, Operands { v0, v1, v2, v3 }) + // VPINSRQ imm8, r64, xmm, xmm + if isImm8(v0) && isReg64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x22) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRQ imm8, m64, xmm, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x22) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRQ imm8, r64, xmm, xmm + if isImm8(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x22) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRQ imm8, m64, xmm, xmm + if isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x22) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPINSRQ") + } + return p +} + +// VPINSRW performs "Insert Word". +// +// Mnemonic : VPINSRW +// Supported forms : (4 forms) +// +// * VPINSRW imm8, r32, xmm, xmm [AVX] +// * VPINSRW imm8, m16, xmm, xmm [AVX] +// * VPINSRW imm8, r32, xmm, xmm [AVX512BW] +// * VPINSRW imm8, m16, xmm, xmm [AVX512BW] +// +func (self *Program) VPINSRW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPINSRW", 4, Operands { v0, v1, v2, v3 }) + // VPINSRW imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRW imm8, m16, xmm, xmm + if isImm8(v0) && isM16(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc4) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRW imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRW imm8, m16, xmm, xmm + if isImm8(v0) && isM16(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0xc4) + m.mrsd(lcode(v[3]), addr(v[1]), 2) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPINSRW") + } + return p +} + +// VPLZCNTD performs "Count the Number of Leading Zero Bits for Packed Doubleword Values". +// +// Mnemonic : VPLZCNTD +// Supported forms : (6 forms) +// +// * VPLZCNTD m128/m32bcst, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTD m256/m32bcst, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTD m512/m32bcst, zmm{k}{z} [AVX512CD] +// * VPLZCNTD xmm, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTD ymm, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTD zmm, zmm{k}{z} [AVX512CD] +// +func (self *Program) VPLZCNTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPLZCNTD", 2, Operands { v0, v1 }) + // VPLZCNTD m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPLZCNTD m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPLZCNTD m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPLZCNTD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPLZCNTD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPLZCNTD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPLZCNTD") + } + return p +} + +// VPLZCNTQ performs "Count the Number of Leading Zero Bits for Packed Quadword Values". +// +// Mnemonic : VPLZCNTQ +// Supported forms : (6 forms) +// +// * VPLZCNTQ m128/m64bcst, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTQ m256/m64bcst, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTQ m512/m64bcst, zmm{k}{z} [AVX512CD] +// * VPLZCNTQ xmm, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTQ ymm, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTQ zmm, zmm{k}{z} [AVX512CD] +// +func (self *Program) VPLZCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPLZCNTQ", 2, Operands { v0, v1 }) + // VPLZCNTQ m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPLZCNTQ m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPLZCNTQ m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPLZCNTQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPLZCNTQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPLZCNTQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPLZCNTQ") + } + return p +} + +// VPMACSDD performs "Packed Multiply Accumulate Signed Doubleword to Signed Doubleword". +// +// Mnemonic : VPMACSDD +// Supported forms : (2 forms) +// +// * VPMACSDD xmm, xmm, xmm, xmm [XOP] +// * VPMACSDD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSDD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSDD", 4, Operands { v0, v1, v2, v3 }) + // VPMACSDD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSDD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x9e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSDD") + } + return p +} + +// VPMACSDQH performs "Packed Multiply Accumulate Signed High Doubleword to Signed Quadword". +// +// Mnemonic : VPMACSDQH +// Supported forms : (2 forms) +// +// * VPMACSDQH xmm, xmm, xmm, xmm [XOP] +// * VPMACSDQH xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSDQH(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSDQH", 4, Operands { v0, v1, v2, v3 }) + // VPMACSDQH xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSDQH xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x9f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSDQH") + } + return p +} + +// VPMACSDQL performs "Packed Multiply Accumulate Signed Low Doubleword to Signed Quadword". +// +// Mnemonic : VPMACSDQL +// Supported forms : (2 forms) +// +// * VPMACSDQL xmm, xmm, xmm, xmm [XOP] +// * VPMACSDQL xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSDQL(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSDQL", 4, Operands { v0, v1, v2, v3 }) + // VPMACSDQL xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSDQL xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x97) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSDQL") + } + return p +} + +// VPMACSSDD performs "Packed Multiply Accumulate with Saturation Signed Doubleword to Signed Doubleword". +// +// Mnemonic : VPMACSSDD +// Supported forms : (2 forms) +// +// * VPMACSSDD xmm, xmm, xmm, xmm [XOP] +// * VPMACSSDD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSDD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSDD", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSDD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x8e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSDD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x8e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSDD") + } + return p +} + +// VPMACSSDQH performs "Packed Multiply Accumulate with Saturation Signed High Doubleword to Signed Quadword". +// +// Mnemonic : VPMACSSDQH +// Supported forms : (2 forms) +// +// * VPMACSSDQH xmm, xmm, xmm, xmm [XOP] +// * VPMACSSDQH xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSDQH(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSDQH", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSDQH xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x8f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSDQH xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x8f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSDQH") + } + return p +} + +// VPMACSSDQL performs "Packed Multiply Accumulate with Saturation Signed Low Doubleword to Signed Quadword". +// +// Mnemonic : VPMACSSDQL +// Supported forms : (2 forms) +// +// * VPMACSSDQL xmm, xmm, xmm, xmm [XOP] +// * VPMACSSDQL xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSDQL(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSDQL", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSDQL xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x87) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSDQL xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x87) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSDQL") + } + return p +} + +// VPMACSSWD performs "Packed Multiply Accumulate with Saturation Signed Word to Signed Doubleword". +// +// Mnemonic : VPMACSSWD +// Supported forms : (2 forms) +// +// * VPMACSSWD xmm, xmm, xmm, xmm [XOP] +// * VPMACSSWD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSWD", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSWD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x86) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSWD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x86) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSWD") + } + return p +} + +// VPMACSSWW performs "Packed Multiply Accumulate with Saturation Signed Word to Signed Word". +// +// Mnemonic : VPMACSSWW +// Supported forms : (2 forms) +// +// * VPMACSSWW xmm, xmm, xmm, xmm [XOP] +// * VPMACSSWW xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSWW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSWW", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSWW xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x85) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSWW xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x85) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSWW") + } + return p +} + +// VPMACSWD performs "Packed Multiply Accumulate Signed Word to Signed Doubleword". +// +// Mnemonic : VPMACSWD +// Supported forms : (2 forms) +// +// * VPMACSWD xmm, xmm, xmm, xmm [XOP] +// * VPMACSWD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSWD", 4, Operands { v0, v1, v2, v3 }) + // VPMACSWD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSWD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x96) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSWD") + } + return p +} + +// VPMACSWW performs "Packed Multiply Accumulate Signed Word to Signed Word". +// +// Mnemonic : VPMACSWW +// Supported forms : (2 forms) +// +// * VPMACSWW xmm, xmm, xmm, xmm [XOP] +// * VPMACSWW xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSWW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSWW", 4, Operands { v0, v1, v2, v3 }) + // VPMACSWW xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x95) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSWW xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x95) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSWW") + } + return p +} + +// VPMADCSSWD performs "Packed Multiply Add Accumulate with Saturation Signed Word to Signed Doubleword". +// +// Mnemonic : VPMADCSSWD +// Supported forms : (2 forms) +// +// * VPMADCSSWD xmm, xmm, xmm, xmm [XOP] +// * VPMADCSSWD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMADCSSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMADCSSWD", 4, Operands { v0, v1, v2, v3 }) + // VPMADCSSWD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMADCSSWD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xa6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADCSSWD") + } + return p +} + +// VPMADCSWD performs "Packed Multiply Add Accumulate Signed Word to Signed Doubleword". +// +// Mnemonic : VPMADCSWD +// Supported forms : (2 forms) +// +// * VPMADCSWD xmm, xmm, xmm, xmm [XOP] +// * VPMADCSWD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMADCSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMADCSWD", 4, Operands { v0, v1, v2, v3 }) + // VPMADCSWD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMADCSWD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xb6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADCSWD") + } + return p +} + +// VPMADD52HUQ performs "Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators". +// +// Mnemonic : VPMADD52HUQ +// Supported forms : (6 forms) +// +// * VPMADD52HUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52HUQ xmm, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52HUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52HUQ ymm, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52HUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512IFMA] +// * VPMADD52HUQ zmm, zmm, zmm{k}{z} [AVX512IFMA] +// +func (self *Program) VPMADD52HUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMADD52HUQ", 3, Operands { v0, v1, v2 }) + // VPMADD52HUQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb5) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMADD52HUQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADD52HUQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb5) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMADD52HUQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADD52HUQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512IFMA) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb5) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMADD52HUQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512IFMA) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADD52HUQ") + } + return p +} + +// VPMADD52LUQ performs "Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators". +// +// Mnemonic : VPMADD52LUQ +// Supported forms : (6 forms) +// +// * VPMADD52LUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52LUQ xmm, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52LUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52LUQ ymm, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52LUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512IFMA] +// * VPMADD52LUQ zmm, zmm, zmm{k}{z} [AVX512IFMA] +// +func (self *Program) VPMADD52LUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMADD52LUQ", 3, Operands { v0, v1, v2 }) + // VPMADD52LUQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb4) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMADD52LUQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADD52LUQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb4) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMADD52LUQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADD52LUQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512IFMA) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb4) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMADD52LUQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512IFMA) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADD52LUQ") + } + return p +} + +// VPMADDUBSW performs "Multiply and Add Packed Signed and Unsigned Byte Integers". +// +// Mnemonic : VPMADDUBSW +// Supported forms : (10 forms) +// +// * VPMADDUBSW xmm, xmm, xmm [AVX] +// * VPMADDUBSW m128, xmm, xmm [AVX] +// * VPMADDUBSW ymm, ymm, ymm [AVX2] +// * VPMADDUBSW m256, ymm, ymm [AVX2] +// * VPMADDUBSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMADDUBSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMADDUBSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDUBSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDUBSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDUBSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMADDUBSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMADDUBSW", 3, Operands { v0, v1, v2 }) + // VPMADDUBSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMADDUBSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMADDUBSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMADDUBSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMADDUBSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADDUBSW") + } + return p +} + +// VPMADDWD performs "Multiply and Add Packed Signed Word Integers". +// +// Mnemonic : VPMADDWD +// Supported forms : (10 forms) +// +// * VPMADDWD xmm, xmm, xmm [AVX] +// * VPMADDWD m128, xmm, xmm [AVX] +// * VPMADDWD ymm, ymm, ymm [AVX2] +// * VPMADDWD m256, ymm, ymm [AVX2] +// * VPMADDWD zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMADDWD m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMADDWD xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDWD m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDWD ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDWD m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMADDWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMADDWD", 3, Operands { v0, v1, v2 }) + // VPMADDWD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMADDWD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMADDWD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMADDWD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMADDWD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADDWD") + } + return p +} + +// VPMASKMOVD performs "Conditional Move Packed Doubleword Integers". +// +// Mnemonic : VPMASKMOVD +// Supported forms : (4 forms) +// +// * VPMASKMOVD m128, xmm, xmm [AVX2] +// * VPMASKMOVD m256, ymm, ymm [AVX2] +// * VPMASKMOVD xmm, xmm, m128 [AVX2] +// * VPMASKMOVD ymm, ymm, m256 [AVX2] +// +func (self *Program) VPMASKMOVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMASKMOVD", 3, Operands { v0, v1, v2 }) + // VPMASKMOVD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x8c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMASKMOVD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x8c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMASKMOVD xmm, xmm, m128 + if isXMM(v0) && isXMM(v1) && isM128(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x8e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + // VPMASKMOVD ymm, ymm, m256 + if isYMM(v0) && isYMM(v1) && isM256(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x8e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPMASKMOVD") + } + return p +} + +// VPMASKMOVQ performs "Conditional Move Packed Quadword Integers". +// +// Mnemonic : VPMASKMOVQ +// Supported forms : (4 forms) +// +// * VPMASKMOVQ m128, xmm, xmm [AVX2] +// * VPMASKMOVQ m256, ymm, ymm [AVX2] +// * VPMASKMOVQ xmm, xmm, m128 [AVX2] +// * VPMASKMOVQ ymm, ymm, m256 [AVX2] +// +func (self *Program) VPMASKMOVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMASKMOVQ", 3, Operands { v0, v1, v2 }) + // VPMASKMOVQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x8c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMASKMOVQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x8c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMASKMOVQ xmm, xmm, m128 + if isXMM(v0) && isXMM(v1) && isM128(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x8e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + // VPMASKMOVQ ymm, ymm, m256 + if isYMM(v0) && isYMM(v1) && isM256(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x8e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPMASKMOVQ") + } + return p +} + +// VPMAXSB performs "Maximum of Packed Signed Byte Integers". +// +// Mnemonic : VPMAXSB +// Supported forms : (10 forms) +// +// * VPMAXSB xmm, xmm, xmm [AVX] +// * VPMAXSB m128, xmm, xmm [AVX] +// * VPMAXSB ymm, ymm, ymm [AVX2] +// * VPMAXSB m256, ymm, ymm [AVX2] +// * VPMAXSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMAXSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXSB", 3, Operands { v0, v1, v2 }) + // VPMAXSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXSB") + } + return p +} + +// VPMAXSD performs "Maximum of Packed Signed Doubleword Integers". +// +// Mnemonic : VPMAXSD +// Supported forms : (10 forms) +// +// * VPMAXSD xmm, xmm, xmm [AVX] +// * VPMAXSD m128, xmm, xmm [AVX] +// * VPMAXSD ymm, ymm, ymm [AVX2] +// * VPMAXSD m256, ymm, ymm [AVX2] +// * VPMAXSD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMAXSD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMAXSD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMAXSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXSD", 3, Operands { v0, v1, v2 }) + // VPMAXSD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXSD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXSD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMAXSD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXSD") + } + return p +} + +// VPMAXSQ performs "Maximum of Packed Signed Quadword Integers". +// +// Mnemonic : VPMAXSQ +// Supported forms : (6 forms) +// +// * VPMAXSQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMAXSQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMAXSQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMAXSQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXSQ", 3, Operands { v0, v1, v2 }) + // VPMAXSQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXSQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXSQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMAXSQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXSQ") + } + return p +} + +// VPMAXSW performs "Maximum of Packed Signed Word Integers". +// +// Mnemonic : VPMAXSW +// Supported forms : (10 forms) +// +// * VPMAXSW xmm, xmm, xmm [AVX] +// * VPMAXSW m128, xmm, xmm [AVX] +// * VPMAXSW ymm, ymm, ymm [AVX2] +// * VPMAXSW m256, ymm, ymm [AVX2] +// * VPMAXSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMAXSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXSW", 3, Operands { v0, v1, v2 }) + // VPMAXSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXSW") + } + return p +} + +// VPMAXUB performs "Maximum of Packed Unsigned Byte Integers". +// +// Mnemonic : VPMAXUB +// Supported forms : (10 forms) +// +// * VPMAXUB xmm, xmm, xmm [AVX] +// * VPMAXUB m128, xmm, xmm [AVX] +// * VPMAXUB ymm, ymm, ymm [AVX2] +// * VPMAXUB m256, ymm, ymm [AVX2] +// * VPMAXUB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXUB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXUB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMAXUB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXUB", 3, Operands { v0, v1, v2 }) + // VPMAXUB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXUB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXUB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXUB") + } + return p +} + +// VPMAXUD performs "Maximum of Packed Unsigned Doubleword Integers". +// +// Mnemonic : VPMAXUD +// Supported forms : (10 forms) +// +// * VPMAXUD xmm, xmm, xmm [AVX] +// * VPMAXUD m128, xmm, xmm [AVX] +// * VPMAXUD ymm, ymm, ymm [AVX2] +// * VPMAXUD m256, ymm, ymm [AVX2] +// * VPMAXUD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMAXUD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMAXUD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMAXUD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXUD", 3, Operands { v0, v1, v2 }) + // VPMAXUD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXUD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXUD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMAXUD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXUD") + } + return p +} + +// VPMAXUQ performs "Maximum of Packed Unsigned Quadword Integers". +// +// Mnemonic : VPMAXUQ +// Supported forms : (6 forms) +// +// * VPMAXUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMAXUQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMAXUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMAXUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXUQ", 3, Operands { v0, v1, v2 }) + // VPMAXUQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXUQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXUQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMAXUQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXUQ") + } + return p +} + +// VPMAXUW performs "Maximum of Packed Unsigned Word Integers". +// +// Mnemonic : VPMAXUW +// Supported forms : (10 forms) +// +// * VPMAXUW xmm, xmm, xmm [AVX] +// * VPMAXUW m128, xmm, xmm [AVX] +// * VPMAXUW ymm, ymm, ymm [AVX2] +// * VPMAXUW m256, ymm, ymm [AVX2] +// * VPMAXUW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXUW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXUW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMAXUW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXUW", 3, Operands { v0, v1, v2 }) + // VPMAXUW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXUW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXUW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXUW") + } + return p +} + +// VPMINSB performs "Minimum of Packed Signed Byte Integers". +// +// Mnemonic : VPMINSB +// Supported forms : (10 forms) +// +// * VPMINSB xmm, xmm, xmm [AVX] +// * VPMINSB m128, xmm, xmm [AVX] +// * VPMINSB ymm, ymm, ymm [AVX2] +// * VPMINSB m256, ymm, ymm [AVX2] +// * VPMINSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMINSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMINSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMINSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINSB", 3, Operands { v0, v1, v2 }) + // VPMINSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINSB") + } + return p +} + +// VPMINSD performs "Minimum of Packed Signed Doubleword Integers". +// +// Mnemonic : VPMINSD +// Supported forms : (10 forms) +// +// * VPMINSD xmm, xmm, xmm [AVX] +// * VPMINSD m128, xmm, xmm [AVX] +// * VPMINSD ymm, ymm, ymm [AVX2] +// * VPMINSD m256, ymm, ymm [AVX2] +// * VPMINSD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMINSD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMINSD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINSD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINSD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMINSD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMINSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINSD", 3, Operands { v0, v1, v2 }) + // VPMINSD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINSD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINSD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMINSD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINSD") + } + return p +} + +// VPMINSQ performs "Minimum of Packed Signed Quadword Integers". +// +// Mnemonic : VPMINSQ +// Supported forms : (6 forms) +// +// * VPMINSQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMINSQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMINSQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINSQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINSQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMINSQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMINSQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINSQ", 3, Operands { v0, v1, v2 }) + // VPMINSQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINSQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINSQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMINSQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINSQ") + } + return p +} + +// VPMINSW performs "Minimum of Packed Signed Word Integers". +// +// Mnemonic : VPMINSW +// Supported forms : (10 forms) +// +// * VPMINSW xmm, xmm, xmm [AVX] +// * VPMINSW m128, xmm, xmm [AVX] +// * VPMINSW ymm, ymm, ymm [AVX2] +// * VPMINSW m256, ymm, ymm [AVX2] +// * VPMINSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMINSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMINSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMINSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINSW", 3, Operands { v0, v1, v2 }) + // VPMINSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINSW") + } + return p +} + +// VPMINUB performs "Minimum of Packed Unsigned Byte Integers". +// +// Mnemonic : VPMINUB +// Supported forms : (10 forms) +// +// * VPMINUB xmm, xmm, xmm [AVX] +// * VPMINUB m128, xmm, xmm [AVX] +// * VPMINUB ymm, ymm, ymm [AVX2] +// * VPMINUB m256, ymm, ymm [AVX2] +// * VPMINUB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMINUB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMINUB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMINUB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINUB", 3, Operands { v0, v1, v2 }) + // VPMINUB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINUB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINUB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINUB") + } + return p +} + +// VPMINUD performs "Minimum of Packed Unsigned Doubleword Integers". +// +// Mnemonic : VPMINUD +// Supported forms : (10 forms) +// +// * VPMINUD xmm, xmm, xmm [AVX] +// * VPMINUD m128, xmm, xmm [AVX] +// * VPMINUD ymm, ymm, ymm [AVX2] +// * VPMINUD m256, ymm, ymm [AVX2] +// * VPMINUD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMINUD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMINUD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINUD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINUD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMINUD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMINUD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINUD", 3, Operands { v0, v1, v2 }) + // VPMINUD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINUD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINUD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMINUD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINUD") + } + return p +} + +// VPMINUQ performs "Minimum of Packed Unsigned Quadword Integers". +// +// Mnemonic : VPMINUQ +// Supported forms : (6 forms) +// +// * VPMINUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMINUQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMINUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINUQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMINUQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMINUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINUQ", 3, Operands { v0, v1, v2 }) + // VPMINUQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINUQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINUQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMINUQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINUQ") + } + return p +} + +// VPMINUW performs "Minimum of Packed Unsigned Word Integers". +// +// Mnemonic : VPMINUW +// Supported forms : (10 forms) +// +// * VPMINUW xmm, xmm, xmm [AVX] +// * VPMINUW m128, xmm, xmm [AVX] +// * VPMINUW ymm, ymm, ymm [AVX2] +// * VPMINUW m256, ymm, ymm [AVX2] +// * VPMINUW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMINUW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMINUW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMINUW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINUW", 3, Operands { v0, v1, v2 }) + // VPMINUW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINUW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINUW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINUW") + } + return p +} + +// VPMOVB2M performs "Move Signs of Packed Byte Integers to Mask Register". +// +// Mnemonic : VPMOVB2M +// Supported forms : (3 forms) +// +// * VPMOVB2M zmm, k [AVX512BW] +// * VPMOVB2M xmm, k [AVX512BW,AVX512VL] +// * VPMOVB2M ymm, k [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVB2M(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVB2M", 2, Operands { v0, v1 }) + // VPMOVB2M zmm, k + if isZMM(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVB2M xmm, k + if isEVEXXMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVB2M ymm, k + if isEVEXYMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVB2M") + } + return p +} + +// VPMOVD2M performs "Move Signs of Packed Doubleword Integers to Mask Register". +// +// Mnemonic : VPMOVD2M +// Supported forms : (3 forms) +// +// * VPMOVD2M zmm, k [AVX512DQ] +// * VPMOVD2M xmm, k [AVX512DQ,AVX512VL] +// * VPMOVD2M ymm, k [AVX512DQ,AVX512VL] +// +func (self *Program) VPMOVD2M(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVD2M", 2, Operands { v0, v1 }) + // VPMOVD2M zmm, k + if isZMM(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVD2M xmm, k + if isEVEXXMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVD2M ymm, k + if isEVEXYMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVD2M") + } + return p +} + +// VPMOVDB performs "Down Convert Packed Doubleword Values to Byte Values with Truncation". +// +// Mnemonic : VPMOVDB +// Supported forms : (6 forms) +// +// * VPMOVDB zmm, xmm{k}{z} [AVX512F] +// * VPMOVDB zmm, m128{k}{z} [AVX512F] +// * VPMOVDB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVDB xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVDB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVDB ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVDB", 2, Operands { v0, v1 }) + // VPMOVDB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDB zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVDB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDB xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVDB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDB ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVDB") + } + return p +} + +// VPMOVDW performs "Down Convert Packed Doubleword Values to Word Values with Truncation". +// +// Mnemonic : VPMOVDW +// Supported forms : (6 forms) +// +// * VPMOVDW zmm, ymm{k}{z} [AVX512F] +// * VPMOVDW zmm, m256{k}{z} [AVX512F] +// * VPMOVDW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVDW xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVDW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVDW ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVDW", 2, Operands { v0, v1 }) + // VPMOVDW zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x33) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDW zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVDW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x33) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDW xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVDW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x33) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDW ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVDW") + } + return p +} + +// VPMOVM2B performs "Expand Bits of Mask Register to Packed Byte Integers". +// +// Mnemonic : VPMOVM2B +// Supported forms : (3 forms) +// +// * VPMOVM2B k, zmm [AVX512BW] +// * VPMOVM2B k, xmm [AVX512BW,AVX512VL] +// * VPMOVM2B k, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVM2B(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVM2B", 2, Operands { v0, v1 }) + // VPMOVM2B k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2B k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2B k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVM2B") + } + return p +} + +// VPMOVM2D performs "Expand Bits of Mask Register to Packed Doubleword Integers". +// +// Mnemonic : VPMOVM2D +// Supported forms : (3 forms) +// +// * VPMOVM2D k, zmm [AVX512DQ] +// * VPMOVM2D k, xmm [AVX512DQ,AVX512VL] +// * VPMOVM2D k, ymm [AVX512DQ,AVX512VL] +// +func (self *Program) VPMOVM2D(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVM2D", 2, Operands { v0, v1 }) + // VPMOVM2D k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2D k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2D k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVM2D") + } + return p +} + +// VPMOVM2Q performs "Expand Bits of Mask Register to Packed Quadword Integers". +// +// Mnemonic : VPMOVM2Q +// Supported forms : (3 forms) +// +// * VPMOVM2Q k, zmm [AVX512DQ] +// * VPMOVM2Q k, xmm [AVX512DQ,AVX512VL] +// * VPMOVM2Q k, ymm [AVX512DQ,AVX512VL] +// +func (self *Program) VPMOVM2Q(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVM2Q", 2, Operands { v0, v1 }) + // VPMOVM2Q k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2Q k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2Q k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVM2Q") + } + return p +} + +// VPMOVM2W performs "Expand Bits of Mask Register to Packed Word Integers". +// +// Mnemonic : VPMOVM2W +// Supported forms : (3 forms) +// +// * VPMOVM2W k, zmm [AVX512BW] +// * VPMOVM2W k, xmm [AVX512BW,AVX512VL] +// * VPMOVM2W k, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVM2W(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVM2W", 2, Operands { v0, v1 }) + // VPMOVM2W k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2W k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2W k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVM2W") + } + return p +} + +// VPMOVMSKB performs "Move Byte Mask". +// +// Mnemonic : VPMOVMSKB +// Supported forms : (2 forms) +// +// * VPMOVMSKB xmm, r32 [AVX] +// * VPMOVMSKB ymm, r32 [AVX2] +// +func (self *Program) VPMOVMSKB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVMSKB", 2, Operands { v0, v1 }) + // VPMOVMSKB xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVMSKB ymm, r32 + if isYMM(v0) && isReg32(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVMSKB") + } + return p +} + +// VPMOVQ2M performs "Move Signs of Packed Quadword Integers to Mask Register". +// +// Mnemonic : VPMOVQ2M +// Supported forms : (3 forms) +// +// * VPMOVQ2M zmm, k [AVX512DQ] +// * VPMOVQ2M xmm, k [AVX512DQ,AVX512VL] +// * VPMOVQ2M ymm, k [AVX512DQ,AVX512VL] +// +func (self *Program) VPMOVQ2M(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVQ2M", 2, Operands { v0, v1 }) + // VPMOVQ2M zmm, k + if isZMM(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVQ2M xmm, k + if isEVEXXMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVQ2M ymm, k + if isEVEXYMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVQ2M") + } + return p +} + +// VPMOVQB performs "Down Convert Packed Quadword Values to Byte Values with Truncation". +// +// Mnemonic : VPMOVQB +// Supported forms : (6 forms) +// +// * VPMOVQB zmm, xmm{k}{z} [AVX512F] +// * VPMOVQB zmm, m64{k}{z} [AVX512F] +// * VPMOVQB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQB xmm, m16{k}{z} [AVX512F,AVX512VL] +// * VPMOVQB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQB ymm, m32{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVQB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVQB", 2, Operands { v0, v1 }) + // VPMOVQB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x32) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQB zmm, m64{k}{z} + if isZMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVQB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x32) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQB xmm, m16{k}{z} + if isEVEXXMM(v0) && isM16kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[0]), addr(v[1]), 2) + }) + } + // VPMOVQB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x32) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQB ymm, m32{k}{z} + if isEVEXYMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVQB") + } + return p +} + +// VPMOVQD performs "Down Convert Packed Quadword Values to Doubleword Values with Truncation". +// +// Mnemonic : VPMOVQD +// Supported forms : (6 forms) +// +// * VPMOVQD zmm, ymm{k}{z} [AVX512F] +// * VPMOVQD zmm, m256{k}{z} [AVX512F] +// * VPMOVQD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQD xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVQD ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQD ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVQD", 2, Operands { v0, v1 }) + // VPMOVQD zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x35) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQD zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVQD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x35) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQD xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVQD ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x35) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQD ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVQD") + } + return p +} + +// VPMOVQW performs "Down Convert Packed Quadword Values to Word Values with Truncation". +// +// Mnemonic : VPMOVQW +// Supported forms : (6 forms) +// +// * VPMOVQW zmm, xmm{k}{z} [AVX512F] +// * VPMOVQW zmm, m128{k}{z} [AVX512F] +// * VPMOVQW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQW xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVQW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQW ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVQW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVQW", 2, Operands { v0, v1 }) + // VPMOVQW zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x34) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQW zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVQW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x34) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQW xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVQW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x34) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQW ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVQW") + } + return p +} + +// VPMOVSDB performs "Down Convert Packed Doubleword Values to Byte Values with Signed Saturation". +// +// Mnemonic : VPMOVSDB +// Supported forms : (6 forms) +// +// * VPMOVSDB zmm, xmm{k}{z} [AVX512F] +// * VPMOVSDB zmm, m128{k}{z} [AVX512F] +// * VPMOVSDB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDB xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDB ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSDB", 2, Operands { v0, v1 }) + // VPMOVSDB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDB zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVSDB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDB xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVSDB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDB ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSDB") + } + return p +} + +// VPMOVSDW performs "Down Convert Packed Doubleword Values to Word Values with Signed Saturation". +// +// Mnemonic : VPMOVSDW +// Supported forms : (6 forms) +// +// * VPMOVSDW zmm, ymm{k}{z} [AVX512F] +// * VPMOVSDW zmm, m256{k}{z} [AVX512F] +// * VPMOVSDW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDW xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDW ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSDW", 2, Operands { v0, v1 }) + // VPMOVSDW zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x23) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDW zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVSDW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x23) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDW xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVSDW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x23) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDW ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSDW") + } + return p +} + +// VPMOVSQB performs "Down Convert Packed Quadword Values to Byte Values with Signed Saturation". +// +// Mnemonic : VPMOVSQB +// Supported forms : (6 forms) +// +// * VPMOVSQB zmm, xmm{k}{z} [AVX512F] +// * VPMOVSQB zmm, m64{k}{z} [AVX512F] +// * VPMOVSQB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQB xmm, m16{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQB ymm, m32{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSQB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSQB", 2, Operands { v0, v1 }) + // VPMOVSQB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x22) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQB zmm, m64{k}{z} + if isZMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVSQB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x22) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQB xmm, m16{k}{z} + if isEVEXXMM(v0) && isM16kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[0]), addr(v[1]), 2) + }) + } + // VPMOVSQB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x22) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQB ymm, m32{k}{z} + if isEVEXYMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSQB") + } + return p +} + +// VPMOVSQD performs "Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation". +// +// Mnemonic : VPMOVSQD +// Supported forms : (6 forms) +// +// * VPMOVSQD zmm, ymm{k}{z} [AVX512F] +// * VPMOVSQD zmm, m256{k}{z} [AVX512F] +// * VPMOVSQD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQD xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQD ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQD ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSQD", 2, Operands { v0, v1 }) + // VPMOVSQD zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x25) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQD zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVSQD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x25) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQD xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVSQD ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x25) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQD ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSQD") + } + return p +} + +// VPMOVSQW performs "Down Convert Packed Quadword Values to Word Values with Signed Saturation". +// +// Mnemonic : VPMOVSQW +// Supported forms : (6 forms) +// +// * VPMOVSQW zmm, xmm{k}{z} [AVX512F] +// * VPMOVSQW zmm, m128{k}{z} [AVX512F] +// * VPMOVSQW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQW xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQW ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSQW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSQW", 2, Operands { v0, v1 }) + // VPMOVSQW zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x24) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQW zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVSQW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x24) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQW xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVSQW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x24) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQW ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSQW") + } + return p +} + +// VPMOVSWB performs "Down Convert Packed Word Values to Byte Values with Signed Saturation". +// +// Mnemonic : VPMOVSWB +// Supported forms : (6 forms) +// +// * VPMOVSWB zmm, ymm{k}{z} [AVX512BW] +// * VPMOVSWB zmm, m256{k}{z} [AVX512BW] +// * VPMOVSWB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSWB xmm, m64{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSWB ymm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSWB ymm, m128{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVSWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSWB", 2, Operands { v0, v1 }) + // VPMOVSWB zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x20) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSWB zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVSWB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x20) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSWB xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVSWB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x20) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSWB ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSWB") + } + return p +} + +// VPMOVSXBD performs "Move Packed Byte Integers to Doubleword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXBD +// Supported forms : (10 forms) +// +// * VPMOVSXBD xmm, xmm [AVX] +// * VPMOVSXBD m32, xmm [AVX] +// * VPMOVSXBD xmm, ymm [AVX2] +// * VPMOVSXBD m64, ymm [AVX2] +// * VPMOVSXBD xmm, zmm{k}{z} [AVX512F] +// * VPMOVSXBD m128, zmm{k}{z} [AVX512F] +// * VPMOVSXBD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBD m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBD m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXBD", 2, Operands { v0, v1 }) + // VPMOVSXBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBD xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPMOVSXBD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPMOVSXBD m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXBD") + } + return p +} + +// VPMOVSXBQ performs "Move Packed Byte Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXBQ +// Supported forms : (10 forms) +// +// * VPMOVSXBQ xmm, xmm [AVX] +// * VPMOVSXBQ m16, xmm [AVX] +// * VPMOVSXBQ xmm, ymm [AVX2] +// * VPMOVSXBQ m32, ymm [AVX2] +// * VPMOVSXBQ xmm, zmm{k}{z} [AVX512F] +// * VPMOVSXBQ m64, zmm{k}{z} [AVX512F] +// * VPMOVSXBQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBQ m16, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBQ m32, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXBQ", 2, Operands { v0, v1 }) + // VPMOVSXBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ m32, ymm + if isM32(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVSXBQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ m16, xmm{k}{z} + if isM16(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + // VPMOVSXBQ m32, ymm{k}{z} + if isM32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXBQ") + } + return p +} + +// VPMOVSXBW performs "Move Packed Byte Integers to Word Integers with Sign Extension". +// +// Mnemonic : VPMOVSXBW +// Supported forms : (10 forms) +// +// * VPMOVSXBW xmm, xmm [AVX] +// * VPMOVSXBW m64, xmm [AVX] +// * VPMOVSXBW xmm, ymm [AVX2] +// * VPMOVSXBW m128, ymm [AVX2] +// * VPMOVSXBW ymm, zmm{k}{z} [AVX512BW] +// * VPMOVSXBW m256, zmm{k}{z} [AVX512BW] +// * VPMOVSXBW xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSXBW xmm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSXBW m64, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSXBW m128, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVSXBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXBW", 2, Operands { v0, v1 }) + // VPMOVSXBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBW xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBW ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVSXBW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVSXBW m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXBW") + } + return p +} + +// VPMOVSXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXDQ +// Supported forms : (10 forms) +// +// * VPMOVSXDQ xmm, xmm [AVX] +// * VPMOVSXDQ m64, xmm [AVX] +// * VPMOVSXDQ xmm, ymm [AVX2] +// * VPMOVSXDQ m128, ymm [AVX2] +// * VPMOVSXDQ ymm, zmm{k}{z} [AVX512F] +// * VPMOVSXDQ m256, zmm{k}{z} [AVX512F] +// * VPMOVSXDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXDQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXDQ m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXDQ m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXDQ", 2, Operands { v0, v1 }) + // VPMOVSXDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXDQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXDQ ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVSXDQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVSXDQ m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXDQ") + } + return p +} + +// VPMOVSXWD performs "Move Packed Word Integers to Doubleword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXWD +// Supported forms : (10 forms) +// +// * VPMOVSXWD xmm, xmm [AVX] +// * VPMOVSXWD m64, xmm [AVX] +// * VPMOVSXWD xmm, ymm [AVX2] +// * VPMOVSXWD m128, ymm [AVX2] +// * VPMOVSXWD ymm, zmm{k}{z} [AVX512F] +// * VPMOVSXWD m256, zmm{k}{z} [AVX512F] +// * VPMOVSXWD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWD m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWD m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXWD", 2, Operands { v0, v1 }) + // VPMOVSXWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXWD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXWD ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVSXWD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVSXWD m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXWD") + } + return p +} + +// VPMOVSXWQ performs "Move Packed Word Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXWQ +// Supported forms : (10 forms) +// +// * VPMOVSXWQ xmm, xmm [AVX] +// * VPMOVSXWQ m32, xmm [AVX] +// * VPMOVSXWQ xmm, ymm [AVX2] +// * VPMOVSXWQ m64, ymm [AVX2] +// * VPMOVSXWQ xmm, zmm{k}{z} [AVX512F] +// * VPMOVSXWQ m128, zmm{k}{z} [AVX512F] +// * VPMOVSXWQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWQ m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWQ m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXWQ", 2, Operands { v0, v1 }) + // VPMOVSXWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXWQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXWQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPMOVSXWQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPMOVSXWQ m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXWQ") + } + return p +} + +// VPMOVUSDB performs "Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSDB +// Supported forms : (6 forms) +// +// * VPMOVUSDB zmm, xmm{k}{z} [AVX512F] +// * VPMOVUSDB zmm, m128{k}{z} [AVX512F] +// * VPMOVUSDB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDB xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDB ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSDB", 2, Operands { v0, v1 }) + // VPMOVUSDB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDB zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVUSDB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDB xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVUSDB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDB ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSDB") + } + return p +} + +// VPMOVUSDW performs "Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSDW +// Supported forms : (6 forms) +// +// * VPMOVUSDW zmm, ymm{k}{z} [AVX512F] +// * VPMOVUSDW zmm, m256{k}{z} [AVX512F] +// * VPMOVUSDW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDW xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDW ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSDW", 2, Operands { v0, v1 }) + // VPMOVUSDW zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x13) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDW zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVUSDW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x13) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDW xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVUSDW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x13) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDW ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSDW") + } + return p +} + +// VPMOVUSQB performs "Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSQB +// Supported forms : (6 forms) +// +// * VPMOVUSQB zmm, xmm{k}{z} [AVX512F] +// * VPMOVUSQB zmm, m64{k}{z} [AVX512F] +// * VPMOVUSQB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQB xmm, m16{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQB ymm, m32{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSQB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSQB", 2, Operands { v0, v1 }) + // VPMOVUSQB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x12) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQB zmm, m64{k}{z} + if isZMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVUSQB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x12) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQB xmm, m16{k}{z} + if isEVEXXMM(v0) && isM16kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[0]), addr(v[1]), 2) + }) + } + // VPMOVUSQB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x12) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQB ymm, m32{k}{z} + if isEVEXYMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSQB") + } + return p +} + +// VPMOVUSQD performs "Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSQD +// Supported forms : (6 forms) +// +// * VPMOVUSQD zmm, ymm{k}{z} [AVX512F] +// * VPMOVUSQD zmm, m256{k}{z} [AVX512F] +// * VPMOVUSQD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQD xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQD ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQD ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSQD", 2, Operands { v0, v1 }) + // VPMOVUSQD zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x15) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQD zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x15) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVUSQD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x15) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQD xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x15) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVUSQD ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x15) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQD ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x15) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSQD") + } + return p +} + +// VPMOVUSQW performs "Down Convert Packed Quadword Values to Word Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSQW +// Supported forms : (6 forms) +// +// * VPMOVUSQW zmm, xmm{k}{z} [AVX512F] +// * VPMOVUSQW zmm, m128{k}{z} [AVX512F] +// * VPMOVUSQW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQW xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQW ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSQW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSQW", 2, Operands { v0, v1 }) + // VPMOVUSQW zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x14) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQW zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x14) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVUSQW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x14) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQW xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x14) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVUSQW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x14) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQW ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x14) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSQW") + } + return p +} + +// VPMOVUSWB performs "Down Convert Packed Word Values to Byte Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSWB +// Supported forms : (6 forms) +// +// * VPMOVUSWB zmm, ymm{k}{z} [AVX512BW] +// * VPMOVUSWB zmm, m256{k}{z} [AVX512BW] +// * VPMOVUSWB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVUSWB xmm, m64{k}{z} [AVX512BW,AVX512VL] +// * VPMOVUSWB ymm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVUSWB ymm, m128{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVUSWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSWB", 2, Operands { v0, v1 }) + // VPMOVUSWB zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x10) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSWB zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVUSWB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x10) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSWB xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVUSWB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x10) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSWB ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSWB") + } + return p +} + +// VPMOVW2M performs "Move Signs of Packed Word Integers to Mask Register". +// +// Mnemonic : VPMOVW2M +// Supported forms : (3 forms) +// +// * VPMOVW2M zmm, k [AVX512BW] +// * VPMOVW2M xmm, k [AVX512BW,AVX512VL] +// * VPMOVW2M ymm, k [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVW2M(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVW2M", 2, Operands { v0, v1 }) + // VPMOVW2M zmm, k + if isZMM(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVW2M xmm, k + if isEVEXXMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVW2M ymm, k + if isEVEXYMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVW2M") + } + return p +} + +// VPMOVWB performs "Down Convert Packed Word Values to Byte Values with Truncation". +// +// Mnemonic : VPMOVWB +// Supported forms : (6 forms) +// +// * VPMOVWB zmm, ymm{k}{z} [AVX512BW] +// * VPMOVWB zmm, m256{k}{z} [AVX512BW] +// * VPMOVWB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVWB xmm, m64{k}{z} [AVX512BW,AVX512VL] +// * VPMOVWB ymm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVWB ymm, m128{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVWB", 2, Operands { v0, v1 }) + // VPMOVWB zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x30) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVWB zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVWB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x30) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVWB xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVWB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x30) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVWB ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVWB") + } + return p +} + +// VPMOVZXBD performs "Move Packed Byte Integers to Doubleword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXBD +// Supported forms : (10 forms) +// +// * VPMOVZXBD xmm, xmm [AVX] +// * VPMOVZXBD m32, xmm [AVX] +// * VPMOVZXBD xmm, ymm [AVX2] +// * VPMOVZXBD m64, ymm [AVX2] +// * VPMOVZXBD xmm, zmm{k}{z} [AVX512F] +// * VPMOVZXBD m128, zmm{k}{z} [AVX512F] +// * VPMOVZXBD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBD m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBD m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXBD", 2, Operands { v0, v1 }) + // VPMOVZXBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBD xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPMOVZXBD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPMOVZXBD m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXBD") + } + return p +} + +// VPMOVZXBQ performs "Move Packed Byte Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXBQ +// Supported forms : (10 forms) +// +// * VPMOVZXBQ xmm, xmm [AVX] +// * VPMOVZXBQ m16, xmm [AVX] +// * VPMOVZXBQ xmm, ymm [AVX2] +// * VPMOVZXBQ m32, ymm [AVX2] +// * VPMOVZXBQ xmm, zmm{k}{z} [AVX512F] +// * VPMOVZXBQ m64, zmm{k}{z} [AVX512F] +// * VPMOVZXBQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBQ m16, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBQ m32, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXBQ", 2, Operands { v0, v1 }) + // VPMOVZXBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ m32, ymm + if isM32(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVZXBQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ m16, xmm{k}{z} + if isM16(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + // VPMOVZXBQ m32, ymm{k}{z} + if isM32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXBQ") + } + return p +} + +// VPMOVZXBW performs "Move Packed Byte Integers to Word Integers with Zero Extension". +// +// Mnemonic : VPMOVZXBW +// Supported forms : (10 forms) +// +// * VPMOVZXBW xmm, xmm [AVX] +// * VPMOVZXBW m64, xmm [AVX] +// * VPMOVZXBW xmm, ymm [AVX2] +// * VPMOVZXBW m128, ymm [AVX2] +// * VPMOVZXBW ymm, zmm{k}{z} [AVX512BW] +// * VPMOVZXBW m256, zmm{k}{z} [AVX512BW] +// * VPMOVZXBW xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVZXBW xmm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVZXBW m64, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVZXBW m128, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVZXBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXBW", 2, Operands { v0, v1 }) + // VPMOVZXBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBW xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBW ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVZXBW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVZXBW m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXBW") + } + return p +} + +// VPMOVZXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXDQ +// Supported forms : (10 forms) +// +// * VPMOVZXDQ xmm, xmm [AVX] +// * VPMOVZXDQ m64, xmm [AVX] +// * VPMOVZXDQ xmm, ymm [AVX2] +// * VPMOVZXDQ m128, ymm [AVX2] +// * VPMOVZXDQ ymm, zmm{k}{z} [AVX512F] +// * VPMOVZXDQ m256, zmm{k}{z} [AVX512F] +// * VPMOVZXDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXDQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXDQ m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXDQ m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXDQ", 2, Operands { v0, v1 }) + // VPMOVZXDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXDQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXDQ ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVZXDQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVZXDQ m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXDQ") + } + return p +} + +// VPMOVZXWD performs "Move Packed Word Integers to Doubleword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXWD +// Supported forms : (10 forms) +// +// * VPMOVZXWD xmm, xmm [AVX] +// * VPMOVZXWD m64, xmm [AVX] +// * VPMOVZXWD xmm, ymm [AVX2] +// * VPMOVZXWD m128, ymm [AVX2] +// * VPMOVZXWD ymm, zmm{k}{z} [AVX512F] +// * VPMOVZXWD m256, zmm{k}{z} [AVX512F] +// * VPMOVZXWD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWD m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWD m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXWD", 2, Operands { v0, v1 }) + // VPMOVZXWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXWD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXWD ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVZXWD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVZXWD m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXWD") + } + return p +} + +// VPMOVZXWQ performs "Move Packed Word Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXWQ +// Supported forms : (10 forms) +// +// * VPMOVZXWQ xmm, xmm [AVX] +// * VPMOVZXWQ m32, xmm [AVX] +// * VPMOVZXWQ xmm, ymm [AVX2] +// * VPMOVZXWQ m64, ymm [AVX2] +// * VPMOVZXWQ xmm, zmm{k}{z} [AVX512F] +// * VPMOVZXWQ m128, zmm{k}{z} [AVX512F] +// * VPMOVZXWQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWQ m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWQ m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXWQ", 2, Operands { v0, v1 }) + // VPMOVZXWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXWQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXWQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPMOVZXWQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPMOVZXWQ m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXWQ") + } + return p +} + +// VPMULDQ performs "Multiply Packed Signed Doubleword Integers and Store Quadword Result". +// +// Mnemonic : VPMULDQ +// Supported forms : (10 forms) +// +// * VPMULDQ xmm, xmm, xmm [AVX] +// * VPMULDQ m128, xmm, xmm [AVX] +// * VPMULDQ ymm, ymm, ymm [AVX2] +// * VPMULDQ m256, ymm, ymm [AVX2] +// * VPMULDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMULDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMULDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMULDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMULDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULDQ", 3, Operands { v0, v1, v2 }) + // VPMULDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULDQ") + } + return p +} + +// VPMULHRSW performs "Packed Multiply Signed Word Integers and Store High Result with Round and Scale". +// +// Mnemonic : VPMULHRSW +// Supported forms : (10 forms) +// +// * VPMULHRSW xmm, xmm, xmm [AVX] +// * VPMULHRSW m128, xmm, xmm [AVX] +// * VPMULHRSW ymm, ymm, ymm [AVX2] +// * VPMULHRSW m256, ymm, ymm [AVX2] +// * VPMULHRSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHRSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHRSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHRSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHRSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHRSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMULHRSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULHRSW", 3, Operands { v0, v1, v2 }) + // VPMULHRSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHRSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHRSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULHRSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULHRSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULHRSW") + } + return p +} + +// VPMULHUW performs "Multiply Packed Unsigned Word Integers and Store High Result". +// +// Mnemonic : VPMULHUW +// Supported forms : (10 forms) +// +// * VPMULHUW xmm, xmm, xmm [AVX] +// * VPMULHUW m128, xmm, xmm [AVX] +// * VPMULHUW ymm, ymm, ymm [AVX2] +// * VPMULHUW m256, ymm, ymm [AVX2] +// * VPMULHUW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHUW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHUW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHUW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHUW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHUW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMULHUW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULHUW", 3, Operands { v0, v1, v2 }) + // VPMULHUW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHUW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHUW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULHUW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULHUW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULHUW") + } + return p +} + +// VPMULHW performs "Multiply Packed Signed Word Integers and Store High Result". +// +// Mnemonic : VPMULHW +// Supported forms : (10 forms) +// +// * VPMULHW xmm, xmm, xmm [AVX] +// * VPMULHW m128, xmm, xmm [AVX] +// * VPMULHW ymm, ymm, ymm [AVX2] +// * VPMULHW m256, ymm, ymm [AVX2] +// * VPMULHW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMULHW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULHW", 3, Operands { v0, v1, v2 }) + // VPMULHW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULHW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULHW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULHW") + } + return p +} + +// VPMULLD performs "Multiply Packed Signed Doubleword Integers and Store Low Result". +// +// Mnemonic : VPMULLD +// Supported forms : (10 forms) +// +// * VPMULLD xmm, xmm, xmm [AVX] +// * VPMULLD m128, xmm, xmm [AVX] +// * VPMULLD ymm, ymm, ymm [AVX2] +// * VPMULLD m256, ymm, ymm [AVX2] +// * VPMULLD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMULLD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMULLD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULLD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULLD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMULLD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMULLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULLD", 3, Operands { v0, v1, v2 }) + // VPMULLD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULLD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULLD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULLD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULLD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULLD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULLD") + } + return p +} + +// VPMULLQ performs "Multiply Packed Signed Quadword Integers and Store Low Result". +// +// Mnemonic : VPMULLQ +// Supported forms : (6 forms) +// +// * VPMULLQ m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VPMULLQ zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VPMULLQ m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VPMULLQ xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VPMULLQ m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VPMULLQ ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VPMULLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULLQ", 3, Operands { v0, v1, v2 }) + // VPMULLQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULLQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULLQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULLQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULLQ") + } + return p +} + +// VPMULLW performs "Multiply Packed Signed Word Integers and Store Low Result". +// +// Mnemonic : VPMULLW +// Supported forms : (10 forms) +// +// * VPMULLW xmm, xmm, xmm [AVX] +// * VPMULLW m128, xmm, xmm [AVX] +// * VPMULLW ymm, ymm, ymm [AVX2] +// * VPMULLW m256, ymm, ymm [AVX2] +// * VPMULLW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMULLW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMULLW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULLW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULLW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMULLW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMULLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULLW", 3, Operands { v0, v1, v2 }) + // VPMULLW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULLW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULLW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULLW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULLW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULLW") + } + return p +} + +// VPMULTISHIFTQB performs "Select Packed Unaligned Bytes from Quadword Sources". +// +// Mnemonic : VPMULTISHIFTQB +// Supported forms : (6 forms) +// +// * VPMULTISHIFTQB m128/m64bcst, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPMULTISHIFTQB xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPMULTISHIFTQB m256/m64bcst, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPMULTISHIFTQB ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPMULTISHIFTQB m512/m64bcst, zmm, zmm{k}{z} [AVX512VBMI] +// * VPMULTISHIFTQB zmm, zmm, zmm{k}{z} [AVX512VBMI] +// +func (self *Program) VPMULTISHIFTQB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULTISHIFTQB", 3, Operands { v0, v1, v2 }) + // VPMULTISHIFTQB m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VBMI | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x83) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULTISHIFTQB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VBMI | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x83) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULTISHIFTQB m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VBMI | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x83) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULTISHIFTQB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VBMI | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x83) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULTISHIFTQB m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x83) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULTISHIFTQB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x83) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULTISHIFTQB") + } + return p +} + +// VPMULUDQ performs "Multiply Packed Unsigned Doubleword Integers". +// +// Mnemonic : VPMULUDQ +// Supported forms : (10 forms) +// +// * VPMULUDQ xmm, xmm, xmm [AVX] +// * VPMULUDQ m128, xmm, xmm [AVX] +// * VPMULUDQ ymm, ymm, ymm [AVX2] +// * VPMULUDQ m256, ymm, ymm [AVX2] +// * VPMULUDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMULUDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMULUDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULUDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULUDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMULUDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMULUDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULUDQ", 3, Operands { v0, v1, v2 }) + // VPMULUDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULUDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULUDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULUDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULUDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULUDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULUDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULUDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULUDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULUDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULUDQ") + } + return p +} + +// VPOPCNTD performs "Packed Population Count for Doubleword Integers". +// +// Mnemonic : VPOPCNTD +// Supported forms : (2 forms) +// +// * VPOPCNTD m512/m32bcst, zmm{k}{z} [AVX512VPOPCNTDQ] +// * VPOPCNTD zmm, zmm{k}{z} [AVX512VPOPCNTDQ] +// +func (self *Program) VPOPCNTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPOPCNTD", 2, Operands { v0, v1 }) + // VPOPCNTD m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512VPOPCNTDQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPOPCNTD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512VPOPCNTDQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x55) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPOPCNTD") + } + return p +} + +// VPOPCNTQ performs "Packed Population Count for Quadword Integers". +// +// Mnemonic : VPOPCNTQ +// Supported forms : (2 forms) +// +// * VPOPCNTQ m512/m64bcst, zmm{k}{z} [AVX512VPOPCNTDQ] +// * VPOPCNTQ zmm, zmm{k}{z} [AVX512VPOPCNTDQ] +// +func (self *Program) VPOPCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPOPCNTQ", 2, Operands { v0, v1 }) + // VPOPCNTQ m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512VPOPCNTDQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPOPCNTQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512VPOPCNTDQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x55) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPOPCNTQ") + } + return p +} + +// VPOR performs "Packed Bitwise Logical OR". +// +// Mnemonic : VPOR +// Supported forms : (4 forms) +// +// * VPOR xmm, xmm, xmm [AVX] +// * VPOR m128, xmm, xmm [AVX] +// * VPOR ymm, ymm, ymm [AVX2] +// * VPOR m256, ymm, ymm [AVX2] +// +func (self *Program) VPOR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPOR", 3, Operands { v0, v1, v2 }) + // VPOR xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPOR m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPOR ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPOR m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPOR") + } + return p +} + +// VPORD performs "Bitwise Logical OR of Packed Doubleword Integers". +// +// Mnemonic : VPORD +// Supported forms : (6 forms) +// +// * VPORD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPORD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPORD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPORD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPORD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPORD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPORD", 3, Operands { v0, v1, v2 }) + // VPORD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPORD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPORD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPORD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPORD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPORD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPORD") + } + return p +} + +// VPORQ performs "Bitwise Logical OR of Packed Quadword Integers". +// +// Mnemonic : VPORQ +// Supported forms : (6 forms) +// +// * VPORQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPORQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPORQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPORQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPORQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPORQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPORQ", 3, Operands { v0, v1, v2 }) + // VPORQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPORQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPORQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPORQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPORQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPORQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPORQ") + } + return p +} + +// VPPERM performs "Packed Permute Bytes". +// +// Mnemonic : VPPERM +// Supported forms : (3 forms) +// +// * VPPERM xmm, xmm, xmm, xmm [XOP] +// * VPPERM m128, xmm, xmm, xmm [XOP] +// * VPPERM xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPPERM(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPPERM", 4, Operands { v0, v1, v2, v3 }) + // VPPERM xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[2]) << 3)) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPPERM m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x80, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0xa3) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPPERM xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xa3) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPPERM") + } + return p +} + +// VPROLD performs "Rotate Packed Doubleword Left". +// +// Mnemonic : VPROLD +// Supported forms : (6 forms) +// +// * VPROLD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPROLD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPROLD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPROLD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPROLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROLD", 3, Operands { v0, v1, v2 }) + // VPROLD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPROLD") + } + return p +} + +// VPROLQ performs "Rotate Packed Quadword Left". +// +// Mnemonic : VPROLQ +// Supported forms : (6 forms) +// +// * VPROLQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPROLQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPROLQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPROLQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPROLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROLQ", 3, Operands { v0, v1, v2 }) + // VPROLQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPROLQ") + } + return p +} + +// VPROLVD performs "Variable Rotate Packed Doubleword Left". +// +// Mnemonic : VPROLVD +// Supported forms : (6 forms) +// +// * VPROLVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPROLVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPROLVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPROLVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPROLVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROLVD", 3, Operands { v0, v1, v2 }) + // VPROLVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPROLVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROLVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPROLVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROLVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPROLVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPROLVD") + } + return p +} + +// VPROLVQ performs "Variable Rotate Packed Quadword Left". +// +// Mnemonic : VPROLVQ +// Supported forms : (6 forms) +// +// * VPROLVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPROLVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPROLVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPROLVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPROLVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROLVQ", 3, Operands { v0, v1, v2 }) + // VPROLVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPROLVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROLVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPROLVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROLVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPROLVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPROLVQ") + } + return p +} + +// VPRORD performs "Rotate Packed Doubleword Right". +// +// Mnemonic : VPRORD +// Supported forms : (6 forms) +// +// * VPRORD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPRORD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPRORD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPRORD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPRORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPRORD", 3, Operands { v0, v1, v2 }) + // VPRORD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPRORD") + } + return p +} + +// VPRORQ performs "Rotate Packed Quadword Right". +// +// Mnemonic : VPRORQ +// Supported forms : (6 forms) +// +// * VPRORQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPRORQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPRORQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPRORQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPRORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPRORQ", 3, Operands { v0, v1, v2 }) + // VPRORQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPRORQ") + } + return p +} + +// VPRORVD performs "Variable Rotate Packed Doubleword Right". +// +// Mnemonic : VPRORVD +// Supported forms : (6 forms) +// +// * VPRORVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPRORVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPRORVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPRORVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPRORVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPRORVD", 3, Operands { v0, v1, v2 }) + // VPRORVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPRORVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPRORVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPRORVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPRORVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPRORVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPRORVD") + } + return p +} + +// VPRORVQ performs "Variable Rotate Packed Quadword Right". +// +// Mnemonic : VPRORVQ +// Supported forms : (6 forms) +// +// * VPRORVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPRORVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPRORVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPRORVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPRORVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPRORVQ", 3, Operands { v0, v1, v2 }) + // VPRORVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPRORVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPRORVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPRORVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPRORVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPRORVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPRORVQ") + } + return p +} + +// VPROTB performs "Packed Rotate Bytes". +// +// Mnemonic : VPROTB +// Supported forms : (5 forms) +// +// * VPROTB imm8, xmm, xmm [XOP] +// * VPROTB xmm, xmm, xmm [XOP] +// * VPROTB m128, xmm, xmm [XOP] +// * VPROTB imm8, m128, xmm [XOP] +// * VPROTB xmm, m128, xmm [XOP] +// +func (self *Program) VPROTB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROTB", 3, Operands { v0, v1, v2 }) + // VPROTB imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0xc0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x90) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x90) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROTB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPROTB imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0xc0) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTB xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPROTB") + } + return p +} + +// VPROTD performs "Packed Rotate Doublewords". +// +// Mnemonic : VPROTD +// Supported forms : (5 forms) +// +// * VPROTD imm8, xmm, xmm [XOP] +// * VPROTD xmm, xmm, xmm [XOP] +// * VPROTD m128, xmm, xmm [XOP] +// * VPROTD imm8, m128, xmm [XOP] +// * VPROTD xmm, m128, xmm [XOP] +// +func (self *Program) VPROTD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROTD", 3, Operands { v0, v1, v2 }) + // VPROTD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x92) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x92) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROTD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPROTD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTD xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPROTD") + } + return p +} + +// VPROTQ performs "Packed Rotate Quadwords". +// +// Mnemonic : VPROTQ +// Supported forms : (5 forms) +// +// * VPROTQ imm8, xmm, xmm [XOP] +// * VPROTQ xmm, xmm, xmm [XOP] +// * VPROTQ m128, xmm, xmm [XOP] +// * VPROTQ imm8, m128, xmm [XOP] +// * VPROTQ xmm, m128, xmm [XOP] +// +func (self *Program) VPROTQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROTQ", 3, Operands { v0, v1, v2 }) + // VPROTQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0xc3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x93) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x93) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROTQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPROTQ imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0xc3) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTQ xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPROTQ") + } + return p +} + +// VPROTW performs "Packed Rotate Words". +// +// Mnemonic : VPROTW +// Supported forms : (5 forms) +// +// * VPROTW imm8, xmm, xmm [XOP] +// * VPROTW xmm, xmm, xmm [XOP] +// * VPROTW m128, xmm, xmm [XOP] +// * VPROTW imm8, m128, xmm [XOP] +// * VPROTW xmm, m128, xmm [XOP] +// +func (self *Program) VPROTW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROTW", 3, Operands { v0, v1, v2 }) + // VPROTW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x91) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x91) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROTW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPROTW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0xc1) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTW xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPROTW") + } + return p +} + +// VPSADBW performs "Compute Sum of Absolute Differences". +// +// Mnemonic : VPSADBW +// Supported forms : (10 forms) +// +// * VPSADBW xmm, xmm, xmm [AVX] +// * VPSADBW m128, xmm, xmm [AVX] +// * VPSADBW ymm, ymm, ymm [AVX2] +// * VPSADBW m256, ymm, ymm [AVX2] +// * VPSADBW zmm, zmm, zmm [AVX512BW] +// * VPSADBW m512, zmm, zmm [AVX512BW] +// * VPSADBW xmm, xmm, xmm [AVX512BW,AVX512VL] +// * VPSADBW m128, xmm, xmm [AVX512BW,AVX512VL] +// * VPSADBW ymm, ymm, ymm [AVX512BW,AVX512VL] +// * VPSADBW m256, ymm, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPSADBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSADBW", 3, Operands { v0, v1, v2 }) + // VPSADBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSADBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSADBW zmm, zmm, zmm + if isZMM(v0) && isZMM(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m512, zmm, zmm + if isM512(v0) && isZMM(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSADBW xmm, xmm, xmm + if isEVEXXMM(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m128, xmm, xmm + if isM128(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSADBW ymm, ymm, ymm + if isEVEXYMM(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x20) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m256, ymm, ymm + if isM256(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSADBW") + } + return p +} + +// VPSCATTERDD performs "Scatter Packed Doubleword Values with Signed Doubleword Indices". +// +// Mnemonic : VPSCATTERDD +// Supported forms : (3 forms) +// +// * VPSCATTERDD zmm, vm32z{k} [AVX512F] +// * VPSCATTERDD xmm, vm32x{k} [AVX512F,AVX512VL] +// * VPSCATTERDD ymm, vm32y{k} [AVX512F,AVX512VL] +// +func (self *Program) VPSCATTERDD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPSCATTERDD", 2, Operands { v0, v1 }) + // VPSCATTERDD zmm, vm32z{k} + if isZMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPSCATTERDD xmm, vm32x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPSCATTERDD ymm, vm32y{k} + if isEVEXYMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPSCATTERDD") + } + return p +} + +// VPSCATTERDQ performs "Scatter Packed Quadword Values with Signed Doubleword Indices". +// +// Mnemonic : VPSCATTERDQ +// Supported forms : (3 forms) +// +// * VPSCATTERDQ zmm, vm32y{k} [AVX512F] +// * VPSCATTERDQ xmm, vm32x{k} [AVX512F,AVX512VL] +// * VPSCATTERDQ ymm, vm32x{k} [AVX512F,AVX512VL] +// +func (self *Program) VPSCATTERDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPSCATTERDQ", 2, Operands { v0, v1 }) + // VPSCATTERDQ zmm, vm32y{k} + if isZMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPSCATTERDQ xmm, vm32x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPSCATTERDQ ymm, vm32x{k} + if isEVEXYMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPSCATTERDQ") + } + return p +} + +// VPSCATTERQD performs "Scatter Packed Doubleword Values with Signed Quadword Indices". +// +// Mnemonic : VPSCATTERQD +// Supported forms : (3 forms) +// +// * VPSCATTERQD ymm, vm64z{k} [AVX512F] +// * VPSCATTERQD xmm, vm64x{k} [AVX512F,AVX512VL] +// * VPSCATTERQD xmm, vm64y{k} [AVX512F,AVX512VL] +// +func (self *Program) VPSCATTERQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPSCATTERQD", 2, Operands { v0, v1 }) + // VPSCATTERQD ymm, vm64z{k} + if isEVEXYMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPSCATTERQD xmm, vm64x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPSCATTERQD xmm, vm64y{k} + if isEVEXXMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPSCATTERQD") + } + return p +} + +// VPSCATTERQQ performs "Scatter Packed Quadword Values with Signed Quadword Indices". +// +// Mnemonic : VPSCATTERQQ +// Supported forms : (3 forms) +// +// * VPSCATTERQQ zmm, vm64z{k} [AVX512F] +// * VPSCATTERQQ xmm, vm64x{k} [AVX512F,AVX512VL] +// * VPSCATTERQQ ymm, vm64y{k} [AVX512F,AVX512VL] +// +func (self *Program) VPSCATTERQQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPSCATTERQQ", 2, Operands { v0, v1 }) + // VPSCATTERQQ zmm, vm64z{k} + if isZMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPSCATTERQQ xmm, vm64x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPSCATTERQQ ymm, vm64y{k} + if isEVEXYMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPSCATTERQQ") + } + return p +} + +// VPSHAB performs "Packed Shift Arithmetic Bytes". +// +// Mnemonic : VPSHAB +// Supported forms : (3 forms) +// +// * VPSHAB xmm, xmm, xmm [XOP] +// * VPSHAB m128, xmm, xmm [XOP] +// * VPSHAB xmm, m128, xmm [XOP] +// +func (self *Program) VPSHAB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHAB", 3, Operands { v0, v1, v2 }) + // VPSHAB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHAB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHAB xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHAB") + } + return p +} + +// VPSHAD performs "Packed Shift Arithmetic Doublewords". +// +// Mnemonic : VPSHAD +// Supported forms : (3 forms) +// +// * VPSHAD xmm, xmm, xmm [XOP] +// * VPSHAD m128, xmm, xmm [XOP] +// * VPSHAD xmm, m128, xmm [XOP] +// +func (self *Program) VPSHAD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHAD", 3, Operands { v0, v1, v2 }) + // VPSHAD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHAD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHAD xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHAD") + } + return p +} + +// VPSHAQ performs "Packed Shift Arithmetic Quadwords". +// +// Mnemonic : VPSHAQ +// Supported forms : (3 forms) +// +// * VPSHAQ xmm, xmm, xmm [XOP] +// * VPSHAQ m128, xmm, xmm [XOP] +// * VPSHAQ xmm, m128, xmm [XOP] +// +func (self *Program) VPSHAQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHAQ", 3, Operands { v0, v1, v2 }) + // VPSHAQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHAQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHAQ xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHAQ") + } + return p +} + +// VPSHAW performs "Packed Shift Arithmetic Words". +// +// Mnemonic : VPSHAW +// Supported forms : (3 forms) +// +// * VPSHAW xmm, xmm, xmm [XOP] +// * VPSHAW m128, xmm, xmm [XOP] +// * VPSHAW xmm, m128, xmm [XOP] +// +func (self *Program) VPSHAW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHAW", 3, Operands { v0, v1, v2 }) + // VPSHAW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHAW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHAW xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHAW") + } + return p +} + +// VPSHLB performs "Packed Shift Logical Bytes". +// +// Mnemonic : VPSHLB +// Supported forms : (3 forms) +// +// * VPSHLB xmm, xmm, xmm [XOP] +// * VPSHLB m128, xmm, xmm [XOP] +// * VPSHLB xmm, m128, xmm [XOP] +// +func (self *Program) VPSHLB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHLB", 3, Operands { v0, v1, v2 }) + // VPSHLB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x94) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x94) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHLB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x94) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHLB xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x94) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHLB") + } + return p +} + +// VPSHLD performs "Packed Shift Logical Doublewords". +// +// Mnemonic : VPSHLD +// Supported forms : (3 forms) +// +// * VPSHLD xmm, xmm, xmm [XOP] +// * VPSHLD m128, xmm, xmm [XOP] +// * VPSHLD xmm, m128, xmm [XOP] +// +func (self *Program) VPSHLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHLD", 3, Operands { v0, v1, v2 }) + // VPSHLD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHLD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHLD xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHLD") + } + return p +} + +// VPSHLQ performs "Packed Shift Logical Quadwords". +// +// Mnemonic : VPSHLQ +// Supported forms : (3 forms) +// +// * VPSHLQ xmm, xmm, xmm [XOP] +// * VPSHLQ m128, xmm, xmm [XOP] +// * VPSHLQ xmm, m128, xmm [XOP] +// +func (self *Program) VPSHLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHLQ", 3, Operands { v0, v1, v2 }) + // VPSHLQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHLQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHLQ xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHLQ") + } + return p +} + +// VPSHLW performs "Packed Shift Logical Words". +// +// Mnemonic : VPSHLW +// Supported forms : (3 forms) +// +// * VPSHLW xmm, xmm, xmm [XOP] +// * VPSHLW m128, xmm, xmm [XOP] +// * VPSHLW xmm, m128, xmm [XOP] +// +func (self *Program) VPSHLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHLW", 3, Operands { v0, v1, v2 }) + // VPSHLW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x95) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x95) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHLW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x95) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHLW xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x95) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHLW") + } + return p +} + +// VPSHUFB performs "Packed Shuffle Bytes". +// +// Mnemonic : VPSHUFB +// Supported forms : (10 forms) +// +// * VPSHUFB xmm, xmm, xmm [AVX] +// * VPSHUFB m128, xmm, xmm [AVX] +// * VPSHUFB ymm, ymm, ymm [AVX2] +// * VPSHUFB m256, ymm, ymm [AVX2] +// * VPSHUFB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSHUFB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSHUFB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSHUFB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHUFB", 3, Operands { v0, v1, v2 }) + // VPSHUFB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHUFB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHUFB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSHUFB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSHUFB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHUFB") + } + return p +} + +// VPSHUFD performs "Shuffle Packed Doublewords". +// +// Mnemonic : VPSHUFD +// Supported forms : (10 forms) +// +// * VPSHUFD imm8, xmm, xmm [AVX] +// * VPSHUFD imm8, m128, xmm [AVX] +// * VPSHUFD imm8, ymm, ymm [AVX2] +// * VPSHUFD imm8, m256, ymm [AVX2] +// * VPSHUFD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPSHUFD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSHUFD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSHUFD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSHUFD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSHUFD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSHUFD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHUFD", 3, Operands { v0, v1, v2 }) + // VPSHUFD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHUFD") + } + return p +} + +// VPSHUFHW performs "Shuffle Packed High Words". +// +// Mnemonic : VPSHUFHW +// Supported forms : (10 forms) +// +// * VPSHUFHW imm8, xmm, xmm [AVX] +// * VPSHUFHW imm8, m128, xmm [AVX] +// * VPSHUFHW imm8, ymm, ymm [AVX2] +// * VPSHUFHW imm8, m256, ymm [AVX2] +// * VPSHUFHW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSHUFHW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSHUFHW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFHW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFHW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFHW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSHUFHW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHUFHW", 3, Operands { v0, v1, v2 }) + // VPSHUFHW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHUFHW") + } + return p +} + +// VPSHUFLW performs "Shuffle Packed Low Words". +// +// Mnemonic : VPSHUFLW +// Supported forms : (10 forms) +// +// * VPSHUFLW imm8, xmm, xmm [AVX] +// * VPSHUFLW imm8, m128, xmm [AVX] +// * VPSHUFLW imm8, ymm, ymm [AVX2] +// * VPSHUFLW imm8, m256, ymm [AVX2] +// * VPSHUFLW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSHUFLW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSHUFLW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFLW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFLW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFLW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSHUFLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHUFLW", 3, Operands { v0, v1, v2 }) + // VPSHUFLW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHUFLW") + } + return p +} + +// VPSIGNB performs "Packed Sign of Byte Integers". +// +// Mnemonic : VPSIGNB +// Supported forms : (4 forms) +// +// * VPSIGNB xmm, xmm, xmm [AVX] +// * VPSIGNB m128, xmm, xmm [AVX] +// * VPSIGNB ymm, ymm, ymm [AVX2] +// * VPSIGNB m256, ymm, ymm [AVX2] +// +func (self *Program) VPSIGNB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSIGNB", 3, Operands { v0, v1, v2 }) + // VPSIGNB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGNB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSIGNB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGNB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSIGNB") + } + return p +} + +// VPSIGND performs "Packed Sign of Doubleword Integers". +// +// Mnemonic : VPSIGND +// Supported forms : (4 forms) +// +// * VPSIGND xmm, xmm, xmm [AVX] +// * VPSIGND m128, xmm, xmm [AVX] +// * VPSIGND ymm, ymm, ymm [AVX2] +// * VPSIGND m256, ymm, ymm [AVX2] +// +func (self *Program) VPSIGND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSIGND", 3, Operands { v0, v1, v2 }) + // VPSIGND xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGND m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSIGND ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGND m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSIGND") + } + return p +} + +// VPSIGNW performs "Packed Sign of Word Integers". +// +// Mnemonic : VPSIGNW +// Supported forms : (4 forms) +// +// * VPSIGNW xmm, xmm, xmm [AVX] +// * VPSIGNW m128, xmm, xmm [AVX] +// * VPSIGNW ymm, ymm, ymm [AVX2] +// * VPSIGNW m256, ymm, ymm [AVX2] +// +func (self *Program) VPSIGNW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSIGNW", 3, Operands { v0, v1, v2 }) + // VPSIGNW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGNW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSIGNW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGNW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSIGNW") + } + return p +} + +// VPSLLD performs "Shift Packed Doubleword Data Left Logical". +// +// Mnemonic : VPSLLD +// Supported forms : (18 forms) +// +// * VPSLLD imm8, xmm, xmm [AVX] +// * VPSLLD xmm, xmm, xmm [AVX] +// * VPSLLD m128, xmm, xmm [AVX] +// * VPSLLD imm8, ymm, ymm [AVX2] +// * VPSLLD xmm, ymm, ymm [AVX2] +// * VPSLLD m128, ymm, ymm [AVX2] +// * VPSLLD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPSLLD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSLLD xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSLLD m128, zmm, zmm{k}{z} [AVX512F] +// * VPSLLD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSLLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLD", 3, Operands { v0, v1, v2 }) + // VPSLLD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(6, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(6, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(6, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLD") + } + return p +} + +// VPSLLDQ performs "Shift Packed Double Quadword Left Logical". +// +// Mnemonic : VPSLLDQ +// Supported forms : (8 forms) +// +// * VPSLLDQ imm8, xmm, xmm [AVX] +// * VPSLLDQ imm8, ymm, ymm [AVX2] +// * VPSLLDQ imm8, zmm, zmm [AVX512BW] +// * VPSLLDQ imm8, m512, zmm [AVX512BW] +// * VPSLLDQ imm8, xmm, xmm [AVX512BW,AVX512VL] +// * VPSLLDQ imm8, m128, xmm [AVX512BW,AVX512VL] +// * VPSLLDQ imm8, ymm, ymm [AVX512BW,AVX512VL] +// * VPSLLDQ imm8, m256, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPSLLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLDQ", 3, Operands { v0, v1, v2 }) + // VPSLLDQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, zmm, zmm + if isImm8(v0) && isZMM(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x40) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, m512, zmm + if isImm8(v0) && isM512(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(7, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, xmm, xmm + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(7, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, ymm, ymm + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x20) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(7, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLDQ") + } + return p +} + +// VPSLLQ performs "Shift Packed Quadword Data Left Logical". +// +// Mnemonic : VPSLLQ +// Supported forms : (18 forms) +// +// * VPSLLQ imm8, xmm, xmm [AVX] +// * VPSLLQ xmm, xmm, xmm [AVX] +// * VPSLLQ m128, xmm, xmm [AVX] +// * VPSLLQ imm8, ymm, ymm [AVX2] +// * VPSLLQ xmm, ymm, ymm [AVX2] +// * VPSLLQ m128, ymm, ymm [AVX2] +// * VPSLLQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPSLLQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSLLQ xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSLLQ m128, zmm, zmm{k}{z} [AVX512F] +// * VPSLLQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSLLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLQ", 3, Operands { v0, v1, v2 }) + // VPSLLQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(6, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(6, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(6, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLQ") + } + return p +} + +// VPSLLVD performs "Variable Shift Packed Doubleword Data Left Logical". +// +// Mnemonic : VPSLLVD +// Supported forms : (10 forms) +// +// * VPSLLVD xmm, xmm, xmm [AVX2] +// * VPSLLVD m128, xmm, xmm [AVX2] +// * VPSLLVD ymm, ymm, ymm [AVX2] +// * VPSLLVD m256, ymm, ymm [AVX2] +// * VPSLLVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSLLVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSLLVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSLLVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLVD", 3, Operands { v0, v1, v2 }) + // VPSLLVD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLVD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSLLVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSLLVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLVD") + } + return p +} + +// VPSLLVQ performs "Variable Shift Packed Quadword Data Left Logical". +// +// Mnemonic : VPSLLVQ +// Supported forms : (10 forms) +// +// * VPSLLVQ xmm, xmm, xmm [AVX2] +// * VPSLLVQ m128, xmm, xmm [AVX2] +// * VPSLLVQ ymm, ymm, ymm [AVX2] +// * VPSLLVQ m256, ymm, ymm [AVX2] +// * VPSLLVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSLLVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSLLVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSLLVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLVQ", 3, Operands { v0, v1, v2 }) + // VPSLLVQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLVQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSLLVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSLLVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLVQ") + } + return p +} + +// VPSLLVW performs "Variable Shift Packed Word Data Left Logical". +// +// Mnemonic : VPSLLVW +// Supported forms : (6 forms) +// +// * VPSLLVW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLVW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLVW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLVW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLVW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLVW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSLLVW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLVW", 3, Operands { v0, v1, v2 }) + // VPSLLVW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSLLVW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLVW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLVW") + } + return p +} + +// VPSLLW performs "Shift Packed Word Data Left Logical". +// +// Mnemonic : VPSLLW +// Supported forms : (18 forms) +// +// * VPSLLW imm8, xmm, xmm [AVX] +// * VPSLLW xmm, xmm, xmm [AVX] +// * VPSLLW m128, xmm, xmm [AVX] +// * VPSLLW imm8, ymm, ymm [AVX2] +// * VPSLLW xmm, ymm, ymm [AVX2] +// * VPSLLW m128, ymm, ymm [AVX2] +// * VPSLLW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLW xmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLW m128, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSLLW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW xmm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW m128, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSLLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLW", 3, Operands { v0, v1, v2 }) + // VPSLLW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(6, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(6, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(6, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLW") + } + return p +} + +// VPSRAD performs "Shift Packed Doubleword Data Right Arithmetic". +// +// Mnemonic : VPSRAD +// Supported forms : (18 forms) +// +// * VPSRAD imm8, xmm, xmm [AVX] +// * VPSRAD xmm, xmm, xmm [AVX] +// * VPSRAD m128, xmm, xmm [AVX] +// * VPSRAD imm8, ymm, ymm [AVX2] +// * VPSRAD xmm, ymm, ymm [AVX2] +// * VPSRAD m128, ymm, ymm [AVX2] +// * VPSRAD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPSRAD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSRAD xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRAD m128, zmm, zmm{k}{z} [AVX512F] +// * VPSRAD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRAD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAD", 3, Operands { v0, v1, v2 }) + // VPSRAD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAD") + } + return p +} + +// VPSRAQ performs "Shift Packed Quadword Data Right Arithmetic". +// +// Mnemonic : VPSRAQ +// Supported forms : (12 forms) +// +// * VPSRAQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPSRAQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSRAQ xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRAQ m128, zmm, zmm{k}{z} [AVX512F] +// * VPSRAQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRAQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAQ", 3, Operands { v0, v1, v2 }) + // VPSRAQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAQ m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAQ m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAQ m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAQ") + } + return p +} + +// VPSRAVD performs "Variable Shift Packed Doubleword Data Right Arithmetic". +// +// Mnemonic : VPSRAVD +// Supported forms : (10 forms) +// +// * VPSRAVD xmm, xmm, xmm [AVX2] +// * VPSRAVD m128, xmm, xmm [AVX2] +// * VPSRAVD ymm, ymm, ymm [AVX2] +// * VPSRAVD m256, ymm, ymm [AVX2] +// * VPSRAVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSRAVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRAVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRAVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAVD", 3, Operands { v0, v1, v2 }) + // VPSRAVD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAVD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRAVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSRAVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAVD") + } + return p +} + +// VPSRAVQ performs "Variable Shift Packed Quadword Data Right Arithmetic". +// +// Mnemonic : VPSRAVQ +// Supported forms : (6 forms) +// +// * VPSRAVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSRAVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRAVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRAVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAVQ", 3, Operands { v0, v1, v2 }) + // VPSRAVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRAVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSRAVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAVQ") + } + return p +} + +// VPSRAVW performs "Variable Shift Packed Word Data Right Arithmetic". +// +// Mnemonic : VPSRAVW +// Supported forms : (6 forms) +// +// * VPSRAVW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAVW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAVW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAVW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAVW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAVW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSRAVW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAVW", 3, Operands { v0, v1, v2 }) + // VPSRAVW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x11) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x11) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRAVW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x11) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x11) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAVW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x11) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x11) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAVW") + } + return p +} + +// VPSRAW performs "Shift Packed Word Data Right Arithmetic". +// +// Mnemonic : VPSRAW +// Supported forms : (18 forms) +// +// * VPSRAW imm8, xmm, xmm [AVX] +// * VPSRAW xmm, xmm, xmm [AVX] +// * VPSRAW m128, xmm, xmm [AVX] +// * VPSRAW imm8, ymm, ymm [AVX2] +// * VPSRAW xmm, ymm, ymm [AVX2] +// * VPSRAW m128, ymm, ymm [AVX2] +// * VPSRAW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAW xmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAW m128, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSRAW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW xmm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW m128, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSRAW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAW", 3, Operands { v0, v1, v2 }) + // VPSRAW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(4, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(4, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(4, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAW") + } + return p +} + +// VPSRLD performs "Shift Packed Doubleword Data Right Logical". +// +// Mnemonic : VPSRLD +// Supported forms : (18 forms) +// +// * VPSRLD imm8, xmm, xmm [AVX] +// * VPSRLD xmm, xmm, xmm [AVX] +// * VPSRLD m128, xmm, xmm [AVX] +// * VPSRLD imm8, ymm, ymm [AVX2] +// * VPSRLD xmm, ymm, ymm [AVX2] +// * VPSRLD m128, ymm, ymm [AVX2] +// * VPSRLD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPSRLD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSRLD xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRLD m128, zmm, zmm{k}{z} [AVX512F] +// * VPSRLD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLD", 3, Operands { v0, v1, v2 }) + // VPSRLD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(2, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(2, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(2, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLD") + } + return p +} + +// VPSRLDQ performs "Shift Packed Double Quadword Right Logical". +// +// Mnemonic : VPSRLDQ +// Supported forms : (8 forms) +// +// * VPSRLDQ imm8, xmm, xmm [AVX] +// * VPSRLDQ imm8, ymm, ymm [AVX2] +// * VPSRLDQ imm8, zmm, zmm [AVX512BW] +// * VPSRLDQ imm8, m512, zmm [AVX512BW] +// * VPSRLDQ imm8, xmm, xmm [AVX512BW,AVX512VL] +// * VPSRLDQ imm8, m128, xmm [AVX512BW,AVX512VL] +// * VPSRLDQ imm8, ymm, ymm [AVX512BW,AVX512VL] +// * VPSRLDQ imm8, m256, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPSRLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLDQ", 3, Operands { v0, v1, v2 }) + // VPSRLDQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, zmm, zmm + if isImm8(v0) && isZMM(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x40) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, m512, zmm + if isImm8(v0) && isM512(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(3, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, xmm, xmm + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(3, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, ymm, ymm + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x20) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(3, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLDQ") + } + return p +} + +// VPSRLQ performs "Shift Packed Quadword Data Right Logical". +// +// Mnemonic : VPSRLQ +// Supported forms : (18 forms) +// +// * VPSRLQ imm8, xmm, xmm [AVX] +// * VPSRLQ xmm, xmm, xmm [AVX] +// * VPSRLQ m128, xmm, xmm [AVX] +// * VPSRLQ imm8, ymm, ymm [AVX2] +// * VPSRLQ xmm, ymm, ymm [AVX2] +// * VPSRLQ m128, ymm, ymm [AVX2] +// * VPSRLQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPSRLQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSRLQ xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRLQ m128, zmm, zmm{k}{z} [AVX512F] +// * VPSRLQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLQ", 3, Operands { v0, v1, v2 }) + // VPSRLQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(2, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(2, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(2, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLQ") + } + return p +} + +// VPSRLVD performs "Variable Shift Packed Doubleword Data Right Logical". +// +// Mnemonic : VPSRLVD +// Supported forms : (10 forms) +// +// * VPSRLVD xmm, xmm, xmm [AVX2] +// * VPSRLVD m128, xmm, xmm [AVX2] +// * VPSRLVD ymm, ymm, ymm [AVX2] +// * VPSRLVD m256, ymm, ymm [AVX2] +// * VPSRLVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSRLVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRLVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRLVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLVD", 3, Operands { v0, v1, v2 }) + // VPSRLVD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLVD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRLVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSRLVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLVD") + } + return p +} + +// VPSRLVQ performs "Variable Shift Packed Quadword Data Right Logical". +// +// Mnemonic : VPSRLVQ +// Supported forms : (10 forms) +// +// * VPSRLVQ xmm, xmm, xmm [AVX2] +// * VPSRLVQ m128, xmm, xmm [AVX2] +// * VPSRLVQ ymm, ymm, ymm [AVX2] +// * VPSRLVQ m256, ymm, ymm [AVX2] +// * VPSRLVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSRLVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRLVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRLVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLVQ", 3, Operands { v0, v1, v2 }) + // VPSRLVQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLVQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRLVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSRLVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLVQ") + } + return p +} + +// VPSRLVW performs "Variable Shift Packed Word Data Right Logical". +// +// Mnemonic : VPSRLVW +// Supported forms : (6 forms) +// +// * VPSRLVW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLVW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLVW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLVW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLVW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLVW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSRLVW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLVW", 3, Operands { v0, v1, v2 }) + // VPSRLVW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRLVW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLVW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLVW") + } + return p +} + +// VPSRLW performs "Shift Packed Word Data Right Logical". +// +// Mnemonic : VPSRLW +// Supported forms : (18 forms) +// +// * VPSRLW imm8, xmm, xmm [AVX] +// * VPSRLW xmm, xmm, xmm [AVX] +// * VPSRLW m128, xmm, xmm [AVX] +// * VPSRLW imm8, ymm, ymm [AVX2] +// * VPSRLW xmm, ymm, ymm [AVX2] +// * VPSRLW m128, ymm, ymm [AVX2] +// * VPSRLW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLW xmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLW m128, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSRLW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW xmm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW m128, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSRLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLW", 3, Operands { v0, v1, v2 }) + // VPSRLW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(2, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(2, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(2, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLW") + } + return p +} + +// VPSUBB performs "Subtract Packed Byte Integers". +// +// Mnemonic : VPSUBB +// Supported forms : (10 forms) +// +// * VPSUBB xmm, xmm, xmm [AVX] +// * VPSUBB m128, xmm, xmm [AVX] +// * VPSUBB ymm, ymm, ymm [AVX2] +// * VPSUBB m256, ymm, ymm [AVX2] +// * VPSUBB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBB", 3, Operands { v0, v1, v2 }) + // VPSUBB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBB") + } + return p +} + +// VPSUBD performs "Subtract Packed Doubleword Integers". +// +// Mnemonic : VPSUBD +// Supported forms : (10 forms) +// +// * VPSUBD xmm, xmm, xmm [AVX] +// * VPSUBD m128, xmm, xmm [AVX] +// * VPSUBD ymm, ymm, ymm [AVX2] +// * VPSUBD m256, ymm, ymm [AVX2] +// * VPSUBD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSUBD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSUBD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSUBD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSUBD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSUBD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSUBD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBD", 3, Operands { v0, v1, v2 }) + // VPSUBD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSUBD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBD") + } + return p +} + +// VPSUBQ performs "Subtract Packed Quadword Integers". +// +// Mnemonic : VPSUBQ +// Supported forms : (10 forms) +// +// * VPSUBQ xmm, xmm, xmm [AVX] +// * VPSUBQ m128, xmm, xmm [AVX] +// * VPSUBQ ymm, ymm, ymm [AVX2] +// * VPSUBQ m256, ymm, ymm [AVX2] +// * VPSUBQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSUBQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSUBQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSUBQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSUBQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSUBQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSUBQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBQ", 3, Operands { v0, v1, v2 }) + // VPSUBQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSUBQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBQ") + } + return p +} + +// VPSUBSB performs "Subtract Packed Signed Byte Integers with Signed Saturation". +// +// Mnemonic : VPSUBSB +// Supported forms : (10 forms) +// +// * VPSUBSB xmm, xmm, xmm [AVX] +// * VPSUBSB m128, xmm, xmm [AVX] +// * VPSUBSB ymm, ymm, ymm [AVX2] +// * VPSUBSB m256, ymm, ymm [AVX2] +// * VPSUBSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBSB", 3, Operands { v0, v1, v2 }) + // VPSUBSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBSB") + } + return p +} + +// VPSUBSW performs "Subtract Packed Signed Word Integers with Signed Saturation". +// +// Mnemonic : VPSUBSW +// Supported forms : (10 forms) +// +// * VPSUBSW xmm, xmm, xmm [AVX] +// * VPSUBSW m128, xmm, xmm [AVX] +// * VPSUBSW ymm, ymm, ymm [AVX2] +// * VPSUBSW m256, ymm, ymm [AVX2] +// * VPSUBSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBSW", 3, Operands { v0, v1, v2 }) + // VPSUBSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBSW") + } + return p +} + +// VPSUBUSB performs "Subtract Packed Unsigned Byte Integers with Unsigned Saturation". +// +// Mnemonic : VPSUBUSB +// Supported forms : (10 forms) +// +// * VPSUBUSB xmm, xmm, xmm [AVX] +// * VPSUBUSB m128, xmm, xmm [AVX] +// * VPSUBUSB ymm, ymm, ymm [AVX2] +// * VPSUBUSB m256, ymm, ymm [AVX2] +// * VPSUBUSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBUSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBUSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBUSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBUSB", 3, Operands { v0, v1, v2 }) + // VPSUBUSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBUSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBUSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBUSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBUSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBUSB") + } + return p +} + +// VPSUBUSW performs "Subtract Packed Unsigned Word Integers with Unsigned Saturation". +// +// Mnemonic : VPSUBUSW +// Supported forms : (10 forms) +// +// * VPSUBUSW xmm, xmm, xmm [AVX] +// * VPSUBUSW m128, xmm, xmm [AVX] +// * VPSUBUSW ymm, ymm, ymm [AVX2] +// * VPSUBUSW m256, ymm, ymm [AVX2] +// * VPSUBUSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBUSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBUSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBUSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBUSW", 3, Operands { v0, v1, v2 }) + // VPSUBUSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBUSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBUSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBUSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBUSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBUSW") + } + return p +} + +// VPSUBW performs "Subtract Packed Word Integers". +// +// Mnemonic : VPSUBW +// Supported forms : (10 forms) +// +// * VPSUBW xmm, xmm, xmm [AVX] +// * VPSUBW m128, xmm, xmm [AVX] +// * VPSUBW ymm, ymm, ymm [AVX2] +// * VPSUBW m256, ymm, ymm [AVX2] +// * VPSUBW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBW", 3, Operands { v0, v1, v2 }) + // VPSUBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBW") + } + return p +} + +// VPTERNLOGD performs "Bitwise Ternary Logical Operation on Doubleword Values". +// +// Mnemonic : VPTERNLOGD +// Supported forms : (6 forms) +// +// * VPTERNLOGD imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPTERNLOGD imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VPTERNLOGD imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGD imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGD imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGD imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPTERNLOGD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPTERNLOGD", 4, Operands { v0, v1, v2, v3 }) + // VPTERNLOGD imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, m128/m32bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTERNLOGD") + } + return p +} + +// VPTERNLOGQ performs "Bitwise Ternary Logical Operation on Quadword Values". +// +// Mnemonic : VPTERNLOGQ +// Supported forms : (6 forms) +// +// * VPTERNLOGQ imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPTERNLOGQ imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VPTERNLOGQ imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGQ imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGQ imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGQ imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPTERNLOGQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPTERNLOGQ", 4, Operands { v0, v1, v2, v3 }) + // VPTERNLOGQ imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, m128/m64bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTERNLOGQ") + } + return p +} + +// VPTEST performs "Packed Logical Compare". +// +// Mnemonic : VPTEST +// Supported forms : (4 forms) +// +// * VPTEST xmm, xmm [AVX] +// * VPTEST m128, xmm [AVX] +// * VPTEST ymm, ymm [AVX] +// * VPTEST m256, ymm [AVX] +// +func (self *Program) VPTEST(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPTEST", 2, Operands { v0, v1 }) + // VPTEST xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPTEST m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPTEST ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPTEST m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPTEST") + } + return p +} + +// VPTESTMB performs "Logical AND of Packed Byte Integer Values and Set Mask". +// +// Mnemonic : VPTESTMB +// Supported forms : (6 forms) +// +// * VPTESTMB zmm, zmm, k{k} [AVX512BW] +// * VPTESTMB m512, zmm, k{k} [AVX512BW] +// * VPTESTMB xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMB m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMB ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMB m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPTESTMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTMB", 3, Operands { v0, v1, v2 }) + // VPTESTMB zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMB m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTMB xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMB m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTMB ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMB m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTMB") + } + return p +} + +// VPTESTMD performs "Logical AND of Packed Doubleword Integer Values and Set Mask". +// +// Mnemonic : VPTESTMD +// Supported forms : (6 forms) +// +// * VPTESTMD m512/m32bcst, zmm, k{k} [AVX512F] +// * VPTESTMD zmm, zmm, k{k} [AVX512F] +// * VPTESTMD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTMD xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTMD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPTESTMD ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPTESTMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTMD", 3, Operands { v0, v1, v2 }) + // VPTESTMD m512/m32bcst, zmm, k{k} + if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTMD zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMD m128/m32bcst, xmm, k{k} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTMD xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMD m256/m32bcst, ymm, k{k} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPTESTMD ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTMD") + } + return p +} + +// VPTESTMQ performs "Logical AND of Packed Quadword Integer Values and Set Mask". +// +// Mnemonic : VPTESTMQ +// Supported forms : (6 forms) +// +// * VPTESTMQ m512/m64bcst, zmm, k{k} [AVX512F] +// * VPTESTMQ zmm, zmm, k{k} [AVX512F] +// * VPTESTMQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTMQ xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTMQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPTESTMQ ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPTESTMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTMQ", 3, Operands { v0, v1, v2 }) + // VPTESTMQ m512/m64bcst, zmm, k{k} + if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTMQ zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMQ m128/m64bcst, xmm, k{k} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTMQ xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMQ m256/m64bcst, ymm, k{k} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPTESTMQ ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTMQ") + } + return p +} + +// VPTESTMW performs "Logical AND of Packed Word Integer Values and Set Mask". +// +// Mnemonic : VPTESTMW +// Supported forms : (6 forms) +// +// * VPTESTMW zmm, zmm, k{k} [AVX512BW] +// * VPTESTMW m512, zmm, k{k} [AVX512BW] +// * VPTESTMW xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMW m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMW ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMW m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPTESTMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTMW", 3, Operands { v0, v1, v2 }) + // VPTESTMW zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMW m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTMW xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMW m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTMW ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMW m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTMW") + } + return p +} + +// VPTESTNMB performs "Logical NAND of Packed Byte Integer Values and Set Mask". +// +// Mnemonic : VPTESTNMB +// Supported forms : (6 forms) +// +// * VPTESTNMB zmm, zmm, k{k} [AVX512BW,AVX512F] +// * VPTESTNMB m512, zmm, k{k} [AVX512BW,AVX512F] +// * VPTESTNMB xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMB m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMB ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMB m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPTESTNMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTNMB", 3, Operands { v0, v1, v2 }) + // VPTESTNMB zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMB m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTNMB xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMB m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTNMB ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMB m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTNMB") + } + return p +} + +// VPTESTNMD performs "Logical NAND of Packed Doubleword Integer Values and Set Mask". +// +// Mnemonic : VPTESTNMD +// Supported forms : (6 forms) +// +// * VPTESTNMD m512/m32bcst, zmm, k{k} [AVX512F] +// * VPTESTNMD zmm, zmm, k{k} [AVX512F] +// * VPTESTNMD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMD xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMD ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPTESTNMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTNMD", 3, Operands { v0, v1, v2 }) + // VPTESTNMD m512/m32bcst, zmm, k{k} + if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTNMD zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMD m128/m32bcst, xmm, k{k} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTNMD xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMD m256/m32bcst, ymm, k{k} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPTESTNMD ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTNMD") + } + return p +} + +// VPTESTNMQ performs "Logical NAND of Packed Quadword Integer Values and Set Mask". +// +// Mnemonic : VPTESTNMQ +// Supported forms : (6 forms) +// +// * VPTESTNMQ m512/m64bcst, zmm, k{k} [AVX512F] +// * VPTESTNMQ zmm, zmm, k{k} [AVX512F] +// * VPTESTNMQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMQ xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMQ ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPTESTNMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTNMQ", 3, Operands { v0, v1, v2 }) + // VPTESTNMQ m512/m64bcst, zmm, k{k} + if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTNMQ zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMQ m128/m64bcst, xmm, k{k} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTNMQ xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMQ m256/m64bcst, ymm, k{k} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPTESTNMQ ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTNMQ") + } + return p +} + +// VPTESTNMW performs "Logical NAND of Packed Word Integer Values and Set Mask". +// +// Mnemonic : VPTESTNMW +// Supported forms : (6 forms) +// +// * VPTESTNMW zmm, zmm, k{k} [AVX512BW,AVX512F] +// * VPTESTNMW m512, zmm, k{k} [AVX512BW,AVX512F] +// * VPTESTNMW xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMW m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMW ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMW m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPTESTNMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTNMW", 3, Operands { v0, v1, v2 }) + // VPTESTNMW zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMW m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTNMW xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMW m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTNMW ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMW m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTNMW") + } + return p +} + +// VPUNPCKHBW performs "Unpack and Interleave High-Order Bytes into Words". +// +// Mnemonic : VPUNPCKHBW +// Supported forms : (10 forms) +// +// * VPUNPCKHBW xmm, xmm, xmm [AVX] +// * VPUNPCKHBW m128, xmm, xmm [AVX] +// * VPUNPCKHBW ymm, ymm, ymm [AVX2] +// * VPUNPCKHBW m256, ymm, ymm [AVX2] +// * VPUNPCKHBW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKHBW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKHBW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHBW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHBW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHBW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPUNPCKHBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKHBW", 3, Operands { v0, v1, v2 }) + // VPUNPCKHBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHBW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKHBW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKHBW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKHBW") + } + return p +} + +// VPUNPCKHDQ performs "Unpack and Interleave High-Order Doublewords into Quadwords". +// +// Mnemonic : VPUNPCKHDQ +// Supported forms : (10 forms) +// +// * VPUNPCKHDQ xmm, xmm, xmm [AVX] +// * VPUNPCKHDQ m128, xmm, xmm [AVX] +// * VPUNPCKHDQ ymm, ymm, ymm [AVX2] +// * VPUNPCKHDQ m256, ymm, ymm [AVX2] +// * VPUNPCKHDQ m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKHDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKHDQ m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHDQ m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPUNPCKHDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKHDQ", 3, Operands { v0, v1, v2 }) + // VPUNPCKHDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHDQ m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKHDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHDQ m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKHDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHDQ m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPUNPCKHDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKHDQ") + } + return p +} + +// VPUNPCKHQDQ performs "Unpack and Interleave High-Order Quadwords into Double Quadwords". +// +// Mnemonic : VPUNPCKHQDQ +// Supported forms : (10 forms) +// +// * VPUNPCKHQDQ xmm, xmm, xmm [AVX] +// * VPUNPCKHQDQ m128, xmm, xmm [AVX] +// * VPUNPCKHQDQ ymm, ymm, ymm [AVX2] +// * VPUNPCKHQDQ m256, ymm, ymm [AVX2] +// * VPUNPCKHQDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKHQDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKHQDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHQDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHQDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHQDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPUNPCKHQDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKHQDQ", 3, Operands { v0, v1, v2 }) + // VPUNPCKHQDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHQDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHQDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHQDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHQDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKHQDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHQDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKHQDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHQDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPUNPCKHQDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKHQDQ") + } + return p +} + +// VPUNPCKHWD performs "Unpack and Interleave High-Order Words into Doublewords". +// +// Mnemonic : VPUNPCKHWD +// Supported forms : (10 forms) +// +// * VPUNPCKHWD xmm, xmm, xmm [AVX] +// * VPUNPCKHWD m128, xmm, xmm [AVX] +// * VPUNPCKHWD ymm, ymm, ymm [AVX2] +// * VPUNPCKHWD m256, ymm, ymm [AVX2] +// * VPUNPCKHWD zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKHWD m512, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKHWD xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHWD m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHWD ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHWD m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPUNPCKHWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKHWD", 3, Operands { v0, v1, v2 }) + // VPUNPCKHWD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHWD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHWD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKHWD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKHWD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKHWD") + } + return p +} + +// VPUNPCKLBW performs "Unpack and Interleave Low-Order Bytes into Words". +// +// Mnemonic : VPUNPCKLBW +// Supported forms : (10 forms) +// +// * VPUNPCKLBW xmm, xmm, xmm [AVX] +// * VPUNPCKLBW m128, xmm, xmm [AVX] +// * VPUNPCKLBW ymm, ymm, ymm [AVX2] +// * VPUNPCKLBW m256, ymm, ymm [AVX2] +// * VPUNPCKLBW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKLBW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKLBW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLBW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLBW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLBW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPUNPCKLBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKLBW", 3, Operands { v0, v1, v2 }) + // VPUNPCKLBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLBW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKLBW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKLBW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKLBW") + } + return p +} + +// VPUNPCKLDQ performs "Unpack and Interleave Low-Order Doublewords into Quadwords". +// +// Mnemonic : VPUNPCKLDQ +// Supported forms : (10 forms) +// +// * VPUNPCKLDQ xmm, xmm, xmm [AVX] +// * VPUNPCKLDQ m128, xmm, xmm [AVX] +// * VPUNPCKLDQ ymm, ymm, ymm [AVX2] +// * VPUNPCKLDQ m256, ymm, ymm [AVX2] +// * VPUNPCKLDQ m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKLDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKLDQ m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLDQ m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPUNPCKLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKLDQ", 3, Operands { v0, v1, v2 }) + // VPUNPCKLDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLDQ m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKLDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLDQ m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKLDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLDQ m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPUNPCKLDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKLDQ") + } + return p +} + +// VPUNPCKLQDQ performs "Unpack and Interleave Low-Order Quadwords into Double Quadwords". +// +// Mnemonic : VPUNPCKLQDQ +// Supported forms : (10 forms) +// +// * VPUNPCKLQDQ xmm, xmm, xmm [AVX] +// * VPUNPCKLQDQ m128, xmm, xmm [AVX] +// * VPUNPCKLQDQ ymm, ymm, ymm [AVX2] +// * VPUNPCKLQDQ m256, ymm, ymm [AVX2] +// * VPUNPCKLQDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKLQDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKLQDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLQDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLQDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLQDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPUNPCKLQDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKLQDQ", 3, Operands { v0, v1, v2 }) + // VPUNPCKLQDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLQDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLQDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLQDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLQDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKLQDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLQDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKLQDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLQDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPUNPCKLQDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKLQDQ") + } + return p +} + +// VPUNPCKLWD performs "Unpack and Interleave Low-Order Words into Doublewords". +// +// Mnemonic : VPUNPCKLWD +// Supported forms : (10 forms) +// +// * VPUNPCKLWD xmm, xmm, xmm [AVX] +// * VPUNPCKLWD m128, xmm, xmm [AVX] +// * VPUNPCKLWD ymm, ymm, ymm [AVX2] +// * VPUNPCKLWD m256, ymm, ymm [AVX2] +// * VPUNPCKLWD zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKLWD m512, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKLWD xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLWD m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLWD ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLWD m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPUNPCKLWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKLWD", 3, Operands { v0, v1, v2 }) + // VPUNPCKLWD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLWD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLWD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKLWD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKLWD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKLWD") + } + return p +} + +// VPXOR performs "Packed Bitwise Logical Exclusive OR". +// +// Mnemonic : VPXOR +// Supported forms : (4 forms) +// +// * VPXOR xmm, xmm, xmm [AVX] +// * VPXOR m128, xmm, xmm [AVX] +// * VPXOR ymm, ymm, ymm [AVX2] +// * VPXOR m256, ymm, ymm [AVX2] +// +func (self *Program) VPXOR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPXOR", 3, Operands { v0, v1, v2 }) + // VPXOR xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXOR m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPXOR ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXOR m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPXOR") + } + return p +} + +// VPXORD performs "Bitwise Logical Exclusive OR of Packed Doubleword Integers". +// +// Mnemonic : VPXORD +// Supported forms : (6 forms) +// +// * VPXORD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPXORD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPXORD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPXORD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPXORD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPXORD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPXORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPXORD", 3, Operands { v0, v1, v2 }) + // VPXORD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPXORD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXORD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPXORD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXORD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPXORD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPXORD") + } + return p +} + +// VPXORQ performs "Bitwise Logical Exclusive OR of Packed Quadword Integers". +// +// Mnemonic : VPXORQ +// Supported forms : (6 forms) +// +// * VPXORQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPXORQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPXORQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPXORQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPXORQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPXORQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPXORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPXORQ", 3, Operands { v0, v1, v2 }) + // VPXORQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPXORQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXORQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPXORQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXORQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPXORQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPXORQ") + } + return p +} + +// VRANGEPD performs "Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values". +// +// Mnemonic : VRANGEPD +// Supported forms : (7 forms) +// +// * VRANGEPD imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPD imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPD imm8, zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPD imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPD imm8, xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPD imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPD imm8, ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VRANGEPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRANGEPD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRANGEPD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRANGEPD takes 4 or 5 operands") + } + // VRANGEPD imm8, m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x50) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRANGEPD") + } + return p +} + +// VRANGEPS performs "Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values". +// +// Mnemonic : VRANGEPS +// Supported forms : (7 forms) +// +// * VRANGEPS imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPS imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPS imm8, zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPS imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPS imm8, xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPS imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPS imm8, ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VRANGEPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRANGEPS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRANGEPS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRANGEPS takes 4 or 5 operands") + } + // VRANGEPS imm8, m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x50) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRANGEPS") + } + return p +} + +// VRANGESD performs "Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VRANGESD +// Supported forms : (3 forms) +// +// * VRANGESD imm8, m64, xmm, xmm{k}{z} [AVX512DQ] +// * VRANGESD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512DQ] +// * VRANGESD imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] +// +func (self *Program) VRANGESD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRANGESD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRANGESD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRANGESD takes 4 or 5 operands") + } + // VRANGESD imm8, m64, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x51) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGESD imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x51) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGESD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x51) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRANGESD") + } + return p +} + +// VRANGESS performs "Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VRANGESS +// Supported forms : (3 forms) +// +// * VRANGESS imm8, m32, xmm, xmm{k}{z} [AVX512DQ] +// * VRANGESS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512DQ] +// * VRANGESS imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] +// +func (self *Program) VRANGESS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRANGESS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRANGESS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRANGESS takes 4 or 5 operands") + } + // VRANGESS imm8, m32, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x51) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGESS imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x51) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGESS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x51) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRANGESS") + } + return p +} + +// VRCP14PD performs "Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VRCP14PD +// Supported forms : (6 forms) +// +// * VRCP14PD m512/m64bcst, zmm{k}{z} [AVX512F] +// * VRCP14PD zmm, zmm{k}{z} [AVX512F] +// * VRCP14PD m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PD m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRCP14PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRCP14PD", 2, Operands { v0, v1 }) + // VRCP14PD m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRCP14PD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCP14PD m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VRCP14PD m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VRCP14PD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCP14PD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP14PD") + } + return p +} + +// VRCP14PS performs "Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VRCP14PS +// Supported forms : (6 forms) +// +// * VRCP14PS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VRCP14PS zmm, zmm{k}{z} [AVX512F] +// * VRCP14PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRCP14PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRCP14PS", 2, Operands { v0, v1 }) + // VRCP14PS m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRCP14PS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCP14PS m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VRCP14PS m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VRCP14PS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCP14PS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP14PS") + } + return p +} + +// VRCP14SD performs "Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VRCP14SD +// Supported forms : (2 forms) +// +// * VRCP14SD xmm, xmm, xmm{k}{z} [AVX512F] +// * VRCP14SD m64, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRCP14SD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRCP14SD", 3, Operands { v0, v1, v2 }) + // VRCP14SD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRCP14SD m64, xmm, xmm{k}{z} + if isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x4d) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP14SD") + } + return p +} + +// VRCP14SS performs "Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VRCP14SS +// Supported forms : (2 forms) +// +// * VRCP14SS xmm, xmm, xmm{k}{z} [AVX512F] +// * VRCP14SS m32, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRCP14SS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRCP14SS", 3, Operands { v0, v1, v2 }) + // VRCP14SS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRCP14SS m32, xmm, xmm{k}{z} + if isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x4d) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP14SS") + } + return p +} + +// VRCP28PD performs "Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRCP28PD +// Supported forms : (3 forms) +// +// * VRCP28PD m512/m64bcst, zmm{k}{z} [AVX512ER] +// * VRCP28PD {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VRCP28PD zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VRCP28PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRCP28PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VRCP28PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VRCP28PD takes 2 or 3 operands") + } + // VRCP28PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xca) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRCP28PD {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xca) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VRCP28PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xca) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP28PD") + } + return p +} + +// VRCP28PS performs "Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRCP28PS +// Supported forms : (3 forms) +// +// * VRCP28PS m512/m32bcst, zmm{k}{z} [AVX512ER] +// * VRCP28PS {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VRCP28PS zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VRCP28PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRCP28PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VRCP28PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VRCP28PS takes 2 or 3 operands") + } + // VRCP28PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xca) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRCP28PS {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xca) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VRCP28PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xca) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP28PS") + } + return p +} + +// VRCP28SD performs "Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRCP28SD +// Supported forms : (3 forms) +// +// * VRCP28SD m64, xmm, xmm{k}{z} [AVX512ER] +// * VRCP28SD {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] +// * VRCP28SD xmm, xmm, xmm{k}{z} [AVX512ER] +// +func (self *Program) VRCP28SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRCP28SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRCP28SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRCP28SD takes 3 or 4 operands") + } + // VRCP28SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xcb) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VRCP28SD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VRCP28SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP28SD") + } + return p +} + +// VRCP28SS performs "Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRCP28SS +// Supported forms : (3 forms) +// +// * VRCP28SS m32, xmm, xmm{k}{z} [AVX512ER] +// * VRCP28SS {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] +// * VRCP28SS xmm, xmm, xmm{k}{z} [AVX512ER] +// +func (self *Program) VRCP28SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRCP28SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRCP28SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRCP28SS takes 3 or 4 operands") + } + // VRCP28SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xcb) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VRCP28SS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VRCP28SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP28SS") + } + return p +} + +// VRCPPS performs "Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VRCPPS +// Supported forms : (4 forms) +// +// * VRCPPS xmm, xmm [AVX] +// * VRCPPS m128, xmm [AVX] +// * VRCPPS ymm, ymm [AVX] +// * VRCPPS m256, ymm [AVX] +// +func (self *Program) VRCPPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRCPPS", 2, Operands { v0, v1 }) + // VRCPPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x53) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCPPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x53) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VRCPPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x53) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCPPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x53) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VRCPPS") + } + return p +} + +// VRCPSS performs "Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VRCPSS +// Supported forms : (2 forms) +// +// * VRCPSS xmm, xmm, xmm [AVX] +// * VRCPSS m32, xmm, xmm [AVX] +// +func (self *Program) VRCPSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRCPSS", 3, Operands { v0, v1, v2 }) + // VRCPSS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x53) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRCPSS m32, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x53) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VRCPSS") + } + return p +} + +// VREDUCEPD performs "Perform Reduction Transformation on Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VREDUCEPD +// Supported forms : (6 forms) +// +// * VREDUCEPD imm8, m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VREDUCEPD imm8, zmm, zmm{k}{z} [AVX512DQ] +// * VREDUCEPD imm8, m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPD imm8, m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPD imm8, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPD imm8, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VREDUCEPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VREDUCEPD", 3, Operands { v0, v1, v2 }) + // VREDUCEPD imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VREDUCEPD") + } + return p +} + +// VREDUCEPS performs "Perform Reduction Transformation on Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VREDUCEPS +// Supported forms : (6 forms) +// +// * VREDUCEPS imm8, m512/m32bcst, zmm{k}{z} [AVX512DQ] +// * VREDUCEPS imm8, zmm, zmm{k}{z} [AVX512DQ] +// * VREDUCEPS imm8, m128/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPS imm8, m256/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPS imm8, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPS imm8, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VREDUCEPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VREDUCEPS", 3, Operands { v0, v1, v2 }) + // VREDUCEPS imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VREDUCEPS") + } + return p +} + +// VREDUCESD performs "Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VREDUCESD +// Supported forms : (2 forms) +// +// * VREDUCESD imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] +// * VREDUCESD imm8, m64, xmm, xmm{k}{z} [AVX512DQ] +// +func (self *Program) VREDUCESD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VREDUCESD", 4, Operands { v0, v1, v2, v3 }) + // VREDUCESD imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x57) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCESD imm8, m64, xmm, xmm{k}{z} + if isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x57) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VREDUCESD") + } + return p +} + +// VREDUCESS performs "Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VREDUCESS +// Supported forms : (2 forms) +// +// * VREDUCESS imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] +// * VREDUCESS imm8, m32, xmm, xmm{k}{z} [AVX512DQ] +// +func (self *Program) VREDUCESS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VREDUCESS", 4, Operands { v0, v1, v2, v3 }) + // VREDUCESS imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x57) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCESS imm8, m32, xmm, xmm{k}{z} + if isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x57) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VREDUCESS") + } + return p +} + +// VRNDSCALEPD performs "Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits". +// +// Mnemonic : VRNDSCALEPD +// Supported forms : (7 forms) +// +// * VRNDSCALEPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VRNDSCALEPD imm8, {sae}, zmm, zmm{k}{z} [AVX512F] +// * VRNDSCALEPD imm8, zmm, zmm{k}{z} [AVX512F] +// * VRNDSCALEPD imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRNDSCALEPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRNDSCALEPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRNDSCALEPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRNDSCALEPD takes 3 or 4 operands") + } + // VRNDSCALEPD imm8, m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x09) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRNDSCALEPD") + } + return p +} + +// VRNDSCALEPS performs "Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits". +// +// Mnemonic : VRNDSCALEPS +// Supported forms : (7 forms) +// +// * VRNDSCALEPS imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VRNDSCALEPS imm8, {sae}, zmm, zmm{k}{z} [AVX512F] +// * VRNDSCALEPS imm8, zmm, zmm{k}{z} [AVX512F] +// * VRNDSCALEPS imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPS imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPS imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPS imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRNDSCALEPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRNDSCALEPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRNDSCALEPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRNDSCALEPS takes 3 or 4 operands") + } + // VRNDSCALEPS imm8, m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x08) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRNDSCALEPS") + } + return p +} + +// VRNDSCALESD performs "Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits". +// +// Mnemonic : VRNDSCALESD +// Supported forms : (3 forms) +// +// * VRNDSCALESD imm8, m64, xmm, xmm{k}{z} [AVX512F] +// * VRNDSCALESD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VRNDSCALESD imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRNDSCALESD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRNDSCALESD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRNDSCALESD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRNDSCALESD takes 4 or 5 operands") + } + // VRNDSCALESD imm8, m64, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0b) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALESD imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALESD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRNDSCALESD") + } + return p +} + +// VRNDSCALESS performs "Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits". +// +// Mnemonic : VRNDSCALESS +// Supported forms : (3 forms) +// +// * VRNDSCALESS imm8, m32, xmm, xmm{k}{z} [AVX512F] +// * VRNDSCALESS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VRNDSCALESS imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRNDSCALESS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRNDSCALESS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRNDSCALESS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRNDSCALESS takes 4 or 5 operands") + } + // VRNDSCALESS imm8, m32, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0a) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALESS imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALESS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRNDSCALESS") + } + return p +} + +// VROUNDPD performs "Round Packed Double Precision Floating-Point Values". +// +// Mnemonic : VROUNDPD +// Supported forms : (4 forms) +// +// * VROUNDPD imm8, xmm, xmm [AVX] +// * VROUNDPD imm8, m128, xmm [AVX] +// * VROUNDPD imm8, ymm, ymm [AVX] +// * VROUNDPD imm8, m256, ymm [AVX] +// +func (self *Program) VROUNDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VROUNDPD", 3, Operands { v0, v1, v2 }) + // VROUNDPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPD imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VROUNDPD") + } + return p +} + +// VROUNDPS performs "Round Packed Single Precision Floating-Point Values". +// +// Mnemonic : VROUNDPS +// Supported forms : (4 forms) +// +// * VROUNDPS imm8, xmm, xmm [AVX] +// * VROUNDPS imm8, m128, xmm [AVX] +// * VROUNDPS imm8, ymm, ymm [AVX] +// * VROUNDPS imm8, m256, ymm [AVX] +// +func (self *Program) VROUNDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VROUNDPS", 3, Operands { v0, v1, v2 }) + // VROUNDPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPS imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPS imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VROUNDPS") + } + return p +} + +// VROUNDSD performs "Round Scalar Double Precision Floating-Point Values". +// +// Mnemonic : VROUNDSD +// Supported forms : (2 forms) +// +// * VROUNDSD imm8, xmm, xmm, xmm [AVX] +// * VROUNDSD imm8, m64, xmm, xmm [AVX] +// +func (self *Program) VROUNDSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VROUNDSD", 4, Operands { v0, v1, v2, v3 }) + // VROUNDSD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDSD imm8, m64, xmm, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VROUNDSD") + } + return p +} + +// VROUNDSS performs "Round Scalar Single Precision Floating-Point Values". +// +// Mnemonic : VROUNDSS +// Supported forms : (2 forms) +// +// * VROUNDSS imm8, xmm, xmm, xmm [AVX] +// * VROUNDSS imm8, m32, xmm, xmm [AVX] +// +func (self *Program) VROUNDSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VROUNDSS", 4, Operands { v0, v1, v2, v3 }) + // VROUNDSS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDSS imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VROUNDSS") + } + return p +} + +// VRSQRT14PD performs "Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VRSQRT14PD +// Supported forms : (6 forms) +// +// * VRSQRT14PD m512/m64bcst, zmm{k}{z} [AVX512F] +// * VRSQRT14PD zmm, zmm{k}{z} [AVX512F] +// * VRSQRT14PD m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PD m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRSQRT14PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRSQRT14PD", 2, Operands { v0, v1 }) + // VRSQRT14PD m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRSQRT14PD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14PD m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VRSQRT14PD m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VRSQRT14PD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14PD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT14PD") + } + return p +} + +// VRSQRT14PS performs "Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VRSQRT14PS +// Supported forms : (6 forms) +// +// * VRSQRT14PS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VRSQRT14PS zmm, zmm{k}{z} [AVX512F] +// * VRSQRT14PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRSQRT14PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRSQRT14PS", 2, Operands { v0, v1 }) + // VRSQRT14PS m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRSQRT14PS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14PS m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VRSQRT14PS m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VRSQRT14PS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14PS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT14PS") + } + return p +} + +// VRSQRT14SD performs "Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VRSQRT14SD +// Supported forms : (2 forms) +// +// * VRSQRT14SD xmm, xmm, xmm{k}{z} [AVX512F] +// * VRSQRT14SD m64, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRSQRT14SD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRSQRT14SD", 3, Operands { v0, v1, v2 }) + // VRSQRT14SD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14SD m64, xmm, xmm{k}{z} + if isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x4f) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT14SD") + } + return p +} + +// VRSQRT14SS performs "Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VRSQRT14SS +// Supported forms : (2 forms) +// +// * VRSQRT14SS xmm, xmm, xmm{k}{z} [AVX512F] +// * VRSQRT14SS m32, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRSQRT14SS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRSQRT14SS", 3, Operands { v0, v1, v2 }) + // VRSQRT14SS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14SS m32, xmm, xmm{k}{z} + if isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x4f) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT14SS") + } + return p +} + +// VRSQRT28PD performs "Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRSQRT28PD +// Supported forms : (3 forms) +// +// * VRSQRT28PD m512/m64bcst, zmm{k}{z} [AVX512ER] +// * VRSQRT28PD {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VRSQRT28PD zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VRSQRT28PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRSQRT28PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VRSQRT28PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VRSQRT28PD takes 2 or 3 operands") + } + // VRSQRT28PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xcc) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRSQRT28PD {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VRSQRT28PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT28PD") + } + return p +} + +// VRSQRT28PS performs "Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRSQRT28PS +// Supported forms : (3 forms) +// +// * VRSQRT28PS m512/m32bcst, zmm{k}{z} [AVX512ER] +// * VRSQRT28PS {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VRSQRT28PS zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VRSQRT28PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRSQRT28PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VRSQRT28PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VRSQRT28PS takes 2 or 3 operands") + } + // VRSQRT28PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xcc) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRSQRT28PS {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VRSQRT28PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT28PS") + } + return p +} + +// VRSQRT28SD performs "Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRSQRT28SD +// Supported forms : (3 forms) +// +// * VRSQRT28SD m64, xmm, xmm{k}{z} [AVX512ER] +// * VRSQRT28SD {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] +// * VRSQRT28SD xmm, xmm, xmm{k}{z} [AVX512ER] +// +func (self *Program) VRSQRT28SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRSQRT28SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRSQRT28SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRSQRT28SD takes 3 or 4 operands") + } + // VRSQRT28SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xcd) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VRSQRT28SD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VRSQRT28SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT28SD") + } + return p +} + +// VRSQRT28SS performs "Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRSQRT28SS +// Supported forms : (3 forms) +// +// * VRSQRT28SS m32, xmm, xmm{k}{z} [AVX512ER] +// * VRSQRT28SS {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] +// * VRSQRT28SS xmm, xmm, xmm{k}{z} [AVX512ER] +// +func (self *Program) VRSQRT28SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRSQRT28SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRSQRT28SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRSQRT28SS takes 3 or 4 operands") + } + // VRSQRT28SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xcd) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VRSQRT28SS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VRSQRT28SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT28SS") + } + return p +} + +// VRSQRTPS performs "Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VRSQRTPS +// Supported forms : (4 forms) +// +// * VRSQRTPS xmm, xmm [AVX] +// * VRSQRTPS m128, xmm [AVX] +// * VRSQRTPS ymm, ymm [AVX] +// * VRSQRTPS m256, ymm [AVX] +// +func (self *Program) VRSQRTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRSQRTPS", 2, Operands { v0, v1 }) + // VRSQRTPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x52) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRTPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x52) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VRSQRTPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x52) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRTPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x52) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRTPS") + } + return p +} + +// VRSQRTSS performs "Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VRSQRTSS +// Supported forms : (2 forms) +// +// * VRSQRTSS xmm, xmm, xmm [AVX] +// * VRSQRTSS m32, xmm, xmm [AVX] +// +func (self *Program) VRSQRTSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRSQRTSS", 3, Operands { v0, v1, v2 }) + // VRSQRTSS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x52) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRSQRTSS m32, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x52) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRTSS") + } + return p +} + +// VSCALEFPD performs "Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values". +// +// Mnemonic : VSCALEFPD +// Supported forms : (7 forms) +// +// * VSCALEFPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSCALEFPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSCALEFPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSCALEFPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSCALEFPD takes 3 or 4 operands") + } + // VSCALEFPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VSCALEFPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSCALEFPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSCALEFPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VSCALEFPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSCALEFPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VSCALEFPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSCALEFPD") + } + return p +} + +// VSCALEFPS performs "Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values". +// +// Mnemonic : VSCALEFPS +// Supported forms : (7 forms) +// +// * VSCALEFPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSCALEFPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSCALEFPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSCALEFPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSCALEFPS takes 3 or 4 operands") + } + // VSCALEFPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VSCALEFPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSCALEFPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSCALEFPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VSCALEFPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSCALEFPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VSCALEFPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSCALEFPS") + } + return p +} + +// VSCALEFSD performs "Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value". +// +// Mnemonic : VSCALEFSD +// Supported forms : (3 forms) +// +// * VSCALEFSD m64, xmm, xmm{k}{z} [AVX512F] +// * VSCALEFSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSCALEFSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSCALEFSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSCALEFSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSCALEFSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSCALEFSD takes 3 or 4 operands") + } + // VSCALEFSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VSCALEFSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSCALEFSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSCALEFSD") + } + return p +} + +// VSCALEFSS performs "Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value". +// +// Mnemonic : VSCALEFSS +// Supported forms : (3 forms) +// +// * VSCALEFSS m32, xmm, xmm{k}{z} [AVX512F] +// * VSCALEFSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSCALEFSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSCALEFSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSCALEFSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSCALEFSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSCALEFSS takes 3 or 4 operands") + } + // VSCALEFSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VSCALEFSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSCALEFSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSCALEFSS") + } + return p +} + +// VSCATTERDPD performs "Scatter Packed Double-Precision Floating-Point Values with Signed Doubleword Indices". +// +// Mnemonic : VSCATTERDPD +// Supported forms : (3 forms) +// +// * VSCATTERDPD zmm, vm32y{k} [AVX512F] +// * VSCATTERDPD xmm, vm32x{k} [AVX512F,AVX512VL] +// * VSCATTERDPD ymm, vm32x{k} [AVX512F,AVX512VL] +// +func (self *Program) VSCATTERDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VSCATTERDPD", 2, Operands { v0, v1 }) + // VSCATTERDPD zmm, vm32y{k} + if isZMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VSCATTERDPD xmm, vm32x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VSCATTERDPD ymm, vm32x{k} + if isEVEXYMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERDPD") + } + return p +} + +// VSCATTERDPS performs "Scatter Packed Single-Precision Floating-Point Values with Signed Doubleword Indices". +// +// Mnemonic : VSCATTERDPS +// Supported forms : (3 forms) +// +// * VSCATTERDPS zmm, vm32z{k} [AVX512F] +// * VSCATTERDPS xmm, vm32x{k} [AVX512F,AVX512VL] +// * VSCATTERDPS ymm, vm32y{k} [AVX512F,AVX512VL] +// +func (self *Program) VSCATTERDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VSCATTERDPS", 2, Operands { v0, v1 }) + // VSCATTERDPS zmm, vm32z{k} + if isZMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VSCATTERDPS xmm, vm32x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VSCATTERDPS ymm, vm32y{k} + if isEVEXYMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERDPS") + } + return p +} + +// VSCATTERPF0DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF0DPD +// Supported forms : (1 form) +// +// * VSCATTERPF0DPD vm32y{k} [AVX512PF] +// +func (self *Program) VSCATTERPF0DPD(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF0DPD", 1, Operands { v0 }) + // VSCATTERPF0DPD vm32y{k} + if isVMYk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(5, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF0DPD") + } + return p +} + +// VSCATTERPF0DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF0DPS +// Supported forms : (1 form) +// +// * VSCATTERPF0DPS vm32z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF0DPS(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF0DPS", 1, Operands { v0 }) + // VSCATTERPF0DPS vm32z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(5, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF0DPS") + } + return p +} + +// VSCATTERPF0QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF0QPD +// Supported forms : (1 form) +// +// * VSCATTERPF0QPD vm64z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF0QPD(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF0QPD", 1, Operands { v0 }) + // VSCATTERPF0QPD vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(5, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF0QPD") + } + return p +} + +// VSCATTERPF0QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF0QPS +// Supported forms : (1 form) +// +// * VSCATTERPF0QPS vm64z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF0QPS(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF0QPS", 1, Operands { v0 }) + // VSCATTERPF0QPS vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(5, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF0QPS") + } + return p +} + +// VSCATTERPF1DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF1DPD +// Supported forms : (1 form) +// +// * VSCATTERPF1DPD vm32y{k} [AVX512PF] +// +func (self *Program) VSCATTERPF1DPD(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF1DPD", 1, Operands { v0 }) + // VSCATTERPF1DPD vm32y{k} + if isVMYk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(6, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF1DPD") + } + return p +} + +// VSCATTERPF1DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF1DPS +// Supported forms : (1 form) +// +// * VSCATTERPF1DPS vm32z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF1DPS(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF1DPS", 1, Operands { v0 }) + // VSCATTERPF1DPS vm32z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(6, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF1DPS") + } + return p +} + +// VSCATTERPF1QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF1QPD +// Supported forms : (1 form) +// +// * VSCATTERPF1QPD vm64z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF1QPD(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF1QPD", 1, Operands { v0 }) + // VSCATTERPF1QPD vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(6, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF1QPD") + } + return p +} + +// VSCATTERPF1QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF1QPS +// Supported forms : (1 form) +// +// * VSCATTERPF1QPS vm64z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF1QPS(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF1QPS", 1, Operands { v0 }) + // VSCATTERPF1QPS vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(6, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF1QPS") + } + return p +} + +// VSCATTERQPD performs "Scatter Packed Double-Precision Floating-Point Values with Signed Quadword Indices". +// +// Mnemonic : VSCATTERQPD +// Supported forms : (3 forms) +// +// * VSCATTERQPD zmm, vm64z{k} [AVX512F] +// * VSCATTERQPD xmm, vm64x{k} [AVX512F,AVX512VL] +// * VSCATTERQPD ymm, vm64y{k} [AVX512F,AVX512VL] +// +func (self *Program) VSCATTERQPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VSCATTERQPD", 2, Operands { v0, v1 }) + // VSCATTERQPD zmm, vm64z{k} + if isZMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VSCATTERQPD xmm, vm64x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VSCATTERQPD ymm, vm64y{k} + if isEVEXYMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERQPD") + } + return p +} + +// VSCATTERQPS performs "Scatter Packed Single-Precision Floating-Point Values with Signed Quadword Indices". +// +// Mnemonic : VSCATTERQPS +// Supported forms : (3 forms) +// +// * VSCATTERQPS ymm, vm64z{k} [AVX512F] +// * VSCATTERQPS xmm, vm64x{k} [AVX512F,AVX512VL] +// * VSCATTERQPS xmm, vm64y{k} [AVX512F,AVX512VL] +// +func (self *Program) VSCATTERQPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VSCATTERQPS", 2, Operands { v0, v1 }) + // VSCATTERQPS ymm, vm64z{k} + if isEVEXYMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VSCATTERQPS xmm, vm64x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VSCATTERQPS xmm, vm64y{k} + if isEVEXXMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERQPS") + } + return p +} + +// VSHUFF32X4 performs "Shuffle 128-Bit Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VSHUFF32X4 +// Supported forms : (4 forms) +// +// * VSHUFF32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFF32X4 imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFF32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFF32X4 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFF32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFF32X4", 4, Operands { v0, v1, v2, v3 }) + // VSHUFF32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x23) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF32X4 imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x23) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x23) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF32X4 imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x23) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFF32X4") + } + return p +} + +// VSHUFF64X2 performs "Shuffle 128-Bit Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VSHUFF64X2 +// Supported forms : (4 forms) +// +// * VSHUFF64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFF64X2 imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFF64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFF64X2 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFF64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFF64X2", 4, Operands { v0, v1, v2, v3 }) + // VSHUFF64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x23) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF64X2 imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x23) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x23) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF64X2 imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x23) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFF64X2") + } + return p +} + +// VSHUFI32X4 performs "Shuffle 128-Bit Packed Doubleword Integer Values". +// +// Mnemonic : VSHUFI32X4 +// Supported forms : (4 forms) +// +// * VSHUFI32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFI32X4 imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFI32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFI32X4 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFI32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFI32X4", 4, Operands { v0, v1, v2, v3 }) + // VSHUFI32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x43) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI32X4 imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x43) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI32X4 imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFI32X4") + } + return p +} + +// VSHUFI64X2 performs "Shuffle 128-Bit Packed Quadword Integer Values". +// +// Mnemonic : VSHUFI64X2 +// Supported forms : (4 forms) +// +// * VSHUFI64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFI64X2 imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFI64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFI64X2 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFI64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFI64X2", 4, Operands { v0, v1, v2, v3 }) + // VSHUFI64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x43) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI64X2 imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x43) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI64X2 imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFI64X2") + } + return p +} + +// VSHUFPD performs "Shuffle Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VSHUFPD +// Supported forms : (10 forms) +// +// * VSHUFPD imm8, xmm, xmm, xmm [AVX] +// * VSHUFPD imm8, m128, xmm, xmm [AVX] +// * VSHUFPD imm8, ymm, ymm, ymm [AVX] +// * VSHUFPD imm8, m256, ymm, ymm [AVX] +// * VSHUFPD imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFPD imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFPD imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPD imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPD imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPD imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFPD", 4, Operands { v0, v1, v2, v3 }) + // VSHUFPD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m128/m64bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFPD") + } + return p +} + +// VSHUFPS performs "Shuffle Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VSHUFPS +// Supported forms : (10 forms) +// +// * VSHUFPS imm8, xmm, xmm, xmm [AVX] +// * VSHUFPS imm8, m128, xmm, xmm [AVX] +// * VSHUFPS imm8, ymm, ymm, ymm [AVX] +// * VSHUFPS imm8, m256, ymm, ymm [AVX] +// * VSHUFPS imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFPS imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFPS imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPS imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPS imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPS imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFPS", 4, Operands { v0, v1, v2, v3 }) + // VSHUFPS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m128/m32bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFPS") + } + return p +} + +// VSQRTPD performs "Compute Square Roots of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VSQRTPD +// Supported forms : (11 forms) +// +// * VSQRTPD xmm, xmm [AVX] +// * VSQRTPD m128, xmm [AVX] +// * VSQRTPD ymm, ymm [AVX] +// * VSQRTPD m256, ymm [AVX] +// * VSQRTPD m512/m64bcst, zmm{k}{z} [AVX512F] +// * VSQRTPD {er}, zmm, zmm{k}{z} [AVX512F] +// * VSQRTPD zmm, zmm{k}{z} [AVX512F] +// * VSQRTPD m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPD m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSQRTPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSQRTPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VSQRTPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VSQRTPD takes 2 or 3 operands") + } + // VSQRTPD xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPD m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VSQRTPD ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPD m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VSQRTPD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VSQRTPD {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VSQRTPD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPD m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VSQRTPD m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VSQRTPD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPD ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSQRTPD") + } + return p +} + +// VSQRTPS performs "Compute Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VSQRTPS +// Supported forms : (11 forms) +// +// * VSQRTPS xmm, xmm [AVX] +// * VSQRTPS m128, xmm [AVX] +// * VSQRTPS ymm, ymm [AVX] +// * VSQRTPS m256, ymm [AVX] +// * VSQRTPS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VSQRTPS {er}, zmm, zmm{k}{z} [AVX512F] +// * VSQRTPS zmm, zmm{k}{z} [AVX512F] +// * VSQRTPS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSQRTPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSQRTPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VSQRTPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VSQRTPS takes 2 or 3 operands") + } + // VSQRTPS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPS m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VSQRTPS ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPS m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VSQRTPS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VSQRTPS {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VSQRTPS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPS m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VSQRTPS m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VSQRTPS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPS ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSQRTPS") + } + return p +} + +// VSQRTSD performs "Compute Square Root of Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VSQRTSD +// Supported forms : (5 forms) +// +// * VSQRTSD xmm, xmm, xmm [AVX] +// * VSQRTSD m64, xmm, xmm [AVX] +// * VSQRTSD m64, xmm, xmm{k}{z} [AVX512F] +// * VSQRTSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSQRTSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSQRTSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSQRTSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSQRTSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSQRTSD takes 3 or 4 operands") + } + // VSQRTSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSQRTSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x51) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSQRTSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x51) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VSQRTSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x51) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSQRTSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSQRTSD") + } + return p +} + +// VSQRTSS performs "Compute Square Root of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VSQRTSS +// Supported forms : (5 forms) +// +// * VSQRTSS xmm, xmm, xmm [AVX] +// * VSQRTSS m32, xmm, xmm [AVX] +// * VSQRTSS m32, xmm, xmm{k}{z} [AVX512F] +// * VSQRTSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSQRTSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSQRTSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSQRTSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSQRTSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSQRTSS takes 3 or 4 operands") + } + // VSQRTSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSQRTSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x51) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSQRTSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x51) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VSQRTSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x51) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSQRTSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSQRTSS") + } + return p +} + +// VSTMXCSR performs "Store MXCSR Register State". +// +// Mnemonic : VSTMXCSR +// Supported forms : (1 form) +// +// * VSTMXCSR m32 [AVX] +// +func (self *Program) VSTMXCSR(v0 interface{}) *Instruction { + p := self.alloc("VSTMXCSR", 1, Operands { v0 }) + // VSTMXCSR m32 + if isM32(v0) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, addr(v[0]), 0) + m.emit(0xae) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VSTMXCSR") + } + return p +} + +// VSUBPD performs "Subtract Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VSUBPD +// Supported forms : (11 forms) +// +// * VSUBPD xmm, xmm, xmm [AVX] +// * VSUBPD m128, xmm, xmm [AVX] +// * VSUBPD ymm, ymm, ymm [AVX] +// * VSUBPD m256, ymm, ymm [AVX] +// * VSUBPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSUBPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSUBPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VSUBPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSUBPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSUBPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSUBPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSUBPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSUBPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSUBPD takes 3 or 4 operands") + } + // VSUBPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VSUBPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSUBPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VSUBPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VSUBPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSUBPD") + } + return p +} + +// VSUBPS performs "Subtract Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VSUBPS +// Supported forms : (11 forms) +// +// * VSUBPS xmm, xmm, xmm [AVX] +// * VSUBPS m128, xmm, xmm [AVX] +// * VSUBPS ymm, ymm, ymm [AVX] +// * VSUBPS m256, ymm, ymm [AVX] +// * VSUBPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSUBPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSUBPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VSUBPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSUBPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSUBPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSUBPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSUBPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSUBPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSUBPS takes 3 or 4 operands") + } + // VSUBPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VSUBPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSUBPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VSUBPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VSUBPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSUBPS") + } + return p +} + +// VSUBSD performs "Subtract Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VSUBSD +// Supported forms : (5 forms) +// +// * VSUBSD xmm, xmm, xmm [AVX] +// * VSUBSD m64, xmm, xmm [AVX] +// * VSUBSD m64, xmm, xmm{k}{z} [AVX512F] +// * VSUBSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSUBSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSUBSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSUBSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSUBSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSUBSD takes 3 or 4 operands") + } + // VSUBSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VSUBSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSUBSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSUBSD") + } + return p +} + +// VSUBSS performs "Subtract Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VSUBSS +// Supported forms : (5 forms) +// +// * VSUBSS xmm, xmm, xmm [AVX] +// * VSUBSS m32, xmm, xmm [AVX] +// * VSUBSS m32, xmm, xmm{k}{z} [AVX512F] +// * VSUBSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSUBSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSUBSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSUBSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSUBSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSUBSS takes 3 or 4 operands") + } + // VSUBSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VSUBSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSUBSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSUBSS") + } + return p +} + +// VTESTPD performs "Packed Double-Precision Floating-Point Bit Test". +// +// Mnemonic : VTESTPD +// Supported forms : (4 forms) +// +// * VTESTPD xmm, xmm [AVX] +// * VTESTPD m128, xmm [AVX] +// * VTESTPD ymm, ymm [AVX] +// * VTESTPD m256, ymm [AVX] +// +func (self *Program) VTESTPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VTESTPD", 2, Operands { v0, v1 }) + // VTESTPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VTESTPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VTESTPD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VTESTPD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VTESTPD") + } + return p +} + +// VTESTPS performs "Packed Single-Precision Floating-Point Bit Test". +// +// Mnemonic : VTESTPS +// Supported forms : (4 forms) +// +// * VTESTPS xmm, xmm [AVX] +// * VTESTPS m128, xmm [AVX] +// * VTESTPS ymm, ymm [AVX] +// * VTESTPS m256, ymm [AVX] +// +func (self *Program) VTESTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VTESTPS", 2, Operands { v0, v1 }) + // VTESTPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VTESTPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x0e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VTESTPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VTESTPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x0e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VTESTPS") + } + return p +} + +// VUCOMISD performs "Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : VUCOMISD +// Supported forms : (5 forms) +// +// * VUCOMISD xmm, xmm [AVX] +// * VUCOMISD m64, xmm [AVX] +// * VUCOMISD m64, xmm [AVX512F] +// * VUCOMISD {sae}, xmm, xmm [AVX512F] +// * VUCOMISD xmm, xmm [AVX512F] +// +func (self *Program) VUCOMISD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VUCOMISD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VUCOMISD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VUCOMISD takes 2 or 3 operands") + } + // VUCOMISD xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VUCOMISD m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VUCOMISD m64, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VUCOMISD {sae}, xmm, xmm + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(0x18) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VUCOMISD xmm, xmm + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit(0x48) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUCOMISD") + } + return p +} + +// VUCOMISS performs "Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : VUCOMISS +// Supported forms : (5 forms) +// +// * VUCOMISS xmm, xmm [AVX] +// * VUCOMISS m32, xmm [AVX] +// * VUCOMISS m32, xmm [AVX512F] +// * VUCOMISS {sae}, xmm, xmm [AVX512F] +// * VUCOMISS xmm, xmm [AVX512F] +// +func (self *Program) VUCOMISS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VUCOMISS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VUCOMISS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VUCOMISS takes 2 or 3 operands") + } + // VUCOMISS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VUCOMISS m32, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VUCOMISS m32, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VUCOMISS {sae}, xmm, xmm + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit(0x18) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VUCOMISS xmm, xmm + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit(0x48) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUCOMISS") + } + return p +} + +// VUNPCKHPD performs "Unpack and Interleave High Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VUNPCKHPD +// Supported forms : (10 forms) +// +// * VUNPCKHPD xmm, xmm, xmm [AVX] +// * VUNPCKHPD m128, xmm, xmm [AVX] +// * VUNPCKHPD ymm, ymm, ymm [AVX] +// * VUNPCKHPD m256, ymm, ymm [AVX] +// * VUNPCKHPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKHPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKHPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VUNPCKHPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VUNPCKHPD", 3, Operands { v0, v1, v2 }) + // VUNPCKHPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKHPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKHPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VUNPCKHPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VUNPCKHPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VUNPCKHPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUNPCKHPD") + } + return p +} + +// VUNPCKHPS performs "Unpack and Interleave High Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VUNPCKHPS +// Supported forms : (10 forms) +// +// * VUNPCKHPS xmm, xmm, xmm [AVX] +// * VUNPCKHPS m128, xmm, xmm [AVX] +// * VUNPCKHPS ymm, ymm, ymm [AVX] +// * VUNPCKHPS m256, ymm, ymm [AVX] +// * VUNPCKHPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKHPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKHPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VUNPCKHPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VUNPCKHPS", 3, Operands { v0, v1, v2 }) + // VUNPCKHPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKHPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKHPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VUNPCKHPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VUNPCKHPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VUNPCKHPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUNPCKHPS") + } + return p +} + +// VUNPCKLPD performs "Unpack and Interleave Low Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VUNPCKLPD +// Supported forms : (10 forms) +// +// * VUNPCKLPD xmm, xmm, xmm [AVX] +// * VUNPCKLPD m128, xmm, xmm [AVX] +// * VUNPCKLPD ymm, ymm, ymm [AVX] +// * VUNPCKLPD m256, ymm, ymm [AVX] +// * VUNPCKLPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKLPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKLPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VUNPCKLPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VUNPCKLPD", 3, Operands { v0, v1, v2 }) + // VUNPCKLPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKLPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKLPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VUNPCKLPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VUNPCKLPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VUNPCKLPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUNPCKLPD") + } + return p +} + +// VUNPCKLPS performs "Unpack and Interleave Low Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VUNPCKLPS +// Supported forms : (10 forms) +// +// * VUNPCKLPS xmm, xmm, xmm [AVX] +// * VUNPCKLPS m128, xmm, xmm [AVX] +// * VUNPCKLPS ymm, ymm, ymm [AVX] +// * VUNPCKLPS m256, ymm, ymm [AVX] +// * VUNPCKLPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKLPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKLPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VUNPCKLPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VUNPCKLPS", 3, Operands { v0, v1, v2 }) + // VUNPCKLPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKLPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKLPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VUNPCKLPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VUNPCKLPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VUNPCKLPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUNPCKLPS") + } + return p +} + +// VXORPD performs "Bitwise Logical XOR for Double-Precision Floating-Point Values". +// +// Mnemonic : VXORPD +// Supported forms : (10 forms) +// +// * VXORPD xmm, xmm, xmm [AVX] +// * VXORPD m128, xmm, xmm [AVX] +// * VXORPD ymm, ymm, ymm [AVX] +// * VXORPD m256, ymm, ymm [AVX] +// * VXORPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VXORPD zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VXORPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VXORPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VXORPD", 3, Operands { v0, v1, v2 }) + // VXORPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VXORPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VXORPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VXORPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VXORPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VXORPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VXORPD") + } + return p +} + +// VXORPS performs "Bitwise Logical XOR for Single-Precision Floating-Point Values". +// +// Mnemonic : VXORPS +// Supported forms : (10 forms) +// +// * VXORPS xmm, xmm, xmm [AVX] +// * VXORPS m128, xmm, xmm [AVX] +// * VXORPS ymm, ymm, ymm [AVX] +// * VXORPS m256, ymm, ymm [AVX] +// * VXORPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VXORPS zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VXORPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VXORPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VXORPS", 3, Operands { v0, v1, v2 }) + // VXORPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VXORPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VXORPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VXORPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VXORPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VXORPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VXORPS") + } + return p +} + +// VZEROALL performs "Zero All YMM Registers". +// +// Mnemonic : VZEROALL +// Supported forms : (1 form) +// +// * VZEROALL [AVX] +// +func (self *Program) VZEROALL() *Instruction { + p := self.alloc("VZEROALL", 0, Operands { }) + // VZEROALL + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, 0) + m.emit(0x77) + }) + return p +} + +// VZEROUPPER performs "Zero Upper Bits of YMM Registers". +// +// Mnemonic : VZEROUPPER +// Supported forms : (1 form) +// +// * VZEROUPPER [AVX] +// +func (self *Program) VZEROUPPER() *Instruction { + p := self.alloc("VZEROUPPER", 0, Operands { }) + // VZEROUPPER + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x77) + }) + return p +} + +// XADDB performs "Exchange and Add". +// +// Mnemonic : XADD +// Supported forms : (2 forms) +// +// * XADDB r8, r8 +// * XADDB r8, m8 +// +func (self *Program) XADDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XADDB", 2, Operands { v0, v1 }) + // XADDB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x0f) + m.emit(0xc0) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // XADDB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xc0) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XADDB") + } + return p +} + +// XADDL performs "Exchange and Add". +// +// Mnemonic : XADD +// Supported forms : (2 forms) +// +// * XADDL r32, r32 +// * XADDL r32, m32 +// +func (self *Program) XADDL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XADDL", 2, Operands { v0, v1 }) + // XADDL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // XADDL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XADDL") + } + return p +} + +// XADDQ performs "Exchange and Add". +// +// Mnemonic : XADD +// Supported forms : (2 forms) +// +// * XADDQ r64, r64 +// * XADDQ r64, m64 +// +func (self *Program) XADDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XADDQ", 2, Operands { v0, v1 }) + // XADDQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // XADDQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xc1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XADDQ") + } + return p +} + +// XADDW performs "Exchange and Add". +// +// Mnemonic : XADD +// Supported forms : (2 forms) +// +// * XADDW r16, r16 +// * XADDW r16, m16 +// +func (self *Program) XADDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XADDW", 2, Operands { v0, v1 }) + // XADDW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // XADDW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XADDW") + } + return p +} + +// XCHGB performs "Exchange Register/Memory with Register". +// +// Mnemonic : XCHG +// Supported forms : (3 forms) +// +// * XCHGB r8, r8 +// * XCHGB m8, r8 +// * XCHGB r8, m8 +// +func (self *Program) XCHGB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XCHGB", 2, Operands { v0, v1 }) + // XCHGB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x86) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x86) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XCHGB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x86) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XCHGB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x86) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XCHGB") + } + return p +} + +// XCHGL performs "Exchange Register/Memory with Register". +// +// Mnemonic : XCHG +// Supported forms : (5 forms) +// +// * XCHGL r32, eax +// * XCHGL eax, r32 +// * XCHGL r32, r32 +// * XCHGL m32, r32 +// * XCHGL r32, m32 +// +func (self *Program) XCHGL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XCHGL", 2, Operands { v0, v1 }) + // XCHGL r32, eax + if isReg32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x90 | lcode(v[0])) + }) + } + // XCHGL eax, r32 + if v0 == EAX && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x90 | lcode(v[1])) + }) + } + // XCHGL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x87) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x87) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XCHGL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x87) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XCHGL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x87) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XCHGL") + } + return p +} + +// XCHGQ performs "Exchange Register/Memory with Register". +// +// Mnemonic : XCHG +// Supported forms : (5 forms) +// +// * XCHGQ r64, rax +// * XCHGQ rax, r64 +// * XCHGQ r64, r64 +// * XCHGQ m64, r64 +// * XCHGQ r64, m64 +// +func (self *Program) XCHGQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XCHGQ", 2, Operands { v0, v1 }) + // XCHGQ r64, rax + if isReg64(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0x90 | lcode(v[0])) + }) + } + // XCHGQ rax, r64 + if v0 == RAX && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x90 | lcode(v[1])) + }) + } + // XCHGQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x87) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x87) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XCHGQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x87) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XCHGQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x87) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XCHGQ") + } + return p +} + +// XCHGW performs "Exchange Register/Memory with Register". +// +// Mnemonic : XCHG +// Supported forms : (5 forms) +// +// * XCHGW r16, ax +// * XCHGW ax, r16 +// * XCHGW r16, r16 +// * XCHGW m16, r16 +// * XCHGW r16, m16 +// +func (self *Program) XCHGW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XCHGW", 2, Operands { v0, v1 }) + // XCHGW r16, ax + if isReg16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x90 | lcode(v[0])) + }) + } + // XCHGW ax, r16 + if v0 == AX && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x90 | lcode(v[1])) + }) + } + // XCHGW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x87) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x87) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XCHGW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x87) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XCHGW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x87) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XCHGW") + } + return p +} + +// XGETBV performs "Get Value of Extended Control Register". +// +// Mnemonic : XGETBV +// Supported forms : (1 form) +// +// * XGETBV +// +func (self *Program) XGETBV() *Instruction { + p := self.alloc("XGETBV", 0, Operands { }) + // XGETBV + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xd0) + }) + return p +} + +// XLATB performs "Table Look-up Translation". +// +// Mnemonic : XLATB +// Supported forms : (2 forms) +// +// * XLATB +// * XLATB +// +func (self *Program) XLATB() *Instruction { + p := self.alloc("XLATB", 0, Operands { }) + // XLATB + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xd7) + }) + // XLATB + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0xd7) + }) + return p +} + +// XORB performs "Logical Exclusive OR". +// +// Mnemonic : XOR +// Supported forms : (6 forms) +// +// * XORB imm8, al +// * XORB imm8, r8 +// * XORB r8, r8 +// * XORB m8, r8 +// * XORB imm8, m8 +// * XORB r8, m8 +// +func (self *Program) XORB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORB", 2, Operands { v0, v1 }) + // XORB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x34) + m.imm1(toImmAny(v[0])) + }) + } + // XORB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // XORB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x30) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XORB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // XORB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x30) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORB") + } + return p +} + +// XORL performs "Logical Exclusive OR". +// +// Mnemonic : XOR +// Supported forms : (8 forms) +// +// * XORL imm32, eax +// * XORL imm8, r32 +// * XORL imm32, r32 +// * XORL r32, r32 +// * XORL m32, r32 +// * XORL imm8, m32 +// * XORL imm32, m32 +// * XORL r32, m32 +// +func (self *Program) XORL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORL", 2, Operands { v0, v1 }) + // XORL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x35) + m.imm4(toImmAny(v[0])) + }) + } + // XORL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // XORL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xf0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // XORL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XORL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // XORL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(6, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // XORL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORL") + } + return p +} + +// XORPD performs "Bitwise Logical XOR for Double-Precision Floating-Point Values". +// +// Mnemonic : XORPD +// Supported forms : (2 forms) +// +// * XORPD xmm, xmm [SSE2] +// * XORPD m128, xmm [SSE2] +// +func (self *Program) XORPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORPD", 2, Operands { v0, v1 }) + // XORPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x57) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x57) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORPD") + } + return p +} + +// XORPS performs "Bitwise Logical XOR for Single-Precision Floating-Point Values". +// +// Mnemonic : XORPS +// Supported forms : (2 forms) +// +// * XORPS xmm, xmm [SSE] +// * XORPS m128, xmm [SSE] +// +func (self *Program) XORPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORPS", 2, Operands { v0, v1 }) + // XORPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x57) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x57) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORPS") + } + return p +} + +// XORQ performs "Logical Exclusive OR". +// +// Mnemonic : XOR +// Supported forms : (8 forms) +// +// * XORQ imm32, rax +// * XORQ imm8, r64 +// * XORQ imm32, r64 +// * XORQ r64, r64 +// * XORQ m64, r64 +// * XORQ imm8, m64 +// * XORQ imm32, m64 +// * XORQ r64, m64 +// +func (self *Program) XORQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORQ", 2, Operands { v0, v1 }) + // XORQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x35) + m.imm4(toImmAny(v[0])) + }) + } + // XORQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // XORQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xf0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // XORQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XORQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // XORQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(6, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // XORQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORQ") + } + return p +} + +// XORW performs "Logical Exclusive OR". +// +// Mnemonic : XOR +// Supported forms : (8 forms) +// +// * XORW imm16, ax +// * XORW imm8, r16 +// * XORW imm16, r16 +// * XORW r16, r16 +// * XORW m16, r16 +// * XORW imm8, m16 +// * XORW imm16, m16 +// * XORW r16, m16 +// +func (self *Program) XORW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORW", 2, Operands { v0, v1 }) + // XORW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x35) + m.imm2(toImmAny(v[0])) + }) + } + // XORW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // XORW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xf0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // XORW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XORW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // XORW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(6, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // XORW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORW") + } + return p +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions_table.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions_table.go new file mode 100644 index 00000000..675699eb --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions_table.go @@ -0,0 +1,12291 @@ +// Code generated by "mkasm_amd64.py", DO NOT EDIT. + +package x86_64 + +const ( + _N_args = 5 + _N_forms = 23 +) + +// Instructions maps all the instruction name to it's encoder function. +var Instructions = map[string]_InstructionEncoder { + "adcb" : __asm_proxy_ADCB__, + "adcl" : __asm_proxy_ADCL__, + "adcq" : __asm_proxy_ADCQ__, + "adcw" : __asm_proxy_ADCW__, + "adcxl" : __asm_proxy_ADCXL__, + "adcxq" : __asm_proxy_ADCXQ__, + "addb" : __asm_proxy_ADDB__, + "addl" : __asm_proxy_ADDL__, + "addpd" : __asm_proxy_ADDPD__, + "addps" : __asm_proxy_ADDPS__, + "addq" : __asm_proxy_ADDQ__, + "addsd" : __asm_proxy_ADDSD__, + "addss" : __asm_proxy_ADDSS__, + "addsubpd" : __asm_proxy_ADDSUBPD__, + "addsubps" : __asm_proxy_ADDSUBPS__, + "addw" : __asm_proxy_ADDW__, + "adoxl" : __asm_proxy_ADOXL__, + "adoxq" : __asm_proxy_ADOXQ__, + "aesdec" : __asm_proxy_AESDEC__, + "aesdeclast" : __asm_proxy_AESDECLAST__, + "aesenc" : __asm_proxy_AESENC__, + "aesenclast" : __asm_proxy_AESENCLAST__, + "aesimc" : __asm_proxy_AESIMC__, + "aeskeygenassist" : __asm_proxy_AESKEYGENASSIST__, + "andb" : __asm_proxy_ANDB__, + "andl" : __asm_proxy_ANDL__, + "andnl" : __asm_proxy_ANDNL__, + "andnpd" : __asm_proxy_ANDNPD__, + "andnps" : __asm_proxy_ANDNPS__, + "andnq" : __asm_proxy_ANDNQ__, + "andpd" : __asm_proxy_ANDPD__, + "andps" : __asm_proxy_ANDPS__, + "andq" : __asm_proxy_ANDQ__, + "andw" : __asm_proxy_ANDW__, + "bextr" : __asm_proxy_BEXTR__, + "blcfill" : __asm_proxy_BLCFILL__, + "blci" : __asm_proxy_BLCI__, + "blcic" : __asm_proxy_BLCIC__, + "blcmsk" : __asm_proxy_BLCMSK__, + "blcs" : __asm_proxy_BLCS__, + "blendpd" : __asm_proxy_BLENDPD__, + "blendps" : __asm_proxy_BLENDPS__, + "blendvpd" : __asm_proxy_BLENDVPD__, + "blendvps" : __asm_proxy_BLENDVPS__, + "blsfill" : __asm_proxy_BLSFILL__, + "blsi" : __asm_proxy_BLSI__, + "blsic" : __asm_proxy_BLSIC__, + "blsmsk" : __asm_proxy_BLSMSK__, + "blsr" : __asm_proxy_BLSR__, + "bsfl" : __asm_proxy_BSFL__, + "bsfq" : __asm_proxy_BSFQ__, + "bsfw" : __asm_proxy_BSFW__, + "bsrl" : __asm_proxy_BSRL__, + "bsrq" : __asm_proxy_BSRQ__, + "bsrw" : __asm_proxy_BSRW__, + "bswapl" : __asm_proxy_BSWAPL__, + "bswapq" : __asm_proxy_BSWAPQ__, + "btcl" : __asm_proxy_BTCL__, + "btcq" : __asm_proxy_BTCQ__, + "btcw" : __asm_proxy_BTCW__, + "btl" : __asm_proxy_BTL__, + "btq" : __asm_proxy_BTQ__, + "btrl" : __asm_proxy_BTRL__, + "btrq" : __asm_proxy_BTRQ__, + "btrw" : __asm_proxy_BTRW__, + "btsl" : __asm_proxy_BTSL__, + "btsq" : __asm_proxy_BTSQ__, + "btsw" : __asm_proxy_BTSW__, + "btw" : __asm_proxy_BTW__, + "bzhi" : __asm_proxy_BZHI__, + "call" : __asm_proxy_CALL__, + "callq" : __asm_proxy_CALLQ__, + "cbtw" : __asm_proxy_CBTW__, + "clc" : __asm_proxy_CLC__, + "cld" : __asm_proxy_CLD__, + "clflush" : __asm_proxy_CLFLUSH__, + "clflushopt" : __asm_proxy_CLFLUSHOPT__, + "cltd" : __asm_proxy_CLTD__, + "cltq" : __asm_proxy_CLTQ__, + "clwb" : __asm_proxy_CLWB__, + "clzero" : __asm_proxy_CLZERO__, + "cmc" : __asm_proxy_CMC__, + "cmova" : __asm_proxy_CMOVA__, + "cmovae" : __asm_proxy_CMOVAE__, + "cmovb" : __asm_proxy_CMOVB__, + "cmovbe" : __asm_proxy_CMOVBE__, + "cmovc" : __asm_proxy_CMOVC__, + "cmove" : __asm_proxy_CMOVE__, + "cmovg" : __asm_proxy_CMOVG__, + "cmovge" : __asm_proxy_CMOVGE__, + "cmovl" : __asm_proxy_CMOVL__, + "cmovle" : __asm_proxy_CMOVLE__, + "cmovna" : __asm_proxy_CMOVNA__, + "cmovnae" : __asm_proxy_CMOVNAE__, + "cmovnb" : __asm_proxy_CMOVNB__, + "cmovnbe" : __asm_proxy_CMOVNBE__, + "cmovnc" : __asm_proxy_CMOVNC__, + "cmovne" : __asm_proxy_CMOVNE__, + "cmovng" : __asm_proxy_CMOVNG__, + "cmovnge" : __asm_proxy_CMOVNGE__, + "cmovnl" : __asm_proxy_CMOVNL__, + "cmovnle" : __asm_proxy_CMOVNLE__, + "cmovno" : __asm_proxy_CMOVNO__, + "cmovnp" : __asm_proxy_CMOVNP__, + "cmovns" : __asm_proxy_CMOVNS__, + "cmovnz" : __asm_proxy_CMOVNZ__, + "cmovo" : __asm_proxy_CMOVO__, + "cmovp" : __asm_proxy_CMOVP__, + "cmovpe" : __asm_proxy_CMOVPE__, + "cmovpo" : __asm_proxy_CMOVPO__, + "cmovs" : __asm_proxy_CMOVS__, + "cmovz" : __asm_proxy_CMOVZ__, + "cmpb" : __asm_proxy_CMPB__, + "cmpl" : __asm_proxy_CMPL__, + "cmppd" : __asm_proxy_CMPPD__, + "cmpps" : __asm_proxy_CMPPS__, + "cmpq" : __asm_proxy_CMPQ__, + "cmpsd" : __asm_proxy_CMPSD__, + "cmpss" : __asm_proxy_CMPSS__, + "cmpw" : __asm_proxy_CMPW__, + "cmpxchg16b" : __asm_proxy_CMPXCHG16B__, + "cmpxchg8b" : __asm_proxy_CMPXCHG8B__, + "cmpxchgb" : __asm_proxy_CMPXCHGB__, + "cmpxchgl" : __asm_proxy_CMPXCHGL__, + "cmpxchgq" : __asm_proxy_CMPXCHGQ__, + "cmpxchgw" : __asm_proxy_CMPXCHGW__, + "comisd" : __asm_proxy_COMISD__, + "comiss" : __asm_proxy_COMISS__, + "cpuid" : __asm_proxy_CPUID__, + "cqto" : __asm_proxy_CQTO__, + "crc32b" : __asm_proxy_CRC32B__, + "crc32l" : __asm_proxy_CRC32L__, + "crc32q" : __asm_proxy_CRC32Q__, + "crc32w" : __asm_proxy_CRC32W__, + "cvtdq2pd" : __asm_proxy_CVTDQ2PD__, + "cvtdq2ps" : __asm_proxy_CVTDQ2PS__, + "cvtpd2dq" : __asm_proxy_CVTPD2DQ__, + "cvtpd2pi" : __asm_proxy_CVTPD2PI__, + "cvtpd2ps" : __asm_proxy_CVTPD2PS__, + "cvtpi2pd" : __asm_proxy_CVTPI2PD__, + "cvtpi2ps" : __asm_proxy_CVTPI2PS__, + "cvtps2dq" : __asm_proxy_CVTPS2DQ__, + "cvtps2pd" : __asm_proxy_CVTPS2PD__, + "cvtps2pi" : __asm_proxy_CVTPS2PI__, + "cvtsd2si" : __asm_proxy_CVTSD2SI__, + "cvtsd2ss" : __asm_proxy_CVTSD2SS__, + "cvtsi2sd" : __asm_proxy_CVTSI2SD__, + "cvtsi2ss" : __asm_proxy_CVTSI2SS__, + "cvtss2sd" : __asm_proxy_CVTSS2SD__, + "cvtss2si" : __asm_proxy_CVTSS2SI__, + "cvttpd2dq" : __asm_proxy_CVTTPD2DQ__, + "cvttpd2pi" : __asm_proxy_CVTTPD2PI__, + "cvttps2dq" : __asm_proxy_CVTTPS2DQ__, + "cvttps2pi" : __asm_proxy_CVTTPS2PI__, + "cvttsd2si" : __asm_proxy_CVTTSD2SI__, + "cvttss2si" : __asm_proxy_CVTTSS2SI__, + "cwtd" : __asm_proxy_CWTD__, + "cwtl" : __asm_proxy_CWTL__, + "decb" : __asm_proxy_DECB__, + "decl" : __asm_proxy_DECL__, + "decq" : __asm_proxy_DECQ__, + "decw" : __asm_proxy_DECW__, + "divb" : __asm_proxy_DIVB__, + "divl" : __asm_proxy_DIVL__, + "divpd" : __asm_proxy_DIVPD__, + "divps" : __asm_proxy_DIVPS__, + "divq" : __asm_proxy_DIVQ__, + "divsd" : __asm_proxy_DIVSD__, + "divss" : __asm_proxy_DIVSS__, + "divw" : __asm_proxy_DIVW__, + "dppd" : __asm_proxy_DPPD__, + "dpps" : __asm_proxy_DPPS__, + "emms" : __asm_proxy_EMMS__, + "extractps" : __asm_proxy_EXTRACTPS__, + "extrq" : __asm_proxy_EXTRQ__, + "femms" : __asm_proxy_FEMMS__, + "haddpd" : __asm_proxy_HADDPD__, + "haddps" : __asm_proxy_HADDPS__, + "hsubpd" : __asm_proxy_HSUBPD__, + "hsubps" : __asm_proxy_HSUBPS__, + "idivb" : __asm_proxy_IDIVB__, + "idivl" : __asm_proxy_IDIVL__, + "idivq" : __asm_proxy_IDIVQ__, + "idivw" : __asm_proxy_IDIVW__, + "imulb" : __asm_proxy_IMULB__, + "imull" : __asm_proxy_IMULL__, + "imulq" : __asm_proxy_IMULQ__, + "imulw" : __asm_proxy_IMULW__, + "incb" : __asm_proxy_INCB__, + "incl" : __asm_proxy_INCL__, + "incq" : __asm_proxy_INCQ__, + "incw" : __asm_proxy_INCW__, + "insertps" : __asm_proxy_INSERTPS__, + "insertq" : __asm_proxy_INSERTQ__, + "int" : __asm_proxy_INT__, + "ja" : __asm_proxy_JA__, + "jae" : __asm_proxy_JAE__, + "jb" : __asm_proxy_JB__, + "jbe" : __asm_proxy_JBE__, + "jc" : __asm_proxy_JC__, + "je" : __asm_proxy_JE__, + "jecxz" : __asm_proxy_JECXZ__, + "jg" : __asm_proxy_JG__, + "jge" : __asm_proxy_JGE__, + "jl" : __asm_proxy_JL__, + "jle" : __asm_proxy_JLE__, + "jmp" : __asm_proxy_JMP__, + "jmpq" : __asm_proxy_JMPQ__, + "jna" : __asm_proxy_JNA__, + "jnae" : __asm_proxy_JNAE__, + "jnb" : __asm_proxy_JNB__, + "jnbe" : __asm_proxy_JNBE__, + "jnc" : __asm_proxy_JNC__, + "jne" : __asm_proxy_JNE__, + "jng" : __asm_proxy_JNG__, + "jnge" : __asm_proxy_JNGE__, + "jnl" : __asm_proxy_JNL__, + "jnle" : __asm_proxy_JNLE__, + "jno" : __asm_proxy_JNO__, + "jnp" : __asm_proxy_JNP__, + "jns" : __asm_proxy_JNS__, + "jnz" : __asm_proxy_JNZ__, + "jo" : __asm_proxy_JO__, + "jp" : __asm_proxy_JP__, + "jpe" : __asm_proxy_JPE__, + "jpo" : __asm_proxy_JPO__, + "jrcxz" : __asm_proxy_JRCXZ__, + "js" : __asm_proxy_JS__, + "jz" : __asm_proxy_JZ__, + "kaddb" : __asm_proxy_KADDB__, + "kaddd" : __asm_proxy_KADDD__, + "kaddq" : __asm_proxy_KADDQ__, + "kaddw" : __asm_proxy_KADDW__, + "kandb" : __asm_proxy_KANDB__, + "kandd" : __asm_proxy_KANDD__, + "kandnb" : __asm_proxy_KANDNB__, + "kandnd" : __asm_proxy_KANDND__, + "kandnq" : __asm_proxy_KANDNQ__, + "kandnw" : __asm_proxy_KANDNW__, + "kandq" : __asm_proxy_KANDQ__, + "kandw" : __asm_proxy_KANDW__, + "kmovb" : __asm_proxy_KMOVB__, + "kmovd" : __asm_proxy_KMOVD__, + "kmovq" : __asm_proxy_KMOVQ__, + "kmovw" : __asm_proxy_KMOVW__, + "knotb" : __asm_proxy_KNOTB__, + "knotd" : __asm_proxy_KNOTD__, + "knotq" : __asm_proxy_KNOTQ__, + "knotw" : __asm_proxy_KNOTW__, + "korb" : __asm_proxy_KORB__, + "kord" : __asm_proxy_KORD__, + "korq" : __asm_proxy_KORQ__, + "kortestb" : __asm_proxy_KORTESTB__, + "kortestd" : __asm_proxy_KORTESTD__, + "kortestq" : __asm_proxy_KORTESTQ__, + "kortestw" : __asm_proxy_KORTESTW__, + "korw" : __asm_proxy_KORW__, + "kshiftlb" : __asm_proxy_KSHIFTLB__, + "kshiftld" : __asm_proxy_KSHIFTLD__, + "kshiftlq" : __asm_proxy_KSHIFTLQ__, + "kshiftlw" : __asm_proxy_KSHIFTLW__, + "kshiftrb" : __asm_proxy_KSHIFTRB__, + "kshiftrd" : __asm_proxy_KSHIFTRD__, + "kshiftrq" : __asm_proxy_KSHIFTRQ__, + "kshiftrw" : __asm_proxy_KSHIFTRW__, + "ktestb" : __asm_proxy_KTESTB__, + "ktestd" : __asm_proxy_KTESTD__, + "ktestq" : __asm_proxy_KTESTQ__, + "ktestw" : __asm_proxy_KTESTW__, + "kunpckbw" : __asm_proxy_KUNPCKBW__, + "kunpckdq" : __asm_proxy_KUNPCKDQ__, + "kunpckwd" : __asm_proxy_KUNPCKWD__, + "kxnorb" : __asm_proxy_KXNORB__, + "kxnord" : __asm_proxy_KXNORD__, + "kxnorq" : __asm_proxy_KXNORQ__, + "kxnorw" : __asm_proxy_KXNORW__, + "kxorb" : __asm_proxy_KXORB__, + "kxord" : __asm_proxy_KXORD__, + "kxorq" : __asm_proxy_KXORQ__, + "kxorw" : __asm_proxy_KXORW__, + "lddqu" : __asm_proxy_LDDQU__, + "ldmxcsr" : __asm_proxy_LDMXCSR__, + "leal" : __asm_proxy_LEAL__, + "leaq" : __asm_proxy_LEAQ__, + "leaw" : __asm_proxy_LEAW__, + "lfence" : __asm_proxy_LFENCE__, + "lzcntl" : __asm_proxy_LZCNTL__, + "lzcntq" : __asm_proxy_LZCNTQ__, + "lzcntw" : __asm_proxy_LZCNTW__, + "maskmovdqu" : __asm_proxy_MASKMOVDQU__, + "maskmovq" : __asm_proxy_MASKMOVQ__, + "maxpd" : __asm_proxy_MAXPD__, + "maxps" : __asm_proxy_MAXPS__, + "maxsd" : __asm_proxy_MAXSD__, + "maxss" : __asm_proxy_MAXSS__, + "mfence" : __asm_proxy_MFENCE__, + "minpd" : __asm_proxy_MINPD__, + "minps" : __asm_proxy_MINPS__, + "minsd" : __asm_proxy_MINSD__, + "minss" : __asm_proxy_MINSS__, + "monitor" : __asm_proxy_MONITOR__, + "monitorx" : __asm_proxy_MONITORX__, + "movapd" : __asm_proxy_MOVAPD__, + "movaps" : __asm_proxy_MOVAPS__, + "movb" : __asm_proxy_MOVB__, + "movbel" : __asm_proxy_MOVBEL__, + "movbeq" : __asm_proxy_MOVBEQ__, + "movbew" : __asm_proxy_MOVBEW__, + "movd" : __asm_proxy_MOVD__, + "movddup" : __asm_proxy_MOVDDUP__, + "movdq2q" : __asm_proxy_MOVDQ2Q__, + "movdqa" : __asm_proxy_MOVDQA__, + "movdqu" : __asm_proxy_MOVDQU__, + "movhlps" : __asm_proxy_MOVHLPS__, + "movhpd" : __asm_proxy_MOVHPD__, + "movhps" : __asm_proxy_MOVHPS__, + "movl" : __asm_proxy_MOVL__, + "movlhps" : __asm_proxy_MOVLHPS__, + "movlpd" : __asm_proxy_MOVLPD__, + "movlps" : __asm_proxy_MOVLPS__, + "movmskpd" : __asm_proxy_MOVMSKPD__, + "movmskps" : __asm_proxy_MOVMSKPS__, + "movntdq" : __asm_proxy_MOVNTDQ__, + "movntdqa" : __asm_proxy_MOVNTDQA__, + "movntil" : __asm_proxy_MOVNTIL__, + "movntiq" : __asm_proxy_MOVNTIQ__, + "movntpd" : __asm_proxy_MOVNTPD__, + "movntps" : __asm_proxy_MOVNTPS__, + "movntq" : __asm_proxy_MOVNTQ__, + "movntsd" : __asm_proxy_MOVNTSD__, + "movntss" : __asm_proxy_MOVNTSS__, + "movq" : __asm_proxy_MOVQ__, + "movq2dq" : __asm_proxy_MOVQ2DQ__, + "movsbl" : __asm_proxy_MOVSBL__, + "movsbq" : __asm_proxy_MOVSBQ__, + "movsbw" : __asm_proxy_MOVSBW__, + "movsd" : __asm_proxy_MOVSD__, + "movshdup" : __asm_proxy_MOVSHDUP__, + "movsldup" : __asm_proxy_MOVSLDUP__, + "movslq" : __asm_proxy_MOVSLQ__, + "movss" : __asm_proxy_MOVSS__, + "movswl" : __asm_proxy_MOVSWL__, + "movswq" : __asm_proxy_MOVSWQ__, + "movupd" : __asm_proxy_MOVUPD__, + "movups" : __asm_proxy_MOVUPS__, + "movw" : __asm_proxy_MOVW__, + "movzbl" : __asm_proxy_MOVZBL__, + "movzbq" : __asm_proxy_MOVZBQ__, + "movzbw" : __asm_proxy_MOVZBW__, + "movzwl" : __asm_proxy_MOVZWL__, + "movzwq" : __asm_proxy_MOVZWQ__, + "mpsadbw" : __asm_proxy_MPSADBW__, + "mulb" : __asm_proxy_MULB__, + "mull" : __asm_proxy_MULL__, + "mulpd" : __asm_proxy_MULPD__, + "mulps" : __asm_proxy_MULPS__, + "mulq" : __asm_proxy_MULQ__, + "mulsd" : __asm_proxy_MULSD__, + "mulss" : __asm_proxy_MULSS__, + "mulw" : __asm_proxy_MULW__, + "mulxl" : __asm_proxy_MULXL__, + "mulxq" : __asm_proxy_MULXQ__, + "mwait" : __asm_proxy_MWAIT__, + "mwaitx" : __asm_proxy_MWAITX__, + "negb" : __asm_proxy_NEGB__, + "negl" : __asm_proxy_NEGL__, + "negq" : __asm_proxy_NEGQ__, + "negw" : __asm_proxy_NEGW__, + "nop" : __asm_proxy_NOP__, + "notb" : __asm_proxy_NOTB__, + "notl" : __asm_proxy_NOTL__, + "notq" : __asm_proxy_NOTQ__, + "notw" : __asm_proxy_NOTW__, + "orb" : __asm_proxy_ORB__, + "orl" : __asm_proxy_ORL__, + "orpd" : __asm_proxy_ORPD__, + "orps" : __asm_proxy_ORPS__, + "orq" : __asm_proxy_ORQ__, + "orw" : __asm_proxy_ORW__, + "pabsb" : __asm_proxy_PABSB__, + "pabsd" : __asm_proxy_PABSD__, + "pabsw" : __asm_proxy_PABSW__, + "packssdw" : __asm_proxy_PACKSSDW__, + "packsswb" : __asm_proxy_PACKSSWB__, + "packusdw" : __asm_proxy_PACKUSDW__, + "packuswb" : __asm_proxy_PACKUSWB__, + "paddb" : __asm_proxy_PADDB__, + "paddd" : __asm_proxy_PADDD__, + "paddq" : __asm_proxy_PADDQ__, + "paddsb" : __asm_proxy_PADDSB__, + "paddsw" : __asm_proxy_PADDSW__, + "paddusb" : __asm_proxy_PADDUSB__, + "paddusw" : __asm_proxy_PADDUSW__, + "paddw" : __asm_proxy_PADDW__, + "palignr" : __asm_proxy_PALIGNR__, + "pand" : __asm_proxy_PAND__, + "pandn" : __asm_proxy_PANDN__, + "pause" : __asm_proxy_PAUSE__, + "pavgb" : __asm_proxy_PAVGB__, + "pavgusb" : __asm_proxy_PAVGUSB__, + "pavgw" : __asm_proxy_PAVGW__, + "pblendvb" : __asm_proxy_PBLENDVB__, + "pblendw" : __asm_proxy_PBLENDW__, + "pclmulqdq" : __asm_proxy_PCLMULQDQ__, + "pcmpeqb" : __asm_proxy_PCMPEQB__, + "pcmpeqd" : __asm_proxy_PCMPEQD__, + "pcmpeqq" : __asm_proxy_PCMPEQQ__, + "pcmpeqw" : __asm_proxy_PCMPEQW__, + "pcmpestri" : __asm_proxy_PCMPESTRI__, + "pcmpestrm" : __asm_proxy_PCMPESTRM__, + "pcmpgtb" : __asm_proxy_PCMPGTB__, + "pcmpgtd" : __asm_proxy_PCMPGTD__, + "pcmpgtq" : __asm_proxy_PCMPGTQ__, + "pcmpgtw" : __asm_proxy_PCMPGTW__, + "pcmpistri" : __asm_proxy_PCMPISTRI__, + "pcmpistrm" : __asm_proxy_PCMPISTRM__, + "pdep" : __asm_proxy_PDEP__, + "pext" : __asm_proxy_PEXT__, + "pextrb" : __asm_proxy_PEXTRB__, + "pextrd" : __asm_proxy_PEXTRD__, + "pextrq" : __asm_proxy_PEXTRQ__, + "pextrw" : __asm_proxy_PEXTRW__, + "pf2id" : __asm_proxy_PF2ID__, + "pf2iw" : __asm_proxy_PF2IW__, + "pfacc" : __asm_proxy_PFACC__, + "pfadd" : __asm_proxy_PFADD__, + "pfcmpeq" : __asm_proxy_PFCMPEQ__, + "pfcmpge" : __asm_proxy_PFCMPGE__, + "pfcmpgt" : __asm_proxy_PFCMPGT__, + "pfmax" : __asm_proxy_PFMAX__, + "pfmin" : __asm_proxy_PFMIN__, + "pfmul" : __asm_proxy_PFMUL__, + "pfnacc" : __asm_proxy_PFNACC__, + "pfpnacc" : __asm_proxy_PFPNACC__, + "pfrcp" : __asm_proxy_PFRCP__, + "pfrcpit1" : __asm_proxy_PFRCPIT1__, + "pfrcpit2" : __asm_proxy_PFRCPIT2__, + "pfrsqit1" : __asm_proxy_PFRSQIT1__, + "pfrsqrt" : __asm_proxy_PFRSQRT__, + "pfsub" : __asm_proxy_PFSUB__, + "pfsubr" : __asm_proxy_PFSUBR__, + "phaddd" : __asm_proxy_PHADDD__, + "phaddsw" : __asm_proxy_PHADDSW__, + "phaddw" : __asm_proxy_PHADDW__, + "phminposuw" : __asm_proxy_PHMINPOSUW__, + "phsubd" : __asm_proxy_PHSUBD__, + "phsubsw" : __asm_proxy_PHSUBSW__, + "phsubw" : __asm_proxy_PHSUBW__, + "pi2fd" : __asm_proxy_PI2FD__, + "pi2fw" : __asm_proxy_PI2FW__, + "pinsrb" : __asm_proxy_PINSRB__, + "pinsrd" : __asm_proxy_PINSRD__, + "pinsrq" : __asm_proxy_PINSRQ__, + "pinsrw" : __asm_proxy_PINSRW__, + "pmaddubsw" : __asm_proxy_PMADDUBSW__, + "pmaddwd" : __asm_proxy_PMADDWD__, + "pmaxsb" : __asm_proxy_PMAXSB__, + "pmaxsd" : __asm_proxy_PMAXSD__, + "pmaxsw" : __asm_proxy_PMAXSW__, + "pmaxub" : __asm_proxy_PMAXUB__, + "pmaxud" : __asm_proxy_PMAXUD__, + "pmaxuw" : __asm_proxy_PMAXUW__, + "pminsb" : __asm_proxy_PMINSB__, + "pminsd" : __asm_proxy_PMINSD__, + "pminsw" : __asm_proxy_PMINSW__, + "pminub" : __asm_proxy_PMINUB__, + "pminud" : __asm_proxy_PMINUD__, + "pminuw" : __asm_proxy_PMINUW__, + "pmovmskb" : __asm_proxy_PMOVMSKB__, + "pmovsxbd" : __asm_proxy_PMOVSXBD__, + "pmovsxbq" : __asm_proxy_PMOVSXBQ__, + "pmovsxbw" : __asm_proxy_PMOVSXBW__, + "pmovsxdq" : __asm_proxy_PMOVSXDQ__, + "pmovsxwd" : __asm_proxy_PMOVSXWD__, + "pmovsxwq" : __asm_proxy_PMOVSXWQ__, + "pmovzxbd" : __asm_proxy_PMOVZXBD__, + "pmovzxbq" : __asm_proxy_PMOVZXBQ__, + "pmovzxbw" : __asm_proxy_PMOVZXBW__, + "pmovzxdq" : __asm_proxy_PMOVZXDQ__, + "pmovzxwd" : __asm_proxy_PMOVZXWD__, + "pmovzxwq" : __asm_proxy_PMOVZXWQ__, + "pmuldq" : __asm_proxy_PMULDQ__, + "pmulhrsw" : __asm_proxy_PMULHRSW__, + "pmulhrw" : __asm_proxy_PMULHRW__, + "pmulhuw" : __asm_proxy_PMULHUW__, + "pmulhw" : __asm_proxy_PMULHW__, + "pmulld" : __asm_proxy_PMULLD__, + "pmullw" : __asm_proxy_PMULLW__, + "pmuludq" : __asm_proxy_PMULUDQ__, + "popcntl" : __asm_proxy_POPCNTL__, + "popcntq" : __asm_proxy_POPCNTQ__, + "popcntw" : __asm_proxy_POPCNTW__, + "popq" : __asm_proxy_POPQ__, + "popw" : __asm_proxy_POPW__, + "por" : __asm_proxy_POR__, + "prefetch" : __asm_proxy_PREFETCH__, + "prefetchnta" : __asm_proxy_PREFETCHNTA__, + "prefetcht0" : __asm_proxy_PREFETCHT0__, + "prefetcht1" : __asm_proxy_PREFETCHT1__, + "prefetcht2" : __asm_proxy_PREFETCHT2__, + "prefetchw" : __asm_proxy_PREFETCHW__, + "prefetchwt1" : __asm_proxy_PREFETCHWT1__, + "psadbw" : __asm_proxy_PSADBW__, + "pshufb" : __asm_proxy_PSHUFB__, + "pshufd" : __asm_proxy_PSHUFD__, + "pshufhw" : __asm_proxy_PSHUFHW__, + "pshuflw" : __asm_proxy_PSHUFLW__, + "pshufw" : __asm_proxy_PSHUFW__, + "psignb" : __asm_proxy_PSIGNB__, + "psignd" : __asm_proxy_PSIGND__, + "psignw" : __asm_proxy_PSIGNW__, + "pslld" : __asm_proxy_PSLLD__, + "pslldq" : __asm_proxy_PSLLDQ__, + "psllq" : __asm_proxy_PSLLQ__, + "psllw" : __asm_proxy_PSLLW__, + "psrad" : __asm_proxy_PSRAD__, + "psraw" : __asm_proxy_PSRAW__, + "psrld" : __asm_proxy_PSRLD__, + "psrldq" : __asm_proxy_PSRLDQ__, + "psrlq" : __asm_proxy_PSRLQ__, + "psrlw" : __asm_proxy_PSRLW__, + "psubb" : __asm_proxy_PSUBB__, + "psubd" : __asm_proxy_PSUBD__, + "psubq" : __asm_proxy_PSUBQ__, + "psubsb" : __asm_proxy_PSUBSB__, + "psubsw" : __asm_proxy_PSUBSW__, + "psubusb" : __asm_proxy_PSUBUSB__, + "psubusw" : __asm_proxy_PSUBUSW__, + "psubw" : __asm_proxy_PSUBW__, + "pswapd" : __asm_proxy_PSWAPD__, + "ptest" : __asm_proxy_PTEST__, + "punpckhbw" : __asm_proxy_PUNPCKHBW__, + "punpckhdq" : __asm_proxy_PUNPCKHDQ__, + "punpckhqdq" : __asm_proxy_PUNPCKHQDQ__, + "punpckhwd" : __asm_proxy_PUNPCKHWD__, + "punpcklbw" : __asm_proxy_PUNPCKLBW__, + "punpckldq" : __asm_proxy_PUNPCKLDQ__, + "punpcklqdq" : __asm_proxy_PUNPCKLQDQ__, + "punpcklwd" : __asm_proxy_PUNPCKLWD__, + "pushq" : __asm_proxy_PUSHQ__, + "pushw" : __asm_proxy_PUSHW__, + "pxor" : __asm_proxy_PXOR__, + "rclb" : __asm_proxy_RCLB__, + "rcll" : __asm_proxy_RCLL__, + "rclq" : __asm_proxy_RCLQ__, + "rclw" : __asm_proxy_RCLW__, + "rcpps" : __asm_proxy_RCPPS__, + "rcpss" : __asm_proxy_RCPSS__, + "rcrb" : __asm_proxy_RCRB__, + "rcrl" : __asm_proxy_RCRL__, + "rcrq" : __asm_proxy_RCRQ__, + "rcrw" : __asm_proxy_RCRW__, + "rdrand" : __asm_proxy_RDRAND__, + "rdseed" : __asm_proxy_RDSEED__, + "rdtsc" : __asm_proxy_RDTSC__, + "rdtscp" : __asm_proxy_RDTSCP__, + "ret" : __asm_proxy_RET__, + "rolb" : __asm_proxy_ROLB__, + "roll" : __asm_proxy_ROLL__, + "rolq" : __asm_proxy_ROLQ__, + "rolw" : __asm_proxy_ROLW__, + "rorb" : __asm_proxy_RORB__, + "rorl" : __asm_proxy_RORL__, + "rorq" : __asm_proxy_RORQ__, + "rorw" : __asm_proxy_RORW__, + "rorxl" : __asm_proxy_RORXL__, + "rorxq" : __asm_proxy_RORXQ__, + "roundpd" : __asm_proxy_ROUNDPD__, + "roundps" : __asm_proxy_ROUNDPS__, + "roundsd" : __asm_proxy_ROUNDSD__, + "roundss" : __asm_proxy_ROUNDSS__, + "rsqrtps" : __asm_proxy_RSQRTPS__, + "rsqrtss" : __asm_proxy_RSQRTSS__, + "salb" : __asm_proxy_SALB__, + "sall" : __asm_proxy_SALL__, + "salq" : __asm_proxy_SALQ__, + "salw" : __asm_proxy_SALW__, + "sarb" : __asm_proxy_SARB__, + "sarl" : __asm_proxy_SARL__, + "sarq" : __asm_proxy_SARQ__, + "sarw" : __asm_proxy_SARW__, + "sarxl" : __asm_proxy_SARXL__, + "sarxq" : __asm_proxy_SARXQ__, + "sbbb" : __asm_proxy_SBBB__, + "sbbl" : __asm_proxy_SBBL__, + "sbbq" : __asm_proxy_SBBQ__, + "sbbw" : __asm_proxy_SBBW__, + "seta" : __asm_proxy_SETA__, + "setae" : __asm_proxy_SETAE__, + "setb" : __asm_proxy_SETB__, + "setbe" : __asm_proxy_SETBE__, + "setc" : __asm_proxy_SETC__, + "sete" : __asm_proxy_SETE__, + "setg" : __asm_proxy_SETG__, + "setge" : __asm_proxy_SETGE__, + "setl" : __asm_proxy_SETL__, + "setle" : __asm_proxy_SETLE__, + "setna" : __asm_proxy_SETNA__, + "setnae" : __asm_proxy_SETNAE__, + "setnb" : __asm_proxy_SETNB__, + "setnbe" : __asm_proxy_SETNBE__, + "setnc" : __asm_proxy_SETNC__, + "setne" : __asm_proxy_SETNE__, + "setng" : __asm_proxy_SETNG__, + "setnge" : __asm_proxy_SETNGE__, + "setnl" : __asm_proxy_SETNL__, + "setnle" : __asm_proxy_SETNLE__, + "setno" : __asm_proxy_SETNO__, + "setnp" : __asm_proxy_SETNP__, + "setns" : __asm_proxy_SETNS__, + "setnz" : __asm_proxy_SETNZ__, + "seto" : __asm_proxy_SETO__, + "setp" : __asm_proxy_SETP__, + "setpe" : __asm_proxy_SETPE__, + "setpo" : __asm_proxy_SETPO__, + "sets" : __asm_proxy_SETS__, + "setz" : __asm_proxy_SETZ__, + "sfence" : __asm_proxy_SFENCE__, + "sha1msg1" : __asm_proxy_SHA1MSG1__, + "sha1msg2" : __asm_proxy_SHA1MSG2__, + "sha1nexte" : __asm_proxy_SHA1NEXTE__, + "sha1rnds4" : __asm_proxy_SHA1RNDS4__, + "sha256msg1" : __asm_proxy_SHA256MSG1__, + "sha256msg2" : __asm_proxy_SHA256MSG2__, + "sha256rnds2" : __asm_proxy_SHA256RNDS2__, + "shlb" : __asm_proxy_SHLB__, + "shldl" : __asm_proxy_SHLDL__, + "shldq" : __asm_proxy_SHLDQ__, + "shldw" : __asm_proxy_SHLDW__, + "shll" : __asm_proxy_SHLL__, + "shlq" : __asm_proxy_SHLQ__, + "shlw" : __asm_proxy_SHLW__, + "shlxl" : __asm_proxy_SHLXL__, + "shlxq" : __asm_proxy_SHLXQ__, + "shrb" : __asm_proxy_SHRB__, + "shrdl" : __asm_proxy_SHRDL__, + "shrdq" : __asm_proxy_SHRDQ__, + "shrdw" : __asm_proxy_SHRDW__, + "shrl" : __asm_proxy_SHRL__, + "shrq" : __asm_proxy_SHRQ__, + "shrw" : __asm_proxy_SHRW__, + "shrxl" : __asm_proxy_SHRXL__, + "shrxq" : __asm_proxy_SHRXQ__, + "shufpd" : __asm_proxy_SHUFPD__, + "shufps" : __asm_proxy_SHUFPS__, + "sqrtpd" : __asm_proxy_SQRTPD__, + "sqrtps" : __asm_proxy_SQRTPS__, + "sqrtsd" : __asm_proxy_SQRTSD__, + "sqrtss" : __asm_proxy_SQRTSS__, + "stc" : __asm_proxy_STC__, + "std" : __asm_proxy_STD__, + "stmxcsr" : __asm_proxy_STMXCSR__, + "subb" : __asm_proxy_SUBB__, + "subl" : __asm_proxy_SUBL__, + "subpd" : __asm_proxy_SUBPD__, + "subps" : __asm_proxy_SUBPS__, + "subq" : __asm_proxy_SUBQ__, + "subsd" : __asm_proxy_SUBSD__, + "subss" : __asm_proxy_SUBSS__, + "subw" : __asm_proxy_SUBW__, + "syscall" : __asm_proxy_SYSCALL__, + "t1mskc" : __asm_proxy_T1MSKC__, + "testb" : __asm_proxy_TESTB__, + "testl" : __asm_proxy_TESTL__, + "testq" : __asm_proxy_TESTQ__, + "testw" : __asm_proxy_TESTW__, + "tzcntl" : __asm_proxy_TZCNTL__, + "tzcntq" : __asm_proxy_TZCNTQ__, + "tzcntw" : __asm_proxy_TZCNTW__, + "tzmsk" : __asm_proxy_TZMSK__, + "ucomisd" : __asm_proxy_UCOMISD__, + "ucomiss" : __asm_proxy_UCOMISS__, + "ud2" : __asm_proxy_UD2__, + "unpckhpd" : __asm_proxy_UNPCKHPD__, + "unpckhps" : __asm_proxy_UNPCKHPS__, + "unpcklpd" : __asm_proxy_UNPCKLPD__, + "unpcklps" : __asm_proxy_UNPCKLPS__, + "vaddpd" : __asm_proxy_VADDPD__, + "vaddps" : __asm_proxy_VADDPS__, + "vaddsd" : __asm_proxy_VADDSD__, + "vaddss" : __asm_proxy_VADDSS__, + "vaddsubpd" : __asm_proxy_VADDSUBPD__, + "vaddsubps" : __asm_proxy_VADDSUBPS__, + "vaesdec" : __asm_proxy_VAESDEC__, + "vaesdeclast" : __asm_proxy_VAESDECLAST__, + "vaesenc" : __asm_proxy_VAESENC__, + "vaesenclast" : __asm_proxy_VAESENCLAST__, + "vaesimc" : __asm_proxy_VAESIMC__, + "vaeskeygenassist" : __asm_proxy_VAESKEYGENASSIST__, + "valignd" : __asm_proxy_VALIGND__, + "valignq" : __asm_proxy_VALIGNQ__, + "vandnpd" : __asm_proxy_VANDNPD__, + "vandnps" : __asm_proxy_VANDNPS__, + "vandpd" : __asm_proxy_VANDPD__, + "vandps" : __asm_proxy_VANDPS__, + "vblendmpd" : __asm_proxy_VBLENDMPD__, + "vblendmps" : __asm_proxy_VBLENDMPS__, + "vblendpd" : __asm_proxy_VBLENDPD__, + "vblendps" : __asm_proxy_VBLENDPS__, + "vblendvpd" : __asm_proxy_VBLENDVPD__, + "vblendvps" : __asm_proxy_VBLENDVPS__, + "vbroadcastf128" : __asm_proxy_VBROADCASTF128__, + "vbroadcastf32x2" : __asm_proxy_VBROADCASTF32X2__, + "vbroadcastf32x4" : __asm_proxy_VBROADCASTF32X4__, + "vbroadcastf32x8" : __asm_proxy_VBROADCASTF32X8__, + "vbroadcastf64x2" : __asm_proxy_VBROADCASTF64X2__, + "vbroadcastf64x4" : __asm_proxy_VBROADCASTF64X4__, + "vbroadcasti128" : __asm_proxy_VBROADCASTI128__, + "vbroadcasti32x2" : __asm_proxy_VBROADCASTI32X2__, + "vbroadcasti32x4" : __asm_proxy_VBROADCASTI32X4__, + "vbroadcasti32x8" : __asm_proxy_VBROADCASTI32X8__, + "vbroadcasti64x2" : __asm_proxy_VBROADCASTI64X2__, + "vbroadcasti64x4" : __asm_proxy_VBROADCASTI64X4__, + "vbroadcastsd" : __asm_proxy_VBROADCASTSD__, + "vbroadcastss" : __asm_proxy_VBROADCASTSS__, + "vcmppd" : __asm_proxy_VCMPPD__, + "vcmpps" : __asm_proxy_VCMPPS__, + "vcmpsd" : __asm_proxy_VCMPSD__, + "vcmpss" : __asm_proxy_VCMPSS__, + "vcomisd" : __asm_proxy_VCOMISD__, + "vcomiss" : __asm_proxy_VCOMISS__, + "vcompresspd" : __asm_proxy_VCOMPRESSPD__, + "vcompressps" : __asm_proxy_VCOMPRESSPS__, + "vcvtdq2pd" : __asm_proxy_VCVTDQ2PD__, + "vcvtdq2ps" : __asm_proxy_VCVTDQ2PS__, + "vcvtpd2dq" : __asm_proxy_VCVTPD2DQ__, + "vcvtpd2ps" : __asm_proxy_VCVTPD2PS__, + "vcvtpd2qq" : __asm_proxy_VCVTPD2QQ__, + "vcvtpd2udq" : __asm_proxy_VCVTPD2UDQ__, + "vcvtpd2uqq" : __asm_proxy_VCVTPD2UQQ__, + "vcvtph2ps" : __asm_proxy_VCVTPH2PS__, + "vcvtps2dq" : __asm_proxy_VCVTPS2DQ__, + "vcvtps2pd" : __asm_proxy_VCVTPS2PD__, + "vcvtps2ph" : __asm_proxy_VCVTPS2PH__, + "vcvtps2qq" : __asm_proxy_VCVTPS2QQ__, + "vcvtps2udq" : __asm_proxy_VCVTPS2UDQ__, + "vcvtps2uqq" : __asm_proxy_VCVTPS2UQQ__, + "vcvtqq2pd" : __asm_proxy_VCVTQQ2PD__, + "vcvtqq2ps" : __asm_proxy_VCVTQQ2PS__, + "vcvtsd2si" : __asm_proxy_VCVTSD2SI__, + "vcvtsd2ss" : __asm_proxy_VCVTSD2SS__, + "vcvtsd2usi" : __asm_proxy_VCVTSD2USI__, + "vcvtsi2sd" : __asm_proxy_VCVTSI2SD__, + "vcvtsi2ss" : __asm_proxy_VCVTSI2SS__, + "vcvtss2sd" : __asm_proxy_VCVTSS2SD__, + "vcvtss2si" : __asm_proxy_VCVTSS2SI__, + "vcvtss2usi" : __asm_proxy_VCVTSS2USI__, + "vcvttpd2dq" : __asm_proxy_VCVTTPD2DQ__, + "vcvttpd2qq" : __asm_proxy_VCVTTPD2QQ__, + "vcvttpd2udq" : __asm_proxy_VCVTTPD2UDQ__, + "vcvttpd2uqq" : __asm_proxy_VCVTTPD2UQQ__, + "vcvttps2dq" : __asm_proxy_VCVTTPS2DQ__, + "vcvttps2qq" : __asm_proxy_VCVTTPS2QQ__, + "vcvttps2udq" : __asm_proxy_VCVTTPS2UDQ__, + "vcvttps2uqq" : __asm_proxy_VCVTTPS2UQQ__, + "vcvttsd2si" : __asm_proxy_VCVTTSD2SI__, + "vcvttsd2usi" : __asm_proxy_VCVTTSD2USI__, + "vcvttss2si" : __asm_proxy_VCVTTSS2SI__, + "vcvttss2usi" : __asm_proxy_VCVTTSS2USI__, + "vcvtudq2pd" : __asm_proxy_VCVTUDQ2PD__, + "vcvtudq2ps" : __asm_proxy_VCVTUDQ2PS__, + "vcvtuqq2pd" : __asm_proxy_VCVTUQQ2PD__, + "vcvtuqq2ps" : __asm_proxy_VCVTUQQ2PS__, + "vcvtusi2sd" : __asm_proxy_VCVTUSI2SD__, + "vcvtusi2ss" : __asm_proxy_VCVTUSI2SS__, + "vdbpsadbw" : __asm_proxy_VDBPSADBW__, + "vdivpd" : __asm_proxy_VDIVPD__, + "vdivps" : __asm_proxy_VDIVPS__, + "vdivsd" : __asm_proxy_VDIVSD__, + "vdivss" : __asm_proxy_VDIVSS__, + "vdppd" : __asm_proxy_VDPPD__, + "vdpps" : __asm_proxy_VDPPS__, + "vexp2pd" : __asm_proxy_VEXP2PD__, + "vexp2ps" : __asm_proxy_VEXP2PS__, + "vexpandpd" : __asm_proxy_VEXPANDPD__, + "vexpandps" : __asm_proxy_VEXPANDPS__, + "vextractf128" : __asm_proxy_VEXTRACTF128__, + "vextractf32x4" : __asm_proxy_VEXTRACTF32X4__, + "vextractf32x8" : __asm_proxy_VEXTRACTF32X8__, + "vextractf64x2" : __asm_proxy_VEXTRACTF64X2__, + "vextractf64x4" : __asm_proxy_VEXTRACTF64X4__, + "vextracti128" : __asm_proxy_VEXTRACTI128__, + "vextracti32x4" : __asm_proxy_VEXTRACTI32X4__, + "vextracti32x8" : __asm_proxy_VEXTRACTI32X8__, + "vextracti64x2" : __asm_proxy_VEXTRACTI64X2__, + "vextracti64x4" : __asm_proxy_VEXTRACTI64X4__, + "vextractps" : __asm_proxy_VEXTRACTPS__, + "vfixupimmpd" : __asm_proxy_VFIXUPIMMPD__, + "vfixupimmps" : __asm_proxy_VFIXUPIMMPS__, + "vfixupimmsd" : __asm_proxy_VFIXUPIMMSD__, + "vfixupimmss" : __asm_proxy_VFIXUPIMMSS__, + "vfmadd132pd" : __asm_proxy_VFMADD132PD__, + "vfmadd132ps" : __asm_proxy_VFMADD132PS__, + "vfmadd132sd" : __asm_proxy_VFMADD132SD__, + "vfmadd132ss" : __asm_proxy_VFMADD132SS__, + "vfmadd213pd" : __asm_proxy_VFMADD213PD__, + "vfmadd213ps" : __asm_proxy_VFMADD213PS__, + "vfmadd213sd" : __asm_proxy_VFMADD213SD__, + "vfmadd213ss" : __asm_proxy_VFMADD213SS__, + "vfmadd231pd" : __asm_proxy_VFMADD231PD__, + "vfmadd231ps" : __asm_proxy_VFMADD231PS__, + "vfmadd231sd" : __asm_proxy_VFMADD231SD__, + "vfmadd231ss" : __asm_proxy_VFMADD231SS__, + "vfmaddpd" : __asm_proxy_VFMADDPD__, + "vfmaddps" : __asm_proxy_VFMADDPS__, + "vfmaddsd" : __asm_proxy_VFMADDSD__, + "vfmaddss" : __asm_proxy_VFMADDSS__, + "vfmaddsub132pd" : __asm_proxy_VFMADDSUB132PD__, + "vfmaddsub132ps" : __asm_proxy_VFMADDSUB132PS__, + "vfmaddsub213pd" : __asm_proxy_VFMADDSUB213PD__, + "vfmaddsub213ps" : __asm_proxy_VFMADDSUB213PS__, + "vfmaddsub231pd" : __asm_proxy_VFMADDSUB231PD__, + "vfmaddsub231ps" : __asm_proxy_VFMADDSUB231PS__, + "vfmaddsubpd" : __asm_proxy_VFMADDSUBPD__, + "vfmaddsubps" : __asm_proxy_VFMADDSUBPS__, + "vfmsub132pd" : __asm_proxy_VFMSUB132PD__, + "vfmsub132ps" : __asm_proxy_VFMSUB132PS__, + "vfmsub132sd" : __asm_proxy_VFMSUB132SD__, + "vfmsub132ss" : __asm_proxy_VFMSUB132SS__, + "vfmsub213pd" : __asm_proxy_VFMSUB213PD__, + "vfmsub213ps" : __asm_proxy_VFMSUB213PS__, + "vfmsub213sd" : __asm_proxy_VFMSUB213SD__, + "vfmsub213ss" : __asm_proxy_VFMSUB213SS__, + "vfmsub231pd" : __asm_proxy_VFMSUB231PD__, + "vfmsub231ps" : __asm_proxy_VFMSUB231PS__, + "vfmsub231sd" : __asm_proxy_VFMSUB231SD__, + "vfmsub231ss" : __asm_proxy_VFMSUB231SS__, + "vfmsubadd132pd" : __asm_proxy_VFMSUBADD132PD__, + "vfmsubadd132ps" : __asm_proxy_VFMSUBADD132PS__, + "vfmsubadd213pd" : __asm_proxy_VFMSUBADD213PD__, + "vfmsubadd213ps" : __asm_proxy_VFMSUBADD213PS__, + "vfmsubadd231pd" : __asm_proxy_VFMSUBADD231PD__, + "vfmsubadd231ps" : __asm_proxy_VFMSUBADD231PS__, + "vfmsubaddpd" : __asm_proxy_VFMSUBADDPD__, + "vfmsubaddps" : __asm_proxy_VFMSUBADDPS__, + "vfmsubpd" : __asm_proxy_VFMSUBPD__, + "vfmsubps" : __asm_proxy_VFMSUBPS__, + "vfmsubsd" : __asm_proxy_VFMSUBSD__, + "vfmsubss" : __asm_proxy_VFMSUBSS__, + "vfnmadd132pd" : __asm_proxy_VFNMADD132PD__, + "vfnmadd132ps" : __asm_proxy_VFNMADD132PS__, + "vfnmadd132sd" : __asm_proxy_VFNMADD132SD__, + "vfnmadd132ss" : __asm_proxy_VFNMADD132SS__, + "vfnmadd213pd" : __asm_proxy_VFNMADD213PD__, + "vfnmadd213ps" : __asm_proxy_VFNMADD213PS__, + "vfnmadd213sd" : __asm_proxy_VFNMADD213SD__, + "vfnmadd213ss" : __asm_proxy_VFNMADD213SS__, + "vfnmadd231pd" : __asm_proxy_VFNMADD231PD__, + "vfnmadd231ps" : __asm_proxy_VFNMADD231PS__, + "vfnmadd231sd" : __asm_proxy_VFNMADD231SD__, + "vfnmadd231ss" : __asm_proxy_VFNMADD231SS__, + "vfnmaddpd" : __asm_proxy_VFNMADDPD__, + "vfnmaddps" : __asm_proxy_VFNMADDPS__, + "vfnmaddsd" : __asm_proxy_VFNMADDSD__, + "vfnmaddss" : __asm_proxy_VFNMADDSS__, + "vfnmsub132pd" : __asm_proxy_VFNMSUB132PD__, + "vfnmsub132ps" : __asm_proxy_VFNMSUB132PS__, + "vfnmsub132sd" : __asm_proxy_VFNMSUB132SD__, + "vfnmsub132ss" : __asm_proxy_VFNMSUB132SS__, + "vfnmsub213pd" : __asm_proxy_VFNMSUB213PD__, + "vfnmsub213ps" : __asm_proxy_VFNMSUB213PS__, + "vfnmsub213sd" : __asm_proxy_VFNMSUB213SD__, + "vfnmsub213ss" : __asm_proxy_VFNMSUB213SS__, + "vfnmsub231pd" : __asm_proxy_VFNMSUB231PD__, + "vfnmsub231ps" : __asm_proxy_VFNMSUB231PS__, + "vfnmsub231sd" : __asm_proxy_VFNMSUB231SD__, + "vfnmsub231ss" : __asm_proxy_VFNMSUB231SS__, + "vfnmsubpd" : __asm_proxy_VFNMSUBPD__, + "vfnmsubps" : __asm_proxy_VFNMSUBPS__, + "vfnmsubsd" : __asm_proxy_VFNMSUBSD__, + "vfnmsubss" : __asm_proxy_VFNMSUBSS__, + "vfpclasspd" : __asm_proxy_VFPCLASSPD__, + "vfpclassps" : __asm_proxy_VFPCLASSPS__, + "vfpclasssd" : __asm_proxy_VFPCLASSSD__, + "vfpclassss" : __asm_proxy_VFPCLASSSS__, + "vfrczpd" : __asm_proxy_VFRCZPD__, + "vfrczps" : __asm_proxy_VFRCZPS__, + "vfrczsd" : __asm_proxy_VFRCZSD__, + "vfrczss" : __asm_proxy_VFRCZSS__, + "vgatherdpd" : __asm_proxy_VGATHERDPD__, + "vgatherdps" : __asm_proxy_VGATHERDPS__, + "vgatherpf0dpd" : __asm_proxy_VGATHERPF0DPD__, + "vgatherpf0dps" : __asm_proxy_VGATHERPF0DPS__, + "vgatherpf0qpd" : __asm_proxy_VGATHERPF0QPD__, + "vgatherpf0qps" : __asm_proxy_VGATHERPF0QPS__, + "vgatherpf1dpd" : __asm_proxy_VGATHERPF1DPD__, + "vgatherpf1dps" : __asm_proxy_VGATHERPF1DPS__, + "vgatherpf1qpd" : __asm_proxy_VGATHERPF1QPD__, + "vgatherpf1qps" : __asm_proxy_VGATHERPF1QPS__, + "vgatherqpd" : __asm_proxy_VGATHERQPD__, + "vgatherqps" : __asm_proxy_VGATHERQPS__, + "vgetexppd" : __asm_proxy_VGETEXPPD__, + "vgetexpps" : __asm_proxy_VGETEXPPS__, + "vgetexpsd" : __asm_proxy_VGETEXPSD__, + "vgetexpss" : __asm_proxy_VGETEXPSS__, + "vgetmantpd" : __asm_proxy_VGETMANTPD__, + "vgetmantps" : __asm_proxy_VGETMANTPS__, + "vgetmantsd" : __asm_proxy_VGETMANTSD__, + "vgetmantss" : __asm_proxy_VGETMANTSS__, + "vhaddpd" : __asm_proxy_VHADDPD__, + "vhaddps" : __asm_proxy_VHADDPS__, + "vhsubpd" : __asm_proxy_VHSUBPD__, + "vhsubps" : __asm_proxy_VHSUBPS__, + "vinsertf128" : __asm_proxy_VINSERTF128__, + "vinsertf32x4" : __asm_proxy_VINSERTF32X4__, + "vinsertf32x8" : __asm_proxy_VINSERTF32X8__, + "vinsertf64x2" : __asm_proxy_VINSERTF64X2__, + "vinsertf64x4" : __asm_proxy_VINSERTF64X4__, + "vinserti128" : __asm_proxy_VINSERTI128__, + "vinserti32x4" : __asm_proxy_VINSERTI32X4__, + "vinserti32x8" : __asm_proxy_VINSERTI32X8__, + "vinserti64x2" : __asm_proxy_VINSERTI64X2__, + "vinserti64x4" : __asm_proxy_VINSERTI64X4__, + "vinsertps" : __asm_proxy_VINSERTPS__, + "vlddqu" : __asm_proxy_VLDDQU__, + "vldmxcsr" : __asm_proxy_VLDMXCSR__, + "vmaskmovdqu" : __asm_proxy_VMASKMOVDQU__, + "vmaskmovpd" : __asm_proxy_VMASKMOVPD__, + "vmaskmovps" : __asm_proxy_VMASKMOVPS__, + "vmaxpd" : __asm_proxy_VMAXPD__, + "vmaxps" : __asm_proxy_VMAXPS__, + "vmaxsd" : __asm_proxy_VMAXSD__, + "vmaxss" : __asm_proxy_VMAXSS__, + "vminpd" : __asm_proxy_VMINPD__, + "vminps" : __asm_proxy_VMINPS__, + "vminsd" : __asm_proxy_VMINSD__, + "vminss" : __asm_proxy_VMINSS__, + "vmovapd" : __asm_proxy_VMOVAPD__, + "vmovaps" : __asm_proxy_VMOVAPS__, + "vmovd" : __asm_proxy_VMOVD__, + "vmovddup" : __asm_proxy_VMOVDDUP__, + "vmovdqa" : __asm_proxy_VMOVDQA__, + "vmovdqa32" : __asm_proxy_VMOVDQA32__, + "vmovdqa64" : __asm_proxy_VMOVDQA64__, + "vmovdqu" : __asm_proxy_VMOVDQU__, + "vmovdqu16" : __asm_proxy_VMOVDQU16__, + "vmovdqu32" : __asm_proxy_VMOVDQU32__, + "vmovdqu64" : __asm_proxy_VMOVDQU64__, + "vmovdqu8" : __asm_proxy_VMOVDQU8__, + "vmovhlps" : __asm_proxy_VMOVHLPS__, + "vmovhpd" : __asm_proxy_VMOVHPD__, + "vmovhps" : __asm_proxy_VMOVHPS__, + "vmovlhps" : __asm_proxy_VMOVLHPS__, + "vmovlpd" : __asm_proxy_VMOVLPD__, + "vmovlps" : __asm_proxy_VMOVLPS__, + "vmovmskpd" : __asm_proxy_VMOVMSKPD__, + "vmovmskps" : __asm_proxy_VMOVMSKPS__, + "vmovntdq" : __asm_proxy_VMOVNTDQ__, + "vmovntdqa" : __asm_proxy_VMOVNTDQA__, + "vmovntpd" : __asm_proxy_VMOVNTPD__, + "vmovntps" : __asm_proxy_VMOVNTPS__, + "vmovq" : __asm_proxy_VMOVQ__, + "vmovsd" : __asm_proxy_VMOVSD__, + "vmovshdup" : __asm_proxy_VMOVSHDUP__, + "vmovsldup" : __asm_proxy_VMOVSLDUP__, + "vmovss" : __asm_proxy_VMOVSS__, + "vmovupd" : __asm_proxy_VMOVUPD__, + "vmovups" : __asm_proxy_VMOVUPS__, + "vmpsadbw" : __asm_proxy_VMPSADBW__, + "vmulpd" : __asm_proxy_VMULPD__, + "vmulps" : __asm_proxy_VMULPS__, + "vmulsd" : __asm_proxy_VMULSD__, + "vmulss" : __asm_proxy_VMULSS__, + "vorpd" : __asm_proxy_VORPD__, + "vorps" : __asm_proxy_VORPS__, + "vpabsb" : __asm_proxy_VPABSB__, + "vpabsd" : __asm_proxy_VPABSD__, + "vpabsq" : __asm_proxy_VPABSQ__, + "vpabsw" : __asm_proxy_VPABSW__, + "vpackssdw" : __asm_proxy_VPACKSSDW__, + "vpacksswb" : __asm_proxy_VPACKSSWB__, + "vpackusdw" : __asm_proxy_VPACKUSDW__, + "vpackuswb" : __asm_proxy_VPACKUSWB__, + "vpaddb" : __asm_proxy_VPADDB__, + "vpaddd" : __asm_proxy_VPADDD__, + "vpaddq" : __asm_proxy_VPADDQ__, + "vpaddsb" : __asm_proxy_VPADDSB__, + "vpaddsw" : __asm_proxy_VPADDSW__, + "vpaddusb" : __asm_proxy_VPADDUSB__, + "vpaddusw" : __asm_proxy_VPADDUSW__, + "vpaddw" : __asm_proxy_VPADDW__, + "vpalignr" : __asm_proxy_VPALIGNR__, + "vpand" : __asm_proxy_VPAND__, + "vpandd" : __asm_proxy_VPANDD__, + "vpandn" : __asm_proxy_VPANDN__, + "vpandnd" : __asm_proxy_VPANDND__, + "vpandnq" : __asm_proxy_VPANDNQ__, + "vpandq" : __asm_proxy_VPANDQ__, + "vpavgb" : __asm_proxy_VPAVGB__, + "vpavgw" : __asm_proxy_VPAVGW__, + "vpblendd" : __asm_proxy_VPBLENDD__, + "vpblendmb" : __asm_proxy_VPBLENDMB__, + "vpblendmd" : __asm_proxy_VPBLENDMD__, + "vpblendmq" : __asm_proxy_VPBLENDMQ__, + "vpblendmw" : __asm_proxy_VPBLENDMW__, + "vpblendvb" : __asm_proxy_VPBLENDVB__, + "vpblendw" : __asm_proxy_VPBLENDW__, + "vpbroadcastb" : __asm_proxy_VPBROADCASTB__, + "vpbroadcastd" : __asm_proxy_VPBROADCASTD__, + "vpbroadcastmb2q" : __asm_proxy_VPBROADCASTMB2Q__, + "vpbroadcastmw2d" : __asm_proxy_VPBROADCASTMW2D__, + "vpbroadcastq" : __asm_proxy_VPBROADCASTQ__, + "vpbroadcastw" : __asm_proxy_VPBROADCASTW__, + "vpclmulqdq" : __asm_proxy_VPCLMULQDQ__, + "vpcmov" : __asm_proxy_VPCMOV__, + "vpcmpb" : __asm_proxy_VPCMPB__, + "vpcmpd" : __asm_proxy_VPCMPD__, + "vpcmpeqb" : __asm_proxy_VPCMPEQB__, + "vpcmpeqd" : __asm_proxy_VPCMPEQD__, + "vpcmpeqq" : __asm_proxy_VPCMPEQQ__, + "vpcmpeqw" : __asm_proxy_VPCMPEQW__, + "vpcmpestri" : __asm_proxy_VPCMPESTRI__, + "vpcmpestrm" : __asm_proxy_VPCMPESTRM__, + "vpcmpgtb" : __asm_proxy_VPCMPGTB__, + "vpcmpgtd" : __asm_proxy_VPCMPGTD__, + "vpcmpgtq" : __asm_proxy_VPCMPGTQ__, + "vpcmpgtw" : __asm_proxy_VPCMPGTW__, + "vpcmpistri" : __asm_proxy_VPCMPISTRI__, + "vpcmpistrm" : __asm_proxy_VPCMPISTRM__, + "vpcmpq" : __asm_proxy_VPCMPQ__, + "vpcmpub" : __asm_proxy_VPCMPUB__, + "vpcmpud" : __asm_proxy_VPCMPUD__, + "vpcmpuq" : __asm_proxy_VPCMPUQ__, + "vpcmpuw" : __asm_proxy_VPCMPUW__, + "vpcmpw" : __asm_proxy_VPCMPW__, + "vpcomb" : __asm_proxy_VPCOMB__, + "vpcomd" : __asm_proxy_VPCOMD__, + "vpcompressd" : __asm_proxy_VPCOMPRESSD__, + "vpcompressq" : __asm_proxy_VPCOMPRESSQ__, + "vpcomq" : __asm_proxy_VPCOMQ__, + "vpcomub" : __asm_proxy_VPCOMUB__, + "vpcomud" : __asm_proxy_VPCOMUD__, + "vpcomuq" : __asm_proxy_VPCOMUQ__, + "vpcomuw" : __asm_proxy_VPCOMUW__, + "vpcomw" : __asm_proxy_VPCOMW__, + "vpconflictd" : __asm_proxy_VPCONFLICTD__, + "vpconflictq" : __asm_proxy_VPCONFLICTQ__, + "vperm2f128" : __asm_proxy_VPERM2F128__, + "vperm2i128" : __asm_proxy_VPERM2I128__, + "vpermb" : __asm_proxy_VPERMB__, + "vpermd" : __asm_proxy_VPERMD__, + "vpermi2b" : __asm_proxy_VPERMI2B__, + "vpermi2d" : __asm_proxy_VPERMI2D__, + "vpermi2pd" : __asm_proxy_VPERMI2PD__, + "vpermi2ps" : __asm_proxy_VPERMI2PS__, + "vpermi2q" : __asm_proxy_VPERMI2Q__, + "vpermi2w" : __asm_proxy_VPERMI2W__, + "vpermil2pd" : __asm_proxy_VPERMIL2PD__, + "vpermil2ps" : __asm_proxy_VPERMIL2PS__, + "vpermilpd" : __asm_proxy_VPERMILPD__, + "vpermilps" : __asm_proxy_VPERMILPS__, + "vpermpd" : __asm_proxy_VPERMPD__, + "vpermps" : __asm_proxy_VPERMPS__, + "vpermq" : __asm_proxy_VPERMQ__, + "vpermt2b" : __asm_proxy_VPERMT2B__, + "vpermt2d" : __asm_proxy_VPERMT2D__, + "vpermt2pd" : __asm_proxy_VPERMT2PD__, + "vpermt2ps" : __asm_proxy_VPERMT2PS__, + "vpermt2q" : __asm_proxy_VPERMT2Q__, + "vpermt2w" : __asm_proxy_VPERMT2W__, + "vpermw" : __asm_proxy_VPERMW__, + "vpexpandd" : __asm_proxy_VPEXPANDD__, + "vpexpandq" : __asm_proxy_VPEXPANDQ__, + "vpextrb" : __asm_proxy_VPEXTRB__, + "vpextrd" : __asm_proxy_VPEXTRD__, + "vpextrq" : __asm_proxy_VPEXTRQ__, + "vpextrw" : __asm_proxy_VPEXTRW__, + "vpgatherdd" : __asm_proxy_VPGATHERDD__, + "vpgatherdq" : __asm_proxy_VPGATHERDQ__, + "vpgatherqd" : __asm_proxy_VPGATHERQD__, + "vpgatherqq" : __asm_proxy_VPGATHERQQ__, + "vphaddbd" : __asm_proxy_VPHADDBD__, + "vphaddbq" : __asm_proxy_VPHADDBQ__, + "vphaddbw" : __asm_proxy_VPHADDBW__, + "vphaddd" : __asm_proxy_VPHADDD__, + "vphadddq" : __asm_proxy_VPHADDDQ__, + "vphaddsw" : __asm_proxy_VPHADDSW__, + "vphaddubd" : __asm_proxy_VPHADDUBD__, + "vphaddubq" : __asm_proxy_VPHADDUBQ__, + "vphaddubw" : __asm_proxy_VPHADDUBW__, + "vphaddudq" : __asm_proxy_VPHADDUDQ__, + "vphadduwd" : __asm_proxy_VPHADDUWD__, + "vphadduwq" : __asm_proxy_VPHADDUWQ__, + "vphaddw" : __asm_proxy_VPHADDW__, + "vphaddwd" : __asm_proxy_VPHADDWD__, + "vphaddwq" : __asm_proxy_VPHADDWQ__, + "vphminposuw" : __asm_proxy_VPHMINPOSUW__, + "vphsubbw" : __asm_proxy_VPHSUBBW__, + "vphsubd" : __asm_proxy_VPHSUBD__, + "vphsubdq" : __asm_proxy_VPHSUBDQ__, + "vphsubsw" : __asm_proxy_VPHSUBSW__, + "vphsubw" : __asm_proxy_VPHSUBW__, + "vphsubwd" : __asm_proxy_VPHSUBWD__, + "vpinsrb" : __asm_proxy_VPINSRB__, + "vpinsrd" : __asm_proxy_VPINSRD__, + "vpinsrq" : __asm_proxy_VPINSRQ__, + "vpinsrw" : __asm_proxy_VPINSRW__, + "vplzcntd" : __asm_proxy_VPLZCNTD__, + "vplzcntq" : __asm_proxy_VPLZCNTQ__, + "vpmacsdd" : __asm_proxy_VPMACSDD__, + "vpmacsdqh" : __asm_proxy_VPMACSDQH__, + "vpmacsdql" : __asm_proxy_VPMACSDQL__, + "vpmacssdd" : __asm_proxy_VPMACSSDD__, + "vpmacssdqh" : __asm_proxy_VPMACSSDQH__, + "vpmacssdql" : __asm_proxy_VPMACSSDQL__, + "vpmacsswd" : __asm_proxy_VPMACSSWD__, + "vpmacssww" : __asm_proxy_VPMACSSWW__, + "vpmacswd" : __asm_proxy_VPMACSWD__, + "vpmacsww" : __asm_proxy_VPMACSWW__, + "vpmadcsswd" : __asm_proxy_VPMADCSSWD__, + "vpmadcswd" : __asm_proxy_VPMADCSWD__, + "vpmadd52huq" : __asm_proxy_VPMADD52HUQ__, + "vpmadd52luq" : __asm_proxy_VPMADD52LUQ__, + "vpmaddubsw" : __asm_proxy_VPMADDUBSW__, + "vpmaddwd" : __asm_proxy_VPMADDWD__, + "vpmaskmovd" : __asm_proxy_VPMASKMOVD__, + "vpmaskmovq" : __asm_proxy_VPMASKMOVQ__, + "vpmaxsb" : __asm_proxy_VPMAXSB__, + "vpmaxsd" : __asm_proxy_VPMAXSD__, + "vpmaxsq" : __asm_proxy_VPMAXSQ__, + "vpmaxsw" : __asm_proxy_VPMAXSW__, + "vpmaxub" : __asm_proxy_VPMAXUB__, + "vpmaxud" : __asm_proxy_VPMAXUD__, + "vpmaxuq" : __asm_proxy_VPMAXUQ__, + "vpmaxuw" : __asm_proxy_VPMAXUW__, + "vpminsb" : __asm_proxy_VPMINSB__, + "vpminsd" : __asm_proxy_VPMINSD__, + "vpminsq" : __asm_proxy_VPMINSQ__, + "vpminsw" : __asm_proxy_VPMINSW__, + "vpminub" : __asm_proxy_VPMINUB__, + "vpminud" : __asm_proxy_VPMINUD__, + "vpminuq" : __asm_proxy_VPMINUQ__, + "vpminuw" : __asm_proxy_VPMINUW__, + "vpmovb2m" : __asm_proxy_VPMOVB2M__, + "vpmovd2m" : __asm_proxy_VPMOVD2M__, + "vpmovdb" : __asm_proxy_VPMOVDB__, + "vpmovdw" : __asm_proxy_VPMOVDW__, + "vpmovm2b" : __asm_proxy_VPMOVM2B__, + "vpmovm2d" : __asm_proxy_VPMOVM2D__, + "vpmovm2q" : __asm_proxy_VPMOVM2Q__, + "vpmovm2w" : __asm_proxy_VPMOVM2W__, + "vpmovmskb" : __asm_proxy_VPMOVMSKB__, + "vpmovq2m" : __asm_proxy_VPMOVQ2M__, + "vpmovqb" : __asm_proxy_VPMOVQB__, + "vpmovqd" : __asm_proxy_VPMOVQD__, + "vpmovqw" : __asm_proxy_VPMOVQW__, + "vpmovsdb" : __asm_proxy_VPMOVSDB__, + "vpmovsdw" : __asm_proxy_VPMOVSDW__, + "vpmovsqb" : __asm_proxy_VPMOVSQB__, + "vpmovsqd" : __asm_proxy_VPMOVSQD__, + "vpmovsqw" : __asm_proxy_VPMOVSQW__, + "vpmovswb" : __asm_proxy_VPMOVSWB__, + "vpmovsxbd" : __asm_proxy_VPMOVSXBD__, + "vpmovsxbq" : __asm_proxy_VPMOVSXBQ__, + "vpmovsxbw" : __asm_proxy_VPMOVSXBW__, + "vpmovsxdq" : __asm_proxy_VPMOVSXDQ__, + "vpmovsxwd" : __asm_proxy_VPMOVSXWD__, + "vpmovsxwq" : __asm_proxy_VPMOVSXWQ__, + "vpmovusdb" : __asm_proxy_VPMOVUSDB__, + "vpmovusdw" : __asm_proxy_VPMOVUSDW__, + "vpmovusqb" : __asm_proxy_VPMOVUSQB__, + "vpmovusqd" : __asm_proxy_VPMOVUSQD__, + "vpmovusqw" : __asm_proxy_VPMOVUSQW__, + "vpmovuswb" : __asm_proxy_VPMOVUSWB__, + "vpmovw2m" : __asm_proxy_VPMOVW2M__, + "vpmovwb" : __asm_proxy_VPMOVWB__, + "vpmovzxbd" : __asm_proxy_VPMOVZXBD__, + "vpmovzxbq" : __asm_proxy_VPMOVZXBQ__, + "vpmovzxbw" : __asm_proxy_VPMOVZXBW__, + "vpmovzxdq" : __asm_proxy_VPMOVZXDQ__, + "vpmovzxwd" : __asm_proxy_VPMOVZXWD__, + "vpmovzxwq" : __asm_proxy_VPMOVZXWQ__, + "vpmuldq" : __asm_proxy_VPMULDQ__, + "vpmulhrsw" : __asm_proxy_VPMULHRSW__, + "vpmulhuw" : __asm_proxy_VPMULHUW__, + "vpmulhw" : __asm_proxy_VPMULHW__, + "vpmulld" : __asm_proxy_VPMULLD__, + "vpmullq" : __asm_proxy_VPMULLQ__, + "vpmullw" : __asm_proxy_VPMULLW__, + "vpmultishiftqb" : __asm_proxy_VPMULTISHIFTQB__, + "vpmuludq" : __asm_proxy_VPMULUDQ__, + "vpopcntd" : __asm_proxy_VPOPCNTD__, + "vpopcntq" : __asm_proxy_VPOPCNTQ__, + "vpor" : __asm_proxy_VPOR__, + "vpord" : __asm_proxy_VPORD__, + "vporq" : __asm_proxy_VPORQ__, + "vpperm" : __asm_proxy_VPPERM__, + "vprold" : __asm_proxy_VPROLD__, + "vprolq" : __asm_proxy_VPROLQ__, + "vprolvd" : __asm_proxy_VPROLVD__, + "vprolvq" : __asm_proxy_VPROLVQ__, + "vprord" : __asm_proxy_VPRORD__, + "vprorq" : __asm_proxy_VPRORQ__, + "vprorvd" : __asm_proxy_VPRORVD__, + "vprorvq" : __asm_proxy_VPRORVQ__, + "vprotb" : __asm_proxy_VPROTB__, + "vprotd" : __asm_proxy_VPROTD__, + "vprotq" : __asm_proxy_VPROTQ__, + "vprotw" : __asm_proxy_VPROTW__, + "vpsadbw" : __asm_proxy_VPSADBW__, + "vpscatterdd" : __asm_proxy_VPSCATTERDD__, + "vpscatterdq" : __asm_proxy_VPSCATTERDQ__, + "vpscatterqd" : __asm_proxy_VPSCATTERQD__, + "vpscatterqq" : __asm_proxy_VPSCATTERQQ__, + "vpshab" : __asm_proxy_VPSHAB__, + "vpshad" : __asm_proxy_VPSHAD__, + "vpshaq" : __asm_proxy_VPSHAQ__, + "vpshaw" : __asm_proxy_VPSHAW__, + "vpshlb" : __asm_proxy_VPSHLB__, + "vpshld" : __asm_proxy_VPSHLD__, + "vpshlq" : __asm_proxy_VPSHLQ__, + "vpshlw" : __asm_proxy_VPSHLW__, + "vpshufb" : __asm_proxy_VPSHUFB__, + "vpshufd" : __asm_proxy_VPSHUFD__, + "vpshufhw" : __asm_proxy_VPSHUFHW__, + "vpshuflw" : __asm_proxy_VPSHUFLW__, + "vpsignb" : __asm_proxy_VPSIGNB__, + "vpsignd" : __asm_proxy_VPSIGND__, + "vpsignw" : __asm_proxy_VPSIGNW__, + "vpslld" : __asm_proxy_VPSLLD__, + "vpslldq" : __asm_proxy_VPSLLDQ__, + "vpsllq" : __asm_proxy_VPSLLQ__, + "vpsllvd" : __asm_proxy_VPSLLVD__, + "vpsllvq" : __asm_proxy_VPSLLVQ__, + "vpsllvw" : __asm_proxy_VPSLLVW__, + "vpsllw" : __asm_proxy_VPSLLW__, + "vpsrad" : __asm_proxy_VPSRAD__, + "vpsraq" : __asm_proxy_VPSRAQ__, + "vpsravd" : __asm_proxy_VPSRAVD__, + "vpsravq" : __asm_proxy_VPSRAVQ__, + "vpsravw" : __asm_proxy_VPSRAVW__, + "vpsraw" : __asm_proxy_VPSRAW__, + "vpsrld" : __asm_proxy_VPSRLD__, + "vpsrldq" : __asm_proxy_VPSRLDQ__, + "vpsrlq" : __asm_proxy_VPSRLQ__, + "vpsrlvd" : __asm_proxy_VPSRLVD__, + "vpsrlvq" : __asm_proxy_VPSRLVQ__, + "vpsrlvw" : __asm_proxy_VPSRLVW__, + "vpsrlw" : __asm_proxy_VPSRLW__, + "vpsubb" : __asm_proxy_VPSUBB__, + "vpsubd" : __asm_proxy_VPSUBD__, + "vpsubq" : __asm_proxy_VPSUBQ__, + "vpsubsb" : __asm_proxy_VPSUBSB__, + "vpsubsw" : __asm_proxy_VPSUBSW__, + "vpsubusb" : __asm_proxy_VPSUBUSB__, + "vpsubusw" : __asm_proxy_VPSUBUSW__, + "vpsubw" : __asm_proxy_VPSUBW__, + "vpternlogd" : __asm_proxy_VPTERNLOGD__, + "vpternlogq" : __asm_proxy_VPTERNLOGQ__, + "vptest" : __asm_proxy_VPTEST__, + "vptestmb" : __asm_proxy_VPTESTMB__, + "vptestmd" : __asm_proxy_VPTESTMD__, + "vptestmq" : __asm_proxy_VPTESTMQ__, + "vptestmw" : __asm_proxy_VPTESTMW__, + "vptestnmb" : __asm_proxy_VPTESTNMB__, + "vptestnmd" : __asm_proxy_VPTESTNMD__, + "vptestnmq" : __asm_proxy_VPTESTNMQ__, + "vptestnmw" : __asm_proxy_VPTESTNMW__, + "vpunpckhbw" : __asm_proxy_VPUNPCKHBW__, + "vpunpckhdq" : __asm_proxy_VPUNPCKHDQ__, + "vpunpckhqdq" : __asm_proxy_VPUNPCKHQDQ__, + "vpunpckhwd" : __asm_proxy_VPUNPCKHWD__, + "vpunpcklbw" : __asm_proxy_VPUNPCKLBW__, + "vpunpckldq" : __asm_proxy_VPUNPCKLDQ__, + "vpunpcklqdq" : __asm_proxy_VPUNPCKLQDQ__, + "vpunpcklwd" : __asm_proxy_VPUNPCKLWD__, + "vpxor" : __asm_proxy_VPXOR__, + "vpxord" : __asm_proxy_VPXORD__, + "vpxorq" : __asm_proxy_VPXORQ__, + "vrangepd" : __asm_proxy_VRANGEPD__, + "vrangeps" : __asm_proxy_VRANGEPS__, + "vrangesd" : __asm_proxy_VRANGESD__, + "vrangess" : __asm_proxy_VRANGESS__, + "vrcp14pd" : __asm_proxy_VRCP14PD__, + "vrcp14ps" : __asm_proxy_VRCP14PS__, + "vrcp14sd" : __asm_proxy_VRCP14SD__, + "vrcp14ss" : __asm_proxy_VRCP14SS__, + "vrcp28pd" : __asm_proxy_VRCP28PD__, + "vrcp28ps" : __asm_proxy_VRCP28PS__, + "vrcp28sd" : __asm_proxy_VRCP28SD__, + "vrcp28ss" : __asm_proxy_VRCP28SS__, + "vrcpps" : __asm_proxy_VRCPPS__, + "vrcpss" : __asm_proxy_VRCPSS__, + "vreducepd" : __asm_proxy_VREDUCEPD__, + "vreduceps" : __asm_proxy_VREDUCEPS__, + "vreducesd" : __asm_proxy_VREDUCESD__, + "vreducess" : __asm_proxy_VREDUCESS__, + "vrndscalepd" : __asm_proxy_VRNDSCALEPD__, + "vrndscaleps" : __asm_proxy_VRNDSCALEPS__, + "vrndscalesd" : __asm_proxy_VRNDSCALESD__, + "vrndscaless" : __asm_proxy_VRNDSCALESS__, + "vroundpd" : __asm_proxy_VROUNDPD__, + "vroundps" : __asm_proxy_VROUNDPS__, + "vroundsd" : __asm_proxy_VROUNDSD__, + "vroundss" : __asm_proxy_VROUNDSS__, + "vrsqrt14pd" : __asm_proxy_VRSQRT14PD__, + "vrsqrt14ps" : __asm_proxy_VRSQRT14PS__, + "vrsqrt14sd" : __asm_proxy_VRSQRT14SD__, + "vrsqrt14ss" : __asm_proxy_VRSQRT14SS__, + "vrsqrt28pd" : __asm_proxy_VRSQRT28PD__, + "vrsqrt28ps" : __asm_proxy_VRSQRT28PS__, + "vrsqrt28sd" : __asm_proxy_VRSQRT28SD__, + "vrsqrt28ss" : __asm_proxy_VRSQRT28SS__, + "vrsqrtps" : __asm_proxy_VRSQRTPS__, + "vrsqrtss" : __asm_proxy_VRSQRTSS__, + "vscalefpd" : __asm_proxy_VSCALEFPD__, + "vscalefps" : __asm_proxy_VSCALEFPS__, + "vscalefsd" : __asm_proxy_VSCALEFSD__, + "vscalefss" : __asm_proxy_VSCALEFSS__, + "vscatterdpd" : __asm_proxy_VSCATTERDPD__, + "vscatterdps" : __asm_proxy_VSCATTERDPS__, + "vscatterpf0dpd" : __asm_proxy_VSCATTERPF0DPD__, + "vscatterpf0dps" : __asm_proxy_VSCATTERPF0DPS__, + "vscatterpf0qpd" : __asm_proxy_VSCATTERPF0QPD__, + "vscatterpf0qps" : __asm_proxy_VSCATTERPF0QPS__, + "vscatterpf1dpd" : __asm_proxy_VSCATTERPF1DPD__, + "vscatterpf1dps" : __asm_proxy_VSCATTERPF1DPS__, + "vscatterpf1qpd" : __asm_proxy_VSCATTERPF1QPD__, + "vscatterpf1qps" : __asm_proxy_VSCATTERPF1QPS__, + "vscatterqpd" : __asm_proxy_VSCATTERQPD__, + "vscatterqps" : __asm_proxy_VSCATTERQPS__, + "vshuff32x4" : __asm_proxy_VSHUFF32X4__, + "vshuff64x2" : __asm_proxy_VSHUFF64X2__, + "vshufi32x4" : __asm_proxy_VSHUFI32X4__, + "vshufi64x2" : __asm_proxy_VSHUFI64X2__, + "vshufpd" : __asm_proxy_VSHUFPD__, + "vshufps" : __asm_proxy_VSHUFPS__, + "vsqrtpd" : __asm_proxy_VSQRTPD__, + "vsqrtps" : __asm_proxy_VSQRTPS__, + "vsqrtsd" : __asm_proxy_VSQRTSD__, + "vsqrtss" : __asm_proxy_VSQRTSS__, + "vstmxcsr" : __asm_proxy_VSTMXCSR__, + "vsubpd" : __asm_proxy_VSUBPD__, + "vsubps" : __asm_proxy_VSUBPS__, + "vsubsd" : __asm_proxy_VSUBSD__, + "vsubss" : __asm_proxy_VSUBSS__, + "vtestpd" : __asm_proxy_VTESTPD__, + "vtestps" : __asm_proxy_VTESTPS__, + "vucomisd" : __asm_proxy_VUCOMISD__, + "vucomiss" : __asm_proxy_VUCOMISS__, + "vunpckhpd" : __asm_proxy_VUNPCKHPD__, + "vunpckhps" : __asm_proxy_VUNPCKHPS__, + "vunpcklpd" : __asm_proxy_VUNPCKLPD__, + "vunpcklps" : __asm_proxy_VUNPCKLPS__, + "vxorpd" : __asm_proxy_VXORPD__, + "vxorps" : __asm_proxy_VXORPS__, + "vzeroall" : __asm_proxy_VZEROALL__, + "vzeroupper" : __asm_proxy_VZEROUPPER__, + "xaddb" : __asm_proxy_XADDB__, + "xaddl" : __asm_proxy_XADDL__, + "xaddq" : __asm_proxy_XADDQ__, + "xaddw" : __asm_proxy_XADDW__, + "xchgb" : __asm_proxy_XCHGB__, + "xchgl" : __asm_proxy_XCHGL__, + "xchgq" : __asm_proxy_XCHGQ__, + "xchgw" : __asm_proxy_XCHGW__, + "xgetbv" : __asm_proxy_XGETBV__, + "xlatb" : __asm_proxy_XLATB__, + "xorb" : __asm_proxy_XORB__, + "xorl" : __asm_proxy_XORL__, + "xorpd" : __asm_proxy_XORPD__, + "xorps" : __asm_proxy_XORPS__, + "xorq" : __asm_proxy_XORQ__, + "xorw" : __asm_proxy_XORW__, +} + +func __asm_proxy_ADCB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCB(v[0], v[1]) + } else { + panic("instruction ADCB takes exactly 2 operands") + } +} + +func __asm_proxy_ADCL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCL(v[0], v[1]) + } else { + panic("instruction ADCL takes exactly 2 operands") + } +} + +func __asm_proxy_ADCQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCQ(v[0], v[1]) + } else { + panic("instruction ADCQ takes exactly 2 operands") + } +} + +func __asm_proxy_ADCW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCW(v[0], v[1]) + } else { + panic("instruction ADCW takes exactly 2 operands") + } +} + +func __asm_proxy_ADCXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCXL(v[0], v[1]) + } else { + panic("instruction ADCXL takes exactly 2 operands") + } +} + +func __asm_proxy_ADCXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCXQ(v[0], v[1]) + } else { + panic("instruction ADCXQ takes exactly 2 operands") + } +} + +func __asm_proxy_ADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDB(v[0], v[1]) + } else { + panic("instruction ADDB takes exactly 2 operands") + } +} + +func __asm_proxy_ADDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDL(v[0], v[1]) + } else { + panic("instruction ADDL takes exactly 2 operands") + } +} + +func __asm_proxy_ADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDPD(v[0], v[1]) + } else { + panic("instruction ADDPD takes exactly 2 operands") + } +} + +func __asm_proxy_ADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDPS(v[0], v[1]) + } else { + panic("instruction ADDPS takes exactly 2 operands") + } +} + +func __asm_proxy_ADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDQ(v[0], v[1]) + } else { + panic("instruction ADDQ takes exactly 2 operands") + } +} + +func __asm_proxy_ADDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDSD(v[0], v[1]) + } else { + panic("instruction ADDSD takes exactly 2 operands") + } +} + +func __asm_proxy_ADDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDSS(v[0], v[1]) + } else { + panic("instruction ADDSS takes exactly 2 operands") + } +} + +func __asm_proxy_ADDSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDSUBPD(v[0], v[1]) + } else { + panic("instruction ADDSUBPD takes exactly 2 operands") + } +} + +func __asm_proxy_ADDSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDSUBPS(v[0], v[1]) + } else { + panic("instruction ADDSUBPS takes exactly 2 operands") + } +} + +func __asm_proxy_ADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDW(v[0], v[1]) + } else { + panic("instruction ADDW takes exactly 2 operands") + } +} + +func __asm_proxy_ADOXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADOXL(v[0], v[1]) + } else { + panic("instruction ADOXL takes exactly 2 operands") + } +} + +func __asm_proxy_ADOXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADOXQ(v[0], v[1]) + } else { + panic("instruction ADOXQ takes exactly 2 operands") + } +} + +func __asm_proxy_AESDEC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESDEC(v[0], v[1]) + } else { + panic("instruction AESDEC takes exactly 2 operands") + } +} + +func __asm_proxy_AESDECLAST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESDECLAST(v[0], v[1]) + } else { + panic("instruction AESDECLAST takes exactly 2 operands") + } +} + +func __asm_proxy_AESENC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESENC(v[0], v[1]) + } else { + panic("instruction AESENC takes exactly 2 operands") + } +} + +func __asm_proxy_AESENCLAST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESENCLAST(v[0], v[1]) + } else { + panic("instruction AESENCLAST takes exactly 2 operands") + } +} + +func __asm_proxy_AESIMC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESIMC(v[0], v[1]) + } else { + panic("instruction AESIMC takes exactly 2 operands") + } +} + +func __asm_proxy_AESKEYGENASSIST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.AESKEYGENASSIST(v[0], v[1], v[2]) + } else { + panic("instruction AESKEYGENASSIST takes exactly 3 operands") + } +} + +func __asm_proxy_ANDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDB(v[0], v[1]) + } else { + panic("instruction ANDB takes exactly 2 operands") + } +} + +func __asm_proxy_ANDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDL(v[0], v[1]) + } else { + panic("instruction ANDL takes exactly 2 operands") + } +} + +func __asm_proxy_ANDNL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ANDNL(v[0], v[1], v[2]) + } else { + panic("instruction ANDNL takes exactly 3 operands") + } +} + +func __asm_proxy_ANDNPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDNPD(v[0], v[1]) + } else { + panic("instruction ANDNPD takes exactly 2 operands") + } +} + +func __asm_proxy_ANDNPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDNPS(v[0], v[1]) + } else { + panic("instruction ANDNPS takes exactly 2 operands") + } +} + +func __asm_proxy_ANDNQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ANDNQ(v[0], v[1], v[2]) + } else { + panic("instruction ANDNQ takes exactly 3 operands") + } +} + +func __asm_proxy_ANDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDPD(v[0], v[1]) + } else { + panic("instruction ANDPD takes exactly 2 operands") + } +} + +func __asm_proxy_ANDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDPS(v[0], v[1]) + } else { + panic("instruction ANDPS takes exactly 2 operands") + } +} + +func __asm_proxy_ANDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDQ(v[0], v[1]) + } else { + panic("instruction ANDQ takes exactly 2 operands") + } +} + +func __asm_proxy_ANDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDW(v[0], v[1]) + } else { + panic("instruction ANDW takes exactly 2 operands") + } +} + +func __asm_proxy_BEXTR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BEXTR(v[0], v[1], v[2]) + } else { + panic("instruction BEXTR takes exactly 3 operands") + } +} + +func __asm_proxy_BLCFILL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCFILL(v[0], v[1]) + } else { + panic("instruction BLCFILL takes exactly 2 operands") + } +} + +func __asm_proxy_BLCI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCI(v[0], v[1]) + } else { + panic("instruction BLCI takes exactly 2 operands") + } +} + +func __asm_proxy_BLCIC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCIC(v[0], v[1]) + } else { + panic("instruction BLCIC takes exactly 2 operands") + } +} + +func __asm_proxy_BLCMSK__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCMSK(v[0], v[1]) + } else { + panic("instruction BLCMSK takes exactly 2 operands") + } +} + +func __asm_proxy_BLCS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCS(v[0], v[1]) + } else { + panic("instruction BLCS takes exactly 2 operands") + } +} + +func __asm_proxy_BLENDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BLENDPD(v[0], v[1], v[2]) + } else { + panic("instruction BLENDPD takes exactly 3 operands") + } +} + +func __asm_proxy_BLENDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BLENDPS(v[0], v[1], v[2]) + } else { + panic("instruction BLENDPS takes exactly 3 operands") + } +} + +func __asm_proxy_BLENDVPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BLENDVPD(v[0], v[1], v[2]) + } else { + panic("instruction BLENDVPD takes exactly 3 operands") + } +} + +func __asm_proxy_BLENDVPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BLENDVPS(v[0], v[1], v[2]) + } else { + panic("instruction BLENDVPS takes exactly 3 operands") + } +} + +func __asm_proxy_BLSFILL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSFILL(v[0], v[1]) + } else { + panic("instruction BLSFILL takes exactly 2 operands") + } +} + +func __asm_proxy_BLSI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSI(v[0], v[1]) + } else { + panic("instruction BLSI takes exactly 2 operands") + } +} + +func __asm_proxy_BLSIC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSIC(v[0], v[1]) + } else { + panic("instruction BLSIC takes exactly 2 operands") + } +} + +func __asm_proxy_BLSMSK__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSMSK(v[0], v[1]) + } else { + panic("instruction BLSMSK takes exactly 2 operands") + } +} + +func __asm_proxy_BLSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSR(v[0], v[1]) + } else { + panic("instruction BLSR takes exactly 2 operands") + } +} + +func __asm_proxy_BSFL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSFL(v[0], v[1]) + } else { + panic("instruction BSFL takes exactly 2 operands") + } +} + +func __asm_proxy_BSFQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSFQ(v[0], v[1]) + } else { + panic("instruction BSFQ takes exactly 2 operands") + } +} + +func __asm_proxy_BSFW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSFW(v[0], v[1]) + } else { + panic("instruction BSFW takes exactly 2 operands") + } +} + +func __asm_proxy_BSRL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSRL(v[0], v[1]) + } else { + panic("instruction BSRL takes exactly 2 operands") + } +} + +func __asm_proxy_BSRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSRQ(v[0], v[1]) + } else { + panic("instruction BSRQ takes exactly 2 operands") + } +} + +func __asm_proxy_BSRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSRW(v[0], v[1]) + } else { + panic("instruction BSRW takes exactly 2 operands") + } +} + +func __asm_proxy_BSWAPL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.BSWAPL(v[0]) + } else { + panic("instruction BSWAPL takes exactly 1 operand") + } +} + +func __asm_proxy_BSWAPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.BSWAPQ(v[0]) + } else { + panic("instruction BSWAPQ takes exactly 1 operand") + } +} + +func __asm_proxy_BTCL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTCL(v[0], v[1]) + } else { + panic("instruction BTCL takes exactly 2 operands") + } +} + +func __asm_proxy_BTCQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTCQ(v[0], v[1]) + } else { + panic("instruction BTCQ takes exactly 2 operands") + } +} + +func __asm_proxy_BTCW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTCW(v[0], v[1]) + } else { + panic("instruction BTCW takes exactly 2 operands") + } +} + +func __asm_proxy_BTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTL(v[0], v[1]) + } else { + panic("instruction BTL takes exactly 2 operands") + } +} + +func __asm_proxy_BTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTQ(v[0], v[1]) + } else { + panic("instruction BTQ takes exactly 2 operands") + } +} + +func __asm_proxy_BTRL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTRL(v[0], v[1]) + } else { + panic("instruction BTRL takes exactly 2 operands") + } +} + +func __asm_proxy_BTRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTRQ(v[0], v[1]) + } else { + panic("instruction BTRQ takes exactly 2 operands") + } +} + +func __asm_proxy_BTRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTRW(v[0], v[1]) + } else { + panic("instruction BTRW takes exactly 2 operands") + } +} + +func __asm_proxy_BTSL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTSL(v[0], v[1]) + } else { + panic("instruction BTSL takes exactly 2 operands") + } +} + +func __asm_proxy_BTSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTSQ(v[0], v[1]) + } else { + panic("instruction BTSQ takes exactly 2 operands") + } +} + +func __asm_proxy_BTSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTSW(v[0], v[1]) + } else { + panic("instruction BTSW takes exactly 2 operands") + } +} + +func __asm_proxy_BTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTW(v[0], v[1]) + } else { + panic("instruction BTW takes exactly 2 operands") + } +} + +func __asm_proxy_BZHI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BZHI(v[0], v[1], v[2]) + } else { + panic("instruction BZHI takes exactly 3 operands") + } +} + +func __asm_proxy_CALL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CALL(v[0]) + } else { + panic("instruction CALL takes exactly 1 operand") + } +} + +func __asm_proxy_CALLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CALLQ(v[0]) + } else { + panic("instruction CALLQ takes exactly 1 operand") + } +} + +func __asm_proxy_CBTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CBTW() + } else { + panic("instruction CBTW takes no operands") + } +} + +func __asm_proxy_CLC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLC() + } else { + panic("instruction CLC takes no operands") + } +} + +func __asm_proxy_CLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLD() + } else { + panic("instruction CLD takes no operands") + } +} + +func __asm_proxy_CLFLUSH__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CLFLUSH(v[0]) + } else { + panic("instruction CLFLUSH takes exactly 1 operand") + } +} + +func __asm_proxy_CLFLUSHOPT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CLFLUSHOPT(v[0]) + } else { + panic("instruction CLFLUSHOPT takes exactly 1 operand") + } +} + +func __asm_proxy_CLTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLTD() + } else { + panic("instruction CLTD takes no operands") + } +} + +func __asm_proxy_CLTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLTQ() + } else { + panic("instruction CLTQ takes no operands") + } +} + +func __asm_proxy_CLWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CLWB(v[0]) + } else { + panic("instruction CLWB takes exactly 1 operand") + } +} + +func __asm_proxy_CLZERO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLZERO() + } else { + panic("instruction CLZERO takes no operands") + } +} + +func __asm_proxy_CMC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CMC() + } else { + panic("instruction CMC takes no operands") + } +} + +func __asm_proxy_CMOVA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVA(v[0], v[1]) + } else { + panic("instruction CMOVA takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVAE(v[0], v[1]) + } else { + panic("instruction CMOVAE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVB(v[0], v[1]) + } else { + panic("instruction CMOVB takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVBE(v[0], v[1]) + } else { + panic("instruction CMOVBE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVC(v[0], v[1]) + } else { + panic("instruction CMOVC takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVE(v[0], v[1]) + } else { + panic("instruction CMOVE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVG(v[0], v[1]) + } else { + panic("instruction CMOVG takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVGE(v[0], v[1]) + } else { + panic("instruction CMOVGE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVL(v[0], v[1]) + } else { + panic("instruction CMOVL takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVLE(v[0], v[1]) + } else { + panic("instruction CMOVLE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNA(v[0], v[1]) + } else { + panic("instruction CMOVNA takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNAE(v[0], v[1]) + } else { + panic("instruction CMOVNAE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNB(v[0], v[1]) + } else { + panic("instruction CMOVNB takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNBE(v[0], v[1]) + } else { + panic("instruction CMOVNBE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNC(v[0], v[1]) + } else { + panic("instruction CMOVNC takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNE(v[0], v[1]) + } else { + panic("instruction CMOVNE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNG(v[0], v[1]) + } else { + panic("instruction CMOVNG takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNGE(v[0], v[1]) + } else { + panic("instruction CMOVNGE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNL(v[0], v[1]) + } else { + panic("instruction CMOVNL takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNLE(v[0], v[1]) + } else { + panic("instruction CMOVNLE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNO(v[0], v[1]) + } else { + panic("instruction CMOVNO takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNP(v[0], v[1]) + } else { + panic("instruction CMOVNP takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNS(v[0], v[1]) + } else { + panic("instruction CMOVNS takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNZ(v[0], v[1]) + } else { + panic("instruction CMOVNZ takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVO(v[0], v[1]) + } else { + panic("instruction CMOVO takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVP(v[0], v[1]) + } else { + panic("instruction CMOVP takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVPE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVPE(v[0], v[1]) + } else { + panic("instruction CMOVPE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVPO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVPO(v[0], v[1]) + } else { + panic("instruction CMOVPO takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVS(v[0], v[1]) + } else { + panic("instruction CMOVS takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVZ(v[0], v[1]) + } else { + panic("instruction CMOVZ takes exactly 2 operands") + } +} + +func __asm_proxy_CMPB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPB(v[0], v[1]) + } else { + panic("instruction CMPB takes exactly 2 operands") + } +} + +func __asm_proxy_CMPL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPL(v[0], v[1]) + } else { + panic("instruction CMPL takes exactly 2 operands") + } +} + +func __asm_proxy_CMPPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.CMPPD(v[0], v[1], v[2]) + } else { + panic("instruction CMPPD takes exactly 3 operands") + } +} + +func __asm_proxy_CMPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.CMPPS(v[0], v[1], v[2]) + } else { + panic("instruction CMPPS takes exactly 3 operands") + } +} + +func __asm_proxy_CMPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPQ(v[0], v[1]) + } else { + panic("instruction CMPQ takes exactly 2 operands") + } +} + +func __asm_proxy_CMPSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.CMPSD(v[0], v[1], v[2]) + } else { + panic("instruction CMPSD takes exactly 3 operands") + } +} + +func __asm_proxy_CMPSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.CMPSS(v[0], v[1], v[2]) + } else { + panic("instruction CMPSS takes exactly 3 operands") + } +} + +func __asm_proxy_CMPW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPW(v[0], v[1]) + } else { + panic("instruction CMPW takes exactly 2 operands") + } +} + +func __asm_proxy_CMPXCHG16B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CMPXCHG16B(v[0]) + } else { + panic("instruction CMPXCHG16B takes exactly 1 operand") + } +} + +func __asm_proxy_CMPXCHG8B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CMPXCHG8B(v[0]) + } else { + panic("instruction CMPXCHG8B takes exactly 1 operand") + } +} + +func __asm_proxy_CMPXCHGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPXCHGB(v[0], v[1]) + } else { + panic("instruction CMPXCHGB takes exactly 2 operands") + } +} + +func __asm_proxy_CMPXCHGL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPXCHGL(v[0], v[1]) + } else { + panic("instruction CMPXCHGL takes exactly 2 operands") + } +} + +func __asm_proxy_CMPXCHGQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPXCHGQ(v[0], v[1]) + } else { + panic("instruction CMPXCHGQ takes exactly 2 operands") + } +} + +func __asm_proxy_CMPXCHGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPXCHGW(v[0], v[1]) + } else { + panic("instruction CMPXCHGW takes exactly 2 operands") + } +} + +func __asm_proxy_COMISD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.COMISD(v[0], v[1]) + } else { + panic("instruction COMISD takes exactly 2 operands") + } +} + +func __asm_proxy_COMISS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.COMISS(v[0], v[1]) + } else { + panic("instruction COMISS takes exactly 2 operands") + } +} + +func __asm_proxy_CPUID__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CPUID() + } else { + panic("instruction CPUID takes no operands") + } +} + +func __asm_proxy_CQTO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CQTO() + } else { + panic("instruction CQTO takes no operands") + } +} + +func __asm_proxy_CRC32B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CRC32B(v[0], v[1]) + } else { + panic("instruction CRC32B takes exactly 2 operands") + } +} + +func __asm_proxy_CRC32L__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CRC32L(v[0], v[1]) + } else { + panic("instruction CRC32L takes exactly 2 operands") + } +} + +func __asm_proxy_CRC32Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CRC32Q(v[0], v[1]) + } else { + panic("instruction CRC32Q takes exactly 2 operands") + } +} + +func __asm_proxy_CRC32W__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CRC32W(v[0], v[1]) + } else { + panic("instruction CRC32W takes exactly 2 operands") + } +} + +func __asm_proxy_CVTDQ2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTDQ2PD(v[0], v[1]) + } else { + panic("instruction CVTDQ2PD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTDQ2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTDQ2PS(v[0], v[1]) + } else { + panic("instruction CVTDQ2PS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPD2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPD2DQ(v[0], v[1]) + } else { + panic("instruction CVTPD2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPD2PI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPD2PI(v[0], v[1]) + } else { + panic("instruction CVTPD2PI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPD2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPD2PS(v[0], v[1]) + } else { + panic("instruction CVTPD2PS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPI2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPI2PD(v[0], v[1]) + } else { + panic("instruction CVTPI2PD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPI2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPI2PS(v[0], v[1]) + } else { + panic("instruction CVTPI2PS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPS2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPS2DQ(v[0], v[1]) + } else { + panic("instruction CVTPS2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPS2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPS2PD(v[0], v[1]) + } else { + panic("instruction CVTPS2PD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPS2PI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPS2PI(v[0], v[1]) + } else { + panic("instruction CVTPS2PI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSD2SI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSD2SI(v[0], v[1]) + } else { + panic("instruction CVTSD2SI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSD2SS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSD2SS(v[0], v[1]) + } else { + panic("instruction CVTSD2SS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSI2SD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSI2SD(v[0], v[1]) + } else { + panic("instruction CVTSI2SD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSI2SS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSI2SS(v[0], v[1]) + } else { + panic("instruction CVTSI2SS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSS2SD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSS2SD(v[0], v[1]) + } else { + panic("instruction CVTSS2SD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSS2SI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSS2SI(v[0], v[1]) + } else { + panic("instruction CVTSS2SI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTPD2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTPD2DQ(v[0], v[1]) + } else { + panic("instruction CVTTPD2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTPD2PI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTPD2PI(v[0], v[1]) + } else { + panic("instruction CVTTPD2PI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTPS2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTPS2DQ(v[0], v[1]) + } else { + panic("instruction CVTTPS2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTPS2PI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTPS2PI(v[0], v[1]) + } else { + panic("instruction CVTTPS2PI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTSD2SI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTSD2SI(v[0], v[1]) + } else { + panic("instruction CVTTSD2SI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTSS2SI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTSS2SI(v[0], v[1]) + } else { + panic("instruction CVTTSS2SI takes exactly 2 operands") + } +} + +func __asm_proxy_CWTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CWTD() + } else { + panic("instruction CWTD takes no operands") + } +} + +func __asm_proxy_CWTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CWTL() + } else { + panic("instruction CWTL takes no operands") + } +} + +func __asm_proxy_DECB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DECB(v[0]) + } else { + panic("instruction DECB takes exactly 1 operand") + } +} + +func __asm_proxy_DECL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DECL(v[0]) + } else { + panic("instruction DECL takes exactly 1 operand") + } +} + +func __asm_proxy_DECQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DECQ(v[0]) + } else { + panic("instruction DECQ takes exactly 1 operand") + } +} + +func __asm_proxy_DECW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DECW(v[0]) + } else { + panic("instruction DECW takes exactly 1 operand") + } +} + +func __asm_proxy_DIVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DIVB(v[0]) + } else { + panic("instruction DIVB takes exactly 1 operand") + } +} + +func __asm_proxy_DIVL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DIVL(v[0]) + } else { + panic("instruction DIVL takes exactly 1 operand") + } +} + +func __asm_proxy_DIVPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.DIVPD(v[0], v[1]) + } else { + panic("instruction DIVPD takes exactly 2 operands") + } +} + +func __asm_proxy_DIVPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.DIVPS(v[0], v[1]) + } else { + panic("instruction DIVPS takes exactly 2 operands") + } +} + +func __asm_proxy_DIVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DIVQ(v[0]) + } else { + panic("instruction DIVQ takes exactly 1 operand") + } +} + +func __asm_proxy_DIVSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.DIVSD(v[0], v[1]) + } else { + panic("instruction DIVSD takes exactly 2 operands") + } +} + +func __asm_proxy_DIVSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.DIVSS(v[0], v[1]) + } else { + panic("instruction DIVSS takes exactly 2 operands") + } +} + +func __asm_proxy_DIVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DIVW(v[0]) + } else { + panic("instruction DIVW takes exactly 1 operand") + } +} + +func __asm_proxy_DPPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.DPPD(v[0], v[1], v[2]) + } else { + panic("instruction DPPD takes exactly 3 operands") + } +} + +func __asm_proxy_DPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.DPPS(v[0], v[1], v[2]) + } else { + panic("instruction DPPS takes exactly 3 operands") + } +} + +func __asm_proxy_EMMS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.EMMS() + } else { + panic("instruction EMMS takes no operands") + } +} + +func __asm_proxy_EXTRACTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.EXTRACTPS(v[0], v[1], v[2]) + } else { + panic("instruction EXTRACTPS takes exactly 3 operands") + } +} + +func __asm_proxy_EXTRQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.EXTRQ(v[0], v[1]) + case 3 : return p.EXTRQ(v[0], v[1], v[2]) + default : panic("instruction EXTRQ takes 2 or 3 operands") + } +} + +func __asm_proxy_FEMMS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.FEMMS() + } else { + panic("instruction FEMMS takes no operands") + } +} + +func __asm_proxy_HADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.HADDPD(v[0], v[1]) + } else { + panic("instruction HADDPD takes exactly 2 operands") + } +} + +func __asm_proxy_HADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.HADDPS(v[0], v[1]) + } else { + panic("instruction HADDPS takes exactly 2 operands") + } +} + +func __asm_proxy_HSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.HSUBPD(v[0], v[1]) + } else { + panic("instruction HSUBPD takes exactly 2 operands") + } +} + +func __asm_proxy_HSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.HSUBPS(v[0], v[1]) + } else { + panic("instruction HSUBPS takes exactly 2 operands") + } +} + +func __asm_proxy_IDIVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IDIVB(v[0]) + } else { + panic("instruction IDIVB takes exactly 1 operand") + } +} + +func __asm_proxy_IDIVL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IDIVL(v[0]) + } else { + panic("instruction IDIVL takes exactly 1 operand") + } +} + +func __asm_proxy_IDIVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IDIVQ(v[0]) + } else { + panic("instruction IDIVQ takes exactly 1 operand") + } +} + +func __asm_proxy_IDIVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IDIVW(v[0]) + } else { + panic("instruction IDIVW takes exactly 1 operand") + } +} + +func __asm_proxy_IMULB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IMULB(v[0]) + } else { + panic("instruction IMULB takes exactly 1 operand") + } +} + +func __asm_proxy_IMULL__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 1 : return p.IMULL(v[0]) + case 2 : return p.IMULL(v[0], v[1]) + case 3 : return p.IMULL(v[0], v[1], v[2]) + default : panic("instruction IMULL takes 1 or 2 or 3 operands") + } +} + +func __asm_proxy_IMULQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 1 : return p.IMULQ(v[0]) + case 2 : return p.IMULQ(v[0], v[1]) + case 3 : return p.IMULQ(v[0], v[1], v[2]) + default : panic("instruction IMULQ takes 1 or 2 or 3 operands") + } +} + +func __asm_proxy_IMULW__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 1 : return p.IMULW(v[0]) + case 2 : return p.IMULW(v[0], v[1]) + case 3 : return p.IMULW(v[0], v[1], v[2]) + default : panic("instruction IMULW takes 1 or 2 or 3 operands") + } +} + +func __asm_proxy_INCB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INCB(v[0]) + } else { + panic("instruction INCB takes exactly 1 operand") + } +} + +func __asm_proxy_INCL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INCL(v[0]) + } else { + panic("instruction INCL takes exactly 1 operand") + } +} + +func __asm_proxy_INCQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INCQ(v[0]) + } else { + panic("instruction INCQ takes exactly 1 operand") + } +} + +func __asm_proxy_INCW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INCW(v[0]) + } else { + panic("instruction INCW takes exactly 1 operand") + } +} + +func __asm_proxy_INSERTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.INSERTPS(v[0], v[1], v[2]) + } else { + panic("instruction INSERTPS takes exactly 3 operands") + } +} + +func __asm_proxy_INSERTQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.INSERTQ(v[0], v[1]) + case 4 : return p.INSERTQ(v[0], v[1], v[2], v[3]) + default : panic("instruction INSERTQ takes 2 or 4 operands") + } +} + +func __asm_proxy_INT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INT(v[0]) + } else { + panic("instruction INT takes exactly 1 operand") + } +} + +func __asm_proxy_JA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JA(v[0]) + } else { + panic("instruction JA takes exactly 1 operand") + } +} + +func __asm_proxy_JAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JAE(v[0]) + } else { + panic("instruction JAE takes exactly 1 operand") + } +} + +func __asm_proxy_JB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JB(v[0]) + } else { + panic("instruction JB takes exactly 1 operand") + } +} + +func __asm_proxy_JBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JBE(v[0]) + } else { + panic("instruction JBE takes exactly 1 operand") + } +} + +func __asm_proxy_JC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JC(v[0]) + } else { + panic("instruction JC takes exactly 1 operand") + } +} + +func __asm_proxy_JE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JE(v[0]) + } else { + panic("instruction JE takes exactly 1 operand") + } +} + +func __asm_proxy_JECXZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JECXZ(v[0]) + } else { + panic("instruction JECXZ takes exactly 1 operand") + } +} + +func __asm_proxy_JG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JG(v[0]) + } else { + panic("instruction JG takes exactly 1 operand") + } +} + +func __asm_proxy_JGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JGE(v[0]) + } else { + panic("instruction JGE takes exactly 1 operand") + } +} + +func __asm_proxy_JL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JL(v[0]) + } else { + panic("instruction JL takes exactly 1 operand") + } +} + +func __asm_proxy_JLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JLE(v[0]) + } else { + panic("instruction JLE takes exactly 1 operand") + } +} + +func __asm_proxy_JMP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JMP(v[0]) + } else { + panic("instruction JMP takes exactly 1 operand") + } +} + +func __asm_proxy_JMPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JMPQ(v[0]) + } else { + panic("instruction JMPQ takes exactly 1 operand") + } +} + +func __asm_proxy_JNA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNA(v[0]) + } else { + panic("instruction JNA takes exactly 1 operand") + } +} + +func __asm_proxy_JNAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNAE(v[0]) + } else { + panic("instruction JNAE takes exactly 1 operand") + } +} + +func __asm_proxy_JNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNB(v[0]) + } else { + panic("instruction JNB takes exactly 1 operand") + } +} + +func __asm_proxy_JNBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNBE(v[0]) + } else { + panic("instruction JNBE takes exactly 1 operand") + } +} + +func __asm_proxy_JNC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNC(v[0]) + } else { + panic("instruction JNC takes exactly 1 operand") + } +} + +func __asm_proxy_JNE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNE(v[0]) + } else { + panic("instruction JNE takes exactly 1 operand") + } +} + +func __asm_proxy_JNG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNG(v[0]) + } else { + panic("instruction JNG takes exactly 1 operand") + } +} + +func __asm_proxy_JNGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNGE(v[0]) + } else { + panic("instruction JNGE takes exactly 1 operand") + } +} + +func __asm_proxy_JNL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNL(v[0]) + } else { + panic("instruction JNL takes exactly 1 operand") + } +} + +func __asm_proxy_JNLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNLE(v[0]) + } else { + panic("instruction JNLE takes exactly 1 operand") + } +} + +func __asm_proxy_JNO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNO(v[0]) + } else { + panic("instruction JNO takes exactly 1 operand") + } +} + +func __asm_proxy_JNP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNP(v[0]) + } else { + panic("instruction JNP takes exactly 1 operand") + } +} + +func __asm_proxy_JNS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNS(v[0]) + } else { + panic("instruction JNS takes exactly 1 operand") + } +} + +func __asm_proxy_JNZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNZ(v[0]) + } else { + panic("instruction JNZ takes exactly 1 operand") + } +} + +func __asm_proxy_JO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JO(v[0]) + } else { + panic("instruction JO takes exactly 1 operand") + } +} + +func __asm_proxy_JP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JP(v[0]) + } else { + panic("instruction JP takes exactly 1 operand") + } +} + +func __asm_proxy_JPE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JPE(v[0]) + } else { + panic("instruction JPE takes exactly 1 operand") + } +} + +func __asm_proxy_JPO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JPO(v[0]) + } else { + panic("instruction JPO takes exactly 1 operand") + } +} + +func __asm_proxy_JRCXZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JRCXZ(v[0]) + } else { + panic("instruction JRCXZ takes exactly 1 operand") + } +} + +func __asm_proxy_JS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JS(v[0]) + } else { + panic("instruction JS takes exactly 1 operand") + } +} + +func __asm_proxy_JZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JZ(v[0]) + } else { + panic("instruction JZ takes exactly 1 operand") + } +} + +func __asm_proxy_KADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KADDB(v[0], v[1], v[2]) + } else { + panic("instruction KADDB takes exactly 3 operands") + } +} + +func __asm_proxy_KADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KADDD(v[0], v[1], v[2]) + } else { + panic("instruction KADDD takes exactly 3 operands") + } +} + +func __asm_proxy_KADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KADDQ(v[0], v[1], v[2]) + } else { + panic("instruction KADDQ takes exactly 3 operands") + } +} + +func __asm_proxy_KADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KADDW(v[0], v[1], v[2]) + } else { + panic("instruction KADDW takes exactly 3 operands") + } +} + +func __asm_proxy_KANDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDB(v[0], v[1], v[2]) + } else { + panic("instruction KANDB takes exactly 3 operands") + } +} + +func __asm_proxy_KANDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDD(v[0], v[1], v[2]) + } else { + panic("instruction KANDD takes exactly 3 operands") + } +} + +func __asm_proxy_KANDNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDNB(v[0], v[1], v[2]) + } else { + panic("instruction KANDNB takes exactly 3 operands") + } +} + +func __asm_proxy_KANDND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDND(v[0], v[1], v[2]) + } else { + panic("instruction KANDND takes exactly 3 operands") + } +} + +func __asm_proxy_KANDNQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDNQ(v[0], v[1], v[2]) + } else { + panic("instruction KANDNQ takes exactly 3 operands") + } +} + +func __asm_proxy_KANDNW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDNW(v[0], v[1], v[2]) + } else { + panic("instruction KANDNW takes exactly 3 operands") + } +} + +func __asm_proxy_KANDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDQ(v[0], v[1], v[2]) + } else { + panic("instruction KANDQ takes exactly 3 operands") + } +} + +func __asm_proxy_KANDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDW(v[0], v[1], v[2]) + } else { + panic("instruction KANDW takes exactly 3 operands") + } +} + +func __asm_proxy_KMOVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KMOVB(v[0], v[1]) + } else { + panic("instruction KMOVB takes exactly 2 operands") + } +} + +func __asm_proxy_KMOVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KMOVD(v[0], v[1]) + } else { + panic("instruction KMOVD takes exactly 2 operands") + } +} + +func __asm_proxy_KMOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KMOVQ(v[0], v[1]) + } else { + panic("instruction KMOVQ takes exactly 2 operands") + } +} + +func __asm_proxy_KMOVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KMOVW(v[0], v[1]) + } else { + panic("instruction KMOVW takes exactly 2 operands") + } +} + +func __asm_proxy_KNOTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KNOTB(v[0], v[1]) + } else { + panic("instruction KNOTB takes exactly 2 operands") + } +} + +func __asm_proxy_KNOTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KNOTD(v[0], v[1]) + } else { + panic("instruction KNOTD takes exactly 2 operands") + } +} + +func __asm_proxy_KNOTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KNOTQ(v[0], v[1]) + } else { + panic("instruction KNOTQ takes exactly 2 operands") + } +} + +func __asm_proxy_KNOTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KNOTW(v[0], v[1]) + } else { + panic("instruction KNOTW takes exactly 2 operands") + } +} + +func __asm_proxy_KORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KORB(v[0], v[1], v[2]) + } else { + panic("instruction KORB takes exactly 3 operands") + } +} + +func __asm_proxy_KORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KORD(v[0], v[1], v[2]) + } else { + panic("instruction KORD takes exactly 3 operands") + } +} + +func __asm_proxy_KORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KORQ(v[0], v[1], v[2]) + } else { + panic("instruction KORQ takes exactly 3 operands") + } +} + +func __asm_proxy_KORTESTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KORTESTB(v[0], v[1]) + } else { + panic("instruction KORTESTB takes exactly 2 operands") + } +} + +func __asm_proxy_KORTESTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KORTESTD(v[0], v[1]) + } else { + panic("instruction KORTESTD takes exactly 2 operands") + } +} + +func __asm_proxy_KORTESTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KORTESTQ(v[0], v[1]) + } else { + panic("instruction KORTESTQ takes exactly 2 operands") + } +} + +func __asm_proxy_KORTESTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KORTESTW(v[0], v[1]) + } else { + panic("instruction KORTESTW takes exactly 2 operands") + } +} + +func __asm_proxy_KORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KORW(v[0], v[1], v[2]) + } else { + panic("instruction KORW takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTLB(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTLB takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTLD(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTLD takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTLQ(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTLQ takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTLW(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTLW takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTRB(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTRB takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTRD(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTRD takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTRQ(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTRQ takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTRW(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTRW takes exactly 3 operands") + } +} + +func __asm_proxy_KTESTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KTESTB(v[0], v[1]) + } else { + panic("instruction KTESTB takes exactly 2 operands") + } +} + +func __asm_proxy_KTESTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KTESTD(v[0], v[1]) + } else { + panic("instruction KTESTD takes exactly 2 operands") + } +} + +func __asm_proxy_KTESTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KTESTQ(v[0], v[1]) + } else { + panic("instruction KTESTQ takes exactly 2 operands") + } +} + +func __asm_proxy_KTESTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KTESTW(v[0], v[1]) + } else { + panic("instruction KTESTW takes exactly 2 operands") + } +} + +func __asm_proxy_KUNPCKBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KUNPCKBW(v[0], v[1], v[2]) + } else { + panic("instruction KUNPCKBW takes exactly 3 operands") + } +} + +func __asm_proxy_KUNPCKDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KUNPCKDQ(v[0], v[1], v[2]) + } else { + panic("instruction KUNPCKDQ takes exactly 3 operands") + } +} + +func __asm_proxy_KUNPCKWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KUNPCKWD(v[0], v[1], v[2]) + } else { + panic("instruction KUNPCKWD takes exactly 3 operands") + } +} + +func __asm_proxy_KXNORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXNORB(v[0], v[1], v[2]) + } else { + panic("instruction KXNORB takes exactly 3 operands") + } +} + +func __asm_proxy_KXNORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXNORD(v[0], v[1], v[2]) + } else { + panic("instruction KXNORD takes exactly 3 operands") + } +} + +func __asm_proxy_KXNORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXNORQ(v[0], v[1], v[2]) + } else { + panic("instruction KXNORQ takes exactly 3 operands") + } +} + +func __asm_proxy_KXNORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXNORW(v[0], v[1], v[2]) + } else { + panic("instruction KXNORW takes exactly 3 operands") + } +} + +func __asm_proxy_KXORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXORB(v[0], v[1], v[2]) + } else { + panic("instruction KXORB takes exactly 3 operands") + } +} + +func __asm_proxy_KXORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXORD(v[0], v[1], v[2]) + } else { + panic("instruction KXORD takes exactly 3 operands") + } +} + +func __asm_proxy_KXORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXORQ(v[0], v[1], v[2]) + } else { + panic("instruction KXORQ takes exactly 3 operands") + } +} + +func __asm_proxy_KXORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXORW(v[0], v[1], v[2]) + } else { + panic("instruction KXORW takes exactly 3 operands") + } +} + +func __asm_proxy_LDDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LDDQU(v[0], v[1]) + } else { + panic("instruction LDDQU takes exactly 2 operands") + } +} + +func __asm_proxy_LDMXCSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.LDMXCSR(v[0]) + } else { + panic("instruction LDMXCSR takes exactly 1 operand") + } +} + +func __asm_proxy_LEAL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LEAL(v[0], v[1]) + } else { + panic("instruction LEAL takes exactly 2 operands") + } +} + +func __asm_proxy_LEAQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LEAQ(v[0], v[1]) + } else { + panic("instruction LEAQ takes exactly 2 operands") + } +} + +func __asm_proxy_LEAW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LEAW(v[0], v[1]) + } else { + panic("instruction LEAW takes exactly 2 operands") + } +} + +func __asm_proxy_LFENCE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.LFENCE() + } else { + panic("instruction LFENCE takes no operands") + } +} + +func __asm_proxy_LZCNTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LZCNTL(v[0], v[1]) + } else { + panic("instruction LZCNTL takes exactly 2 operands") + } +} + +func __asm_proxy_LZCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LZCNTQ(v[0], v[1]) + } else { + panic("instruction LZCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_LZCNTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LZCNTW(v[0], v[1]) + } else { + panic("instruction LZCNTW takes exactly 2 operands") + } +} + +func __asm_proxy_MASKMOVDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MASKMOVDQU(v[0], v[1]) + } else { + panic("instruction MASKMOVDQU takes exactly 2 operands") + } +} + +func __asm_proxy_MASKMOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MASKMOVQ(v[0], v[1]) + } else { + panic("instruction MASKMOVQ takes exactly 2 operands") + } +} + +func __asm_proxy_MAXPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MAXPD(v[0], v[1]) + } else { + panic("instruction MAXPD takes exactly 2 operands") + } +} + +func __asm_proxy_MAXPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MAXPS(v[0], v[1]) + } else { + panic("instruction MAXPS takes exactly 2 operands") + } +} + +func __asm_proxy_MAXSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MAXSD(v[0], v[1]) + } else { + panic("instruction MAXSD takes exactly 2 operands") + } +} + +func __asm_proxy_MAXSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MAXSS(v[0], v[1]) + } else { + panic("instruction MAXSS takes exactly 2 operands") + } +} + +func __asm_proxy_MFENCE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MFENCE() + } else { + panic("instruction MFENCE takes no operands") + } +} + +func __asm_proxy_MINPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MINPD(v[0], v[1]) + } else { + panic("instruction MINPD takes exactly 2 operands") + } +} + +func __asm_proxy_MINPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MINPS(v[0], v[1]) + } else { + panic("instruction MINPS takes exactly 2 operands") + } +} + +func __asm_proxy_MINSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MINSD(v[0], v[1]) + } else { + panic("instruction MINSD takes exactly 2 operands") + } +} + +func __asm_proxy_MINSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MINSS(v[0], v[1]) + } else { + panic("instruction MINSS takes exactly 2 operands") + } +} + +func __asm_proxy_MONITOR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MONITOR() + } else { + panic("instruction MONITOR takes no operands") + } +} + +func __asm_proxy_MONITORX__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MONITORX() + } else { + panic("instruction MONITORX takes no operands") + } +} + +func __asm_proxy_MOVAPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVAPD(v[0], v[1]) + } else { + panic("instruction MOVAPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVAPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVAPS(v[0], v[1]) + } else { + panic("instruction MOVAPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVB(v[0], v[1]) + } else { + panic("instruction MOVB takes exactly 2 operands") + } +} + +func __asm_proxy_MOVBEL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVBEL(v[0], v[1]) + } else { + panic("instruction MOVBEL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVBEQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVBEQ(v[0], v[1]) + } else { + panic("instruction MOVBEQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVBEW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVBEW(v[0], v[1]) + } else { + panic("instruction MOVBEW takes exactly 2 operands") + } +} + +func __asm_proxy_MOVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVD(v[0], v[1]) + } else { + panic("instruction MOVD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVDDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVDDUP(v[0], v[1]) + } else { + panic("instruction MOVDDUP takes exactly 2 operands") + } +} + +func __asm_proxy_MOVDQ2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVDQ2Q(v[0], v[1]) + } else { + panic("instruction MOVDQ2Q takes exactly 2 operands") + } +} + +func __asm_proxy_MOVDQA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVDQA(v[0], v[1]) + } else { + panic("instruction MOVDQA takes exactly 2 operands") + } +} + +func __asm_proxy_MOVDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVDQU(v[0], v[1]) + } else { + panic("instruction MOVDQU takes exactly 2 operands") + } +} + +func __asm_proxy_MOVHLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVHLPS(v[0], v[1]) + } else { + panic("instruction MOVHLPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVHPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVHPD(v[0], v[1]) + } else { + panic("instruction MOVHPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVHPS(v[0], v[1]) + } else { + panic("instruction MOVHPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVL(v[0], v[1]) + } else { + panic("instruction MOVL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVLHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVLHPS(v[0], v[1]) + } else { + panic("instruction MOVLHPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVLPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVLPD(v[0], v[1]) + } else { + panic("instruction MOVLPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVLPS(v[0], v[1]) + } else { + panic("instruction MOVLPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVMSKPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVMSKPD(v[0], v[1]) + } else { + panic("instruction MOVMSKPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVMSKPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVMSKPS(v[0], v[1]) + } else { + panic("instruction MOVMSKPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTDQ(v[0], v[1]) + } else { + panic("instruction MOVNTDQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTDQA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTDQA(v[0], v[1]) + } else { + panic("instruction MOVNTDQA takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTIL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTIL(v[0], v[1]) + } else { + panic("instruction MOVNTIL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTIQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTIQ(v[0], v[1]) + } else { + panic("instruction MOVNTIQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTPD(v[0], v[1]) + } else { + panic("instruction MOVNTPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTPS(v[0], v[1]) + } else { + panic("instruction MOVNTPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTQ(v[0], v[1]) + } else { + panic("instruction MOVNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTSD(v[0], v[1]) + } else { + panic("instruction MOVNTSD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTSS(v[0], v[1]) + } else { + panic("instruction MOVNTSS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVQ(v[0], v[1]) + } else { + panic("instruction MOVQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVQ2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVQ2DQ(v[0], v[1]) + } else { + panic("instruction MOVQ2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSBL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSBL(v[0], v[1]) + } else { + panic("instruction MOVSBL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSBQ(v[0], v[1]) + } else { + panic("instruction MOVSBQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSBW(v[0], v[1]) + } else { + panic("instruction MOVSBW takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSD(v[0], v[1]) + } else { + panic("instruction MOVSD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSHDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSHDUP(v[0], v[1]) + } else { + panic("instruction MOVSHDUP takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSLDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSLDUP(v[0], v[1]) + } else { + panic("instruction MOVSLDUP takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSLQ(v[0], v[1]) + } else { + panic("instruction MOVSLQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSS(v[0], v[1]) + } else { + panic("instruction MOVSS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSWL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSWL(v[0], v[1]) + } else { + panic("instruction MOVSWL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSWQ(v[0], v[1]) + } else { + panic("instruction MOVSWQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVUPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVUPD(v[0], v[1]) + } else { + panic("instruction MOVUPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVUPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVUPS(v[0], v[1]) + } else { + panic("instruction MOVUPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVW(v[0], v[1]) + } else { + panic("instruction MOVW takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZBL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZBL(v[0], v[1]) + } else { + panic("instruction MOVZBL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZBQ(v[0], v[1]) + } else { + panic("instruction MOVZBQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZBW(v[0], v[1]) + } else { + panic("instruction MOVZBW takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZWL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZWL(v[0], v[1]) + } else { + panic("instruction MOVZWL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZWQ(v[0], v[1]) + } else { + panic("instruction MOVZWQ takes exactly 2 operands") + } +} + +func __asm_proxy_MPSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.MPSADBW(v[0], v[1], v[2]) + } else { + panic("instruction MPSADBW takes exactly 3 operands") + } +} + +func __asm_proxy_MULB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.MULB(v[0]) + } else { + panic("instruction MULB takes exactly 1 operand") + } +} + +func __asm_proxy_MULL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.MULL(v[0]) + } else { + panic("instruction MULL takes exactly 1 operand") + } +} + +func __asm_proxy_MULPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MULPD(v[0], v[1]) + } else { + panic("instruction MULPD takes exactly 2 operands") + } +} + +func __asm_proxy_MULPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MULPS(v[0], v[1]) + } else { + panic("instruction MULPS takes exactly 2 operands") + } +} + +func __asm_proxy_MULQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.MULQ(v[0]) + } else { + panic("instruction MULQ takes exactly 1 operand") + } +} + +func __asm_proxy_MULSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MULSD(v[0], v[1]) + } else { + panic("instruction MULSD takes exactly 2 operands") + } +} + +func __asm_proxy_MULSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MULSS(v[0], v[1]) + } else { + panic("instruction MULSS takes exactly 2 operands") + } +} + +func __asm_proxy_MULW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.MULW(v[0]) + } else { + panic("instruction MULW takes exactly 1 operand") + } +} + +func __asm_proxy_MULXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.MULXL(v[0], v[1], v[2]) + } else { + panic("instruction MULXL takes exactly 3 operands") + } +} + +func __asm_proxy_MULXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.MULXQ(v[0], v[1], v[2]) + } else { + panic("instruction MULXQ takes exactly 3 operands") + } +} + +func __asm_proxy_MWAIT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MWAIT() + } else { + panic("instruction MWAIT takes no operands") + } +} + +func __asm_proxy_MWAITX__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MWAITX() + } else { + panic("instruction MWAITX takes no operands") + } +} + +func __asm_proxy_NEGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NEGB(v[0]) + } else { + panic("instruction NEGB takes exactly 1 operand") + } +} + +func __asm_proxy_NEGL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NEGL(v[0]) + } else { + panic("instruction NEGL takes exactly 1 operand") + } +} + +func __asm_proxy_NEGQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NEGQ(v[0]) + } else { + panic("instruction NEGQ takes exactly 1 operand") + } +} + +func __asm_proxy_NEGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NEGW(v[0]) + } else { + panic("instruction NEGW takes exactly 1 operand") + } +} + +func __asm_proxy_NOP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.NOP() + } else { + panic("instruction NOP takes no operands") + } +} + +func __asm_proxy_NOTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NOTB(v[0]) + } else { + panic("instruction NOTB takes exactly 1 operand") + } +} + +func __asm_proxy_NOTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NOTL(v[0]) + } else { + panic("instruction NOTL takes exactly 1 operand") + } +} + +func __asm_proxy_NOTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NOTQ(v[0]) + } else { + panic("instruction NOTQ takes exactly 1 operand") + } +} + +func __asm_proxy_NOTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NOTW(v[0]) + } else { + panic("instruction NOTW takes exactly 1 operand") + } +} + +func __asm_proxy_ORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORB(v[0], v[1]) + } else { + panic("instruction ORB takes exactly 2 operands") + } +} + +func __asm_proxy_ORL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORL(v[0], v[1]) + } else { + panic("instruction ORL takes exactly 2 operands") + } +} + +func __asm_proxy_ORPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORPD(v[0], v[1]) + } else { + panic("instruction ORPD takes exactly 2 operands") + } +} + +func __asm_proxy_ORPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORPS(v[0], v[1]) + } else { + panic("instruction ORPS takes exactly 2 operands") + } +} + +func __asm_proxy_ORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORQ(v[0], v[1]) + } else { + panic("instruction ORQ takes exactly 2 operands") + } +} + +func __asm_proxy_ORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORW(v[0], v[1]) + } else { + panic("instruction ORW takes exactly 2 operands") + } +} + +func __asm_proxy_PABSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PABSB(v[0], v[1]) + } else { + panic("instruction PABSB takes exactly 2 operands") + } +} + +func __asm_proxy_PABSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PABSD(v[0], v[1]) + } else { + panic("instruction PABSD takes exactly 2 operands") + } +} + +func __asm_proxy_PABSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PABSW(v[0], v[1]) + } else { + panic("instruction PABSW takes exactly 2 operands") + } +} + +func __asm_proxy_PACKSSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PACKSSDW(v[0], v[1]) + } else { + panic("instruction PACKSSDW takes exactly 2 operands") + } +} + +func __asm_proxy_PACKSSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PACKSSWB(v[0], v[1]) + } else { + panic("instruction PACKSSWB takes exactly 2 operands") + } +} + +func __asm_proxy_PACKUSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PACKUSDW(v[0], v[1]) + } else { + panic("instruction PACKUSDW takes exactly 2 operands") + } +} + +func __asm_proxy_PACKUSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PACKUSWB(v[0], v[1]) + } else { + panic("instruction PACKUSWB takes exactly 2 operands") + } +} + +func __asm_proxy_PADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDB(v[0], v[1]) + } else { + panic("instruction PADDB takes exactly 2 operands") + } +} + +func __asm_proxy_PADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDD(v[0], v[1]) + } else { + panic("instruction PADDD takes exactly 2 operands") + } +} + +func __asm_proxy_PADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDQ(v[0], v[1]) + } else { + panic("instruction PADDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PADDSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDSB(v[0], v[1]) + } else { + panic("instruction PADDSB takes exactly 2 operands") + } +} + +func __asm_proxy_PADDSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDSW(v[0], v[1]) + } else { + panic("instruction PADDSW takes exactly 2 operands") + } +} + +func __asm_proxy_PADDUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDUSB(v[0], v[1]) + } else { + panic("instruction PADDUSB takes exactly 2 operands") + } +} + +func __asm_proxy_PADDUSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDUSW(v[0], v[1]) + } else { + panic("instruction PADDUSW takes exactly 2 operands") + } +} + +func __asm_proxy_PADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDW(v[0], v[1]) + } else { + panic("instruction PADDW takes exactly 2 operands") + } +} + +func __asm_proxy_PALIGNR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PALIGNR(v[0], v[1], v[2]) + } else { + panic("instruction PALIGNR takes exactly 3 operands") + } +} + +func __asm_proxy_PAND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PAND(v[0], v[1]) + } else { + panic("instruction PAND takes exactly 2 operands") + } +} + +func __asm_proxy_PANDN__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PANDN(v[0], v[1]) + } else { + panic("instruction PANDN takes exactly 2 operands") + } +} + +func __asm_proxy_PAUSE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.PAUSE() + } else { + panic("instruction PAUSE takes no operands") + } +} + +func __asm_proxy_PAVGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PAVGB(v[0], v[1]) + } else { + panic("instruction PAVGB takes exactly 2 operands") + } +} + +func __asm_proxy_PAVGUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PAVGUSB(v[0], v[1]) + } else { + panic("instruction PAVGUSB takes exactly 2 operands") + } +} + +func __asm_proxy_PAVGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PAVGW(v[0], v[1]) + } else { + panic("instruction PAVGW takes exactly 2 operands") + } +} + +func __asm_proxy_PBLENDVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PBLENDVB(v[0], v[1], v[2]) + } else { + panic("instruction PBLENDVB takes exactly 3 operands") + } +} + +func __asm_proxy_PBLENDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PBLENDW(v[0], v[1], v[2]) + } else { + panic("instruction PBLENDW takes exactly 3 operands") + } +} + +func __asm_proxy_PCLMULQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCLMULQDQ(v[0], v[1], v[2]) + } else { + panic("instruction PCLMULQDQ takes exactly 3 operands") + } +} + +func __asm_proxy_PCMPEQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPEQB(v[0], v[1]) + } else { + panic("instruction PCMPEQB takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPEQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPEQD(v[0], v[1]) + } else { + panic("instruction PCMPEQD takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPEQQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPEQQ(v[0], v[1]) + } else { + panic("instruction PCMPEQQ takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPEQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPEQW(v[0], v[1]) + } else { + panic("instruction PCMPEQW takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPESTRI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCMPESTRI(v[0], v[1], v[2]) + } else { + panic("instruction PCMPESTRI takes exactly 3 operands") + } +} + +func __asm_proxy_PCMPESTRM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCMPESTRM(v[0], v[1], v[2]) + } else { + panic("instruction PCMPESTRM takes exactly 3 operands") + } +} + +func __asm_proxy_PCMPGTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPGTB(v[0], v[1]) + } else { + panic("instruction PCMPGTB takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPGTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPGTD(v[0], v[1]) + } else { + panic("instruction PCMPGTD takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPGTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPGTQ(v[0], v[1]) + } else { + panic("instruction PCMPGTQ takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPGTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPGTW(v[0], v[1]) + } else { + panic("instruction PCMPGTW takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPISTRI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCMPISTRI(v[0], v[1], v[2]) + } else { + panic("instruction PCMPISTRI takes exactly 3 operands") + } +} + +func __asm_proxy_PCMPISTRM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCMPISTRM(v[0], v[1], v[2]) + } else { + panic("instruction PCMPISTRM takes exactly 3 operands") + } +} + +func __asm_proxy_PDEP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PDEP(v[0], v[1], v[2]) + } else { + panic("instruction PDEP takes exactly 3 operands") + } +} + +func __asm_proxy_PEXT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXT(v[0], v[1], v[2]) + } else { + panic("instruction PEXT takes exactly 3 operands") + } +} + +func __asm_proxy_PEXTRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXTRB(v[0], v[1], v[2]) + } else { + panic("instruction PEXTRB takes exactly 3 operands") + } +} + +func __asm_proxy_PEXTRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXTRD(v[0], v[1], v[2]) + } else { + panic("instruction PEXTRD takes exactly 3 operands") + } +} + +func __asm_proxy_PEXTRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXTRQ(v[0], v[1], v[2]) + } else { + panic("instruction PEXTRQ takes exactly 3 operands") + } +} + +func __asm_proxy_PEXTRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXTRW(v[0], v[1], v[2]) + } else { + panic("instruction PEXTRW takes exactly 3 operands") + } +} + +func __asm_proxy_PF2ID__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PF2ID(v[0], v[1]) + } else { + panic("instruction PF2ID takes exactly 2 operands") + } +} + +func __asm_proxy_PF2IW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PF2IW(v[0], v[1]) + } else { + panic("instruction PF2IW takes exactly 2 operands") + } +} + +func __asm_proxy_PFACC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFACC(v[0], v[1]) + } else { + panic("instruction PFACC takes exactly 2 operands") + } +} + +func __asm_proxy_PFADD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFADD(v[0], v[1]) + } else { + panic("instruction PFADD takes exactly 2 operands") + } +} + +func __asm_proxy_PFCMPEQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFCMPEQ(v[0], v[1]) + } else { + panic("instruction PFCMPEQ takes exactly 2 operands") + } +} + +func __asm_proxy_PFCMPGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFCMPGE(v[0], v[1]) + } else { + panic("instruction PFCMPGE takes exactly 2 operands") + } +} + +func __asm_proxy_PFCMPGT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFCMPGT(v[0], v[1]) + } else { + panic("instruction PFCMPGT takes exactly 2 operands") + } +} + +func __asm_proxy_PFMAX__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFMAX(v[0], v[1]) + } else { + panic("instruction PFMAX takes exactly 2 operands") + } +} + +func __asm_proxy_PFMIN__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFMIN(v[0], v[1]) + } else { + panic("instruction PFMIN takes exactly 2 operands") + } +} + +func __asm_proxy_PFMUL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFMUL(v[0], v[1]) + } else { + panic("instruction PFMUL takes exactly 2 operands") + } +} + +func __asm_proxy_PFNACC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFNACC(v[0], v[1]) + } else { + panic("instruction PFNACC takes exactly 2 operands") + } +} + +func __asm_proxy_PFPNACC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFPNACC(v[0], v[1]) + } else { + panic("instruction PFPNACC takes exactly 2 operands") + } +} + +func __asm_proxy_PFRCP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRCP(v[0], v[1]) + } else { + panic("instruction PFRCP takes exactly 2 operands") + } +} + +func __asm_proxy_PFRCPIT1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRCPIT1(v[0], v[1]) + } else { + panic("instruction PFRCPIT1 takes exactly 2 operands") + } +} + +func __asm_proxy_PFRCPIT2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRCPIT2(v[0], v[1]) + } else { + panic("instruction PFRCPIT2 takes exactly 2 operands") + } +} + +func __asm_proxy_PFRSQIT1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRSQIT1(v[0], v[1]) + } else { + panic("instruction PFRSQIT1 takes exactly 2 operands") + } +} + +func __asm_proxy_PFRSQRT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRSQRT(v[0], v[1]) + } else { + panic("instruction PFRSQRT takes exactly 2 operands") + } +} + +func __asm_proxy_PFSUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFSUB(v[0], v[1]) + } else { + panic("instruction PFSUB takes exactly 2 operands") + } +} + +func __asm_proxy_PFSUBR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFSUBR(v[0], v[1]) + } else { + panic("instruction PFSUBR takes exactly 2 operands") + } +} + +func __asm_proxy_PHADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHADDD(v[0], v[1]) + } else { + panic("instruction PHADDD takes exactly 2 operands") + } +} + +func __asm_proxy_PHADDSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHADDSW(v[0], v[1]) + } else { + panic("instruction PHADDSW takes exactly 2 operands") + } +} + +func __asm_proxy_PHADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHADDW(v[0], v[1]) + } else { + panic("instruction PHADDW takes exactly 2 operands") + } +} + +func __asm_proxy_PHMINPOSUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHMINPOSUW(v[0], v[1]) + } else { + panic("instruction PHMINPOSUW takes exactly 2 operands") + } +} + +func __asm_proxy_PHSUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHSUBD(v[0], v[1]) + } else { + panic("instruction PHSUBD takes exactly 2 operands") + } +} + +func __asm_proxy_PHSUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHSUBSW(v[0], v[1]) + } else { + panic("instruction PHSUBSW takes exactly 2 operands") + } +} + +func __asm_proxy_PHSUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHSUBW(v[0], v[1]) + } else { + panic("instruction PHSUBW takes exactly 2 operands") + } +} + +func __asm_proxy_PI2FD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PI2FD(v[0], v[1]) + } else { + panic("instruction PI2FD takes exactly 2 operands") + } +} + +func __asm_proxy_PI2FW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PI2FW(v[0], v[1]) + } else { + panic("instruction PI2FW takes exactly 2 operands") + } +} + +func __asm_proxy_PINSRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PINSRB(v[0], v[1], v[2]) + } else { + panic("instruction PINSRB takes exactly 3 operands") + } +} + +func __asm_proxy_PINSRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PINSRD(v[0], v[1], v[2]) + } else { + panic("instruction PINSRD takes exactly 3 operands") + } +} + +func __asm_proxy_PINSRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PINSRQ(v[0], v[1], v[2]) + } else { + panic("instruction PINSRQ takes exactly 3 operands") + } +} + +func __asm_proxy_PINSRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PINSRW(v[0], v[1], v[2]) + } else { + panic("instruction PINSRW takes exactly 3 operands") + } +} + +func __asm_proxy_PMADDUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMADDUBSW(v[0], v[1]) + } else { + panic("instruction PMADDUBSW takes exactly 2 operands") + } +} + +func __asm_proxy_PMADDWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMADDWD(v[0], v[1]) + } else { + panic("instruction PMADDWD takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXSB(v[0], v[1]) + } else { + panic("instruction PMAXSB takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXSD(v[0], v[1]) + } else { + panic("instruction PMAXSD takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXSW(v[0], v[1]) + } else { + panic("instruction PMAXSW takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXUB(v[0], v[1]) + } else { + panic("instruction PMAXUB takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXUD(v[0], v[1]) + } else { + panic("instruction PMAXUD takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXUW(v[0], v[1]) + } else { + panic("instruction PMAXUW takes exactly 2 operands") + } +} + +func __asm_proxy_PMINSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINSB(v[0], v[1]) + } else { + panic("instruction PMINSB takes exactly 2 operands") + } +} + +func __asm_proxy_PMINSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINSD(v[0], v[1]) + } else { + panic("instruction PMINSD takes exactly 2 operands") + } +} + +func __asm_proxy_PMINSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINSW(v[0], v[1]) + } else { + panic("instruction PMINSW takes exactly 2 operands") + } +} + +func __asm_proxy_PMINUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINUB(v[0], v[1]) + } else { + panic("instruction PMINUB takes exactly 2 operands") + } +} + +func __asm_proxy_PMINUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINUD(v[0], v[1]) + } else { + panic("instruction PMINUD takes exactly 2 operands") + } +} + +func __asm_proxy_PMINUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINUW(v[0], v[1]) + } else { + panic("instruction PMINUW takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVMSKB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVMSKB(v[0], v[1]) + } else { + panic("instruction PMOVMSKB takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXBD(v[0], v[1]) + } else { + panic("instruction PMOVSXBD takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXBQ(v[0], v[1]) + } else { + panic("instruction PMOVSXBQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXBW(v[0], v[1]) + } else { + panic("instruction PMOVSXBW takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXDQ(v[0], v[1]) + } else { + panic("instruction PMOVSXDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXWD(v[0], v[1]) + } else { + panic("instruction PMOVSXWD takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXWQ(v[0], v[1]) + } else { + panic("instruction PMOVSXWQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXBD(v[0], v[1]) + } else { + panic("instruction PMOVZXBD takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXBQ(v[0], v[1]) + } else { + panic("instruction PMOVZXBQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXBW(v[0], v[1]) + } else { + panic("instruction PMOVZXBW takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXDQ(v[0], v[1]) + } else { + panic("instruction PMOVZXDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXWD(v[0], v[1]) + } else { + panic("instruction PMOVZXWD takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXWQ(v[0], v[1]) + } else { + panic("instruction PMOVZXWQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMULDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULDQ(v[0], v[1]) + } else { + panic("instruction PMULDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMULHRSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULHRSW(v[0], v[1]) + } else { + panic("instruction PMULHRSW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULHRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULHRW(v[0], v[1]) + } else { + panic("instruction PMULHRW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULHUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULHUW(v[0], v[1]) + } else { + panic("instruction PMULHUW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULHW(v[0], v[1]) + } else { + panic("instruction PMULHW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULLD(v[0], v[1]) + } else { + panic("instruction PMULLD takes exactly 2 operands") + } +} + +func __asm_proxy_PMULLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULLW(v[0], v[1]) + } else { + panic("instruction PMULLW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULUDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULUDQ(v[0], v[1]) + } else { + panic("instruction PMULUDQ takes exactly 2 operands") + } +} + +func __asm_proxy_POPCNTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.POPCNTL(v[0], v[1]) + } else { + panic("instruction POPCNTL takes exactly 2 operands") + } +} + +func __asm_proxy_POPCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.POPCNTQ(v[0], v[1]) + } else { + panic("instruction POPCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_POPCNTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.POPCNTW(v[0], v[1]) + } else { + panic("instruction POPCNTW takes exactly 2 operands") + } +} + +func __asm_proxy_POPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.POPQ(v[0]) + } else { + panic("instruction POPQ takes exactly 1 operand") + } +} + +func __asm_proxy_POPW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.POPW(v[0]) + } else { + panic("instruction POPW takes exactly 1 operand") + } +} + +func __asm_proxy_POR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.POR(v[0], v[1]) + } else { + panic("instruction POR takes exactly 2 operands") + } +} + +func __asm_proxy_PREFETCH__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCH(v[0]) + } else { + panic("instruction PREFETCH takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHNTA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHNTA(v[0]) + } else { + panic("instruction PREFETCHNTA takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHT0__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHT0(v[0]) + } else { + panic("instruction PREFETCHT0 takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHT1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHT1(v[0]) + } else { + panic("instruction PREFETCHT1 takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHT2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHT2(v[0]) + } else { + panic("instruction PREFETCHT2 takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHW(v[0]) + } else { + panic("instruction PREFETCHW takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHWT1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHWT1(v[0]) + } else { + panic("instruction PREFETCHWT1 takes exactly 1 operand") + } +} + +func __asm_proxy_PSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSADBW(v[0], v[1]) + } else { + panic("instruction PSADBW takes exactly 2 operands") + } +} + +func __asm_proxy_PSHUFB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSHUFB(v[0], v[1]) + } else { + panic("instruction PSHUFB takes exactly 2 operands") + } +} + +func __asm_proxy_PSHUFD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PSHUFD(v[0], v[1], v[2]) + } else { + panic("instruction PSHUFD takes exactly 3 operands") + } +} + +func __asm_proxy_PSHUFHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PSHUFHW(v[0], v[1], v[2]) + } else { + panic("instruction PSHUFHW takes exactly 3 operands") + } +} + +func __asm_proxy_PSHUFLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PSHUFLW(v[0], v[1], v[2]) + } else { + panic("instruction PSHUFLW takes exactly 3 operands") + } +} + +func __asm_proxy_PSHUFW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PSHUFW(v[0], v[1], v[2]) + } else { + panic("instruction PSHUFW takes exactly 3 operands") + } +} + +func __asm_proxy_PSIGNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSIGNB(v[0], v[1]) + } else { + panic("instruction PSIGNB takes exactly 2 operands") + } +} + +func __asm_proxy_PSIGND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSIGND(v[0], v[1]) + } else { + panic("instruction PSIGND takes exactly 2 operands") + } +} + +func __asm_proxy_PSIGNW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSIGNW(v[0], v[1]) + } else { + panic("instruction PSIGNW takes exactly 2 operands") + } +} + +func __asm_proxy_PSLLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSLLD(v[0], v[1]) + } else { + panic("instruction PSLLD takes exactly 2 operands") + } +} + +func __asm_proxy_PSLLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSLLDQ(v[0], v[1]) + } else { + panic("instruction PSLLDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSLLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSLLQ(v[0], v[1]) + } else { + panic("instruction PSLLQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSLLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSLLW(v[0], v[1]) + } else { + panic("instruction PSLLW takes exactly 2 operands") + } +} + +func __asm_proxy_PSRAD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRAD(v[0], v[1]) + } else { + panic("instruction PSRAD takes exactly 2 operands") + } +} + +func __asm_proxy_PSRAW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRAW(v[0], v[1]) + } else { + panic("instruction PSRAW takes exactly 2 operands") + } +} + +func __asm_proxy_PSRLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRLD(v[0], v[1]) + } else { + panic("instruction PSRLD takes exactly 2 operands") + } +} + +func __asm_proxy_PSRLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRLDQ(v[0], v[1]) + } else { + panic("instruction PSRLDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSRLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRLQ(v[0], v[1]) + } else { + panic("instruction PSRLQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSRLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRLW(v[0], v[1]) + } else { + panic("instruction PSRLW takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBB(v[0], v[1]) + } else { + panic("instruction PSUBB takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBD(v[0], v[1]) + } else { + panic("instruction PSUBD takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBQ(v[0], v[1]) + } else { + panic("instruction PSUBQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBSB(v[0], v[1]) + } else { + panic("instruction PSUBSB takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBSW(v[0], v[1]) + } else { + panic("instruction PSUBSW takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBUSB(v[0], v[1]) + } else { + panic("instruction PSUBUSB takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBUSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBUSW(v[0], v[1]) + } else { + panic("instruction PSUBUSW takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBW(v[0], v[1]) + } else { + panic("instruction PSUBW takes exactly 2 operands") + } +} + +func __asm_proxy_PSWAPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSWAPD(v[0], v[1]) + } else { + panic("instruction PSWAPD takes exactly 2 operands") + } +} + +func __asm_proxy_PTEST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PTEST(v[0], v[1]) + } else { + panic("instruction PTEST takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKHBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKHBW(v[0], v[1]) + } else { + panic("instruction PUNPCKHBW takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKHDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKHDQ(v[0], v[1]) + } else { + panic("instruction PUNPCKHDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKHQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKHQDQ(v[0], v[1]) + } else { + panic("instruction PUNPCKHQDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKHWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKHWD(v[0], v[1]) + } else { + panic("instruction PUNPCKHWD takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKLBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKLBW(v[0], v[1]) + } else { + panic("instruction PUNPCKLBW takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKLDQ(v[0], v[1]) + } else { + panic("instruction PUNPCKLDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKLQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKLQDQ(v[0], v[1]) + } else { + panic("instruction PUNPCKLQDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKLWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKLWD(v[0], v[1]) + } else { + panic("instruction PUNPCKLWD takes exactly 2 operands") + } +} + +func __asm_proxy_PUSHQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PUSHQ(v[0]) + } else { + panic("instruction PUSHQ takes exactly 1 operand") + } +} + +func __asm_proxy_PUSHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PUSHW(v[0]) + } else { + panic("instruction PUSHW takes exactly 1 operand") + } +} + +func __asm_proxy_PXOR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PXOR(v[0], v[1]) + } else { + panic("instruction PXOR takes exactly 2 operands") + } +} + +func __asm_proxy_RCLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCLB(v[0], v[1]) + } else { + panic("instruction RCLB takes exactly 2 operands") + } +} + +func __asm_proxy_RCLL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCLL(v[0], v[1]) + } else { + panic("instruction RCLL takes exactly 2 operands") + } +} + +func __asm_proxy_RCLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCLQ(v[0], v[1]) + } else { + panic("instruction RCLQ takes exactly 2 operands") + } +} + +func __asm_proxy_RCLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCLW(v[0], v[1]) + } else { + panic("instruction RCLW takes exactly 2 operands") + } +} + +func __asm_proxy_RCPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCPPS(v[0], v[1]) + } else { + panic("instruction RCPPS takes exactly 2 operands") + } +} + +func __asm_proxy_RCPSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCPSS(v[0], v[1]) + } else { + panic("instruction RCPSS takes exactly 2 operands") + } +} + +func __asm_proxy_RCRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCRB(v[0], v[1]) + } else { + panic("instruction RCRB takes exactly 2 operands") + } +} + +func __asm_proxy_RCRL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCRL(v[0], v[1]) + } else { + panic("instruction RCRL takes exactly 2 operands") + } +} + +func __asm_proxy_RCRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCRQ(v[0], v[1]) + } else { + panic("instruction RCRQ takes exactly 2 operands") + } +} + +func __asm_proxy_RCRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCRW(v[0], v[1]) + } else { + panic("instruction RCRW takes exactly 2 operands") + } +} + +func __asm_proxy_RDRAND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.RDRAND(v[0]) + } else { + panic("instruction RDRAND takes exactly 1 operand") + } +} + +func __asm_proxy_RDSEED__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.RDSEED(v[0]) + } else { + panic("instruction RDSEED takes exactly 1 operand") + } +} + +func __asm_proxy_RDTSC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.RDTSC() + } else { + panic("instruction RDTSC takes no operands") + } +} + +func __asm_proxy_RDTSCP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.RDTSCP() + } else { + panic("instruction RDTSCP takes no operands") + } +} + +func __asm_proxy_RET__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 0 : return p.RET() + case 1 : return p.RET(v[0]) + default : panic("instruction RET takes 0 or 1 operands") + } +} + +func __asm_proxy_ROLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ROLB(v[0], v[1]) + } else { + panic("instruction ROLB takes exactly 2 operands") + } +} + +func __asm_proxy_ROLL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ROLL(v[0], v[1]) + } else { + panic("instruction ROLL takes exactly 2 operands") + } +} + +func __asm_proxy_ROLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ROLQ(v[0], v[1]) + } else { + panic("instruction ROLQ takes exactly 2 operands") + } +} + +func __asm_proxy_ROLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ROLW(v[0], v[1]) + } else { + panic("instruction ROLW takes exactly 2 operands") + } +} + +func __asm_proxy_RORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RORB(v[0], v[1]) + } else { + panic("instruction RORB takes exactly 2 operands") + } +} + +func __asm_proxy_RORL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RORL(v[0], v[1]) + } else { + panic("instruction RORL takes exactly 2 operands") + } +} + +func __asm_proxy_RORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RORQ(v[0], v[1]) + } else { + panic("instruction RORQ takes exactly 2 operands") + } +} + +func __asm_proxy_RORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RORW(v[0], v[1]) + } else { + panic("instruction RORW takes exactly 2 operands") + } +} + +func __asm_proxy_RORXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.RORXL(v[0], v[1], v[2]) + } else { + panic("instruction RORXL takes exactly 3 operands") + } +} + +func __asm_proxy_RORXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.RORXQ(v[0], v[1], v[2]) + } else { + panic("instruction RORXQ takes exactly 3 operands") + } +} + +func __asm_proxy_ROUNDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ROUNDPD(v[0], v[1], v[2]) + } else { + panic("instruction ROUNDPD takes exactly 3 operands") + } +} + +func __asm_proxy_ROUNDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ROUNDPS(v[0], v[1], v[2]) + } else { + panic("instruction ROUNDPS takes exactly 3 operands") + } +} + +func __asm_proxy_ROUNDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ROUNDSD(v[0], v[1], v[2]) + } else { + panic("instruction ROUNDSD takes exactly 3 operands") + } +} + +func __asm_proxy_ROUNDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ROUNDSS(v[0], v[1], v[2]) + } else { + panic("instruction ROUNDSS takes exactly 3 operands") + } +} + +func __asm_proxy_RSQRTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RSQRTPS(v[0], v[1]) + } else { + panic("instruction RSQRTPS takes exactly 2 operands") + } +} + +func __asm_proxy_RSQRTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RSQRTSS(v[0], v[1]) + } else { + panic("instruction RSQRTSS takes exactly 2 operands") + } +} + +func __asm_proxy_SALB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SALB(v[0], v[1]) + } else { + panic("instruction SALB takes exactly 2 operands") + } +} + +func __asm_proxy_SALL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SALL(v[0], v[1]) + } else { + panic("instruction SALL takes exactly 2 operands") + } +} + +func __asm_proxy_SALQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SALQ(v[0], v[1]) + } else { + panic("instruction SALQ takes exactly 2 operands") + } +} + +func __asm_proxy_SALW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SALW(v[0], v[1]) + } else { + panic("instruction SALW takes exactly 2 operands") + } +} + +func __asm_proxy_SARB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SARB(v[0], v[1]) + } else { + panic("instruction SARB takes exactly 2 operands") + } +} + +func __asm_proxy_SARL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SARL(v[0], v[1]) + } else { + panic("instruction SARL takes exactly 2 operands") + } +} + +func __asm_proxy_SARQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SARQ(v[0], v[1]) + } else { + panic("instruction SARQ takes exactly 2 operands") + } +} + +func __asm_proxy_SARW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SARW(v[0], v[1]) + } else { + panic("instruction SARW takes exactly 2 operands") + } +} + +func __asm_proxy_SARXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SARXL(v[0], v[1], v[2]) + } else { + panic("instruction SARXL takes exactly 3 operands") + } +} + +func __asm_proxy_SARXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SARXQ(v[0], v[1], v[2]) + } else { + panic("instruction SARXQ takes exactly 3 operands") + } +} + +func __asm_proxy_SBBB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SBBB(v[0], v[1]) + } else { + panic("instruction SBBB takes exactly 2 operands") + } +} + +func __asm_proxy_SBBL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SBBL(v[0], v[1]) + } else { + panic("instruction SBBL takes exactly 2 operands") + } +} + +func __asm_proxy_SBBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SBBQ(v[0], v[1]) + } else { + panic("instruction SBBQ takes exactly 2 operands") + } +} + +func __asm_proxy_SBBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SBBW(v[0], v[1]) + } else { + panic("instruction SBBW takes exactly 2 operands") + } +} + +func __asm_proxy_SETA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETA(v[0]) + } else { + panic("instruction SETA takes exactly 1 operand") + } +} + +func __asm_proxy_SETAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETAE(v[0]) + } else { + panic("instruction SETAE takes exactly 1 operand") + } +} + +func __asm_proxy_SETB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETB(v[0]) + } else { + panic("instruction SETB takes exactly 1 operand") + } +} + +func __asm_proxy_SETBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETBE(v[0]) + } else { + panic("instruction SETBE takes exactly 1 operand") + } +} + +func __asm_proxy_SETC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETC(v[0]) + } else { + panic("instruction SETC takes exactly 1 operand") + } +} + +func __asm_proxy_SETE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETE(v[0]) + } else { + panic("instruction SETE takes exactly 1 operand") + } +} + +func __asm_proxy_SETG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETG(v[0]) + } else { + panic("instruction SETG takes exactly 1 operand") + } +} + +func __asm_proxy_SETGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETGE(v[0]) + } else { + panic("instruction SETGE takes exactly 1 operand") + } +} + +func __asm_proxy_SETL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETL(v[0]) + } else { + panic("instruction SETL takes exactly 1 operand") + } +} + +func __asm_proxy_SETLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETLE(v[0]) + } else { + panic("instruction SETLE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNA(v[0]) + } else { + panic("instruction SETNA takes exactly 1 operand") + } +} + +func __asm_proxy_SETNAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNAE(v[0]) + } else { + panic("instruction SETNAE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNB(v[0]) + } else { + panic("instruction SETNB takes exactly 1 operand") + } +} + +func __asm_proxy_SETNBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNBE(v[0]) + } else { + panic("instruction SETNBE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNC(v[0]) + } else { + panic("instruction SETNC takes exactly 1 operand") + } +} + +func __asm_proxy_SETNE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNE(v[0]) + } else { + panic("instruction SETNE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNG(v[0]) + } else { + panic("instruction SETNG takes exactly 1 operand") + } +} + +func __asm_proxy_SETNGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNGE(v[0]) + } else { + panic("instruction SETNGE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNL(v[0]) + } else { + panic("instruction SETNL takes exactly 1 operand") + } +} + +func __asm_proxy_SETNLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNLE(v[0]) + } else { + panic("instruction SETNLE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNO(v[0]) + } else { + panic("instruction SETNO takes exactly 1 operand") + } +} + +func __asm_proxy_SETNP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNP(v[0]) + } else { + panic("instruction SETNP takes exactly 1 operand") + } +} + +func __asm_proxy_SETNS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNS(v[0]) + } else { + panic("instruction SETNS takes exactly 1 operand") + } +} + +func __asm_proxy_SETNZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNZ(v[0]) + } else { + panic("instruction SETNZ takes exactly 1 operand") + } +} + +func __asm_proxy_SETO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETO(v[0]) + } else { + panic("instruction SETO takes exactly 1 operand") + } +} + +func __asm_proxy_SETP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETP(v[0]) + } else { + panic("instruction SETP takes exactly 1 operand") + } +} + +func __asm_proxy_SETPE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETPE(v[0]) + } else { + panic("instruction SETPE takes exactly 1 operand") + } +} + +func __asm_proxy_SETPO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETPO(v[0]) + } else { + panic("instruction SETPO takes exactly 1 operand") + } +} + +func __asm_proxy_SETS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETS(v[0]) + } else { + panic("instruction SETS takes exactly 1 operand") + } +} + +func __asm_proxy_SETZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETZ(v[0]) + } else { + panic("instruction SETZ takes exactly 1 operand") + } +} + +func __asm_proxy_SFENCE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.SFENCE() + } else { + panic("instruction SFENCE takes no operands") + } +} + +func __asm_proxy_SHA1MSG1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA1MSG1(v[0], v[1]) + } else { + panic("instruction SHA1MSG1 takes exactly 2 operands") + } +} + +func __asm_proxy_SHA1MSG2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA1MSG2(v[0], v[1]) + } else { + panic("instruction SHA1MSG2 takes exactly 2 operands") + } +} + +func __asm_proxy_SHA1NEXTE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA1NEXTE(v[0], v[1]) + } else { + panic("instruction SHA1NEXTE takes exactly 2 operands") + } +} + +func __asm_proxy_SHA1RNDS4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHA1RNDS4(v[0], v[1], v[2]) + } else { + panic("instruction SHA1RNDS4 takes exactly 3 operands") + } +} + +func __asm_proxy_SHA256MSG1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA256MSG1(v[0], v[1]) + } else { + panic("instruction SHA256MSG1 takes exactly 2 operands") + } +} + +func __asm_proxy_SHA256MSG2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA256MSG2(v[0], v[1]) + } else { + panic("instruction SHA256MSG2 takes exactly 2 operands") + } +} + +func __asm_proxy_SHA256RNDS2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHA256RNDS2(v[0], v[1], v[2]) + } else { + panic("instruction SHA256RNDS2 takes exactly 3 operands") + } +} + +func __asm_proxy_SHLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHLB(v[0], v[1]) + } else { + panic("instruction SHLB takes exactly 2 operands") + } +} + +func __asm_proxy_SHLDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLDL(v[0], v[1], v[2]) + } else { + panic("instruction SHLDL takes exactly 3 operands") + } +} + +func __asm_proxy_SHLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLDQ(v[0], v[1], v[2]) + } else { + panic("instruction SHLDQ takes exactly 3 operands") + } +} + +func __asm_proxy_SHLDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLDW(v[0], v[1], v[2]) + } else { + panic("instruction SHLDW takes exactly 3 operands") + } +} + +func __asm_proxy_SHLL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHLL(v[0], v[1]) + } else { + panic("instruction SHLL takes exactly 2 operands") + } +} + +func __asm_proxy_SHLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHLQ(v[0], v[1]) + } else { + panic("instruction SHLQ takes exactly 2 operands") + } +} + +func __asm_proxy_SHLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHLW(v[0], v[1]) + } else { + panic("instruction SHLW takes exactly 2 operands") + } +} + +func __asm_proxy_SHLXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLXL(v[0], v[1], v[2]) + } else { + panic("instruction SHLXL takes exactly 3 operands") + } +} + +func __asm_proxy_SHLXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLXQ(v[0], v[1], v[2]) + } else { + panic("instruction SHLXQ takes exactly 3 operands") + } +} + +func __asm_proxy_SHRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHRB(v[0], v[1]) + } else { + panic("instruction SHRB takes exactly 2 operands") + } +} + +func __asm_proxy_SHRDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRDL(v[0], v[1], v[2]) + } else { + panic("instruction SHRDL takes exactly 3 operands") + } +} + +func __asm_proxy_SHRDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRDQ(v[0], v[1], v[2]) + } else { + panic("instruction SHRDQ takes exactly 3 operands") + } +} + +func __asm_proxy_SHRDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRDW(v[0], v[1], v[2]) + } else { + panic("instruction SHRDW takes exactly 3 operands") + } +} + +func __asm_proxy_SHRL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHRL(v[0], v[1]) + } else { + panic("instruction SHRL takes exactly 2 operands") + } +} + +func __asm_proxy_SHRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHRQ(v[0], v[1]) + } else { + panic("instruction SHRQ takes exactly 2 operands") + } +} + +func __asm_proxy_SHRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHRW(v[0], v[1]) + } else { + panic("instruction SHRW takes exactly 2 operands") + } +} + +func __asm_proxy_SHRXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRXL(v[0], v[1], v[2]) + } else { + panic("instruction SHRXL takes exactly 3 operands") + } +} + +func __asm_proxy_SHRXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRXQ(v[0], v[1], v[2]) + } else { + panic("instruction SHRXQ takes exactly 3 operands") + } +} + +func __asm_proxy_SHUFPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHUFPD(v[0], v[1], v[2]) + } else { + panic("instruction SHUFPD takes exactly 3 operands") + } +} + +func __asm_proxy_SHUFPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHUFPS(v[0], v[1], v[2]) + } else { + panic("instruction SHUFPS takes exactly 3 operands") + } +} + +func __asm_proxy_SQRTPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SQRTPD(v[0], v[1]) + } else { + panic("instruction SQRTPD takes exactly 2 operands") + } +} + +func __asm_proxy_SQRTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SQRTPS(v[0], v[1]) + } else { + panic("instruction SQRTPS takes exactly 2 operands") + } +} + +func __asm_proxy_SQRTSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SQRTSD(v[0], v[1]) + } else { + panic("instruction SQRTSD takes exactly 2 operands") + } +} + +func __asm_proxy_SQRTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SQRTSS(v[0], v[1]) + } else { + panic("instruction SQRTSS takes exactly 2 operands") + } +} + +func __asm_proxy_STC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.STC() + } else { + panic("instruction STC takes no operands") + } +} + +func __asm_proxy_STD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.STD() + } else { + panic("instruction STD takes no operands") + } +} + +func __asm_proxy_STMXCSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.STMXCSR(v[0]) + } else { + panic("instruction STMXCSR takes exactly 1 operand") + } +} + +func __asm_proxy_SUBB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBB(v[0], v[1]) + } else { + panic("instruction SUBB takes exactly 2 operands") + } +} + +func __asm_proxy_SUBL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBL(v[0], v[1]) + } else { + panic("instruction SUBL takes exactly 2 operands") + } +} + +func __asm_proxy_SUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBPD(v[0], v[1]) + } else { + panic("instruction SUBPD takes exactly 2 operands") + } +} + +func __asm_proxy_SUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBPS(v[0], v[1]) + } else { + panic("instruction SUBPS takes exactly 2 operands") + } +} + +func __asm_proxy_SUBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBQ(v[0], v[1]) + } else { + panic("instruction SUBQ takes exactly 2 operands") + } +} + +func __asm_proxy_SUBSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBSD(v[0], v[1]) + } else { + panic("instruction SUBSD takes exactly 2 operands") + } +} + +func __asm_proxy_SUBSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBSS(v[0], v[1]) + } else { + panic("instruction SUBSS takes exactly 2 operands") + } +} + +func __asm_proxy_SUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBW(v[0], v[1]) + } else { + panic("instruction SUBW takes exactly 2 operands") + } +} + +func __asm_proxy_SYSCALL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.SYSCALL() + } else { + panic("instruction SYSCALL takes no operands") + } +} + +func __asm_proxy_T1MSKC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.T1MSKC(v[0], v[1]) + } else { + panic("instruction T1MSKC takes exactly 2 operands") + } +} + +func __asm_proxy_TESTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TESTB(v[0], v[1]) + } else { + panic("instruction TESTB takes exactly 2 operands") + } +} + +func __asm_proxy_TESTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TESTL(v[0], v[1]) + } else { + panic("instruction TESTL takes exactly 2 operands") + } +} + +func __asm_proxy_TESTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TESTQ(v[0], v[1]) + } else { + panic("instruction TESTQ takes exactly 2 operands") + } +} + +func __asm_proxy_TESTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TESTW(v[0], v[1]) + } else { + panic("instruction TESTW takes exactly 2 operands") + } +} + +func __asm_proxy_TZCNTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TZCNTL(v[0], v[1]) + } else { + panic("instruction TZCNTL takes exactly 2 operands") + } +} + +func __asm_proxy_TZCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TZCNTQ(v[0], v[1]) + } else { + panic("instruction TZCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_TZCNTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TZCNTW(v[0], v[1]) + } else { + panic("instruction TZCNTW takes exactly 2 operands") + } +} + +func __asm_proxy_TZMSK__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TZMSK(v[0], v[1]) + } else { + panic("instruction TZMSK takes exactly 2 operands") + } +} + +func __asm_proxy_UCOMISD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UCOMISD(v[0], v[1]) + } else { + panic("instruction UCOMISD takes exactly 2 operands") + } +} + +func __asm_proxy_UCOMISS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UCOMISS(v[0], v[1]) + } else { + panic("instruction UCOMISS takes exactly 2 operands") + } +} + +func __asm_proxy_UD2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.UD2() + } else { + panic("instruction UD2 takes no operands") + } +} + +func __asm_proxy_UNPCKHPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UNPCKHPD(v[0], v[1]) + } else { + panic("instruction UNPCKHPD takes exactly 2 operands") + } +} + +func __asm_proxy_UNPCKHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UNPCKHPS(v[0], v[1]) + } else { + panic("instruction UNPCKHPS takes exactly 2 operands") + } +} + +func __asm_proxy_UNPCKLPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UNPCKLPD(v[0], v[1]) + } else { + panic("instruction UNPCKLPD takes exactly 2 operands") + } +} + +func __asm_proxy_UNPCKLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UNPCKLPS(v[0], v[1]) + } else { + panic("instruction UNPCKLPS takes exactly 2 operands") + } +} + +func __asm_proxy_VADDPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VADDPD(v[0], v[1], v[2]) + case 4 : return p.VADDPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VADDPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VADDPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VADDPS(v[0], v[1], v[2]) + case 4 : return p.VADDPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VADDPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VADDSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VADDSD(v[0], v[1], v[2]) + case 4 : return p.VADDSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VADDSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VADDSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VADDSS(v[0], v[1], v[2]) + case 4 : return p.VADDSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VADDSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VADDSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VADDSUBPD(v[0], v[1], v[2]) + } else { + panic("instruction VADDSUBPD takes exactly 3 operands") + } +} + +func __asm_proxy_VADDSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VADDSUBPS(v[0], v[1], v[2]) + } else { + panic("instruction VADDSUBPS takes exactly 3 operands") + } +} + +func __asm_proxy_VAESDEC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESDEC(v[0], v[1], v[2]) + } else { + panic("instruction VAESDEC takes exactly 3 operands") + } +} + +func __asm_proxy_VAESDECLAST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESDECLAST(v[0], v[1], v[2]) + } else { + panic("instruction VAESDECLAST takes exactly 3 operands") + } +} + +func __asm_proxy_VAESENC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESENC(v[0], v[1], v[2]) + } else { + panic("instruction VAESENC takes exactly 3 operands") + } +} + +func __asm_proxy_VAESENCLAST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESENCLAST(v[0], v[1], v[2]) + } else { + panic("instruction VAESENCLAST takes exactly 3 operands") + } +} + +func __asm_proxy_VAESIMC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VAESIMC(v[0], v[1]) + } else { + panic("instruction VAESIMC takes exactly 2 operands") + } +} + +func __asm_proxy_VAESKEYGENASSIST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESKEYGENASSIST(v[0], v[1], v[2]) + } else { + panic("instruction VAESKEYGENASSIST takes exactly 3 operands") + } +} + +func __asm_proxy_VALIGND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VALIGND(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VALIGND takes exactly 4 operands") + } +} + +func __asm_proxy_VALIGNQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VALIGNQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VALIGNQ takes exactly 4 operands") + } +} + +func __asm_proxy_VANDNPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VANDNPD(v[0], v[1], v[2]) + } else { + panic("instruction VANDNPD takes exactly 3 operands") + } +} + +func __asm_proxy_VANDNPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VANDNPS(v[0], v[1], v[2]) + } else { + panic("instruction VANDNPS takes exactly 3 operands") + } +} + +func __asm_proxy_VANDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VANDPD(v[0], v[1], v[2]) + } else { + panic("instruction VANDPD takes exactly 3 operands") + } +} + +func __asm_proxy_VANDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VANDPS(v[0], v[1], v[2]) + } else { + panic("instruction VANDPS takes exactly 3 operands") + } +} + +func __asm_proxy_VBLENDMPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VBLENDMPD(v[0], v[1], v[2]) + } else { + panic("instruction VBLENDMPD takes exactly 3 operands") + } +} + +func __asm_proxy_VBLENDMPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VBLENDMPS(v[0], v[1], v[2]) + } else { + panic("instruction VBLENDMPS takes exactly 3 operands") + } +} + +func __asm_proxy_VBLENDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VBLENDPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VBLENDPD takes exactly 4 operands") + } +} + +func __asm_proxy_VBLENDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VBLENDPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VBLENDPS takes exactly 4 operands") + } +} + +func __asm_proxy_VBLENDVPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VBLENDVPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VBLENDVPD takes exactly 4 operands") + } +} + +func __asm_proxy_VBLENDVPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VBLENDVPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VBLENDVPS takes exactly 4 operands") + } +} + +func __asm_proxy_VBROADCASTF128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF128(v[0], v[1]) + } else { + panic("instruction VBROADCASTF128 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF32X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF32X2(v[0], v[1]) + } else { + panic("instruction VBROADCASTF32X2 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF32X4(v[0], v[1]) + } else { + panic("instruction VBROADCASTF32X4 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF32X8(v[0], v[1]) + } else { + panic("instruction VBROADCASTF32X8 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF64X2(v[0], v[1]) + } else { + panic("instruction VBROADCASTF64X2 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF64X4(v[0], v[1]) + } else { + panic("instruction VBROADCASTF64X4 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI128(v[0], v[1]) + } else { + panic("instruction VBROADCASTI128 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI32X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI32X2(v[0], v[1]) + } else { + panic("instruction VBROADCASTI32X2 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI32X4(v[0], v[1]) + } else { + panic("instruction VBROADCASTI32X4 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI32X8(v[0], v[1]) + } else { + panic("instruction VBROADCASTI32X8 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI64X2(v[0], v[1]) + } else { + panic("instruction VBROADCASTI64X2 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI64X4(v[0], v[1]) + } else { + panic("instruction VBROADCASTI64X4 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTSD(v[0], v[1]) + } else { + panic("instruction VBROADCASTSD takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTSS(v[0], v[1]) + } else { + panic("instruction VBROADCASTSS takes exactly 2 operands") + } +} + +func __asm_proxy_VCMPPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VCMPPD(v[0], v[1], v[2], v[3]) + case 5 : return p.VCMPPD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VCMPPD takes 4 or 5 operands") + } +} + +func __asm_proxy_VCMPPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VCMPPS(v[0], v[1], v[2], v[3]) + case 5 : return p.VCMPPS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VCMPPS takes 4 or 5 operands") + } +} + +func __asm_proxy_VCMPSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VCMPSD(v[0], v[1], v[2], v[3]) + case 5 : return p.VCMPSD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VCMPSD takes 4 or 5 operands") + } +} + +func __asm_proxy_VCMPSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VCMPSS(v[0], v[1], v[2], v[3]) + case 5 : return p.VCMPSS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VCMPSS takes 4 or 5 operands") + } +} + +func __asm_proxy_VCOMISD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCOMISD(v[0], v[1]) + case 3 : return p.VCOMISD(v[0], v[1], v[2]) + default : panic("instruction VCOMISD takes 2 or 3 operands") + } +} + +func __asm_proxy_VCOMISS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCOMISS(v[0], v[1]) + case 3 : return p.VCOMISS(v[0], v[1], v[2]) + default : panic("instruction VCOMISS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCOMPRESSPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VCOMPRESSPD(v[0], v[1]) + } else { + panic("instruction VCOMPRESSPD takes exactly 2 operands") + } +} + +func __asm_proxy_VCOMPRESSPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VCOMPRESSPS(v[0], v[1]) + } else { + panic("instruction VCOMPRESSPS takes exactly 2 operands") + } +} + +func __asm_proxy_VCVTDQ2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VCVTDQ2PD(v[0], v[1]) + } else { + panic("instruction VCVTDQ2PD takes exactly 2 operands") + } +} + +func __asm_proxy_VCVTDQ2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTDQ2PS(v[0], v[1]) + case 3 : return p.VCVTDQ2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTDQ2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2DQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2DQ(v[0], v[1]) + case 3 : return p.VCVTPD2DQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2DQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2PS(v[0], v[1]) + case 3 : return p.VCVTPD2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2QQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2QQ(v[0], v[1]) + case 3 : return p.VCVTPD2QQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2QQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2UDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2UDQ(v[0], v[1]) + case 3 : return p.VCVTPD2UDQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2UDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2UQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2UQQ(v[0], v[1]) + case 3 : return p.VCVTPD2UQQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2UQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPH2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPH2PS(v[0], v[1]) + case 3 : return p.VCVTPH2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTPH2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2DQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2DQ(v[0], v[1]) + case 3 : return p.VCVTPS2DQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2DQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2PD(v[0], v[1]) + case 3 : return p.VCVTPS2PD(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2PH__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTPS2PH(v[0], v[1], v[2]) + case 4 : return p.VCVTPS2PH(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTPS2PH takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTPS2QQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2QQ(v[0], v[1]) + case 3 : return p.VCVTPS2QQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2QQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2UDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2UDQ(v[0], v[1]) + case 3 : return p.VCVTPS2UDQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2UDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2UQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2UQQ(v[0], v[1]) + case 3 : return p.VCVTPS2UQQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2UQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTQQ2PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTQQ2PD(v[0], v[1]) + case 3 : return p.VCVTQQ2PD(v[0], v[1], v[2]) + default : panic("instruction VCVTQQ2PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTQQ2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTQQ2PS(v[0], v[1]) + case 3 : return p.VCVTQQ2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTQQ2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTSD2SI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTSD2SI(v[0], v[1]) + case 3 : return p.VCVTSD2SI(v[0], v[1], v[2]) + default : panic("instruction VCVTSD2SI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTSD2SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTSD2SS(v[0], v[1], v[2]) + case 4 : return p.VCVTSD2SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTSD2SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTSD2USI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTSD2USI(v[0], v[1]) + case 3 : return p.VCVTSD2USI(v[0], v[1], v[2]) + default : panic("instruction VCVTSD2USI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTSI2SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTSI2SD(v[0], v[1], v[2]) + case 4 : return p.VCVTSI2SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTSI2SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTSI2SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTSI2SS(v[0], v[1], v[2]) + case 4 : return p.VCVTSI2SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTSI2SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTSS2SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTSS2SD(v[0], v[1], v[2]) + case 4 : return p.VCVTSS2SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTSS2SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTSS2SI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTSS2SI(v[0], v[1]) + case 3 : return p.VCVTSS2SI(v[0], v[1], v[2]) + default : panic("instruction VCVTSS2SI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTSS2USI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTSS2USI(v[0], v[1]) + case 3 : return p.VCVTSS2USI(v[0], v[1], v[2]) + default : panic("instruction VCVTSS2USI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPD2DQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPD2DQ(v[0], v[1]) + case 3 : return p.VCVTTPD2DQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPD2DQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPD2QQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPD2QQ(v[0], v[1]) + case 3 : return p.VCVTTPD2QQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPD2QQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPD2UDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPD2UDQ(v[0], v[1]) + case 3 : return p.VCVTTPD2UDQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPD2UDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPD2UQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPD2UQQ(v[0], v[1]) + case 3 : return p.VCVTTPD2UQQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPD2UQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPS2DQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPS2DQ(v[0], v[1]) + case 3 : return p.VCVTTPS2DQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPS2DQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPS2QQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPS2QQ(v[0], v[1]) + case 3 : return p.VCVTTPS2QQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPS2QQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPS2UDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPS2UDQ(v[0], v[1]) + case 3 : return p.VCVTTPS2UDQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPS2UDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPS2UQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPS2UQQ(v[0], v[1]) + case 3 : return p.VCVTTPS2UQQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPS2UQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTSD2SI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTSD2SI(v[0], v[1]) + case 3 : return p.VCVTTSD2SI(v[0], v[1], v[2]) + default : panic("instruction VCVTTSD2SI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTSD2USI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTSD2USI(v[0], v[1]) + case 3 : return p.VCVTTSD2USI(v[0], v[1], v[2]) + default : panic("instruction VCVTTSD2USI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTSS2SI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTSS2SI(v[0], v[1]) + case 3 : return p.VCVTTSS2SI(v[0], v[1], v[2]) + default : panic("instruction VCVTTSS2SI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTSS2USI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTSS2USI(v[0], v[1]) + case 3 : return p.VCVTTSS2USI(v[0], v[1], v[2]) + default : panic("instruction VCVTTSS2USI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTUDQ2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VCVTUDQ2PD(v[0], v[1]) + } else { + panic("instruction VCVTUDQ2PD takes exactly 2 operands") + } +} + +func __asm_proxy_VCVTUDQ2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTUDQ2PS(v[0], v[1]) + case 3 : return p.VCVTUDQ2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTUDQ2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTUQQ2PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTUQQ2PD(v[0], v[1]) + case 3 : return p.VCVTUQQ2PD(v[0], v[1], v[2]) + default : panic("instruction VCVTUQQ2PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTUQQ2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTUQQ2PS(v[0], v[1]) + case 3 : return p.VCVTUQQ2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTUQQ2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTUSI2SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTUSI2SD(v[0], v[1], v[2]) + case 4 : return p.VCVTUSI2SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTUSI2SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTUSI2SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTUSI2SS(v[0], v[1], v[2]) + case 4 : return p.VCVTUSI2SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTUSI2SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VDBPSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VDBPSADBW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VDBPSADBW takes exactly 4 operands") + } +} + +func __asm_proxy_VDIVPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VDIVPD(v[0], v[1], v[2]) + case 4 : return p.VDIVPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VDIVPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VDIVPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VDIVPS(v[0], v[1], v[2]) + case 4 : return p.VDIVPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VDIVPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VDIVSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VDIVSD(v[0], v[1], v[2]) + case 4 : return p.VDIVSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VDIVSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VDIVSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VDIVSS(v[0], v[1], v[2]) + case 4 : return p.VDIVSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VDIVSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VDPPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VDPPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VDPPD takes exactly 4 operands") + } +} + +func __asm_proxy_VDPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VDPPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VDPPS takes exactly 4 operands") + } +} + +func __asm_proxy_VEXP2PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VEXP2PD(v[0], v[1]) + case 3 : return p.VEXP2PD(v[0], v[1], v[2]) + default : panic("instruction VEXP2PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VEXP2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VEXP2PS(v[0], v[1]) + case 3 : return p.VEXP2PS(v[0], v[1], v[2]) + default : panic("instruction VEXP2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VEXPANDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VEXPANDPD(v[0], v[1]) + } else { + panic("instruction VEXPANDPD takes exactly 2 operands") + } +} + +func __asm_proxy_VEXPANDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VEXPANDPS(v[0], v[1]) + } else { + panic("instruction VEXPANDPS takes exactly 2 operands") + } +} + +func __asm_proxy_VEXTRACTF128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF128(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF128 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTF32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF32X4(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF32X4 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTF32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF32X8(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF32X8 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTF64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF64X2(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF64X2 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTF64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF64X4(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF64X4 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI128(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI128 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI32X4(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI32X4 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI32X8(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI32X8 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI64X2(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI64X2 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI64X4(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI64X4 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTPS(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTPS takes exactly 3 operands") + } +} + +func __asm_proxy_VFIXUPIMMPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VFIXUPIMMPD(v[0], v[1], v[2], v[3]) + case 5 : return p.VFIXUPIMMPD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VFIXUPIMMPD takes 4 or 5 operands") + } +} + +func __asm_proxy_VFIXUPIMMPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VFIXUPIMMPS(v[0], v[1], v[2], v[3]) + case 5 : return p.VFIXUPIMMPS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VFIXUPIMMPS takes 4 or 5 operands") + } +} + +func __asm_proxy_VFIXUPIMMSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VFIXUPIMMSD(v[0], v[1], v[2], v[3]) + case 5 : return p.VFIXUPIMMSD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VFIXUPIMMSD takes 4 or 5 operands") + } +} + +func __asm_proxy_VFIXUPIMMSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VFIXUPIMMSS(v[0], v[1], v[2], v[3]) + case 5 : return p.VFIXUPIMMSS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VFIXUPIMMSS takes 4 or 5 operands") + } +} + +func __asm_proxy_VFMADD132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD132PD(v[0], v[1], v[2]) + case 4 : return p.VFMADD132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD132PS(v[0], v[1], v[2]) + case 4 : return p.VFMADD132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD132SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD132SD(v[0], v[1], v[2]) + case 4 : return p.VFMADD132SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD132SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD132SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD132SS(v[0], v[1], v[2]) + case 4 : return p.VFMADD132SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD132SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD213PD(v[0], v[1], v[2]) + case 4 : return p.VFMADD213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD213PS(v[0], v[1], v[2]) + case 4 : return p.VFMADD213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD213SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD213SD(v[0], v[1], v[2]) + case 4 : return p.VFMADD213SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD213SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD213SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD213SS(v[0], v[1], v[2]) + case 4 : return p.VFMADD213SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD213SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD231PD(v[0], v[1], v[2]) + case 4 : return p.VFMADD231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD231PS(v[0], v[1], v[2]) + case 4 : return p.VFMADD231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD231SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD231SD(v[0], v[1], v[2]) + case 4 : return p.VFMADD231SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD231SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD231SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD231SS(v[0], v[1], v[2]) + case 4 : return p.VFMADD231SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD231SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDSD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDSS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDSUB132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB132PD(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB132PS(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB213PD(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB213PS(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB231PD(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB231PS(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDSUBPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDSUBPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDSUBPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDSUBPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUB132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB132PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB132PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB132SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB132SD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB132SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB132SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB132SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB132SS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB132SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB132SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB213PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB213PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB213SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB213SD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB213SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB213SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB213SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB213SS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB213SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB213SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB231PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB231PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB231SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB231SD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB231SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB231SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB231SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB231SS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB231SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB231SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD132PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD132PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD213PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD213PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD231PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD231PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBADDPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBADDPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBADDPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBADDPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBSD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBSS takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMADD132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD132PD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD132PS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD132SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD132SD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD132SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD132SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD132SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD132SS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD132SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD132SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD213PD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD213PS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD213SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD213SD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD213SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD213SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD213SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD213SS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD213SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD213SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD231PD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD231PS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD231SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD231SD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD231SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD231SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD231SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD231SS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD231SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD231SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMADDPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMADDPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMADDPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMADDPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMADDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMADDSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMADDSD takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMADDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMADDSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMADDSS takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMSUB132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB132PD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB132PS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB132SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB132SD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB132SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB132SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB132SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB132SS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB132SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB132SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB213PD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB213PS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB213SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB213SD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB213SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB213SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB213SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB213SS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB213SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB213SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB231PD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB231PS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB231SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB231SD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB231SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB231SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB231SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB231SS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB231SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB231SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMSUBPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMSUBPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMSUBPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMSUBPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMSUBSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMSUBSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMSUBSD takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMSUBSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMSUBSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMSUBSS takes exactly 4 operands") + } +} + +func __asm_proxy_VFPCLASSPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VFPCLASSPD(v[0], v[1], v[2]) + } else { + panic("instruction VFPCLASSPD takes exactly 3 operands") + } +} + +func __asm_proxy_VFPCLASSPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VFPCLASSPS(v[0], v[1], v[2]) + } else { + panic("instruction VFPCLASSPS takes exactly 3 operands") + } +} + +func __asm_proxy_VFPCLASSSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VFPCLASSSD(v[0], v[1], v[2]) + } else { + panic("instruction VFPCLASSSD takes exactly 3 operands") + } +} + +func __asm_proxy_VFPCLASSSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VFPCLASSSS(v[0], v[1], v[2]) + } else { + panic("instruction VFPCLASSSS takes exactly 3 operands") + } +} + +func __asm_proxy_VFRCZPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VFRCZPD(v[0], v[1]) + } else { + panic("instruction VFRCZPD takes exactly 2 operands") + } +} + +func __asm_proxy_VFRCZPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VFRCZPS(v[0], v[1]) + } else { + panic("instruction VFRCZPS takes exactly 2 operands") + } +} + +func __asm_proxy_VFRCZSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VFRCZSD(v[0], v[1]) + } else { + panic("instruction VFRCZSD takes exactly 2 operands") + } +} + +func __asm_proxy_VFRCZSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VFRCZSS(v[0], v[1]) + } else { + panic("instruction VFRCZSS takes exactly 2 operands") + } +} + +func __asm_proxy_VGATHERDPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGATHERDPD(v[0], v[1]) + case 3 : return p.VGATHERDPD(v[0], v[1], v[2]) + default : panic("instruction VGATHERDPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VGATHERDPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGATHERDPS(v[0], v[1]) + case 3 : return p.VGATHERDPS(v[0], v[1], v[2]) + default : panic("instruction VGATHERDPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VGATHERPF0DPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF0DPD(v[0]) + } else { + panic("instruction VGATHERPF0DPD takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF0DPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF0DPS(v[0]) + } else { + panic("instruction VGATHERPF0DPS takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF0QPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF0QPD(v[0]) + } else { + panic("instruction VGATHERPF0QPD takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF0QPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF0QPS(v[0]) + } else { + panic("instruction VGATHERPF0QPS takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF1DPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF1DPD(v[0]) + } else { + panic("instruction VGATHERPF1DPD takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF1DPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF1DPS(v[0]) + } else { + panic("instruction VGATHERPF1DPS takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF1QPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF1QPD(v[0]) + } else { + panic("instruction VGATHERPF1QPD takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF1QPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF1QPS(v[0]) + } else { + panic("instruction VGATHERPF1QPS takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERQPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGATHERQPD(v[0], v[1]) + case 3 : return p.VGATHERQPD(v[0], v[1], v[2]) + default : panic("instruction VGATHERQPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VGATHERQPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGATHERQPS(v[0], v[1]) + case 3 : return p.VGATHERQPS(v[0], v[1], v[2]) + default : panic("instruction VGATHERQPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VGETEXPPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGETEXPPD(v[0], v[1]) + case 3 : return p.VGETEXPPD(v[0], v[1], v[2]) + default : panic("instruction VGETEXPPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VGETEXPPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGETEXPPS(v[0], v[1]) + case 3 : return p.VGETEXPPS(v[0], v[1], v[2]) + default : panic("instruction VGETEXPPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VGETEXPSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VGETEXPSD(v[0], v[1], v[2]) + case 4 : return p.VGETEXPSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VGETEXPSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VGETEXPSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VGETEXPSS(v[0], v[1], v[2]) + case 4 : return p.VGETEXPSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VGETEXPSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VGETMANTPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VGETMANTPD(v[0], v[1], v[2]) + case 4 : return p.VGETMANTPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VGETMANTPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VGETMANTPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VGETMANTPS(v[0], v[1], v[2]) + case 4 : return p.VGETMANTPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VGETMANTPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VGETMANTSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VGETMANTSD(v[0], v[1], v[2], v[3]) + case 5 : return p.VGETMANTSD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VGETMANTSD takes 4 or 5 operands") + } +} + +func __asm_proxy_VGETMANTSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VGETMANTSS(v[0], v[1], v[2], v[3]) + case 5 : return p.VGETMANTSS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VGETMANTSS takes 4 or 5 operands") + } +} + +func __asm_proxy_VHADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VHADDPD(v[0], v[1], v[2]) + } else { + panic("instruction VHADDPD takes exactly 3 operands") + } +} + +func __asm_proxy_VHADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VHADDPS(v[0], v[1], v[2]) + } else { + panic("instruction VHADDPS takes exactly 3 operands") + } +} + +func __asm_proxy_VHSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VHSUBPD(v[0], v[1], v[2]) + } else { + panic("instruction VHSUBPD takes exactly 3 operands") + } +} + +func __asm_proxy_VHSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VHSUBPS(v[0], v[1], v[2]) + } else { + panic("instruction VHSUBPS takes exactly 3 operands") + } +} + +func __asm_proxy_VINSERTF128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF128(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF128 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTF32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF32X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF32X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTF32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF32X8(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF32X8 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTF64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF64X2(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF64X2 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTF64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF64X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF64X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI128(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI128 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI32X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI32X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI32X8(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI32X8 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI64X2(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI64X2 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI64X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI64X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTPS takes exactly 4 operands") + } +} + +func __asm_proxy_VLDDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VLDDQU(v[0], v[1]) + } else { + panic("instruction VLDDQU takes exactly 2 operands") + } +} + +func __asm_proxy_VLDMXCSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VLDMXCSR(v[0]) + } else { + panic("instruction VLDMXCSR takes exactly 1 operand") + } +} + +func __asm_proxy_VMASKMOVDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMASKMOVDQU(v[0], v[1]) + } else { + panic("instruction VMASKMOVDQU takes exactly 2 operands") + } +} + +func __asm_proxy_VMASKMOVPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VMASKMOVPD(v[0], v[1], v[2]) + } else { + panic("instruction VMASKMOVPD takes exactly 3 operands") + } +} + +func __asm_proxy_VMASKMOVPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VMASKMOVPS(v[0], v[1], v[2]) + } else { + panic("instruction VMASKMOVPS takes exactly 3 operands") + } +} + +func __asm_proxy_VMAXPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMAXPD(v[0], v[1], v[2]) + case 4 : return p.VMAXPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMAXPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMAXPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMAXPS(v[0], v[1], v[2]) + case 4 : return p.VMAXPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMAXPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMAXSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMAXSD(v[0], v[1], v[2]) + case 4 : return p.VMAXSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMAXSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMAXSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMAXSS(v[0], v[1], v[2]) + case 4 : return p.VMAXSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMAXSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMINPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMINPD(v[0], v[1], v[2]) + case 4 : return p.VMINPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMINPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMINPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMINPS(v[0], v[1], v[2]) + case 4 : return p.VMINPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMINPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMINSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMINSD(v[0], v[1], v[2]) + case 4 : return p.VMINSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMINSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMINSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMINSS(v[0], v[1], v[2]) + case 4 : return p.VMINSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMINSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMOVAPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVAPD(v[0], v[1]) + } else { + panic("instruction VMOVAPD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVAPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVAPS(v[0], v[1]) + } else { + panic("instruction VMOVAPS takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVD(v[0], v[1]) + } else { + panic("instruction VMOVD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDDUP(v[0], v[1]) + } else { + panic("instruction VMOVDDUP takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQA(v[0], v[1]) + } else { + panic("instruction VMOVDQA takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQA32__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQA32(v[0], v[1]) + } else { + panic("instruction VMOVDQA32 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQA64__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQA64(v[0], v[1]) + } else { + panic("instruction VMOVDQA64 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU(v[0], v[1]) + } else { + panic("instruction VMOVDQU takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU16__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU16(v[0], v[1]) + } else { + panic("instruction VMOVDQU16 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU32__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU32(v[0], v[1]) + } else { + panic("instruction VMOVDQU32 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU64__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU64(v[0], v[1]) + } else { + panic("instruction VMOVDQU64 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU8(v[0], v[1]) + } else { + panic("instruction VMOVDQU8 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVHLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VMOVHLPS(v[0], v[1], v[2]) + } else { + panic("instruction VMOVHLPS takes exactly 3 operands") + } +} + +func __asm_proxy_VMOVHPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVHPD(v[0], v[1]) + case 3 : return p.VMOVHPD(v[0], v[1], v[2]) + default : panic("instruction VMOVHPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVHPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVHPS(v[0], v[1]) + case 3 : return p.VMOVHPS(v[0], v[1], v[2]) + default : panic("instruction VMOVHPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVLHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VMOVLHPS(v[0], v[1], v[2]) + } else { + panic("instruction VMOVLHPS takes exactly 3 operands") + } +} + +func __asm_proxy_VMOVLPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVLPD(v[0], v[1]) + case 3 : return p.VMOVLPD(v[0], v[1], v[2]) + default : panic("instruction VMOVLPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVLPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVLPS(v[0], v[1]) + case 3 : return p.VMOVLPS(v[0], v[1], v[2]) + default : panic("instruction VMOVLPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVMSKPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVMSKPD(v[0], v[1]) + } else { + panic("instruction VMOVMSKPD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVMSKPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVMSKPS(v[0], v[1]) + } else { + panic("instruction VMOVMSKPS takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVNTDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVNTDQ(v[0], v[1]) + } else { + panic("instruction VMOVNTDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVNTDQA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVNTDQA(v[0], v[1]) + } else { + panic("instruction VMOVNTDQA takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVNTPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVNTPD(v[0], v[1]) + } else { + panic("instruction VMOVNTPD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVNTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVNTPS(v[0], v[1]) + } else { + panic("instruction VMOVNTPS takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVQ(v[0], v[1]) + } else { + panic("instruction VMOVQ takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVSD(v[0], v[1]) + case 3 : return p.VMOVSD(v[0], v[1], v[2]) + default : panic("instruction VMOVSD takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVSHDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVSHDUP(v[0], v[1]) + } else { + panic("instruction VMOVSHDUP takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVSLDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVSLDUP(v[0], v[1]) + } else { + panic("instruction VMOVSLDUP takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVSS(v[0], v[1]) + case 3 : return p.VMOVSS(v[0], v[1], v[2]) + default : panic("instruction VMOVSS takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVUPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVUPD(v[0], v[1]) + } else { + panic("instruction VMOVUPD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVUPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVUPS(v[0], v[1]) + } else { + panic("instruction VMOVUPS takes exactly 2 operands") + } +} + +func __asm_proxy_VMPSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VMPSADBW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VMPSADBW takes exactly 4 operands") + } +} + +func __asm_proxy_VMULPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMULPD(v[0], v[1], v[2]) + case 4 : return p.VMULPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMULPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMULPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMULPS(v[0], v[1], v[2]) + case 4 : return p.VMULPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMULPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMULSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMULSD(v[0], v[1], v[2]) + case 4 : return p.VMULSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMULSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMULSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMULSS(v[0], v[1], v[2]) + case 4 : return p.VMULSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMULSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VORPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VORPD(v[0], v[1], v[2]) + } else { + panic("instruction VORPD takes exactly 3 operands") + } +} + +func __asm_proxy_VORPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VORPS(v[0], v[1], v[2]) + } else { + panic("instruction VORPS takes exactly 3 operands") + } +} + +func __asm_proxy_VPABSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPABSB(v[0], v[1]) + } else { + panic("instruction VPABSB takes exactly 2 operands") + } +} + +func __asm_proxy_VPABSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPABSD(v[0], v[1]) + } else { + panic("instruction VPABSD takes exactly 2 operands") + } +} + +func __asm_proxy_VPABSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPABSQ(v[0], v[1]) + } else { + panic("instruction VPABSQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPABSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPABSW(v[0], v[1]) + } else { + panic("instruction VPABSW takes exactly 2 operands") + } +} + +func __asm_proxy_VPACKSSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPACKSSDW(v[0], v[1], v[2]) + } else { + panic("instruction VPACKSSDW takes exactly 3 operands") + } +} + +func __asm_proxy_VPACKSSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPACKSSWB(v[0], v[1], v[2]) + } else { + panic("instruction VPACKSSWB takes exactly 3 operands") + } +} + +func __asm_proxy_VPACKUSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPACKUSDW(v[0], v[1], v[2]) + } else { + panic("instruction VPACKUSDW takes exactly 3 operands") + } +} + +func __asm_proxy_VPACKUSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPACKUSWB(v[0], v[1], v[2]) + } else { + panic("instruction VPACKUSWB takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDB(v[0], v[1], v[2]) + } else { + panic("instruction VPADDB takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDD(v[0], v[1], v[2]) + } else { + panic("instruction VPADDD takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPADDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDSB(v[0], v[1], v[2]) + } else { + panic("instruction VPADDSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDSW(v[0], v[1], v[2]) + } else { + panic("instruction VPADDSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDUSB(v[0], v[1], v[2]) + } else { + panic("instruction VPADDUSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDUSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDUSW(v[0], v[1], v[2]) + } else { + panic("instruction VPADDUSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDW(v[0], v[1], v[2]) + } else { + panic("instruction VPADDW takes exactly 3 operands") + } +} + +func __asm_proxy_VPALIGNR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPALIGNR(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPALIGNR takes exactly 4 operands") + } +} + +func __asm_proxy_VPAND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPAND(v[0], v[1], v[2]) + } else { + panic("instruction VPAND takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDD(v[0], v[1], v[2]) + } else { + panic("instruction VPANDD takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDN__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDN(v[0], v[1], v[2]) + } else { + panic("instruction VPANDN takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDND(v[0], v[1], v[2]) + } else { + panic("instruction VPANDND takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDNQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDNQ(v[0], v[1], v[2]) + } else { + panic("instruction VPANDNQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPANDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPAVGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPAVGB(v[0], v[1], v[2]) + } else { + panic("instruction VPAVGB takes exactly 3 operands") + } +} + +func __asm_proxy_VPAVGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPAVGW(v[0], v[1], v[2]) + } else { + panic("instruction VPAVGW takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPBLENDD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPBLENDD takes exactly 4 operands") + } +} + +func __asm_proxy_VPBLENDMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPBLENDMB(v[0], v[1], v[2]) + } else { + panic("instruction VPBLENDMB takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPBLENDMD(v[0], v[1], v[2]) + } else { + panic("instruction VPBLENDMD takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPBLENDMQ(v[0], v[1], v[2]) + } else { + panic("instruction VPBLENDMQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPBLENDMW(v[0], v[1], v[2]) + } else { + panic("instruction VPBLENDMW takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPBLENDVB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPBLENDVB takes exactly 4 operands") + } +} + +func __asm_proxy_VPBLENDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPBLENDW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPBLENDW takes exactly 4 operands") + } +} + +func __asm_proxy_VPBROADCASTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTB(v[0], v[1]) + } else { + panic("instruction VPBROADCASTB takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTD(v[0], v[1]) + } else { + panic("instruction VPBROADCASTD takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTMB2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTMB2Q(v[0], v[1]) + } else { + panic("instruction VPBROADCASTMB2Q takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTMW2D__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTMW2D(v[0], v[1]) + } else { + panic("instruction VPBROADCASTMW2D takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTQ(v[0], v[1]) + } else { + panic("instruction VPBROADCASTQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTW(v[0], v[1]) + } else { + panic("instruction VPBROADCASTW takes exactly 2 operands") + } +} + +func __asm_proxy_VPCLMULQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCLMULQDQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCLMULQDQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMOV__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMOV(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMOV takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPB takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPD takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPEQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPEQB(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPEQB takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPEQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPEQD(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPEQD takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPEQQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPEQQ(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPEQQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPEQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPEQW(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPEQW takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPESTRI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPESTRI(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPESTRI takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPESTRM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPESTRM(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPESTRM takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPGTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPGTB(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPGTB takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPGTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPGTD(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPGTD takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPGTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPGTQ(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPGTQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPGTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPGTW(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPGTW takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPISTRI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPISTRI(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPISTRI takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPISTRM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPISTRM(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPISTRM takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPUB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPUB takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPUD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPUD takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPUQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPUQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPUW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPUW takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPW takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMB takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMD takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMPRESSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPCOMPRESSD(v[0], v[1]) + } else { + panic("instruction VPCOMPRESSD takes exactly 2 operands") + } +} + +func __asm_proxy_VPCOMPRESSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPCOMPRESSQ(v[0], v[1]) + } else { + panic("instruction VPCOMPRESSQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPCOMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMUB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMUB takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMUD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMUD takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMUQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMUQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMUW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMUW takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMW takes exactly 4 operands") + } +} + +func __asm_proxy_VPCONFLICTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPCONFLICTD(v[0], v[1]) + } else { + panic("instruction VPCONFLICTD takes exactly 2 operands") + } +} + +func __asm_proxy_VPCONFLICTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPCONFLICTQ(v[0], v[1]) + } else { + panic("instruction VPCONFLICTQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPERM2F128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPERM2F128(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPERM2F128 takes exactly 4 operands") + } +} + +func __asm_proxy_VPERM2I128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPERM2I128(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPERM2I128 takes exactly 4 operands") + } +} + +func __asm_proxy_VPERMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMB(v[0], v[1], v[2]) + } else { + panic("instruction VPERMB takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2B(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2B takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2D__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2D(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2D takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2PD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2PD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2PS(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2PS takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2Q(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2Q takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2W__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2W(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2W takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMIL2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 5 { + return p.VPERMIL2PD(v[0], v[1], v[2], v[3], v[4]) + } else { + panic("instruction VPERMIL2PD takes exactly 5 operands") + } +} + +func __asm_proxy_VPERMIL2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 5 { + return p.VPERMIL2PS(v[0], v[1], v[2], v[3], v[4]) + } else { + panic("instruction VPERMIL2PS takes exactly 5 operands") + } +} + +func __asm_proxy_VPERMILPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMILPD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMILPD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMILPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMILPS(v[0], v[1], v[2]) + } else { + panic("instruction VPERMILPS takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMPD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMPD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMPS(v[0], v[1], v[2]) + } else { + panic("instruction VPERMPS takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMQ(v[0], v[1], v[2]) + } else { + panic("instruction VPERMQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2B(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2B takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2D__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2D(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2D takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2PD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2PD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2PS(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2PS takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2Q(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2Q takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2W__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2W(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2W takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMW(v[0], v[1], v[2]) + } else { + panic("instruction VPERMW takes exactly 3 operands") + } +} + +func __asm_proxy_VPEXPANDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPEXPANDD(v[0], v[1]) + } else { + panic("instruction VPEXPANDD takes exactly 2 operands") + } +} + +func __asm_proxy_VPEXPANDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPEXPANDQ(v[0], v[1]) + } else { + panic("instruction VPEXPANDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPEXTRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPEXTRB(v[0], v[1], v[2]) + } else { + panic("instruction VPEXTRB takes exactly 3 operands") + } +} + +func __asm_proxy_VPEXTRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPEXTRD(v[0], v[1], v[2]) + } else { + panic("instruction VPEXTRD takes exactly 3 operands") + } +} + +func __asm_proxy_VPEXTRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPEXTRQ(v[0], v[1], v[2]) + } else { + panic("instruction VPEXTRQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPEXTRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPEXTRW(v[0], v[1], v[2]) + } else { + panic("instruction VPEXTRW takes exactly 3 operands") + } +} + +func __asm_proxy_VPGATHERDD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VPGATHERDD(v[0], v[1]) + case 3 : return p.VPGATHERDD(v[0], v[1], v[2]) + default : panic("instruction VPGATHERDD takes 2 or 3 operands") + } +} + +func __asm_proxy_VPGATHERDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VPGATHERDQ(v[0], v[1]) + case 3 : return p.VPGATHERDQ(v[0], v[1], v[2]) + default : panic("instruction VPGATHERDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VPGATHERQD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VPGATHERQD(v[0], v[1]) + case 3 : return p.VPGATHERQD(v[0], v[1], v[2]) + default : panic("instruction VPGATHERQD takes 2 or 3 operands") + } +} + +func __asm_proxy_VPGATHERQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VPGATHERQQ(v[0], v[1]) + case 3 : return p.VPGATHERQQ(v[0], v[1], v[2]) + default : panic("instruction VPGATHERQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VPHADDBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDBD(v[0], v[1]) + } else { + panic("instruction VPHADDBD takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDBQ(v[0], v[1]) + } else { + panic("instruction VPHADDBQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDBW(v[0], v[1]) + } else { + panic("instruction VPHADDBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHADDD(v[0], v[1], v[2]) + } else { + panic("instruction VPHADDD takes exactly 3 operands") + } +} + +func __asm_proxy_VPHADDDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDDQ(v[0], v[1]) + } else { + panic("instruction VPHADDDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHADDSW(v[0], v[1], v[2]) + } else { + panic("instruction VPHADDSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPHADDUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUBD(v[0], v[1]) + } else { + panic("instruction VPHADDUBD takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUBQ(v[0], v[1]) + } else { + panic("instruction VPHADDUBQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUBW(v[0], v[1]) + } else { + panic("instruction VPHADDUBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUDQ(v[0], v[1]) + } else { + panic("instruction VPHADDUDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUWD(v[0], v[1]) + } else { + panic("instruction VPHADDUWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUWQ(v[0], v[1]) + } else { + panic("instruction VPHADDUWQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHADDW(v[0], v[1], v[2]) + } else { + panic("instruction VPHADDW takes exactly 3 operands") + } +} + +func __asm_proxy_VPHADDWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDWD(v[0], v[1]) + } else { + panic("instruction VPHADDWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDWQ(v[0], v[1]) + } else { + panic("instruction VPHADDWQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHMINPOSUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHMINPOSUW(v[0], v[1]) + } else { + panic("instruction VPHMINPOSUW takes exactly 2 operands") + } +} + +func __asm_proxy_VPHSUBBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHSUBBW(v[0], v[1]) + } else { + panic("instruction VPHSUBBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPHSUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHSUBD(v[0], v[1], v[2]) + } else { + panic("instruction VPHSUBD takes exactly 3 operands") + } +} + +func __asm_proxy_VPHSUBDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHSUBDQ(v[0], v[1]) + } else { + panic("instruction VPHSUBDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHSUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHSUBSW(v[0], v[1], v[2]) + } else { + panic("instruction VPHSUBSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPHSUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHSUBW(v[0], v[1], v[2]) + } else { + panic("instruction VPHSUBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPHSUBWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHSUBWD(v[0], v[1]) + } else { + panic("instruction VPHSUBWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPINSRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPINSRB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPINSRB takes exactly 4 operands") + } +} + +func __asm_proxy_VPINSRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPINSRD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPINSRD takes exactly 4 operands") + } +} + +func __asm_proxy_VPINSRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPINSRQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPINSRQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPINSRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPINSRW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPINSRW takes exactly 4 operands") + } +} + +func __asm_proxy_VPLZCNTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPLZCNTD(v[0], v[1]) + } else { + panic("instruction VPLZCNTD takes exactly 2 operands") + } +} + +func __asm_proxy_VPLZCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPLZCNTQ(v[0], v[1]) + } else { + panic("instruction VPLZCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMACSDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSDD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSDD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSDQH__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSDQH(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSDQH takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSDQL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSDQL(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSDQL takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSDD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSDD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSDQH__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSDQH(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSDQH takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSDQL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSDQL(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSDQL takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSWD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSWD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSWW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSWW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSWW takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSWD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSWD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSWW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSWW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSWW takes exactly 4 operands") + } +} + +func __asm_proxy_VPMADCSSWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMADCSSWD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMADCSSWD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMADCSWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMADCSWD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMADCSWD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMADD52HUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMADD52HUQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMADD52HUQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMADD52LUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMADD52LUQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMADD52LUQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMADDUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMADDUBSW(v[0], v[1], v[2]) + } else { + panic("instruction VPMADDUBSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMADDWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMADDWD(v[0], v[1], v[2]) + } else { + panic("instruction VPMADDWD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMASKMOVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMASKMOVD(v[0], v[1], v[2]) + } else { + panic("instruction VPMASKMOVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMASKMOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMASKMOVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMASKMOVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXSB(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXSD(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXSD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXSQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXSQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXSW(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXUB(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXUB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXUD(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXUD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXUQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXUQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXUW(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXUW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINSB(v[0], v[1], v[2]) + } else { + panic("instruction VPMINSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINSD(v[0], v[1], v[2]) + } else { + panic("instruction VPMINSD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINSQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMINSQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINSW(v[0], v[1], v[2]) + } else { + panic("instruction VPMINSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINUB(v[0], v[1], v[2]) + } else { + panic("instruction VPMINUB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINUD(v[0], v[1], v[2]) + } else { + panic("instruction VPMINUD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINUQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMINUQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINUW(v[0], v[1], v[2]) + } else { + panic("instruction VPMINUW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMOVB2M__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVB2M(v[0], v[1]) + } else { + panic("instruction VPMOVB2M takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVD2M__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVD2M(v[0], v[1]) + } else { + panic("instruction VPMOVD2M takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVDB(v[0], v[1]) + } else { + panic("instruction VPMOVDB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVDW(v[0], v[1]) + } else { + panic("instruction VPMOVDW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVM2B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVM2B(v[0], v[1]) + } else { + panic("instruction VPMOVM2B takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVM2D__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVM2D(v[0], v[1]) + } else { + panic("instruction VPMOVM2D takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVM2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVM2Q(v[0], v[1]) + } else { + panic("instruction VPMOVM2Q takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVM2W__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVM2W(v[0], v[1]) + } else { + panic("instruction VPMOVM2W takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVMSKB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVMSKB(v[0], v[1]) + } else { + panic("instruction VPMOVMSKB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVQ2M__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVQ2M(v[0], v[1]) + } else { + panic("instruction VPMOVQ2M takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVQB(v[0], v[1]) + } else { + panic("instruction VPMOVQB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVQD(v[0], v[1]) + } else { + panic("instruction VPMOVQD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVQW(v[0], v[1]) + } else { + panic("instruction VPMOVQW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSDB(v[0], v[1]) + } else { + panic("instruction VPMOVSDB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSDW(v[0], v[1]) + } else { + panic("instruction VPMOVSDW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSQB(v[0], v[1]) + } else { + panic("instruction VPMOVSQB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSQD(v[0], v[1]) + } else { + panic("instruction VPMOVSQD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSQW(v[0], v[1]) + } else { + panic("instruction VPMOVSQW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSWB(v[0], v[1]) + } else { + panic("instruction VPMOVSWB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXBD(v[0], v[1]) + } else { + panic("instruction VPMOVSXBD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXBQ(v[0], v[1]) + } else { + panic("instruction VPMOVSXBQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXBW(v[0], v[1]) + } else { + panic("instruction VPMOVSXBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXDQ(v[0], v[1]) + } else { + panic("instruction VPMOVSXDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXWD(v[0], v[1]) + } else { + panic("instruction VPMOVSXWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXWQ(v[0], v[1]) + } else { + panic("instruction VPMOVSXWQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSDB(v[0], v[1]) + } else { + panic("instruction VPMOVUSDB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSDW(v[0], v[1]) + } else { + panic("instruction VPMOVUSDW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSQB(v[0], v[1]) + } else { + panic("instruction VPMOVUSQB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSQD(v[0], v[1]) + } else { + panic("instruction VPMOVUSQD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSQW(v[0], v[1]) + } else { + panic("instruction VPMOVUSQW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSWB(v[0], v[1]) + } else { + panic("instruction VPMOVUSWB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVW2M__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVW2M(v[0], v[1]) + } else { + panic("instruction VPMOVW2M takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVWB(v[0], v[1]) + } else { + panic("instruction VPMOVWB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXBD(v[0], v[1]) + } else { + panic("instruction VPMOVZXBD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXBQ(v[0], v[1]) + } else { + panic("instruction VPMOVZXBQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXBW(v[0], v[1]) + } else { + panic("instruction VPMOVZXBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXDQ(v[0], v[1]) + } else { + panic("instruction VPMOVZXDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXWD(v[0], v[1]) + } else { + panic("instruction VPMOVZXWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXWQ(v[0], v[1]) + } else { + panic("instruction VPMOVZXWQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMULDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMULDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULHRSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULHRSW(v[0], v[1], v[2]) + } else { + panic("instruction VPMULHRSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULHUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULHUW(v[0], v[1], v[2]) + } else { + panic("instruction VPMULHUW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULHW(v[0], v[1], v[2]) + } else { + panic("instruction VPMULHW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULLD(v[0], v[1], v[2]) + } else { + panic("instruction VPMULLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMULLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULLW(v[0], v[1], v[2]) + } else { + panic("instruction VPMULLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULTISHIFTQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULTISHIFTQB(v[0], v[1], v[2]) + } else { + panic("instruction VPMULTISHIFTQB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULUDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULUDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMULUDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPOPCNTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPOPCNTD(v[0], v[1]) + } else { + panic("instruction VPOPCNTD takes exactly 2 operands") + } +} + +func __asm_proxy_VPOPCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPOPCNTQ(v[0], v[1]) + } else { + panic("instruction VPOPCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPOR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPOR(v[0], v[1], v[2]) + } else { + panic("instruction VPOR takes exactly 3 operands") + } +} + +func __asm_proxy_VPORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPORD(v[0], v[1], v[2]) + } else { + panic("instruction VPORD takes exactly 3 operands") + } +} + +func __asm_proxy_VPORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPORQ(v[0], v[1], v[2]) + } else { + panic("instruction VPORQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPPERM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPPERM(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPPERM takes exactly 4 operands") + } +} + +func __asm_proxy_VPROLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROLD(v[0], v[1], v[2]) + } else { + panic("instruction VPROLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPROLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPROLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPROLVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROLVD(v[0], v[1], v[2]) + } else { + panic("instruction VPROLVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPROLVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROLVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPROLVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPRORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPRORD(v[0], v[1], v[2]) + } else { + panic("instruction VPRORD takes exactly 3 operands") + } +} + +func __asm_proxy_VPRORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPRORQ(v[0], v[1], v[2]) + } else { + panic("instruction VPRORQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPRORVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPRORVD(v[0], v[1], v[2]) + } else { + panic("instruction VPRORVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPRORVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPRORVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPRORVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPROTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROTB(v[0], v[1], v[2]) + } else { + panic("instruction VPROTB takes exactly 3 operands") + } +} + +func __asm_proxy_VPROTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROTD(v[0], v[1], v[2]) + } else { + panic("instruction VPROTD takes exactly 3 operands") + } +} + +func __asm_proxy_VPROTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROTQ(v[0], v[1], v[2]) + } else { + panic("instruction VPROTQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPROTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROTW(v[0], v[1], v[2]) + } else { + panic("instruction VPROTW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSADBW(v[0], v[1], v[2]) + } else { + panic("instruction VPSADBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSCATTERDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPSCATTERDD(v[0], v[1]) + } else { + panic("instruction VPSCATTERDD takes exactly 2 operands") + } +} + +func __asm_proxy_VPSCATTERDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPSCATTERDQ(v[0], v[1]) + } else { + panic("instruction VPSCATTERDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPSCATTERQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPSCATTERQD(v[0], v[1]) + } else { + panic("instruction VPSCATTERQD takes exactly 2 operands") + } +} + +func __asm_proxy_VPSCATTERQQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPSCATTERQQ(v[0], v[1]) + } else { + panic("instruction VPSCATTERQQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPSHAB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHAB(v[0], v[1], v[2]) + } else { + panic("instruction VPSHAB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHAD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHAD(v[0], v[1], v[2]) + } else { + panic("instruction VPSHAD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHAQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHAQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSHAQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHAW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHAW(v[0], v[1], v[2]) + } else { + panic("instruction VPSHAW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHLB(v[0], v[1], v[2]) + } else { + panic("instruction VPSHLB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHLD(v[0], v[1], v[2]) + } else { + panic("instruction VPSHLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSHLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHLW(v[0], v[1], v[2]) + } else { + panic("instruction VPSHLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHUFB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHUFB(v[0], v[1], v[2]) + } else { + panic("instruction VPSHUFB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHUFD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHUFD(v[0], v[1], v[2]) + } else { + panic("instruction VPSHUFD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHUFHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHUFHW(v[0], v[1], v[2]) + } else { + panic("instruction VPSHUFHW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHUFLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHUFLW(v[0], v[1], v[2]) + } else { + panic("instruction VPSHUFLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSIGNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSIGNB(v[0], v[1], v[2]) + } else { + panic("instruction VPSIGNB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSIGND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSIGND(v[0], v[1], v[2]) + } else { + panic("instruction VPSIGND takes exactly 3 operands") + } +} + +func __asm_proxy_VPSIGNW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSIGNW(v[0], v[1], v[2]) + } else { + panic("instruction VPSIGNW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLD(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLVD(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLVW(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLVW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLW(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAD(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAVD(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAVW(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAVW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAW(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLD(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLVD(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLVW(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLVW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLW(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBB(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBD(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBSB(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBSW(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBUSB(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBUSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBUSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBUSW(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBUSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBW(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPTERNLOGD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPTERNLOGD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPTERNLOGD takes exactly 4 operands") + } +} + +func __asm_proxy_VPTERNLOGQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPTERNLOGQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPTERNLOGQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPTEST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPTEST(v[0], v[1]) + } else { + panic("instruction VPTEST takes exactly 2 operands") + } +} + +func __asm_proxy_VPTESTMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTMB(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTMB takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTMD(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTMD takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTMQ(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTMQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTMW(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTMW takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTNMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTNMB(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTNMB takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTNMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTNMD(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTNMD takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTNMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTNMQ(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTNMQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTNMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTNMW(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTNMW takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKHBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKHBW(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKHBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKHDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKHDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKHDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKHQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKHQDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKHQDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKHWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKHWD(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKHWD takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKLBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKLBW(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKLBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKLDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKLDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKLQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKLQDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKLQDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKLWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKLWD(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKLWD takes exactly 3 operands") + } +} + +func __asm_proxy_VPXOR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPXOR(v[0], v[1], v[2]) + } else { + panic("instruction VPXOR takes exactly 3 operands") + } +} + +func __asm_proxy_VPXORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPXORD(v[0], v[1], v[2]) + } else { + panic("instruction VPXORD takes exactly 3 operands") + } +} + +func __asm_proxy_VPXORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPXORQ(v[0], v[1], v[2]) + } else { + panic("instruction VPXORQ takes exactly 3 operands") + } +} + +func __asm_proxy_VRANGEPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRANGEPD(v[0], v[1], v[2], v[3]) + case 5 : return p.VRANGEPD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRANGEPD takes 4 or 5 operands") + } +} + +func __asm_proxy_VRANGEPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRANGEPS(v[0], v[1], v[2], v[3]) + case 5 : return p.VRANGEPS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRANGEPS takes 4 or 5 operands") + } +} + +func __asm_proxy_VRANGESD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRANGESD(v[0], v[1], v[2], v[3]) + case 5 : return p.VRANGESD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRANGESD takes 4 or 5 operands") + } +} + +func __asm_proxy_VRANGESS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRANGESS(v[0], v[1], v[2], v[3]) + case 5 : return p.VRANGESS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRANGESS takes 4 or 5 operands") + } +} + +func __asm_proxy_VRCP14PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRCP14PD(v[0], v[1]) + } else { + panic("instruction VRCP14PD takes exactly 2 operands") + } +} + +func __asm_proxy_VRCP14PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRCP14PS(v[0], v[1]) + } else { + panic("instruction VRCP14PS takes exactly 2 operands") + } +} + +func __asm_proxy_VRCP14SD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRCP14SD(v[0], v[1], v[2]) + } else { + panic("instruction VRCP14SD takes exactly 3 operands") + } +} + +func __asm_proxy_VRCP14SS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRCP14SS(v[0], v[1], v[2]) + } else { + panic("instruction VRCP14SS takes exactly 3 operands") + } +} + +func __asm_proxy_VRCP28PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VRCP28PD(v[0], v[1]) + case 3 : return p.VRCP28PD(v[0], v[1], v[2]) + default : panic("instruction VRCP28PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VRCP28PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VRCP28PS(v[0], v[1]) + case 3 : return p.VRCP28PS(v[0], v[1], v[2]) + default : panic("instruction VRCP28PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VRCP28SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRCP28SD(v[0], v[1], v[2]) + case 4 : return p.VRCP28SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VRCP28SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VRCP28SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRCP28SS(v[0], v[1], v[2]) + case 4 : return p.VRCP28SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VRCP28SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VRCPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRCPPS(v[0], v[1]) + } else { + panic("instruction VRCPPS takes exactly 2 operands") + } +} + +func __asm_proxy_VRCPSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRCPSS(v[0], v[1], v[2]) + } else { + panic("instruction VRCPSS takes exactly 3 operands") + } +} + +func __asm_proxy_VREDUCEPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VREDUCEPD(v[0], v[1], v[2]) + } else { + panic("instruction VREDUCEPD takes exactly 3 operands") + } +} + +func __asm_proxy_VREDUCEPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VREDUCEPS(v[0], v[1], v[2]) + } else { + panic("instruction VREDUCEPS takes exactly 3 operands") + } +} + +func __asm_proxy_VREDUCESD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VREDUCESD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VREDUCESD takes exactly 4 operands") + } +} + +func __asm_proxy_VREDUCESS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VREDUCESS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VREDUCESS takes exactly 4 operands") + } +} + +func __asm_proxy_VRNDSCALEPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRNDSCALEPD(v[0], v[1], v[2]) + case 4 : return p.VRNDSCALEPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VRNDSCALEPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VRNDSCALEPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRNDSCALEPS(v[0], v[1], v[2]) + case 4 : return p.VRNDSCALEPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VRNDSCALEPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VRNDSCALESD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRNDSCALESD(v[0], v[1], v[2], v[3]) + case 5 : return p.VRNDSCALESD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRNDSCALESD takes 4 or 5 operands") + } +} + +func __asm_proxy_VRNDSCALESS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRNDSCALESS(v[0], v[1], v[2], v[3]) + case 5 : return p.VRNDSCALESS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRNDSCALESS takes 4 or 5 operands") + } +} + +func __asm_proxy_VROUNDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VROUNDPD(v[0], v[1], v[2]) + } else { + panic("instruction VROUNDPD takes exactly 3 operands") + } +} + +func __asm_proxy_VROUNDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VROUNDPS(v[0], v[1], v[2]) + } else { + panic("instruction VROUNDPS takes exactly 3 operands") + } +} + +func __asm_proxy_VROUNDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VROUNDSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VROUNDSD takes exactly 4 operands") + } +} + +func __asm_proxy_VROUNDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VROUNDSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VROUNDSS takes exactly 4 operands") + } +} + +func __asm_proxy_VRSQRT14PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRSQRT14PD(v[0], v[1]) + } else { + panic("instruction VRSQRT14PD takes exactly 2 operands") + } +} + +func __asm_proxy_VRSQRT14PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRSQRT14PS(v[0], v[1]) + } else { + panic("instruction VRSQRT14PS takes exactly 2 operands") + } +} + +func __asm_proxy_VRSQRT14SD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRSQRT14SD(v[0], v[1], v[2]) + } else { + panic("instruction VRSQRT14SD takes exactly 3 operands") + } +} + +func __asm_proxy_VRSQRT14SS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRSQRT14SS(v[0], v[1], v[2]) + } else { + panic("instruction VRSQRT14SS takes exactly 3 operands") + } +} + +func __asm_proxy_VRSQRT28PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VRSQRT28PD(v[0], v[1]) + case 3 : return p.VRSQRT28PD(v[0], v[1], v[2]) + default : panic("instruction VRSQRT28PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VRSQRT28PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VRSQRT28PS(v[0], v[1]) + case 3 : return p.VRSQRT28PS(v[0], v[1], v[2]) + default : panic("instruction VRSQRT28PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VRSQRT28SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRSQRT28SD(v[0], v[1], v[2]) + case 4 : return p.VRSQRT28SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VRSQRT28SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VRSQRT28SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRSQRT28SS(v[0], v[1], v[2]) + case 4 : return p.VRSQRT28SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VRSQRT28SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VRSQRTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRSQRTPS(v[0], v[1]) + } else { + panic("instruction VRSQRTPS takes exactly 2 operands") + } +} + +func __asm_proxy_VRSQRTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRSQRTSS(v[0], v[1], v[2]) + } else { + panic("instruction VRSQRTSS takes exactly 3 operands") + } +} + +func __asm_proxy_VSCALEFPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSCALEFPD(v[0], v[1], v[2]) + case 4 : return p.VSCALEFPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSCALEFPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSCALEFPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSCALEFPS(v[0], v[1], v[2]) + case 4 : return p.VSCALEFPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSCALEFPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VSCALEFSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSCALEFSD(v[0], v[1], v[2]) + case 4 : return p.VSCALEFSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSCALEFSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSCALEFSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSCALEFSS(v[0], v[1], v[2]) + case 4 : return p.VSCALEFSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSCALEFSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VSCATTERDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VSCATTERDPD(v[0], v[1]) + } else { + panic("instruction VSCATTERDPD takes exactly 2 operands") + } +} + +func __asm_proxy_VSCATTERDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VSCATTERDPS(v[0], v[1]) + } else { + panic("instruction VSCATTERDPS takes exactly 2 operands") + } +} + +func __asm_proxy_VSCATTERPF0DPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF0DPD(v[0]) + } else { + panic("instruction VSCATTERPF0DPD takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF0DPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF0DPS(v[0]) + } else { + panic("instruction VSCATTERPF0DPS takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF0QPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF0QPD(v[0]) + } else { + panic("instruction VSCATTERPF0QPD takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF0QPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF0QPS(v[0]) + } else { + panic("instruction VSCATTERPF0QPS takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF1DPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF1DPD(v[0]) + } else { + panic("instruction VSCATTERPF1DPD takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF1DPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF1DPS(v[0]) + } else { + panic("instruction VSCATTERPF1DPS takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF1QPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF1QPD(v[0]) + } else { + panic("instruction VSCATTERPF1QPD takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF1QPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF1QPS(v[0]) + } else { + panic("instruction VSCATTERPF1QPS takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERQPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VSCATTERQPD(v[0], v[1]) + } else { + panic("instruction VSCATTERQPD takes exactly 2 operands") + } +} + +func __asm_proxy_VSCATTERQPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VSCATTERQPS(v[0], v[1]) + } else { + panic("instruction VSCATTERQPS takes exactly 2 operands") + } +} + +func __asm_proxy_VSHUFF32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFF32X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFF32X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFF64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFF64X2(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFF64X2 takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFI32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFI32X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFI32X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFI64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFI64X2(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFI64X2 takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFPD takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFPS takes exactly 4 operands") + } +} + +func __asm_proxy_VSQRTPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VSQRTPD(v[0], v[1]) + case 3 : return p.VSQRTPD(v[0], v[1], v[2]) + default : panic("instruction VSQRTPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VSQRTPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VSQRTPS(v[0], v[1]) + case 3 : return p.VSQRTPS(v[0], v[1], v[2]) + default : panic("instruction VSQRTPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VSQRTSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSQRTSD(v[0], v[1], v[2]) + case 4 : return p.VSQRTSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSQRTSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSQRTSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSQRTSS(v[0], v[1], v[2]) + case 4 : return p.VSQRTSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSQRTSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VSTMXCSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSTMXCSR(v[0]) + } else { + panic("instruction VSTMXCSR takes exactly 1 operand") + } +} + +func __asm_proxy_VSUBPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSUBPD(v[0], v[1], v[2]) + case 4 : return p.VSUBPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSUBPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSUBPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSUBPS(v[0], v[1], v[2]) + case 4 : return p.VSUBPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSUBPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VSUBSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSUBSD(v[0], v[1], v[2]) + case 4 : return p.VSUBSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSUBSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSUBSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSUBSS(v[0], v[1], v[2]) + case 4 : return p.VSUBSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSUBSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VTESTPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VTESTPD(v[0], v[1]) + } else { + panic("instruction VTESTPD takes exactly 2 operands") + } +} + +func __asm_proxy_VTESTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VTESTPS(v[0], v[1]) + } else { + panic("instruction VTESTPS takes exactly 2 operands") + } +} + +func __asm_proxy_VUCOMISD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VUCOMISD(v[0], v[1]) + case 3 : return p.VUCOMISD(v[0], v[1], v[2]) + default : panic("instruction VUCOMISD takes 2 or 3 operands") + } +} + +func __asm_proxy_VUCOMISS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VUCOMISS(v[0], v[1]) + case 3 : return p.VUCOMISS(v[0], v[1], v[2]) + default : panic("instruction VUCOMISS takes 2 or 3 operands") + } +} + +func __asm_proxy_VUNPCKHPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VUNPCKHPD(v[0], v[1], v[2]) + } else { + panic("instruction VUNPCKHPD takes exactly 3 operands") + } +} + +func __asm_proxy_VUNPCKHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VUNPCKHPS(v[0], v[1], v[2]) + } else { + panic("instruction VUNPCKHPS takes exactly 3 operands") + } +} + +func __asm_proxy_VUNPCKLPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VUNPCKLPD(v[0], v[1], v[2]) + } else { + panic("instruction VUNPCKLPD takes exactly 3 operands") + } +} + +func __asm_proxy_VUNPCKLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VUNPCKLPS(v[0], v[1], v[2]) + } else { + panic("instruction VUNPCKLPS takes exactly 3 operands") + } +} + +func __asm_proxy_VXORPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VXORPD(v[0], v[1], v[2]) + } else { + panic("instruction VXORPD takes exactly 3 operands") + } +} + +func __asm_proxy_VXORPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VXORPS(v[0], v[1], v[2]) + } else { + panic("instruction VXORPS takes exactly 3 operands") + } +} + +func __asm_proxy_VZEROALL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.VZEROALL() + } else { + panic("instruction VZEROALL takes no operands") + } +} + +func __asm_proxy_VZEROUPPER__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.VZEROUPPER() + } else { + panic("instruction VZEROUPPER takes no operands") + } +} + +func __asm_proxy_XADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XADDB(v[0], v[1]) + } else { + panic("instruction XADDB takes exactly 2 operands") + } +} + +func __asm_proxy_XADDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XADDL(v[0], v[1]) + } else { + panic("instruction XADDL takes exactly 2 operands") + } +} + +func __asm_proxy_XADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XADDQ(v[0], v[1]) + } else { + panic("instruction XADDQ takes exactly 2 operands") + } +} + +func __asm_proxy_XADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XADDW(v[0], v[1]) + } else { + panic("instruction XADDW takes exactly 2 operands") + } +} + +func __asm_proxy_XCHGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XCHGB(v[0], v[1]) + } else { + panic("instruction XCHGB takes exactly 2 operands") + } +} + +func __asm_proxy_XCHGL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XCHGL(v[0], v[1]) + } else { + panic("instruction XCHGL takes exactly 2 operands") + } +} + +func __asm_proxy_XCHGQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XCHGQ(v[0], v[1]) + } else { + panic("instruction XCHGQ takes exactly 2 operands") + } +} + +func __asm_proxy_XCHGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XCHGW(v[0], v[1]) + } else { + panic("instruction XCHGW takes exactly 2 operands") + } +} + +func __asm_proxy_XGETBV__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.XGETBV() + } else { + panic("instruction XGETBV takes no operands") + } +} + +func __asm_proxy_XLATB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.XLATB() + } else { + panic("instruction XLATB takes no operands") + } +} + +func __asm_proxy_XORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORB(v[0], v[1]) + } else { + panic("instruction XORB takes exactly 2 operands") + } +} + +func __asm_proxy_XORL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORL(v[0], v[1]) + } else { + panic("instruction XORL takes exactly 2 operands") + } +} + +func __asm_proxy_XORPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORPD(v[0], v[1]) + } else { + panic("instruction XORPD takes exactly 2 operands") + } +} + +func __asm_proxy_XORPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORPS(v[0], v[1]) + } else { + panic("instruction XORPS takes exactly 2 operands") + } +} + +func __asm_proxy_XORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORQ(v[0], v[1]) + } else { + panic("instruction XORQ takes exactly 2 operands") + } +} + +func __asm_proxy_XORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORW(v[0], v[1]) + } else { + panic("instruction XORW takes exactly 2 operands") + } +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/operands.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/operands.go new file mode 100644 index 00000000..96609022 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/operands.go @@ -0,0 +1,510 @@ +package x86_64 + +import ( + `errors` + `fmt` + `math` + `reflect` + `strconv` + `strings` + `sync/atomic` +) + +// RelativeOffset represents an RIP-relative offset. +type RelativeOffset int32 + +// String implements the fmt.Stringer interface. +func (self RelativeOffset) String() string { + if self == 0 { + return "(%rip)" + } else { + return fmt.Sprintf("%d(%%rip)", self) + } +} + +// RoundingControl represents a floating-point rounding option. +type RoundingControl uint8 + +const ( + // RN_SAE represents "Round Nearest", which is the default rounding option. + RN_SAE RoundingControl = iota + + // RD_SAE represents "Round Down". + RD_SAE + + // RU_SAE represents "Round Up". + RU_SAE + + // RZ_SAE represents "Round towards Zero". + RZ_SAE +) + +var _RC_NAMES = map[RoundingControl]string { + RN_SAE: "rn-sae", + RD_SAE: "rd-sae", + RU_SAE: "ru-sae", + RZ_SAE: "rz-sae", +} + +func (self RoundingControl) String() string { + if v, ok := _RC_NAMES[self]; ok { + return v + } else { + panic("invalid RoundingControl value") + } +} + +// ExceptionControl represents the "Suppress All Exceptions" flag. +type ExceptionControl uint8 + +const ( + // SAE represents the flag "Suppress All Exceptions" for floating point operations. + SAE ExceptionControl = iota +) + +func (ExceptionControl) String() string { + return "sae" +} + +// AddressType indicates which kind of value that an Addressable object contains. +type AddressType uint + +const ( + // None indicates the Addressable does not contain any addressable value. + None AddressType = iota + + // Memory indicates the Addressable contains a memory address. + Memory + + // Offset indicates the Addressable contains an RIP-relative offset. + Offset + + // Reference indicates the Addressable contains a label reference. + Reference +) + +// Disposable is a type of object that can be Free'd manually. +type Disposable interface { + Free() +} + +// Label represents a location within the program. +type Label struct { + refs int64 + Name string + Dest *Instruction +} + +func (self *Label) offset(p uintptr, n int) RelativeOffset { + if self.Dest == nil { + panic("unresolved label: " + self.Name) + } else { + return RelativeOffset(self.Dest.pc - p - uintptr(n)) + } +} + +// Free decreases the reference count of a Label, if the +// refcount drops to 0, the Label will be recycled. +func (self *Label) Free() { + if atomic.AddInt64(&self.refs, -1) == 0 { + freeLabel(self) + } +} + +// String implements the fmt.Stringer interface. +func (self *Label) String() string { + if self.Dest == nil { + return fmt.Sprintf("%s(%%rip)", self.Name) + } else { + return fmt.Sprintf("%s(%%rip)@%#x", self.Name, self.Dest.pc) + } +} + +// Retain increases the reference count of a Label. +func (self *Label) Retain() *Label { + atomic.AddInt64(&self.refs, 1) + return self +} + +// Evaluate implements the interface expr.Term. +func (self *Label) Evaluate() (int64, error) { + if self.Dest != nil { + return int64(self.Dest.pc), nil + } else { + return 0, errors.New("unresolved label: " + self.Name) + } +} + +// Addressable is a union to represent an addressable operand. +type Addressable struct { + Type AddressType + Memory MemoryAddress + Offset RelativeOffset + Reference *Label +} + +// String implements the fmt.Stringer interface. +func (self *Addressable) String() string { + switch self.Type { + case None : return "(not addressable)" + case Memory : return self.Memory.String() + case Offset : return self.Offset.String() + case Reference : return self.Reference.String() + default : return "(invalid addressable)" + } +} + +// MemoryOperand represents a memory operand for an instruction. +type MemoryOperand struct { + refs int64 + Size int + Addr Addressable + Mask RegisterMask + Masked bool + Broadcast uint8 +} + +const ( + _Sizes = 0b10000000100010111 // bit-mask for valid sizes (0, 1, 2, 4, 8, 16) +) + +func (self *MemoryOperand) isVMX(evex bool) bool { + return self.Addr.Type == Memory && self.Addr.Memory.isVMX(evex) +} + +func (self *MemoryOperand) isVMY(evex bool) bool { + return self.Addr.Type == Memory && self.Addr.Memory.isVMY(evex) +} + +func (self *MemoryOperand) isVMZ() bool { + return self.Addr.Type == Memory && self.Addr.Memory.isVMZ() +} + +func (self *MemoryOperand) isMem() bool { + if (_Sizes & (1 << self.Broadcast)) == 0 { + return false + } else if self.Addr.Type == Memory { + return self.Addr.Memory.isMem() + } else if self.Addr.Type == Offset { + return true + } else if self.Addr.Type == Reference { + return true + } else { + return false + } +} + +func (self *MemoryOperand) isSize(n int) bool { + return self.Size == 0 || self.Size == n +} + +func (self *MemoryOperand) isBroadcast(n int, b uint8) bool { + return self.Size == n && self.Broadcast == b +} + +func (self *MemoryOperand) formatMask() string { + if !self.Masked { + return "" + } else { + return self.Mask.String() + } +} + +func (self *MemoryOperand) formatBroadcast() string { + if self.Broadcast == 0 { + return "" + } else { + return fmt.Sprintf("{1to%d}", self.Broadcast) + } +} + +func (self *MemoryOperand) ensureAddrValid() { + switch self.Addr.Type { + case None : break + case Memory : self.Addr.Memory.EnsureValid() + case Offset : break + case Reference : break + default : panic("invalid address type") + } +} + +func (self *MemoryOperand) ensureSizeValid() { + if (_Sizes & (1 << self.Size)) == 0 { + panic("invalid memory operand size") + } +} + +func (self *MemoryOperand) ensureBroadcastValid() { + if (_Sizes & (1 << self.Broadcast)) == 0 { + panic("invalid memory operand broadcast") + } +} + +// Free decreases the reference count of a MemoryOperand, if the +// refcount drops to 0, the Label will be recycled. +func (self *MemoryOperand) Free() { + if atomic.AddInt64(&self.refs, -1) == 0 { + freeMemoryOperand(self) + } +} + +// String implements the fmt.Stringer interface. +func (self *MemoryOperand) String() string { + return self.Addr.String() + self.formatMask() + self.formatBroadcast() +} + +// Retain increases the reference count of a MemoryOperand. +func (self *MemoryOperand) Retain() *MemoryOperand { + atomic.AddInt64(&self.refs, 1) + return self +} + +// EnsureValid checks if the memory operand is valid, if not, it panics. +func (self *MemoryOperand) EnsureValid() { + self.ensureAddrValid() + self.ensureSizeValid() + self.ensureBroadcastValid() +} + +// MemoryAddress represents a memory address. +type MemoryAddress struct { + Base Register + Index Register + Scale uint8 + Displacement int32 +} + +const ( + _Scales = 0b100010111 // bit-mask for valid scales (0, 1, 2, 4, 8) +) + +func (self *MemoryAddress) isVMX(evex bool) bool { + return self.isMemBase() && (self.Index == nil || isXMM(self.Index) || (evex && isEVEXXMM(self.Index))) +} + +func (self *MemoryAddress) isVMY(evex bool) bool { + return self.isMemBase() && (self.Index == nil || isYMM(self.Index) || (evex && isEVEXYMM(self.Index))) +} + +func (self *MemoryAddress) isVMZ() bool { + return self.isMemBase() && (self.Index == nil || isZMM(self.Index)) +} + +func (self *MemoryAddress) isMem() bool { + return self.isMemBase() && (self.Index == nil || isReg64(self.Index)) +} + +func (self *MemoryAddress) isMemBase() bool { + return (self.Base == nil || isReg64(self.Base)) && // `Base` must be 64-bit if present + (self.Scale == 0) == (self.Index == nil) && // `Scale` and `Index` depends on each other + (_Scales & (1 << self.Scale)) != 0 // `Scale` can only be 0, 1, 2, 4 or 8 +} + +// String implements the fmt.Stringer interface. +func (self *MemoryAddress) String() string { + var dp int + var sb strings.Builder + + /* the displacement part */ + if dp = int(self.Displacement); dp != 0 { + sb.WriteString(strconv.Itoa(dp)) + } + + /* the base register */ + if sb.WriteByte('('); self.Base != nil { + sb.WriteByte('%') + sb.WriteString(self.Base.String()) + } + + /* index is optional */ + if self.Index != nil { + sb.WriteString(",%") + sb.WriteString(self.Index.String()) + + /* scale is also optional */ + if self.Scale >= 2 { + sb.WriteByte(',') + sb.WriteString(strconv.Itoa(int(self.Scale))) + } + } + + /* close the bracket */ + sb.WriteByte(')') + return sb.String() +} + +// EnsureValid checks if the memory address is valid, if not, it panics. +func (self *MemoryAddress) EnsureValid() { + if !self.isMemBase() || (self.Index != nil && !isIndexable(self.Index)) { + panic("not a valid memory address") + } +} + +// Ref constructs a memory reference to a label. +func Ref(ref *Label) (v *MemoryOperand) { + v = CreateMemoryOperand() + v.Addr.Type = Reference + v.Addr.Reference = ref + return +} + +// Abs construct a simple memory address that represents absolute addressing. +func Abs(disp int32) *MemoryOperand { + return Sib(nil, nil, 0, disp) +} + +// Ptr constructs a simple memory operand with base and displacement. +func Ptr(base Register, disp int32) *MemoryOperand { + return Sib(base, nil, 0, disp) +} + +// Sib constructs a simple memory operand that represents a complete memory address. +func Sib(base Register, index Register, scale uint8, disp int32) (v *MemoryOperand) { + v = CreateMemoryOperand() + v.Addr.Type = Memory + v.Addr.Memory.Base = base + v.Addr.Memory.Index = index + v.Addr.Memory.Scale = scale + v.Addr.Memory.Displacement = disp + v.EnsureValid() + return +} + +/** Operand Matching Helpers **/ + +const _IntMask = + (1 << reflect.Int ) | + (1 << reflect.Int8 ) | + (1 << reflect.Int16 ) | + (1 << reflect.Int32 ) | + (1 << reflect.Int64 ) | + (1 << reflect.Uint ) | + (1 << reflect.Uint8 ) | + (1 << reflect.Uint16 ) | + (1 << reflect.Uint32 ) | + (1 << reflect.Uint64 ) | + (1 << reflect.Uintptr) + +func isInt(k reflect.Kind) bool { + return (_IntMask & (1 << k)) != 0 +} + +func asInt64(v interface{}) (int64, bool) { + if isSpecial(v) { + return 0, false + } else if x := efaceOf(v); isInt(x.kind()) { + return x.toInt64(), true + } else { + return 0, false + } +} + +func inRange(v interface{}, low int64, high int64) bool { + x, ok := asInt64(v) + return ok && x >= low && x <= high +} + +func isSpecial(v interface{}) bool { + switch v.(type) { + case Register8 : return true + case Register16 : return true + case Register32 : return true + case Register64 : return true + case KRegister : return true + case MMRegister : return true + case XMMRegister : return true + case YMMRegister : return true + case ZMMRegister : return true + case RelativeOffset : return true + case RoundingControl : return true + case ExceptionControl : return true + default : return false + } +} + +func isIndexable(v interface{}) bool { + return isZMM(v) || isReg64(v) || isEVEXXMM(v) || isEVEXYMM(v) +} + +func isImm4 (v interface{}) bool { return inRange(v, 0, 15) } +func isImm8 (v interface{}) bool { return inRange(v, math.MinInt8, math.MaxUint8) } +func isImm16 (v interface{}) bool { return inRange(v, math.MinInt16, math.MaxUint16) } +func isImm32 (v interface{}) bool { return inRange(v, math.MinInt32, math.MaxUint32) } +func isImm64 (v interface{}) bool { _, r := asInt64(v) ; return r } +func isConst1 (v interface{}) bool { x, r := asInt64(v) ; return r && x == 1 } +func isConst3 (v interface{}) bool { x, r := asInt64(v) ; return r && x == 3 } +func isRel8 (v interface{}) bool { x, r := v.(RelativeOffset) ; return r && x >= math.MinInt8 && x <= math.MaxInt8 } +func isRel32 (v interface{}) bool { _, r := v.(RelativeOffset) ; return r } +func isLabel (v interface{}) bool { _, r := v.(*Label) ; return r } +func isReg8 (v interface{}) bool { _, r := v.(Register8) ; return r } +func isReg8REX (v interface{}) bool { x, r := v.(Register8) ; return r && (x & 0x80) == 0 && x >= SPL } +func isReg16 (v interface{}) bool { _, r := v.(Register16) ; return r } +func isReg32 (v interface{}) bool { _, r := v.(Register32) ; return r } +func isReg64 (v interface{}) bool { _, r := v.(Register64) ; return r } +func isMM (v interface{}) bool { _, r := v.(MMRegister) ; return r } +func isXMM (v interface{}) bool { x, r := v.(XMMRegister) ; return r && x <= XMM15 } +func isEVEXXMM (v interface{}) bool { _, r := v.(XMMRegister) ; return r } +func isXMMk (v interface{}) bool { x, r := v.(MaskedRegister) ; return isXMM(v) || (r && isXMM(x.Reg) && !x.Mask.Z) } +func isXMMkz (v interface{}) bool { x, r := v.(MaskedRegister) ; return isXMM(v) || (r && isXMM(x.Reg)) } +func isYMM (v interface{}) bool { x, r := v.(YMMRegister) ; return r && x <= YMM15 } +func isEVEXYMM (v interface{}) bool { _, r := v.(YMMRegister) ; return r } +func isYMMk (v interface{}) bool { x, r := v.(MaskedRegister) ; return isYMM(v) || (r && isYMM(x.Reg) && !x.Mask.Z) } +func isYMMkz (v interface{}) bool { x, r := v.(MaskedRegister) ; return isYMM(v) || (r && isYMM(x.Reg)) } +func isZMM (v interface{}) bool { _, r := v.(ZMMRegister) ; return r } +func isZMMk (v interface{}) bool { x, r := v.(MaskedRegister) ; return isZMM(v) || (r && isZMM(x.Reg) && !x.Mask.Z) } +func isZMMkz (v interface{}) bool { x, r := v.(MaskedRegister) ; return isZMM(v) || (r && isZMM(x.Reg)) } +func isK (v interface{}) bool { _, r := v.(KRegister) ; return r } +func isKk (v interface{}) bool { x, r := v.(MaskedRegister) ; return isK(v) || (r && isK(x.Reg) && !x.Mask.Z) } +func isM (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isMem() && x.Broadcast == 0 && !x.Masked } +func isMk (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isMem() && x.Broadcast == 0 && !(x.Masked && x.Mask.Z) } +func isMkz (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isMem() && x.Broadcast == 0 } +func isM8 (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isM(v) && x.isSize(1) } +func isM16 (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isM(v) && x.isSize(2) } +func isM16kz (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isMkz(v) && x.isSize(2) } +func isM32 (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isM(v) && x.isSize(4) } +func isM32k (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isMk(v) && x.isSize(4) } +func isM32kz (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isMkz(v) && x.isSize(4) } +func isM64 (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isM(v) && x.isSize(8) } +func isM64k (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isMk(v) && x.isSize(8) } +func isM64kz (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isMkz(v) && x.isSize(8) } +func isM128 (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isM(v) && x.isSize(16) } +func isM128kz (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isMkz(v) && x.isSize(16) } +func isM256 (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isM(v) && x.isSize(32) } +func isM256kz (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isMkz(v) && x.isSize(32) } +func isM512 (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isM(v) && x.isSize(64) } +func isM512kz (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && isMkz(v) && x.isSize(64) } +func isM64M32bcst (v interface{}) bool { x, r := v.(*MemoryOperand) ; return isM64(v) || (r && x.isBroadcast(4, 2)) } +func isM128M32bcst (v interface{}) bool { x, r := v.(*MemoryOperand) ; return isM128(v) || (r && x.isBroadcast(4, 4)) } +func isM256M32bcst (v interface{}) bool { x, r := v.(*MemoryOperand) ; return isM256(v) || (r && x.isBroadcast(4, 8)) } +func isM512M32bcst (v interface{}) bool { x, r := v.(*MemoryOperand) ; return isM512(v) || (r && x.isBroadcast(4, 16)) } +func isM128M64bcst (v interface{}) bool { x, r := v.(*MemoryOperand) ; return isM128(v) || (r && x.isBroadcast(8, 2)) } +func isM256M64bcst (v interface{}) bool { x, r := v.(*MemoryOperand) ; return isM256(v) || (r && x.isBroadcast(8, 4)) } +func isM512M64bcst (v interface{}) bool { x, r := v.(*MemoryOperand) ; return isM512(v) || (r && x.isBroadcast(8, 8)) } +func isVMX (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isVMX(false) && !x.Masked } +func isEVEXVMX (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isVMX(true) && !x.Masked } +func isVMXk (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isVMX(true) } +func isVMY (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isVMY(false) && !x.Masked } +func isEVEXVMY (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isVMY(true) && !x.Masked } +func isVMYk (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isVMY(true) } +func isVMZ (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isVMZ() && !x.Masked } +func isVMZk (v interface{}) bool { x, r := v.(*MemoryOperand) ; return r && x.isVMZ() } +func isSAE (v interface{}) bool { _, r := v.(ExceptionControl) ; return r } +func isER (v interface{}) bool { _, r := v.(RoundingControl) ; return r } + +func isImmExt(v interface{}, ext int, min int64, max int64) bool { + if x, ok := asInt64(v); !ok { + return false + } else if m := int64(1) << (8 * ext); x < m && x >= m + min { + return true + } else { + return x <= max && x >= min + } +} + +func isImm8Ext(v interface{}, ext int) bool { + return isImmExt(v, ext, math.MinInt8, math.MaxInt8) +} + +func isImm32Ext(v interface{}, ext int) bool { + return isImmExt(v, ext, math.MinInt32, math.MaxInt32) +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/pools.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/pools.go new file mode 100644 index 00000000..06f85ac2 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/pools.go @@ -0,0 +1,117 @@ +package x86_64 + +import ( + `sync` +) + +var ( + labelPool sync.Pool + programPool sync.Pool + instructionPool sync.Pool + memoryOperandPool sync.Pool +) + +func freeLabel(v *Label) { + labelPool.Put(v) +} + +func clearLabel(p *Label) *Label { + *p = Label{} + return p +} + +// CreateLabel creates a new Label, it may allocate a new one or grab one from a pool. +func CreateLabel(name string) *Label { + var p *Label + var v interface{} + + /* attempt to grab from the pool */ + if v = labelPool.Get(); v == nil { + p = new(Label) + } else { + p = clearLabel(v.(*Label)) + } + + /* initialize the label */ + p.refs = 1 + p.Name = name + return p +} + +func newProgram(arch *Arch) *Program { + var p *Program + var v interface{} + + /* attempt to grab from the pool */ + if v = programPool.Get(); v == nil { + p = new(Program) + } else { + p = clearProgram(v.(*Program)) + } + + /* initialize the program */ + p.arch = arch + return p +} + +func freeProgram(p *Program) { + programPool.Put(p) +} + +func clearProgram(p *Program) *Program { + *p = Program{} + return p +} + +func newInstruction(name string, argc int, argv Operands) *Instruction { + var v interface{} + var p *Instruction + + /* attempt to grab from the pool */ + if v = instructionPool.Get(); v == nil { + p = new(Instruction) + } else { + p = clearInstruction(v.(*Instruction)) + } + + /* initialize the instruction */ + p.name = name + p.argc = argc + p.argv = argv + return p +} + +func freeInstruction(v *Instruction) { + instructionPool.Put(v) +} + +func clearInstruction(p *Instruction) *Instruction { + *p = Instruction { prefix: p.prefix[:0] } + return p +} + +func freeMemoryOperand(m *MemoryOperand) { + memoryOperandPool.Put(m) +} + +func clearMemoryOperand(m *MemoryOperand) *MemoryOperand { + *m = MemoryOperand{} + return m +} + +// CreateMemoryOperand creates a new MemoryOperand, it may allocate a new one or grab one from a pool. +func CreateMemoryOperand() *MemoryOperand { + var v interface{} + var p *MemoryOperand + + /* attempt to grab from the pool */ + if v = memoryOperandPool.Get(); v == nil { + p = new(MemoryOperand) + } else { + p = clearMemoryOperand(v.(*MemoryOperand)) + } + + /* initialize the memory operand */ + p.refs = 1 + return p +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/program.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/program.go new file mode 100644 index 00000000..9f80618e --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/program.go @@ -0,0 +1,542 @@ +package x86_64 + +import ( + `fmt` + `math` + `math/bits` + + `github.com/chenzhuoyu/iasm/expr` +) + +type ( + _PseudoType int + _InstructionEncoder func(*Program, ...interface{}) *Instruction +) + +const ( + _PseudoNop _PseudoType = iota + 1 + _PseudoByte + _PseudoWord + _PseudoLong + _PseudoQuad + _PseudoData + _PseudoAlign +) + +func (self _PseudoType) String() string { + switch self { + case _PseudoNop : return ".nop" + case _PseudoByte : return ".byte" + case _PseudoWord : return ".word" + case _PseudoLong : return ".long" + case _PseudoQuad : return ".quad" + case _PseudoData : return ".data" + case _PseudoAlign : return ".align" + default : panic("unreachable") + } +} + +type _Pseudo struct { + kind _PseudoType + data []byte + uint uint64 + expr *expr.Expr +} + +func (self *_Pseudo) free() { + if self.expr != nil { + self.expr.Free() + } +} + +func (self *_Pseudo) encode(m *[]byte, pc uintptr) int { + switch self.kind { + case _PseudoNop : return 0 + case _PseudoByte : self.encodeByte(m) ; return 1 + case _PseudoWord : self.encodeWord(m) ; return 2 + case _PseudoLong : self.encodeLong(m) ; return 4 + case _PseudoQuad : self.encodeQuad(m) ; return 8 + case _PseudoData : self.encodeData(m) ; return len(self.data) + case _PseudoAlign : self.encodeAlign(m, pc) ; return self.alignSize(pc) + default : panic("invalid pseudo instruction") + } +} + +func (self *_Pseudo) evalExpr(low int64, high int64) int64 { + if v, err := self.expr.Evaluate(); err != nil { + panic(err) + } else if v < low || v > high { + panic(fmt.Sprintf("expression out of range [%d, %d]: %d", low, high, v)) + } else { + return v + } +} + +func (self *_Pseudo) alignSize(pc uintptr) int { + if !ispow2(self.uint) { + panic(fmt.Sprintf("aligment should be a power of 2, not %d", self.uint)) + } else { + return align(int(pc), bits.TrailingZeros64(self.uint)) - int(pc) + } +} + +func (self *_Pseudo) encodeData(m *[]byte) { + if m != nil { + *m = append(*m, self.data...) + } +} + +func (self *_Pseudo) encodeByte(m *[]byte) { + if m != nil { + append8(m, byte(self.evalExpr(math.MinInt8, math.MaxUint8))) + } +} + +func (self *_Pseudo) encodeWord(m *[]byte) { + if m != nil { + append16(m, uint16(self.evalExpr(math.MinInt16, math.MaxUint16))) + } +} + +func (self *_Pseudo) encodeLong(m *[]byte) { + if m != nil { + append32(m, uint32(self.evalExpr(math.MinInt32, math.MaxUint32))) + } +} + +func (self *_Pseudo) encodeQuad(m *[]byte) { + if m != nil { + if v, err := self.expr.Evaluate(); err != nil { + panic(err) + } else { + append64(m, uint64(v)) + } + } +} + +func (self *_Pseudo) encodeAlign(m *[]byte, pc uintptr) { + if m != nil { + if self.expr == nil { + expandmm(m, self.alignSize(pc), 0) + } else { + expandmm(m, self.alignSize(pc), byte(self.evalExpr(math.MinInt8, math.MaxUint8))) + } + } +} + +// Operands represents a sequence of operand required by an instruction. +type Operands [_N_args]interface{} + +// InstructionDomain represents the domain of an instruction. +type InstructionDomain uint8 + +const ( + DomainGeneric InstructionDomain = iota + DomainMMXSSE + DomainAVX + DomainFMA + DomainCrypto + DomainMask + DomainAMDSpecific + DomainMisc + DomainPseudo +) + +type ( + _BranchType uint8 +) + +const ( + _B_none _BranchType = iota + _B_conditional + _B_unconditional +) + +// Instruction represents an unencoded instruction. +type Instruction struct { + next *Instruction + pc uintptr + nb int + len int + argc int + name string + argv Operands + forms [_N_forms]_Encoding + pseudo _Pseudo + branch _BranchType + domain InstructionDomain + prefix []byte +} + +func (self *Instruction) add(flags int, encoder func(m *_Encoding, v []interface{})) { + self.forms[self.len].flags = flags + self.forms[self.len].encoder = encoder + self.len++ +} + +func (self *Instruction) free() { + self.clear() + self.pseudo.free() + freeInstruction(self) +} + +func (self *Instruction) clear() { + for i := 0; i < self.argc; i++ { + if v, ok := self.argv[i].(Disposable); ok { + v.Free() + } + } +} + +func (self *Instruction) check(e *_Encoding) bool { + if (e.flags & _F_rel1) != 0 { + return isRel8(self.argv[0]) + } else if (e.flags & _F_rel4) != 0 { + return isRel32(self.argv[0]) || isLabel(self.argv[0]) + } else { + return true + } +} + +func (self *Instruction) encode(m *[]byte) int { + n := math.MaxInt64 + p := (*_Encoding)(nil) + + /* encode prefixes if any */ + if self.nb = len(self.prefix); m != nil { + *m = append(*m, self.prefix...) + } + + /* check for pseudo-instructions */ + if self.pseudo.kind != 0 { + self.nb += self.pseudo.encode(m, self.pc) + return self.nb + } + + /* find the shortest encoding */ + for i := 0; i < self.len; i++ { + if e := &self.forms[i]; self.check(e) { + if v := e.encode(self.argv[:self.argc]); v < n { + n = v + p = e + } + } + } + + /* add to buffer if needed */ + if m != nil { + *m = append(*m, p.bytes[:n]...) + } + + /* update the instruction length */ + self.nb += n + return self.nb +} + +/** Instruction Prefixes **/ + +const ( + _P_cs = 0x2e + _P_ds = 0x3e + _P_es = 0x26 + _P_fs = 0x64 + _P_gs = 0x65 + _P_ss = 0x36 + _P_lock = 0xf0 +) + +// CS overrides the memory operation of this instruction to CS. +func (self *Instruction) CS() *Instruction { + self.prefix = append(self.prefix, _P_cs) + return self +} + +// DS overrides the memory operation of this instruction to DS, +// this is the default section for most instructions if not specified. +func (self *Instruction) DS() *Instruction { + self.prefix = append(self.prefix, _P_ds) + return self +} + +// ES overrides the memory operation of this instruction to ES. +func (self *Instruction) ES() *Instruction { + self.prefix = append(self.prefix, _P_es) + return self +} + +// FS overrides the memory operation of this instruction to FS. +func (self *Instruction) FS() *Instruction { + self.prefix = append(self.prefix, _P_fs) + return self +} + +// GS overrides the memory operation of this instruction to GS. +func (self *Instruction) GS() *Instruction { + self.prefix = append(self.prefix, _P_gs) + return self +} + +// SS overrides the memory operation of this instruction to SS. +func (self *Instruction) SS() *Instruction { + self.prefix = append(self.prefix, _P_ss) + return self +} + +// LOCK causes the processor's LOCK# signal to be asserted during execution of +// the accompanying instruction (turns the instruction into an atomic instruction). +// In a multiprocessor environment, the LOCK# signal insures that the processor +// has exclusive use of any shared memory while the signal is asserted. +func (self *Instruction) LOCK() *Instruction { + self.prefix = append(self.prefix, _P_lock) + return self +} + +/** Basic Instruction Properties **/ + +// Name returns the instruction name. +func (self *Instruction) Name() string { + return self.name +} + +// Domain returns the domain of this instruction. +func (self *Instruction) Domain() InstructionDomain { + return self.domain +} + +// Operands returns the operands of this instruction. +func (self *Instruction) Operands() []interface{} { + return self.argv[:self.argc] +} + +// Program represents a sequence of instructions. +type Program struct { + arch *Arch + head *Instruction + tail *Instruction +} + +const ( + _N_near = 2 // near-branch (-128 ~ +127) takes 2 bytes to encode + _N_far_cond = 6 // conditional far-branch takes 6 bytes to encode + _N_far_uncond = 5 // unconditional far-branch takes 5 bytes to encode +) + +func (self *Program) clear() { + for p, q := self.head, self.head; p != nil; p = q { + q = p.next + p.free() + } +} + +func (self *Program) alloc(name string, argc int, argv Operands) *Instruction { + p := self.tail + q := newInstruction(name, argc, argv) + + /* attach to tail if any */ + if p != nil { + p.next = q + } else { + self.head = q + } + + /* set the new tail */ + self.tail = q + return q +} + +func (self *Program) pseudo(kind _PseudoType) (p *Instruction) { + p = self.alloc(kind.String(), 0, Operands{}) + p.domain = DomainPseudo + p.pseudo.kind = kind + return +} + +func (self *Program) require(isa ISA) { + if !self.arch.HasISA(isa) { + panic("ISA '" + isa.String() + "' was not enabled") + } +} + +func (self *Program) branchSize(p *Instruction) int { + switch p.branch { + case _B_none : panic("p is not a branch") + case _B_conditional : return _N_far_cond + case _B_unconditional : return _N_far_uncond + default : panic("invalid instruction") + } +} + +/** Pseudo-Instructions **/ + +// Byte is a pseudo-instruction to add raw byte to the assembled code. +func (self *Program) Byte(v *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoByte) + p.pseudo.expr = v + return +} + +// Word is a pseudo-instruction to add raw uint16 as little-endian to the assembled code. +func (self *Program) Word(v *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoWord) + p.pseudo.expr = v + return +} + +// Long is a pseudo-instruction to add raw uint32 as little-endian to the assembled code. +func (self *Program) Long(v *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoLong) + p.pseudo.expr = v + return +} + +// Quad is a pseudo-instruction to add raw uint64 as little-endian to the assembled code. +func (self *Program) Quad(v *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoQuad) + p.pseudo.expr = v + return +} + +// Data is a pseudo-instruction to add raw bytes to the assembled code. +func (self *Program) Data(v []byte) (p *Instruction) { + p = self.pseudo(_PseudoData) + p.pseudo.data = v + return +} + +// Align is a pseudo-instruction to ensure the PC is aligned to a certain value. +func (self *Program) Align(align uint64, padding *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoAlign) + p.pseudo.uint = align + p.pseudo.expr = padding + return +} + +/** Program Assembler **/ + +// Free returns the Program object into pool. +// Any operation performed after Free is undefined behavior. +// +// NOTE: This also frees all the instructions, labels, memory +// operands and expressions associated with this program. +// +func (self *Program) Free() { + self.clear() + freeProgram(self) +} + +// Link pins a label at the current position. +func (self *Program) Link(p *Label) { + if p.Dest != nil { + panic("lable was alreay linked") + } else { + p.Dest = self.pseudo(_PseudoNop) + } +} + +// Assemble assembles and links the entire program into machine code. +func (self *Program) Assemble(pc uintptr) (ret []byte) { + orig := pc + next := true + offs := uintptr(0) + + /* Pass 0: PC-precompute, assume all labeled branches are far-branches. */ + for p := self.head; p != nil; p = p.next { + if p.pc = pc; !isLabel(p.argv[0]) || p.branch == _B_none { + pc += uintptr(p.encode(nil)) + } else { + pc += uintptr(self.branchSize(p)) + } + } + + /* allocate space for the machine code */ + nb := int(pc - orig) + ret = make([]byte, 0, nb) + + /* Pass 1: adjust all the jumps */ + for next { + next = false + offs = uintptr(0) + + /* scan all the branches */ + for p := self.head; p != nil; p = p.next { + var ok bool + var lb *Label + + /* re-calculate the alignment here */ + if nb = p.nb; p.pseudo.kind == _PseudoAlign { + p.pc -= offs + offs += uintptr(nb - p.encode(nil)) + continue + } + + /* adjust the program counter */ + p.pc -= offs + lb, ok = p.argv[0].(*Label) + + /* only care about labeled far-branches */ + if !ok || p.nb == _N_near || p.branch == _B_none { + continue + } + + /* calculate the jump offset */ + size := self.branchSize(p) + diff := lb.offset(p.pc, size) + + /* too far to be a near jump */ + if diff > 127 || diff < -128 { + p.nb = size + continue + } + + /* a far jump becomes a near jump, calculate + * the PC adjustment value and assemble again */ + next = true + p.nb = _N_near + offs += uintptr(size - _N_near) + } + } + + /* Pass 3: link all the cross-references */ + for p := self.head; p != nil; p = p.next { + for i := 0; i < p.argc; i++ { + var ok bool + var lb *Label + var op *MemoryOperand + + /* resolve labels */ + if lb, ok = p.argv[i].(*Label); ok { + p.argv[i] = lb.offset(p.pc, p.nb) + continue + } + + /* check for memory operands */ + if op, ok = p.argv[i].(*MemoryOperand); !ok { + continue + } + + /* check for label references */ + if op.Addr.Type != Reference { + continue + } + + /* replace the label with the real offset */ + op.Addr.Type = Offset + op.Addr.Offset = op.Addr.Reference.offset(p.pc, p.nb) + } + } + + /* Pass 4: actually encode all the instructions */ + for p := self.head; p != nil; p = p.next { + p.encode(&ret) + } + + /* all done */ + return ret +} + +// AssembleAndFree is like Assemble, but it frees the Program after assembling. +func (self *Program) AssembleAndFree(pc uintptr) (ret []byte) { + ret = self.Assemble(pc) + self.Free() + return +} \ No newline at end of file diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/registers.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/registers.go new file mode 100644 index 00000000..cd1188a2 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/registers.go @@ -0,0 +1,677 @@ +package x86_64 + +import ( + `fmt` +) + +// Register represents a hardware register. +type Register interface { + fmt.Stringer + implRegister() +} + +type ( + Register8 byte + Register16 byte + Register32 byte + Register64 byte +) + +type ( + KRegister byte + MMRegister byte + XMMRegister byte + YMMRegister byte + ZMMRegister byte +) + +// RegisterMask is a KRegister used to mask another register. +type RegisterMask struct { + Z bool + K KRegister +} + +// String implements the fmt.Stringer interface. +func (self RegisterMask) String() string { + if !self.Z { + return fmt.Sprintf("{%%%s}", self.K) + } else { + return fmt.Sprintf("{%%%s}{z}", self.K) + } +} + +// MaskedRegister is a Register masked by a RegisterMask. +type MaskedRegister struct { + Reg Register + Mask RegisterMask +} + +// String implements the fmt.Stringer interface. +func (self MaskedRegister) String() string { + return self.Reg.String() + self.Mask.String() +} + +const ( + AL Register8 = iota + CL + DL + BL + SPL + BPL + SIL + DIL + R8b + R9b + R10b + R11b + R12b + R13b + R14b + R15b +) + +const ( + AH = SPL | 0x80 + CH = BPL | 0x80 + DH = SIL | 0x80 + BH = DIL | 0x80 +) + +const ( + AX Register16 = iota + CX + DX + BX + SP + BP + SI + DI + R8w + R9w + R10w + R11w + R12w + R13w + R14w + R15w +) + +const ( + EAX Register32 = iota + ECX + EDX + EBX + ESP + EBP + ESI + EDI + R8d + R9d + R10d + R11d + R12d + R13d + R14d + R15d +) + +const ( + RAX Register64 = iota + RCX + RDX + RBX + RSP + RBP + RSI + RDI + R8 + R9 + R10 + R11 + R12 + R13 + R14 + R15 +) + +const ( + K0 KRegister = iota + K1 + K2 + K3 + K4 + K5 + K6 + K7 +) + +const ( + MM0 MMRegister = iota + MM1 + MM2 + MM3 + MM4 + MM5 + MM6 + MM7 +) + +const ( + XMM0 XMMRegister = iota + XMM1 + XMM2 + XMM3 + XMM4 + XMM5 + XMM6 + XMM7 + XMM8 + XMM9 + XMM10 + XMM11 + XMM12 + XMM13 + XMM14 + XMM15 + XMM16 + XMM17 + XMM18 + XMM19 + XMM20 + XMM21 + XMM22 + XMM23 + XMM24 + XMM25 + XMM26 + XMM27 + XMM28 + XMM29 + XMM30 + XMM31 +) + +const ( + YMM0 YMMRegister = iota + YMM1 + YMM2 + YMM3 + YMM4 + YMM5 + YMM6 + YMM7 + YMM8 + YMM9 + YMM10 + YMM11 + YMM12 + YMM13 + YMM14 + YMM15 + YMM16 + YMM17 + YMM18 + YMM19 + YMM20 + YMM21 + YMM22 + YMM23 + YMM24 + YMM25 + YMM26 + YMM27 + YMM28 + YMM29 + YMM30 + YMM31 +) + +const ( + ZMM0 ZMMRegister = iota + ZMM1 + ZMM2 + ZMM3 + ZMM4 + ZMM5 + ZMM6 + ZMM7 + ZMM8 + ZMM9 + ZMM10 + ZMM11 + ZMM12 + ZMM13 + ZMM14 + ZMM15 + ZMM16 + ZMM17 + ZMM18 + ZMM19 + ZMM20 + ZMM21 + ZMM22 + ZMM23 + ZMM24 + ZMM25 + ZMM26 + ZMM27 + ZMM28 + ZMM29 + ZMM30 + ZMM31 +) + +func (self Register8) implRegister() {} +func (self Register16) implRegister() {} +func (self Register32) implRegister() {} +func (self Register64) implRegister() {} + +func (self KRegister) implRegister() {} +func (self MMRegister) implRegister() {} +func (self XMMRegister) implRegister() {} +func (self YMMRegister) implRegister() {} +func (self ZMMRegister) implRegister() {} + +func (self Register8) String() string { if int(self) >= len(r8names) { return "???" } else { return r8names[self] } } +func (self Register16) String() string { if int(self) >= len(r16names) { return "???" } else { return r16names[self] } } +func (self Register32) String() string { if int(self) >= len(r32names) { return "???" } else { return r32names[self] } } +func (self Register64) String() string { if int(self) >= len(r64names) { return "???" } else { return r64names[self] } } + +func (self KRegister) String() string { if int(self) >= len(knames) { return "???" } else { return knames[self] } } +func (self MMRegister) String() string { if int(self) >= len(mmnames) { return "???" } else { return mmnames[self] } } +func (self XMMRegister) String() string { if int(self) >= len(xmmnames) { return "???" } else { return xmmnames[self] } } +func (self YMMRegister) String() string { if int(self) >= len(ymmnames) { return "???" } else { return ymmnames[self] } } +func (self ZMMRegister) String() string { if int(self) >= len(zmmnames) { return "???" } else { return zmmnames[self] } } + +// Registers maps register name into Register instances. +var Registers = map[string]Register { + "al" : AL, + "cl" : CL, + "dl" : DL, + "bl" : BL, + "spl" : SPL, + "bpl" : BPL, + "sil" : SIL, + "dil" : DIL, + "r8b" : R8b, + "r9b" : R9b, + "r10b" : R10b, + "r11b" : R11b, + "r12b" : R12b, + "r13b" : R13b, + "r14b" : R14b, + "r15b" : R15b, + "ah" : AH, + "ch" : CH, + "dh" : DH, + "bh" : BH, + "ax" : AX, + "cx" : CX, + "dx" : DX, + "bx" : BX, + "sp" : SP, + "bp" : BP, + "si" : SI, + "di" : DI, + "r8w" : R8w, + "r9w" : R9w, + "r10w" : R10w, + "r11w" : R11w, + "r12w" : R12w, + "r13w" : R13w, + "r14w" : R14w, + "r15w" : R15w, + "eax" : EAX, + "ecx" : ECX, + "edx" : EDX, + "ebx" : EBX, + "esp" : ESP, + "ebp" : EBP, + "esi" : ESI, + "edi" : EDI, + "r8d" : R8d, + "r9d" : R9d, + "r10d" : R10d, + "r11d" : R11d, + "r12d" : R12d, + "r13d" : R13d, + "r14d" : R14d, + "r15d" : R15d, + "rax" : RAX, + "rcx" : RCX, + "rdx" : RDX, + "rbx" : RBX, + "rsp" : RSP, + "rbp" : RBP, + "rsi" : RSI, + "rdi" : RDI, + "r8" : R8, + "r9" : R9, + "r10" : R10, + "r11" : R11, + "r12" : R12, + "r13" : R13, + "r14" : R14, + "r15" : R15, + "k0" : K0, + "k1" : K1, + "k2" : K2, + "k3" : K3, + "k4" : K4, + "k5" : K5, + "k6" : K6, + "k7" : K7, + "mm0" : MM0, + "mm1" : MM1, + "mm2" : MM2, + "mm3" : MM3, + "mm4" : MM4, + "mm5" : MM5, + "mm6" : MM6, + "mm7" : MM7, + "xmm0" : XMM0, + "xmm1" : XMM1, + "xmm2" : XMM2, + "xmm3" : XMM3, + "xmm4" : XMM4, + "xmm5" : XMM5, + "xmm6" : XMM6, + "xmm7" : XMM7, + "xmm8" : XMM8, + "xmm9" : XMM9, + "xmm10" : XMM10, + "xmm11" : XMM11, + "xmm12" : XMM12, + "xmm13" : XMM13, + "xmm14" : XMM14, + "xmm15" : XMM15, + "xmm16" : XMM16, + "xmm17" : XMM17, + "xmm18" : XMM18, + "xmm19" : XMM19, + "xmm20" : XMM20, + "xmm21" : XMM21, + "xmm22" : XMM22, + "xmm23" : XMM23, + "xmm24" : XMM24, + "xmm25" : XMM25, + "xmm26" : XMM26, + "xmm27" : XMM27, + "xmm28" : XMM28, + "xmm29" : XMM29, + "xmm30" : XMM30, + "xmm31" : XMM31, + "ymm0" : YMM0, + "ymm1" : YMM1, + "ymm2" : YMM2, + "ymm3" : YMM3, + "ymm4" : YMM4, + "ymm5" : YMM5, + "ymm6" : YMM6, + "ymm7" : YMM7, + "ymm8" : YMM8, + "ymm9" : YMM9, + "ymm10" : YMM10, + "ymm11" : YMM11, + "ymm12" : YMM12, + "ymm13" : YMM13, + "ymm14" : YMM14, + "ymm15" : YMM15, + "ymm16" : YMM16, + "ymm17" : YMM17, + "ymm18" : YMM18, + "ymm19" : YMM19, + "ymm20" : YMM20, + "ymm21" : YMM21, + "ymm22" : YMM22, + "ymm23" : YMM23, + "ymm24" : YMM24, + "ymm25" : YMM25, + "ymm26" : YMM26, + "ymm27" : YMM27, + "ymm28" : YMM28, + "ymm29" : YMM29, + "ymm30" : YMM30, + "ymm31" : YMM31, + "zmm0" : ZMM0, + "zmm1" : ZMM1, + "zmm2" : ZMM2, + "zmm3" : ZMM3, + "zmm4" : ZMM4, + "zmm5" : ZMM5, + "zmm6" : ZMM6, + "zmm7" : ZMM7, + "zmm8" : ZMM8, + "zmm9" : ZMM9, + "zmm10" : ZMM10, + "zmm11" : ZMM11, + "zmm12" : ZMM12, + "zmm13" : ZMM13, + "zmm14" : ZMM14, + "zmm15" : ZMM15, + "zmm16" : ZMM16, + "zmm17" : ZMM17, + "zmm18" : ZMM18, + "zmm19" : ZMM19, + "zmm20" : ZMM20, + "zmm21" : ZMM21, + "zmm22" : ZMM22, + "zmm23" : ZMM23, + "zmm24" : ZMM24, + "zmm25" : ZMM25, + "zmm26" : ZMM26, + "zmm27" : ZMM27, + "zmm28" : ZMM28, + "zmm29" : ZMM29, + "zmm30" : ZMM30, + "zmm31" : ZMM31, +} + +/** Register Name Tables **/ + +var r8names = [...]string { + AL : "al", + CL : "cl", + DL : "dl", + BL : "bl", + SPL : "spl", + BPL : "bpl", + SIL : "sil", + DIL : "dil", + R8b : "r8b", + R9b : "r9b", + R10b : "r10b", + R11b : "r11b", + R12b : "r12b", + R13b : "r13b", + R14b : "r14b", + R15b : "r15b", + AH : "ah", + CH : "ch", + DH : "dh", + BH : "bh", +} + +var r16names = [...]string { + AX : "ax", + CX : "cx", + DX : "dx", + BX : "bx", + SP : "sp", + BP : "bp", + SI : "si", + DI : "di", + R8w : "r8w", + R9w : "r9w", + R10w : "r10w", + R11w : "r11w", + R12w : "r12w", + R13w : "r13w", + R14w : "r14w", + R15w : "r15w", +} + +var r32names = [...]string { + EAX : "eax", + ECX : "ecx", + EDX : "edx", + EBX : "ebx", + ESP : "esp", + EBP : "ebp", + ESI : "esi", + EDI : "edi", + R8d : "r8d", + R9d : "r9d", + R10d : "r10d", + R11d : "r11d", + R12d : "r12d", + R13d : "r13d", + R14d : "r14d", + R15d : "r15d", +} + +var r64names = [...]string { + RAX : "rax", + RCX : "rcx", + RDX : "rdx", + RBX : "rbx", + RSP : "rsp", + RBP : "rbp", + RSI : "rsi", + RDI : "rdi", + R8 : "r8", + R9 : "r9", + R10 : "r10", + R11 : "r11", + R12 : "r12", + R13 : "r13", + R14 : "r14", + R15 : "r15", +} + +var knames = [...]string { + K0: "k0", + K1: "k1", + K2: "k2", + K3: "k3", + K4: "k4", + K5: "k5", + K6: "k6", + K7: "k7", +} + +var mmnames = [...]string { + MM0: "mm0", + MM1: "mm1", + MM2: "mm2", + MM3: "mm3", + MM4: "mm4", + MM5: "mm5", + MM6: "mm6", + MM7: "mm7", +} + +var xmmnames = [...]string { + XMM0 : "xmm0", + XMM1 : "xmm1", + XMM2 : "xmm2", + XMM3 : "xmm3", + XMM4 : "xmm4", + XMM5 : "xmm5", + XMM6 : "xmm6", + XMM7 : "xmm7", + XMM8 : "xmm8", + XMM9 : "xmm9", + XMM10 : "xmm10", + XMM11 : "xmm11", + XMM12 : "xmm12", + XMM13 : "xmm13", + XMM14 : "xmm14", + XMM15 : "xmm15", + XMM16 : "xmm16", + XMM17 : "xmm17", + XMM18 : "xmm18", + XMM19 : "xmm19", + XMM20 : "xmm20", + XMM21 : "xmm21", + XMM22 : "xmm22", + XMM23 : "xmm23", + XMM24 : "xmm24", + XMM25 : "xmm25", + XMM26 : "xmm26", + XMM27 : "xmm27", + XMM28 : "xmm28", + XMM29 : "xmm29", + XMM30 : "xmm30", + XMM31 : "xmm31", +} + +var ymmnames = [...]string { + YMM0 : "ymm0", + YMM1 : "ymm1", + YMM2 : "ymm2", + YMM3 : "ymm3", + YMM4 : "ymm4", + YMM5 : "ymm5", + YMM6 : "ymm6", + YMM7 : "ymm7", + YMM8 : "ymm8", + YMM9 : "ymm9", + YMM10 : "ymm10", + YMM11 : "ymm11", + YMM12 : "ymm12", + YMM13 : "ymm13", + YMM14 : "ymm14", + YMM15 : "ymm15", + YMM16 : "ymm16", + YMM17 : "ymm17", + YMM18 : "ymm18", + YMM19 : "ymm19", + YMM20 : "ymm20", + YMM21 : "ymm21", + YMM22 : "ymm22", + YMM23 : "ymm23", + YMM24 : "ymm24", + YMM25 : "ymm25", + YMM26 : "ymm26", + YMM27 : "ymm27", + YMM28 : "ymm28", + YMM29 : "ymm29", + YMM30 : "ymm30", + YMM31 : "ymm31", +} + +var zmmnames = [...]string { + ZMM0 : "zmm0", + ZMM1 : "zmm1", + ZMM2 : "zmm2", + ZMM3 : "zmm3", + ZMM4 : "zmm4", + ZMM5 : "zmm5", + ZMM6 : "zmm6", + ZMM7 : "zmm7", + ZMM8 : "zmm8", + ZMM9 : "zmm9", + ZMM10 : "zmm10", + ZMM11 : "zmm11", + ZMM12 : "zmm12", + ZMM13 : "zmm13", + ZMM14 : "zmm14", + ZMM15 : "zmm15", + ZMM16 : "zmm16", + ZMM17 : "zmm17", + ZMM18 : "zmm18", + ZMM19 : "zmm19", + ZMM20 : "zmm20", + ZMM21 : "zmm21", + ZMM22 : "zmm22", + ZMM23 : "zmm23", + ZMM24 : "zmm24", + ZMM25 : "zmm25", + ZMM26 : "zmm26", + ZMM27 : "zmm27", + ZMM28 : "zmm28", + ZMM29 : "zmm29", + ZMM30 : "zmm30", + ZMM31 : "zmm31", +} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/utils.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/utils.go new file mode 100644 index 00000000..19a25995 --- /dev/null +++ b/vendor/github.com/chenzhuoyu/iasm/x86_64/utils.go @@ -0,0 +1,131 @@ +package x86_64 + +import ( + `encoding/binary` + `errors` + `reflect` + `strconv` + `unicode/utf8` + `unsafe` +) + +const ( + _CC_digit = 1 << iota + _CC_ident + _CC_ident0 + _CC_number +) + +func ispow2(v uint64) bool { + return (v & (v - 1)) == 0 +} + +func isdigit(cc rune) bool { + return '0' <= cc && cc <= '9' +} + +func isalpha(cc rune) bool { + return (cc >= 'a' && cc <= 'z') || (cc >= 'A' && cc <= 'Z') +} + +func isident(cc rune) bool { + return cc == '_' || isalpha(cc) || isdigit(cc) +} + +func isident0(cc rune) bool { + return cc == '_' || isalpha(cc) +} + +func isnumber(cc rune) bool { + return (cc == 'b' || cc == 'B') || + (cc == 'o' || cc == 'O') || + (cc == 'x' || cc == 'X') || + (cc >= '0' && cc <= '9') || + (cc >= 'a' && cc <= 'f') || + (cc >= 'A' && cc <= 'F') +} + +func align(v int, n int) int { + return (((v - 1) >> n) + 1) << n +} + +func append8(m *[]byte, v byte) { + *m = append(*m, v) +} + +func append16(m *[]byte, v uint16) { + p := len(*m) + *m = append(*m, 0, 0) + binary.LittleEndian.PutUint16((*m)[p:], v) +} + +func append32(m *[]byte, v uint32) { + p := len(*m) + *m = append(*m, 0, 0, 0, 0) + binary.LittleEndian.PutUint32((*m)[p:], v) +} + +func append64(m *[]byte, v uint64) { + p := len(*m) + *m = append(*m, 0, 0, 0, 0, 0, 0, 0, 0) + binary.LittleEndian.PutUint64((*m)[p:], v) +} + +func expandmm(m *[]byte, n int, v byte) { + sl := (*_GoSlice)(unsafe.Pointer(m)) + nb := sl.len + n + + /* grow as needed */ + if nb > cap(*m) { + *m = growslice(byteType, *m, nb) + } + + /* fill the new area */ + memset(unsafe.Pointer(uintptr(sl.ptr) + uintptr(sl.len)), v, uintptr(n)) + sl.len = nb +} + +func memset(p unsafe.Pointer, c byte, n uintptr) { + if c != 0 { + memsetv(p, c, n) + } else { + memclrNoHeapPointers(p, n) + } +} + +func memsetv(p unsafe.Pointer, c byte, n uintptr) { + for i := uintptr(0); i < n; i++ { + *(*byte)(unsafe.Pointer(uintptr(p) + i)) = c + } +} + +func literal64(v string) (uint64, error) { + var nb int + var ch rune + var ex error + var mm [12]byte + + /* unquote the runes */ + for v != "" { + if ch, _, v, ex = strconv.UnquoteChar(v, '\''); ex != nil { + return 0, ex + } else if nb += utf8.EncodeRune(mm[nb:], ch); nb > 8 { + return 0, errors.New("multi-char constant too large") + } + } + + /* convert to uint64 */ + return *(*uint64)(unsafe.Pointer(&mm)), nil +} + +var ( + byteWrap = reflect.TypeOf(byte(0)) + byteType = (*_GoType)(efaceOf(byteWrap).ptr) +) + +//go:linkname growslice runtime.growslice +func growslice(_ *_GoType, _ []byte, _ int) []byte + +//go:noescape +//go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers +func memclrNoHeapPointers(_ unsafe.Pointer, _ uintptr) diff --git a/vendor/github.com/gogf/gf/v2/database/gredis/gredis_config.go b/vendor/github.com/gogf/gf/v2/database/gredis/gredis_config.go index 6a8f7d23..c743197d 100644 --- a/vendor/github.com/gogf/gf/v2/database/gredis/gredis_config.go +++ b/vendor/github.com/gogf/gf/v2/database/gredis/gredis_config.go @@ -23,6 +23,7 @@ type Config struct { // Address It supports single and cluster redis server. Multiple addresses joined with char ','. Eg: 192.168.1.1:6379, 192.168.1.2:6379. Address string `json:"address"` Db int `json:"db"` // Redis db. + User string `json:"user"` // Username for AUTH. Pass string `json:"pass"` // Password for AUTH. MinIdle int `json:"minIdle"` // Minimum number of connections allowed to be idle (default is 0) MaxIdle int `json:"maxIdle"` // Maximum number of connections allowed to be idle (default is 10) diff --git a/vendor/github.com/gogf/gf/v2/os/gctx/gctx.go b/vendor/github.com/gogf/gf/v2/os/gctx/gctx.go index d6f05cc3..e0bcb666 100644 --- a/vendor/github.com/gogf/gf/v2/os/gctx/gctx.go +++ b/vendor/github.com/gogf/gf/v2/os/gctx/gctx.go @@ -57,11 +57,9 @@ func WithCtx(ctx context.Context) context.Context { if CtxId(ctx) != "" { return ctx } - if gtrace.IsUsingDefaultProvider() { - var span *gtrace.Span - ctx, span = gtrace.NewSpan(ctx, "gctx.WithCtx") - defer span.End() - } + var span *gtrace.Span + ctx, span = gtrace.NewSpan(ctx, "gctx.WithCtx") + defer span.End() return ctx } diff --git a/vendor/github.com/gogf/gf/v2/os/glog/glog_logger.go b/vendor/github.com/gogf/gf/v2/os/glog/glog_logger.go index 25f82e16..8455fa9d 100644 --- a/vendor/github.com/gogf/gf/v2/os/glog/glog_logger.go +++ b/vendor/github.com/gogf/gf/v2/os/glog/glog_logger.go @@ -27,7 +27,6 @@ import ( "github.com/gogf/gf/v2/os/gfpool" "github.com/gogf/gf/v2/os/gmlock" "github.com/gogf/gf/v2/os/gtime" - "github.com/gogf/gf/v2/os/gtimer" "github.com/gogf/gf/v2/text/gregex" "github.com/gogf/gf/v2/util/gconv" ) @@ -100,7 +99,7 @@ func (l *Logger) print(ctx context.Context, level int, stack string, values ...i // It just initializes once for each logger. if l.config.RotateSize > 0 || l.config.RotateExpire > 0 { if !l.config.rotatedHandlerInitialized.Val() && l.config.rotatedHandlerInitialized.Cas(false, true) { - gtimer.AddOnce(context.Background(), l.config.RotateCheckInterval, l.rotateChecksTimely) + l.rotateChecksTimely(ctx) intlog.Printf(ctx, "logger rotation initialized: every %s", l.config.RotateCheckInterval.String()) } } diff --git a/vendor/github.com/gogf/gf/v2/os/glog/glog_logger_rotate.go b/vendor/github.com/gogf/gf/v2/os/glog/glog_logger_rotate.go index b467fb91..6090e517 100644 --- a/vendor/github.com/gogf/gf/v2/os/glog/glog_logger_rotate.go +++ b/vendor/github.com/gogf/gf/v2/os/glog/glog_logger_rotate.go @@ -10,6 +10,7 @@ import ( "context" "fmt" "runtime" + "strings" "time" "github.com/gogf/gf/v2/container/garray" @@ -137,6 +138,11 @@ func (l *Logger) rotateChecksTimely(ctx context.Context) { intlog.Errorf(ctx, `%+v`, err) } intlog.Printf(ctx, "logging rotation start checks: %+v", files) + // get file name regex pattern + // access-{y-m-d}-test.log => access-$-test.log => access-\$-test\.log => access-(.+?)-test\.log + fileNameRegexPattern, _ := gregex.ReplaceString(`{.+?}`, "$", l.config.File) + fileNameRegexPattern = gregex.Quote(fileNameRegexPattern) + fileNameRegexPattern = strings.ReplaceAll(fileNameRegexPattern, "\\$", "(.+?)") // ============================================================= // Rotation of expired file checks. // ============================================================= @@ -147,7 +153,12 @@ func (l *Logger) rotateChecksTimely(ctx context.Context) { expireRotated bool ) for _, file := range files { - if gfile.ExtName(file) == "gz" { + // ignore backup file + if gregex.IsMatchString(`.+\.\d{20}\.log`, gfile.Basename(file)) { + continue + } + // ignore not matching file + if !gregex.IsMatchString(fileNameRegexPattern, file) { continue } mtime = gfile.MTime(file) @@ -159,19 +170,16 @@ func (l *Logger) rotateChecksTimely(ctx context.Context) { return } defer gmlock.Unlock(memoryLockFileKey) - - fp := l.getOpenedFilePointer(ctx, file) - if fp == nil { - intlog.Errorf(ctx, `got nil file pointer for: %s`, file) - return - } - if runtime.GOOS == "windows" { + fp := l.getOpenedFilePointer(ctx, file) + if fp == nil { + intlog.Errorf(ctx, `got nil file pointer for: %s`, file) + return + } if err := fp.Close(true); err != nil { intlog.Errorf(ctx, `%+v`, err) } } - expireRotated = true intlog.Printf( ctx, @@ -203,6 +211,11 @@ func (l *Logger) rotateChecksTimely(ctx context.Context) { if gfile.ExtName(file) == "gz" { continue } + // ignore not matching file + originalLoggingFilePath, _ := gregex.ReplaceString(`\.\d{20}`, "", file) + if !gregex.IsMatchString(fileNameRegexPattern, originalLoggingFilePath) { + continue + } // Eg: // access.20200326101301899002.log if gregex.IsMatchString(`.+\.\d{20}\.log`, gfile.Basename(file)) { @@ -233,42 +246,37 @@ func (l *Logger) rotateChecksTimely(ctx context.Context) { // ============================================================= // Backups count limitation and expiration checks. // ============================================================= - var ( - backupFilesMap = make(map[string]*garray.SortedArray) - originalLoggingFilePath string - ) + backupFiles := garray.NewSortedArray(func(a, b interface{}) int { + // Sorted by rotated/backup file mtime. + // The older rotated/backup file is put in the head of array. + var ( + file1 = a.(string) + file2 = b.(string) + result = gfile.MTimestampMilli(file1) - gfile.MTimestampMilli(file2) + ) + if result <= 0 { + return -1 + } + return 1 + }) if l.config.RotateBackupLimit > 0 || l.config.RotateBackupExpire > 0 { for _, file := range files { - originalLoggingFilePath, _ = gregex.ReplaceString(`\.\d{20}`, "", file) - if backupFilesMap[originalLoggingFilePath] == nil { - backupFilesMap[originalLoggingFilePath] = garray.NewSortedArray(func(a, b interface{}) int { - // Sorted by rotated/backup file mtime. - // The older rotated/backup file is put in the head of array. - var ( - file1 = a.(string) - file2 = b.(string) - result = gfile.MTimestampMilli(file1) - gfile.MTimestampMilli(file2) - ) - if result <= 0 { - return -1 - } - return 1 - }) + // ignore not matching file + originalLoggingFilePath, _ := gregex.ReplaceString(`\.\d{20}`, "", file) + if !gregex.IsMatchString(fileNameRegexPattern, originalLoggingFilePath) { + continue } - // Check if this file a rotated/backup file. if gregex.IsMatchString(`.+\.\d{20}\.log`, gfile.Basename(file)) { - backupFilesMap[originalLoggingFilePath].Add(file) + backupFiles.Add(file) } } - intlog.Printf(ctx, `calculated backup files map: %+v`, backupFilesMap) - for _, array := range backupFilesMap { - diff := array.Len() - l.config.RotateBackupLimit - for i := 0; i < diff; i++ { - path, _ := array.PopLeft() - intlog.Printf(ctx, `remove exceeded backup limit file: %s`, path) - if err := gfile.Remove(path.(string)); err != nil { - intlog.Errorf(ctx, `%+v`, err) - } + intlog.Printf(ctx, `calculated backup files array: %+v`, backupFiles) + diff := backupFiles.Len() - l.config.RotateBackupLimit + for i := 0; i < diff; i++ { + path, _ := backupFiles.PopLeft() + intlog.Printf(ctx, `remove exceeded backup limit file: %s`, path) + if err := gfile.Remove(path.(string)); err != nil { + intlog.Errorf(ctx, `%+v`, err) } } // Backups expiration checking. @@ -277,26 +285,24 @@ func (l *Logger) rotateChecksTimely(ctx context.Context) { mtime time.Time subDuration time.Duration ) - for _, array := range backupFilesMap { - array.Iterator(func(_ int, v interface{}) bool { - path := v.(string) - mtime = gfile.MTime(path) - subDuration = now.Sub(mtime) - if subDuration > l.config.RotateBackupExpire { - intlog.Printf( - ctx, - `%v - %v = %v > %v, remove expired backup file: %s`, - now, mtime, subDuration, l.config.RotateBackupExpire, path, - ) - if err := gfile.Remove(path); err != nil { - intlog.Errorf(ctx, `%+v`, err) - } - return true - } else { - return false + backupFiles.Iterator(func(_ int, v interface{}) bool { + path := v.(string) + mtime = gfile.MTime(path) + subDuration = now.Sub(mtime) + if subDuration > l.config.RotateBackupExpire { + intlog.Printf( + ctx, + `%v - %v = %v > %v, remove expired backup file: %s`, + now, mtime, subDuration, l.config.RotateBackupExpire, path, + ) + if err := gfile.Remove(path); err != nil { + intlog.Errorf(ctx, `%+v`, err) } - }) - } + return true + } else { + return false + } + }) } } } diff --git a/vendor/github.com/gogf/gf/v2/util/gconv/gconv_convert.go b/vendor/github.com/gogf/gf/v2/util/gconv/gconv_convert.go index a5c6e99f..d3d352c2 100644 --- a/vendor/github.com/gogf/gf/v2/util/gconv/gconv_convert.go +++ b/vendor/github.com/gogf/gf/v2/util/gconv/gconv_convert.go @@ -28,7 +28,7 @@ func Convert(fromValue interface{}, toTypeName string, extraParams ...interface{ type doConvertInput struct { FromValue interface{} // Value that is converted from. ToTypeName string // Target value type name in string. - ReferValue interface{} // Referred value, a value in type `ToTypeName`. + ReferValue interface{} // Referred value, a value in type `ToTypeName`. Note that its type might be reflect.Value. Extra []interface{} // Extra values for implementing the converting. // Marks that the value is already converted and set to `ReferValue`. Caller can ignore the returned result. // It is an attribute for internal usage purpose. @@ -254,9 +254,7 @@ func doConvert(in doConvertInput) (convertedValue interface{}) { default: if in.ReferValue != nil { - var ( - referReflectValue reflect.Value - ) + var referReflectValue reflect.Value if v, ok := in.ReferValue.(reflect.Value); ok { referReflectValue = v } else { @@ -272,7 +270,8 @@ func doConvert(in doConvertInput) (convertedValue interface{}) { } } }() - if referReflectValue.Kind() == reflect.Ptr { + switch referReflectValue.Kind() { + case reflect.Ptr: // Type converting for custom type pointers. // Eg: // type PayMode int @@ -294,11 +293,19 @@ func doConvert(in doConvertInput) (convertedValue interface{}) { in.alreadySetToReferValue = true return originTypeValue.Addr().Convert(referReflectValue.Type()).Interface() } + + case reflect.Map: + var targetValue = reflect.New(referReflectValue.Type()).Elem() + if err := doMapToMap(in.FromValue, targetValue); err == nil { + in.alreadySetToReferValue = true + } + return targetValue.Interface() } in.ToTypeName = referReflectValue.Kind().String() in.ReferValue = nil in.alreadySetToReferValue = true - return reflect.ValueOf(doConvert(in)).Convert(referReflectValue.Type()).Interface() + convertedValue = reflect.ValueOf(doConvert(in)).Convert(referReflectValue.Type()).Interface() + return convertedValue } return in.FromValue } diff --git a/vendor/github.com/gogf/gf/v2/util/gconv/gconv_map.go b/vendor/github.com/gogf/gf/v2/util/gconv/gconv_map.go index d5158335..9b169f39 100644 --- a/vendor/github.com/gogf/gf/v2/util/gconv/gconv_map.go +++ b/vendor/github.com/gogf/gf/v2/util/gconv/gconv_map.go @@ -255,10 +255,21 @@ func doMapConvertForMapOrStructValue(in doMapConvertForMapOrStructValueInput) in dataMap = make(map[string]interface{}) ) for _, k := range mapKeys { + var ( + mapKeyValue = reflectValue.MapIndex(k) + mapValue interface{} + ) + if mapKeyValue.IsZero() { + // in case of: + // exception recovered: reflect: call of reflect.Value.Interface on zero Value + mapValue = reflect.New(mapKeyValue.Type()).Elem() + } else { + mapValue = mapKeyValue.Interface() + } dataMap[String(k.Interface())] = doMapConvertForMapOrStructValue( doMapConvertForMapOrStructValueInput{ IsRoot: false, - Value: reflectValue.MapIndex(k).Interface(), + Value: mapValue, RecursiveType: in.RecursiveType, RecursiveOption: in.RecursiveType == recursiveTypeTrue, Tags: in.Tags, diff --git a/vendor/github.com/gogf/gf/v2/util/gconv/gconv_maptomap.go b/vendor/github.com/gogf/gf/v2/util/gconv/gconv_maptomap.go index 51eb0efd..7ff924cc 100644 --- a/vendor/github.com/gogf/gf/v2/util/gconv/gconv_maptomap.go +++ b/vendor/github.com/gogf/gf/v2/util/gconv/gconv_maptomap.go @@ -24,10 +24,10 @@ func MapToMap(params interface{}, pointer interface{}, mapping ...map[string]str // doMapToMap converts any map type variable `params` to another map type variable `pointer`. // // The parameter `params` can be any type of map, like: -// map[string]string, map[string]struct, map[string]*struct, etc. +// map[string]string, map[string]struct, map[string]*struct, reflect.Value, etc. // // The parameter `pointer` should be type of *map, like: -// map[int]string, map[string]struct, map[string]*struct, etc. +// map[int]string, map[string]struct, map[string]*struct, reflect.Value, etc. // // The optional parameter `mapping` is used for struct attribute to map key mapping, which makes // sense only if the items of original map `params` is type struct. @@ -95,7 +95,7 @@ func doMapToMap(params interface{}, pointer interface{}, mapping ...map[string]s return gerror.NewCodef(gcode.CodeInvalidParameter, "pointer should be type of *map, but got:%s", pointerKind) } defer func() { - // Catch the panic, especially the reflect operation panics. + // Catch the panic, especially the reflection operation panics. if exception := recover(); exception != nil { if v, ok := exception.(error); ok && gerror.HasStack(v) { err = v @@ -116,31 +116,33 @@ func doMapToMap(params interface{}, pointer interface{}, mapping ...map[string]s pointerValueKind = pointerValueType.Elem().Kind() } for _, key := range paramsKeys { - e := reflect.New(pointerValueType).Elem() + mapValue := reflect.New(pointerValueType).Elem() switch pointerValueKind { case reflect.Map, reflect.Struct: - if err = doStruct(paramsRv.MapIndex(key).Interface(), e, keyToAttributeNameMapping, ""); err != nil { + if err = doStruct(paramsRv.MapIndex(key).Interface(), mapValue, keyToAttributeNameMapping, ""); err != nil { return err } default: - e.Set( + mapValue.Set( reflect.ValueOf( - Convert( - paramsRv.MapIndex(key).Interface(), - pointerValueType.String(), - ), + doConvert(doConvertInput{ + FromValue: paramsRv.MapIndex(key).Interface(), + ToTypeName: pointerValueType.String(), + ReferValue: mapValue, + Extra: nil, + }), ), ) } - dataMap.SetMapIndex( - reflect.ValueOf( - Convert( - key.Interface(), - pointerKeyType.Name(), - ), - ), - e, + var mapKey = reflect.ValueOf( + doConvert(doConvertInput{ + FromValue: key.Interface(), + ToTypeName: pointerKeyType.Name(), + ReferValue: reflect.New(pointerKeyType).Elem().Interface(), + Extra: nil, + }), ) + dataMap.SetMapIndex(mapKey, mapValue) } pointerRv.Set(dataMap) return nil diff --git a/vendor/github.com/gogf/gf/v2/util/gtag/gtag_enums.go b/vendor/github.com/gogf/gf/v2/util/gtag/gtag_enums.go index 2257dfa9..2c9d65c3 100644 --- a/vendor/github.com/gogf/gf/v2/util/gtag/gtag_enums.go +++ b/vendor/github.com/gogf/gf/v2/util/gtag/gtag_enums.go @@ -23,11 +23,11 @@ func SetGlobalEnums(enumsJson string) error { // GetGlobalEnums retrieves and returns the global enums. func GetGlobalEnums() (string, error) { - enumsByes, err := json.Marshal(enumsMap) + enumsBytes, err := json.Marshal(enumsMap) if err != nil { return "", err } - return string(enumsByes), nil + return string(enumsBytes), nil } // GetEnumsByType retrieves and returns the stored enums json by type name. diff --git a/vendor/github.com/jackc/pgx/v5/CHANGELOG.md b/vendor/github.com/jackc/pgx/v5/CHANGELOG.md index cc090da4..916666b4 100644 --- a/vendor/github.com/jackc/pgx/v5/CHANGELOG.md +++ b/vendor/github.com/jackc/pgx/v5/CHANGELOG.md @@ -1,3 +1,12 @@ +# 5.4.2 (July 11, 2023) + +* Fix: RowScanner errors are fatal to Rows +* Fix: Enable failover efforts when pg_hba.conf disallows non-ssl connections (Brandon Kauffman) +* Hstore text codec internal improvements (Evan Jones) +* Fix: Stop timers for background reader when not in use. Fixes memory leak when closing connections (Adrian-Stefan Mares) +* Fix: Stop background reader as soon as possible. +* Add PgConn.SyncConn(). This combined with the above fix makes it safe to directly use the underlying net.Conn. + # 5.4.1 (June 18, 2023) * Fix: concurrency bug with pgtypeDefaultMap and simple protocol (Lev Zakharov) diff --git a/vendor/github.com/jackc/pgx/v5/README.md b/vendor/github.com/jackc/pgx/v5/README.md index 14327f2c..ad48697c 100644 --- a/vendor/github.com/jackc/pgx/v5/README.md +++ b/vendor/github.com/jackc/pgx/v5/README.md @@ -133,6 +133,7 @@ These adapters can be used with the tracelog package. * [github.com/jackc/pgx-zap](https://github.com/jackc/pgx-zap) * [github.com/jackc/pgx-zerolog](https://github.com/jackc/pgx-zerolog) * [github.com/mcosta74/pgx-slog](https://github.com/mcosta74/pgx-slog) +* [github.com/kataras/pgx-golog](https://github.com/kataras/pgx-golog) ## 3rd Party Libraries with PGX Support diff --git a/vendor/github.com/jackc/pgx/v5/pgconn/internal/bgreader/bgreader.go b/vendor/github.com/jackc/pgx/v5/pgconn/internal/bgreader/bgreader.go index aa1a3d39..e65c2c2b 100644 --- a/vendor/github.com/jackc/pgx/v5/pgconn/internal/bgreader/bgreader.go +++ b/vendor/github.com/jackc/pgx/v5/pgconn/internal/bgreader/bgreader.go @@ -9,18 +9,18 @@ import ( ) const ( - bgReaderStatusStopped = iota - bgReaderStatusRunning - bgReaderStatusStopping + StatusStopped = iota + StatusRunning + StatusStopping ) // BGReader is an io.Reader that can optionally buffer reads in the background. It is safe for concurrent use. type BGReader struct { r io.Reader - cond *sync.Cond - bgReaderStatus int32 - readResults []readResult + cond *sync.Cond + status int32 + readResults []readResult } type readResult struct { @@ -34,14 +34,14 @@ func (r *BGReader) Start() { r.cond.L.Lock() defer r.cond.L.Unlock() - switch r.bgReaderStatus { - case bgReaderStatusStopped: - r.bgReaderStatus = bgReaderStatusRunning + switch r.status { + case StatusStopped: + r.status = StatusRunning go r.bgRead() - case bgReaderStatusRunning: + case StatusRunning: // no-op - case bgReaderStatusStopping: - r.bgReaderStatus = bgReaderStatusRunning + case StatusStopping: + r.status = StatusRunning } } @@ -51,16 +51,23 @@ func (r *BGReader) Stop() { r.cond.L.Lock() defer r.cond.L.Unlock() - switch r.bgReaderStatus { - case bgReaderStatusStopped: + switch r.status { + case StatusStopped: // no-op - case bgReaderStatusRunning: - r.bgReaderStatus = bgReaderStatusStopping - case bgReaderStatusStopping: + case StatusRunning: + r.status = StatusStopping + case StatusStopping: // no-op } } +// Status returns the current status of the background reader. +func (r *BGReader) Status() int32 { + r.cond.L.Lock() + defer r.cond.L.Unlock() + return r.status +} + func (r *BGReader) bgRead() { keepReading := true for keepReading { @@ -70,8 +77,8 @@ func (r *BGReader) bgRead() { r.cond.L.Lock() r.readResults = append(r.readResults, readResult{buf: buf, err: err}) - if r.bgReaderStatus == bgReaderStatusStopping || err != nil { - r.bgReaderStatus = bgReaderStatusStopped + if r.status == StatusStopping || err != nil { + r.status = StatusStopped keepReading = false } r.cond.L.Unlock() @@ -89,7 +96,7 @@ func (r *BGReader) Read(p []byte) (int, error) { } // There are no unread background read results and the background reader is stopped. - if r.bgReaderStatus == bgReaderStatusStopped { + if r.status == StatusStopped { return r.r.Read(p) } diff --git a/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go b/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go index 9f84605f..12357751 100644 --- a/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go +++ b/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go @@ -174,7 +174,7 @@ func ConnectConfig(octx context.Context, config *Config) (pgConn *PgConn, err er const ERRCODE_INVALID_CATALOG_NAME = "3D000" // db does not exist const ERRCODE_INSUFFICIENT_PRIVILEGE = "42501" // missing connect privilege if pgerr.Code == ERRCODE_INVALID_PASSWORD || - pgerr.Code == ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION || + pgerr.Code == ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION && fc.TLSConfig != nil || pgerr.Code == ERRCODE_INVALID_CATALOG_NAME || pgerr.Code == ERRCODE_INSUFFICIENT_PRIVILEGE { break @@ -263,7 +263,8 @@ func expandWithIPs(ctx context.Context, lookupFn LookupFunc, fallbacks []*Fallba } func connect(ctx context.Context, config *Config, fallbackConfig *FallbackConfig, - ignoreNotPreferredErr bool) (*PgConn, error) { + ignoreNotPreferredErr bool, +) (*PgConn, error) { pgConn := new(PgConn) pgConn.config = config pgConn.cleanupDone = make(chan struct{}) @@ -298,6 +299,7 @@ func connect(ctx context.Context, config *Config, fallbackConfig *FallbackConfig pgConn.status = connStatusConnecting pgConn.bgReader = bgreader.New(pgConn.conn) pgConn.slowWriteTimer = time.AfterFunc(time.Duration(math.MaxInt64), pgConn.bgReader.Start) + pgConn.slowWriteTimer.Stop() pgConn.frontend = config.BuildFrontend(pgConn.bgReader, pgConn.conn) startupMsg := pgproto3.StartupMessage{ @@ -476,7 +478,8 @@ func (pgConn *PgConn) ReceiveMessage(ctx context.Context) (pgproto3.BackendMessa err = &pgconnError{ msg: "receive message failed", err: normalizeTimeoutError(ctx, err), - safeToRetry: true} + safeToRetry: true, + } } return msg, err } @@ -553,7 +556,8 @@ func (pgConn *PgConn) receiveMessage() (pgproto3.BackendMessage, error) { return msg, nil } -// Conn returns the underlying net.Conn. This rarely necessary. +// Conn returns the underlying net.Conn. This rarely necessary. If the connection will be directly used for reading or +// writing then SyncConn should usually be called before Conn. func (pgConn *PgConn) Conn() net.Conn { return pgConn.conn } @@ -1336,7 +1340,6 @@ func (mrr *MultiResultReader) ReadAll() ([]*Result, error) { func (mrr *MultiResultReader) receiveMessage() (pgproto3.BackendMessage, error) { msg, err := mrr.pgConn.receiveMessage() - if err != nil { mrr.pgConn.contextWatcher.Unwatch() mrr.err = normalizeTimeoutError(mrr.ctx, err) @@ -1647,8 +1650,8 @@ func (pgConn *PgConn) ExecBatch(ctx context.Context, batch *Batch) *MultiResultR batch.buf = (&pgproto3.Sync{}).Encode(batch.buf) pgConn.enterPotentialWriteReadDeadlock() + defer pgConn.exitPotentialWriteReadDeadlock() _, err := pgConn.conn.Write(batch.buf) - pgConn.exitPotentialWriteReadDeadlock() if err != nil { multiResult.closed = true multiResult.err = err @@ -1719,23 +1722,50 @@ func (pgConn *PgConn) enterPotentialWriteReadDeadlock() { // // In addition, on Windows the default timer resolution is 15.6ms. So setting the timer to less than that is // ineffective. - pgConn.slowWriteTimer.Reset(15 * time.Millisecond) + if pgConn.slowWriteTimer.Reset(15 * time.Millisecond) { + panic("BUG: slow write timer already active") + } } // exitPotentialWriteReadDeadlock must be called after a call to enterPotentialWriteReadDeadlock. func (pgConn *PgConn) exitPotentialWriteReadDeadlock() { - if !pgConn.slowWriteTimer.Reset(time.Duration(math.MaxInt64)) { - pgConn.slowWriteTimer.Stop() - } + // The state of the timer is not relevant upon exiting the potential slow write. It may both + // fire (due to a slow write), or not fire (due to a fast write). + _ = pgConn.slowWriteTimer.Stop() + pgConn.bgReader.Stop() } func (pgConn *PgConn) flushWithPotentialWriteReadDeadlock() error { pgConn.enterPotentialWriteReadDeadlock() + defer pgConn.exitPotentialWriteReadDeadlock() err := pgConn.frontend.Flush() - pgConn.exitPotentialWriteReadDeadlock() return err } +// SyncConn prepares the underlying net.Conn for direct use. PgConn may internally buffer reads or use goroutines for +// background IO. This means that any direct use of the underlying net.Conn may be corrupted if a read is already +// buffered or a read is in progress. SyncConn drains read buffers and stops background IO. In some cases this may +// require sending a ping to the server. ctx can be used to cancel this operation. This should be called before any +// operation that will use the underlying net.Conn directly. e.g. Before Conn() or Hijack(). +// +// This should not be confused with the PostgreSQL protocol Sync message. +func (pgConn *PgConn) SyncConn(ctx context.Context) error { + for i := 0; i < 10; i++ { + if pgConn.bgReader.Status() == bgreader.StatusStopped && pgConn.frontend.ReadBufferLen() == 0 { + return nil + } + + err := pgConn.Ping(ctx) + if err != nil { + return fmt.Errorf("SyncConn: Ping failed while syncing conn: %w", err) + } + } + + // This should never happen. Only way I can imagine this occuring is if the server is constantly sending data such as + // LISTEN/NOTIFY or log notifications such that we never can get an empty buffer. + return errors.New("SyncConn: conn never synchronized") +} + // HijackedConn is the result of hijacking a connection. // // Due to the necessary exposure of internal implementation details, it is not covered by the semantic versioning @@ -1750,9 +1780,9 @@ type HijackedConn struct { Config *Config } -// Hijack extracts the internal connection data. pgConn must be in an idle state. pgConn is unusable after hijacking. -// Hijacking is typically only useful when using pgconn to establish a connection, but taking complete control of the -// raw connection after that (e.g. a load balancer or proxy). +// Hijack extracts the internal connection data. pgConn must be in an idle state. SyncConn should be called immediately +// before Hijack. pgConn is unusable after hijacking. Hijacking is typically only useful when using pgconn to establish +// a connection, but taking complete control of the raw connection after that (e.g. a load balancer or proxy). // // Due to the necessary exposure of internal implementation details, it is not covered by the semantic versioning // compatibility. @@ -1776,6 +1806,8 @@ func (pgConn *PgConn) Hijack() (*HijackedConn, error) { // Construct created a PgConn from an already established connection to a PostgreSQL server. This is the inverse of // PgConn.Hijack. The connection must be in an idle state. // +// hc.Frontend is replaced by a new pgproto3.Frontend built by hc.Config.BuildFrontend. +// // Due to the necessary exposure of internal implementation details, it is not covered by the semantic versioning // compatibility. func Construct(hc *HijackedConn) (*PgConn, error) { @@ -1796,6 +1828,8 @@ func Construct(hc *HijackedConn) (*PgConn, error) { pgConn.contextWatcher = newContextWatcher(pgConn.conn) pgConn.bgReader = bgreader.New(pgConn.conn) pgConn.slowWriteTimer = time.AfterFunc(time.Duration(math.MaxInt64), pgConn.bgReader.Start) + pgConn.slowWriteTimer.Stop() + pgConn.frontend = hc.Config.BuildFrontend(pgConn.bgReader, pgConn.conn) return pgConn, nil } @@ -1997,7 +2031,6 @@ func (p *Pipeline) GetResults() (results any, err error) { } } - } func (p *Pipeline) getResultsPrepare() (*StatementDescription, error) { diff --git a/vendor/github.com/jackc/pgx/v5/pgproto3/frontend.go b/vendor/github.com/jackc/pgx/v5/pgproto3/frontend.go index 83dea963..33c3882a 100644 --- a/vendor/github.com/jackc/pgx/v5/pgproto3/frontend.go +++ b/vendor/github.com/jackc/pgx/v5/pgproto3/frontend.go @@ -361,3 +361,7 @@ func (f *Frontend) findAuthenticationMessageType(src []byte) (BackendMessage, er func (f *Frontend) GetAuthType() uint32 { return f.authType } + +func (f *Frontend) ReadBufferLen() int { + return f.cr.wp - f.cr.rp +} diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/array.go b/vendor/github.com/jackc/pgx/v5/pgtype/array.go index 7dfee389..73761956 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/array.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/array.go @@ -5,7 +5,6 @@ import ( "encoding/binary" "fmt" "io" - "reflect" "strconv" "strings" "unicode" @@ -375,27 +374,6 @@ func quoteArrayElementIfNeeded(src string) string { return src } -func findDimensionsFromValue(value reflect.Value, dimensions []ArrayDimension, elementsLength int) ([]ArrayDimension, int, bool) { - switch value.Kind() { - case reflect.Array: - fallthrough - case reflect.Slice: - length := value.Len() - if 0 == elementsLength { - elementsLength = length - } else { - elementsLength *= length - } - dimensions = append(dimensions, ArrayDimension{Length: int32(length), LowerBound: 1}) - for i := 0; i < length; i++ { - if d, l, ok := findDimensionsFromValue(value.Index(i), dimensions, elementsLength); ok { - return d, l, true - } - } - } - return dimensions, elementsLength, true -} - // Array represents a PostgreSQL array for T. It implements the ArrayGetter and ArraySetter interfaces. It preserves // PostgreSQL dimensions and custom lower bounds. Use FlatArray if these are not needed. type Array[T any] struct { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/convert.go b/vendor/github.com/jackc/pgx/v5/pgtype/convert.go index 7fddeaa8..8a9cee9c 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/convert.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/convert.go @@ -1,380 +1,9 @@ package pgtype import ( - "database/sql" - "fmt" - "math" "reflect" - "time" ) -const ( - maxUint = ^uint(0) - maxInt = int(maxUint >> 1) - minInt = -maxInt - 1 -) - -// underlyingNumberType gets the underlying type that can be converted to Int2, Int4, Int8, Float4, or Float8 -func underlyingNumberType(val any) (any, bool) { - refVal := reflect.ValueOf(val) - - switch refVal.Kind() { - case reflect.Ptr: - if refVal.IsNil() { - return nil, false - } - convVal := refVal.Elem().Interface() - return convVal, true - case reflect.Int: - convVal := int(refVal.Int()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Int8: - convVal := int8(refVal.Int()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Int16: - convVal := int16(refVal.Int()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Int32: - convVal := int32(refVal.Int()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Int64: - convVal := int64(refVal.Int()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Uint: - convVal := uint(refVal.Uint()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Uint8: - convVal := uint8(refVal.Uint()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Uint16: - convVal := uint16(refVal.Uint()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Uint32: - convVal := uint32(refVal.Uint()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Uint64: - convVal := uint64(refVal.Uint()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Float32: - convVal := float32(refVal.Float()) - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Float64: - convVal := refVal.Float() - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.String: - convVal := refVal.String() - return convVal, reflect.TypeOf(convVal) != refVal.Type() - case reflect.Bool: - convVal := refVal.Bool() - return convVal, reflect.TypeOf(convVal) != refVal.Type() - } - - return nil, false -} - -// underlyingBoolType gets the underlying type that can be converted to Bool -func underlyingBoolType(val any) (any, bool) { - refVal := reflect.ValueOf(val) - - switch refVal.Kind() { - case reflect.Ptr: - if refVal.IsNil() { - return nil, false - } - convVal := refVal.Elem().Interface() - return convVal, true - case reflect.Bool: - convVal := refVal.Bool() - return convVal, reflect.TypeOf(convVal) != refVal.Type() - } - - return nil, false -} - -// underlyingBytesType gets the underlying type that can be converted to []byte -func underlyingBytesType(val any) (any, bool) { - refVal := reflect.ValueOf(val) - - switch refVal.Kind() { - case reflect.Ptr: - if refVal.IsNil() { - return nil, false - } - convVal := refVal.Elem().Interface() - return convVal, true - case reflect.Slice: - if refVal.Type().Elem().Kind() == reflect.Uint8 { - convVal := refVal.Bytes() - return convVal, reflect.TypeOf(convVal) != refVal.Type() - } - } - - return nil, false -} - -// underlyingStringType gets the underlying type that can be converted to String -func underlyingStringType(val any) (any, bool) { - refVal := reflect.ValueOf(val) - - switch refVal.Kind() { - case reflect.Ptr: - if refVal.IsNil() { - return nil, false - } - convVal := refVal.Elem().Interface() - return convVal, true - case reflect.String: - convVal := refVal.String() - return convVal, reflect.TypeOf(convVal) != refVal.Type() - } - - return nil, false -} - -// underlyingPtrType dereferences a pointer -func underlyingPtrType(val any) (any, bool) { - refVal := reflect.ValueOf(val) - - switch refVal.Kind() { - case reflect.Ptr: - if refVal.IsNil() { - return nil, false - } - convVal := refVal.Elem().Interface() - return convVal, true - } - - return nil, false -} - -// underlyingTimeType gets the underlying type that can be converted to time.Time -func underlyingTimeType(val any) (any, bool) { - refVal := reflect.ValueOf(val) - - switch refVal.Kind() { - case reflect.Ptr: - if refVal.IsNil() { - return nil, false - } - convVal := refVal.Elem().Interface() - return convVal, true - } - - timeType := reflect.TypeOf(time.Time{}) - if refVal.Type().ConvertibleTo(timeType) { - return refVal.Convert(timeType).Interface(), true - } - - return nil, false -} - -// underlyingUUIDType gets the underlying type that can be converted to [16]byte -func underlyingUUIDType(val any) (any, bool) { - refVal := reflect.ValueOf(val) - - switch refVal.Kind() { - case reflect.Ptr: - if refVal.IsNil() { - return time.Time{}, false - } - convVal := refVal.Elem().Interface() - return convVal, true - } - - uuidType := reflect.TypeOf([16]byte{}) - if refVal.Type().ConvertibleTo(uuidType) { - return refVal.Convert(uuidType).Interface(), true - } - - return nil, false -} - -// underlyingSliceType gets the underlying slice type -func underlyingSliceType(val any) (any, bool) { - refVal := reflect.ValueOf(val) - - switch refVal.Kind() { - case reflect.Ptr: - if refVal.IsNil() { - return nil, false - } - convVal := refVal.Elem().Interface() - return convVal, true - case reflect.Slice: - baseSliceType := reflect.SliceOf(refVal.Type().Elem()) - if refVal.Type().ConvertibleTo(baseSliceType) { - convVal := refVal.Convert(baseSliceType) - return convVal.Interface(), reflect.TypeOf(convVal.Interface()) != refVal.Type() - } - } - - return nil, false -} - -func int64AssignTo(srcVal int64, srcValid bool, dst any) error { - if srcValid { - switch v := dst.(type) { - case *int: - if srcVal < int64(minInt) { - return fmt.Errorf("%d is less than minimum value for int", srcVal) - } else if srcVal > int64(maxInt) { - return fmt.Errorf("%d is greater than maximum value for int", srcVal) - } - *v = int(srcVal) - case *int8: - if srcVal < math.MinInt8 { - return fmt.Errorf("%d is less than minimum value for int8", srcVal) - } else if srcVal > math.MaxInt8 { - return fmt.Errorf("%d is greater than maximum value for int8", srcVal) - } - *v = int8(srcVal) - case *int16: - if srcVal < math.MinInt16 { - return fmt.Errorf("%d is less than minimum value for int16", srcVal) - } else if srcVal > math.MaxInt16 { - return fmt.Errorf("%d is greater than maximum value for int16", srcVal) - } - *v = int16(srcVal) - case *int32: - if srcVal < math.MinInt32 { - return fmt.Errorf("%d is less than minimum value for int32", srcVal) - } else if srcVal > math.MaxInt32 { - return fmt.Errorf("%d is greater than maximum value for int32", srcVal) - } - *v = int32(srcVal) - case *int64: - if srcVal < math.MinInt64 { - return fmt.Errorf("%d is less than minimum value for int64", srcVal) - } else if srcVal > math.MaxInt64 { - return fmt.Errorf("%d is greater than maximum value for int64", srcVal) - } - *v = int64(srcVal) - case *uint: - if srcVal < 0 { - return fmt.Errorf("%d is less than zero for uint", srcVal) - } else if uint64(srcVal) > uint64(maxUint) { - return fmt.Errorf("%d is greater than maximum value for uint", srcVal) - } - *v = uint(srcVal) - case *uint8: - if srcVal < 0 { - return fmt.Errorf("%d is less than zero for uint8", srcVal) - } else if srcVal > math.MaxUint8 { - return fmt.Errorf("%d is greater than maximum value for uint8", srcVal) - } - *v = uint8(srcVal) - case *uint16: - if srcVal < 0 { - return fmt.Errorf("%d is less than zero for uint16", srcVal) - } else if srcVal > math.MaxUint16 { - return fmt.Errorf("%d is greater than maximum value for uint16", srcVal) - } - *v = uint16(srcVal) - case *uint32: - if srcVal < 0 { - return fmt.Errorf("%d is less than zero for uint32", srcVal) - } else if srcVal > math.MaxUint32 { - return fmt.Errorf("%d is greater than maximum value for uint32", srcVal) - } - *v = uint32(srcVal) - case *uint64: - if srcVal < 0 { - return fmt.Errorf("%d is less than zero for uint64", srcVal) - } - *v = uint64(srcVal) - case sql.Scanner: - return v.Scan(srcVal) - default: - if v := reflect.ValueOf(dst); v.Kind() == reflect.Ptr { - el := v.Elem() - switch el.Kind() { - // if dst is a pointer to pointer, strip the pointer and try again - case reflect.Ptr: - if el.IsNil() { - // allocate destination - el.Set(reflect.New(el.Type().Elem())) - } - return int64AssignTo(srcVal, srcValid, el.Interface()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - if el.OverflowInt(int64(srcVal)) { - return fmt.Errorf("cannot put %d into %T", srcVal, dst) - } - el.SetInt(int64(srcVal)) - return nil - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - if srcVal < 0 { - return fmt.Errorf("%d is less than zero for %T", srcVal, dst) - } - if el.OverflowUint(uint64(srcVal)) { - return fmt.Errorf("cannot put %d into %T", srcVal, dst) - } - el.SetUint(uint64(srcVal)) - return nil - } - } - return fmt.Errorf("cannot assign %v into %T", srcVal, dst) - } - return nil - } - - // if dst is a pointer to pointer and srcStatus is not Valid, nil it out - if v := reflect.ValueOf(dst); v.Kind() == reflect.Ptr { - el := v.Elem() - if el.Kind() == reflect.Ptr { - el.Set(reflect.Zero(el.Type())) - return nil - } - } - - return fmt.Errorf("cannot assign %v %v into %T", srcVal, srcValid, dst) -} - -func float64AssignTo(srcVal float64, srcValid bool, dst any) error { - if srcValid { - switch v := dst.(type) { - case *float32: - *v = float32(srcVal) - case *float64: - *v = srcVal - default: - if v := reflect.ValueOf(dst); v.Kind() == reflect.Ptr { - el := v.Elem() - switch el.Kind() { - // if dst is a type alias of a float32 or 64, set dst val - case reflect.Float32, reflect.Float64: - el.SetFloat(srcVal) - return nil - // if dst is a pointer to pointer, strip the pointer and try again - case reflect.Ptr: - if el.IsNil() { - // allocate destination - el.Set(reflect.New(el.Type().Elem())) - } - return float64AssignTo(srcVal, srcValid, el.Interface()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - i64 := int64(srcVal) - if float64(i64) == srcVal { - return int64AssignTo(i64, srcValid, dst) - } - } - } - return fmt.Errorf("cannot assign %v into %T", srcVal, dst) - } - return nil - } - - // if dst is a pointer to pointer and srcStatus is not Valid, nil it out - if v := reflect.ValueOf(dst); v.Kind() == reflect.Ptr { - el := v.Elem() - if el.Kind() == reflect.Ptr { - el.Set(reflect.Zero(el.Type())) - return nil - } - } - - return fmt.Errorf("cannot assign %v %v into %T", srcVal, srcValid, dst) -} - func NullAssignTo(dst any) error { dstPtr := reflect.ValueOf(dst) diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/hstore.go b/vendor/github.com/jackc/pgx/v5/pgtype/hstore.go index 9befabd0..2f34f4c9 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/hstore.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/hstore.go @@ -121,8 +121,15 @@ func (encodePlanHstoreCodecText) Encode(value any, buf []byte) (newBuf []byte, e return nil, err } - if hstore == nil { - return nil, nil + if len(hstore) == 0 { + // distinguish between empty and nil: Not strictly required by Postgres, since its protocol + // explicitly marks NULL column values separately. However, the Binary codec does this, and + // this means we can "round trip" Encode and Scan without data loss. + // nil: []byte(nil); empty: []byte{} + if hstore == nil { + return nil, nil + } + return []byte{}, nil } firstPair := true @@ -131,7 +138,7 @@ func (encodePlanHstoreCodecText) Encode(value any, buf []byte) (newBuf []byte, e if firstPair { firstPair = false } else { - buf = append(buf, ',') + buf = append(buf, ',', ' ') } // unconditionally quote hstore keys/values like Postgres does diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/json.go b/vendor/github.com/jackc/pgx/v5/pgtype/json.go index 753f2410..b7a7101e 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/json.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/json.go @@ -25,6 +25,13 @@ func (c JSONCodec) PlanEncode(m *Map, oid uint32, format int16, value any) Encod case []byte: return encodePlanJSONCodecEitherFormatByteSlice{} + // Must come before trying wrap encode plans because a pointer to a struct may be unwrapped to a struct that can be + // marshalled. + // + // https://github.com/jackc/pgx/issues/1681 + case json.Marshaler: + return encodePlanJSONCodecEitherFormatMarshal{} + // Cannot rely on driver.Valuer being handled later because anything can be marshalled. // // https://github.com/jackc/pgx/issues/1430 diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/numeric.go b/vendor/github.com/jackc/pgx/v5/pgtype/numeric.go index 376c03fe..62e45787 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/numeric.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/numeric.go @@ -33,23 +33,6 @@ var big10 *big.Int = big.NewInt(10) var big100 *big.Int = big.NewInt(100) var big1000 *big.Int = big.NewInt(1000) -var bigMaxInt8 *big.Int = big.NewInt(math.MaxInt8) -var bigMinInt8 *big.Int = big.NewInt(math.MinInt8) -var bigMaxInt16 *big.Int = big.NewInt(math.MaxInt16) -var bigMinInt16 *big.Int = big.NewInt(math.MinInt16) -var bigMaxInt32 *big.Int = big.NewInt(math.MaxInt32) -var bigMinInt32 *big.Int = big.NewInt(math.MinInt32) -var bigMaxInt64 *big.Int = big.NewInt(math.MaxInt64) -var bigMinInt64 *big.Int = big.NewInt(math.MinInt64) -var bigMaxInt *big.Int = big.NewInt(int64(maxInt)) -var bigMinInt *big.Int = big.NewInt(int64(minInt)) - -var bigMaxUint8 *big.Int = big.NewInt(math.MaxUint8) -var bigMaxUint16 *big.Int = big.NewInt(math.MaxUint16) -var bigMaxUint32 *big.Int = big.NewInt(math.MaxUint32) -var bigMaxUint64 *big.Int = (&big.Int{}).SetUint64(uint64(math.MaxUint64)) -var bigMaxUint *big.Int = (&big.Int{}).SetUint64(uint64(maxUint)) - var bigNBase *big.Int = big.NewInt(nbase) var bigNBaseX2 *big.Int = big.NewInt(nbase * nbase) var bigNBaseX3 *big.Int = big.NewInt(nbase * nbase * nbase) @@ -241,11 +224,11 @@ func (n Numeric) MarshalJSON() ([]byte, error) { } func (n *Numeric) UnmarshalJSON(src []byte) error { - if bytes.Compare(src, []byte(`null`)) == 0 { + if bytes.Equal(src, []byte(`null`)) { *n = Numeric{} return nil } - if bytes.Compare(src, []byte(`"NaN"`)) == 0 { + if bytes.Equal(src, []byte(`"NaN"`)) { *n = Numeric{NaN: true, Valid: true} return nil } diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/pgtype.go b/vendor/github.com/jackc/pgx/v5/pgtype/pgtype.go index b9cd7b41..8b636763 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/pgtype.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/pgtype.go @@ -1140,25 +1140,6 @@ func (m *Map) Scan(oid uint32, formatCode int16, src []byte, dst any) error { return plan.Scan(src, dst) } -func scanUnknownType(oid uint32, formatCode int16, buf []byte, dest any) error { - switch dest := dest.(type) { - case *string: - if formatCode == BinaryFormatCode { - return fmt.Errorf("unknown oid %d in binary format cannot be scanned into %T", oid, dest) - } - *dest = string(buf) - return nil - case *[]byte: - *dest = buf - return nil - default: - if nextDst, retry := GetAssignToDstType(dest); retry { - return scanUnknownType(oid, formatCode, buf, nextDst) - } - return fmt.Errorf("unknown oid %d cannot be scanned into %T", oid, dest) - } -} - var ErrScanTargetTypeChanged = errors.New("scan target type changed") func codecScan(codec Codec, m *Map, oid uint32, format int16, src []byte, dst any) error { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/point.go b/vendor/github.com/jackc/pgx/v5/pgtype/point.go index cfa5a9f1..b5a4320b 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/point.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/point.go @@ -40,7 +40,7 @@ func (p Point) PointValue() (Point, error) { } func parsePoint(src []byte) (*Point, error) { - if src == nil || bytes.Compare(src, []byte("null")) == 0 { + if src == nil || bytes.Equal(src, []byte("null")) { return &Point{}, nil } diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/uuid.go b/vendor/github.com/jackc/pgx/v5/pgtype/uuid.go index 96a4c32f..b59d6e76 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/uuid.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/uuid.go @@ -97,7 +97,7 @@ func (src UUID) MarshalJSON() ([]byte, error) { } func (dst *UUID) UnmarshalJSON(src []byte) error { - if bytes.Compare(src, []byte("null")) == 0 { + if bytes.Equal(src, []byte("null")) { *dst = UUID{} return nil } diff --git a/vendor/github.com/jackc/pgx/v5/rows.go b/vendor/github.com/jackc/pgx/v5/rows.go index cdd72a25..055a6645 100644 --- a/vendor/github.com/jackc/pgx/v5/rows.go +++ b/vendor/github.com/jackc/pgx/v5/rows.go @@ -231,7 +231,11 @@ func (rows *baseRows) Scan(dest ...any) error { if len(dest) == 1 { if rc, ok := dest[0].(RowScanner); ok { - return rc.ScanRow(rows) + err := rc.ScanRow(rows) + if err != nil { + rows.fatal(err) + } + return err } } diff --git a/vendor/github.com/pelletier/go-toml/v2/marshaler.go b/vendor/github.com/pelletier/go-toml/v2/marshaler.go index 6ab1d823..83875260 100644 --- a/vendor/github.com/pelletier/go-toml/v2/marshaler.go +++ b/vendor/github.com/pelletier/go-toml/v2/marshaler.go @@ -273,7 +273,7 @@ func (enc *Encoder) encode(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, e return enc.encodeMap(b, ctx, v) case reflect.Struct: return enc.encodeStruct(b, ctx, v) - case reflect.Slice: + case reflect.Slice, reflect.Array: return enc.encodeSlice(b, ctx, v) case reflect.Interface: if v.IsNil() { @@ -930,7 +930,7 @@ func willConvertToTableOrArrayTable(ctx encoderCtx, v reflect.Value) bool { return willConvertToTableOrArrayTable(ctx, v.Elem()) } - if t.Kind() == reflect.Slice { + if t.Kind() == reflect.Slice || t.Kind() == reflect.Array { if v.Len() == 0 { // An empty slice should be a kv = []. return false diff --git a/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go b/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go index 39350343..5cede081 100644 --- a/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go +++ b/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go @@ -1170,10 +1170,10 @@ func initAndDereferencePointer(v reflect.Value) reflect.Value { // Same as reflect.Value.FieldByIndex, but creates pointers if needed. func fieldByIndex(v reflect.Value, path []int) reflect.Value { - for i, x := range path { + for _, x := range path { v = v.Field(x) - if i < len(path)-1 && v.Kind() == reflect.Ptr { + if v.Kind() == reflect.Ptr { if v.IsNil() { v.Set(reflect.New(v.Type().Elem())) } diff --git a/vendor/golang.org/x/exp/slices/slices.go b/vendor/golang.org/x/exp/slices/slices.go index 2540bd68..8a7cf20d 100644 --- a/vendor/golang.org/x/exp/slices/slices.go +++ b/vendor/golang.org/x/exp/slices/slices.go @@ -168,6 +168,30 @@ func Delete[S ~[]E, E any](s S, i, j int) S { return append(s[:i], s[j:]...) } +// DeleteFunc removes any elements from s for which del returns true, +// returning the modified slice. +// When DeleteFunc removes m elements, it might not modify the elements +// s[len(s)-m:len(s)]. If those elements contain pointers you might consider +// zeroing those elements so that objects they reference can be garbage +// collected. +func DeleteFunc[S ~[]E, E any](s S, del func(E) bool) S { + // Don't start copying elements until we find one to delete. + for i, v := range s { + if del(v) { + j := i + for i++; i < len(s); i++ { + v = s[i] + if !del(v) { + s[j] = v + j++ + } + } + return s[:j] + } + } + return s +} + // Replace replaces the elements s[i:j] by the given v, and returns the // modified slice. Replace panics if s[i:j] is not a valid slice of s. func Replace[S ~[]E, E any](s S, i, j int, v ...E) S { diff --git a/vendor/golang.org/x/exp/slog/doc.go b/vendor/golang.org/x/exp/slog/doc.go index 3b242591..4beaf867 100644 --- a/vendor/golang.org/x/exp/slog/doc.go +++ b/vendor/golang.org/x/exp/slog/doc.go @@ -174,9 +174,9 @@ argument, as do their corresponding top-level functions. Although the convenience methods on Logger (Info and so on) and the corresponding top-level functions do not take a context, the alternatives ending -in "Ctx" do. For example, +in "Context" do. For example, - slog.InfoCtx(ctx, "message") + slog.InfoContext(ctx, "message") It is recommended to pass a context to an output method if one is available. diff --git a/vendor/golang.org/x/exp/slog/logger.go b/vendor/golang.org/x/exp/slog/logger.go index 6ad93bf8..e87ec993 100644 --- a/vendor/golang.org/x/exp/slog/logger.go +++ b/vendor/golang.org/x/exp/slog/logger.go @@ -167,7 +167,13 @@ func (l *Logger) Debug(msg string, args ...any) { l.log(nil, LevelDebug, msg, args...) } +// DebugContext logs at LevelDebug with the given context. +func (l *Logger) DebugContext(ctx context.Context, msg string, args ...any) { + l.log(ctx, LevelDebug, msg, args...) +} + // DebugCtx logs at LevelDebug with the given context. +// Deprecated: Use Logger.DebugContext. func (l *Logger) DebugCtx(ctx context.Context, msg string, args ...any) { l.log(ctx, LevelDebug, msg, args...) } @@ -177,7 +183,13 @@ func (l *Logger) Info(msg string, args ...any) { l.log(nil, LevelInfo, msg, args...) } +// InfoContext logs at LevelInfo with the given context. +func (l *Logger) InfoContext(ctx context.Context, msg string, args ...any) { + l.log(ctx, LevelInfo, msg, args...) +} + // InfoCtx logs at LevelInfo with the given context. +// Deprecated: Use Logger.InfoContext. func (l *Logger) InfoCtx(ctx context.Context, msg string, args ...any) { l.log(ctx, LevelInfo, msg, args...) } @@ -187,7 +199,13 @@ func (l *Logger) Warn(msg string, args ...any) { l.log(nil, LevelWarn, msg, args...) } +// WarnContext logs at LevelWarn with the given context. +func (l *Logger) WarnContext(ctx context.Context, msg string, args ...any) { + l.log(ctx, LevelWarn, msg, args...) +} + // WarnCtx logs at LevelWarn with the given context. +// Deprecated: Use Logger.WarnContext. func (l *Logger) WarnCtx(ctx context.Context, msg string, args ...any) { l.log(ctx, LevelWarn, msg, args...) } @@ -197,7 +215,13 @@ func (l *Logger) Error(msg string, args ...any) { l.log(nil, LevelError, msg, args...) } +// ErrorContext logs at LevelError with the given context. +func (l *Logger) ErrorContext(ctx context.Context, msg string, args ...any) { + l.log(ctx, LevelError, msg, args...) +} + // ErrorCtx logs at LevelError with the given context. +// Deprecated: Use Logger.ErrorContext. func (l *Logger) ErrorCtx(ctx context.Context, msg string, args ...any) { l.log(ctx, LevelError, msg, args...) } @@ -249,8 +273,8 @@ func Debug(msg string, args ...any) { Default().log(nil, LevelDebug, msg, args...) } -// DebugCtx calls Logger.DebugCtx on the default logger. -func DebugCtx(ctx context.Context, msg string, args ...any) { +// DebugContext calls Logger.DebugContext on the default logger. +func DebugContext(ctx context.Context, msg string, args ...any) { Default().log(ctx, LevelDebug, msg, args...) } @@ -259,8 +283,8 @@ func Info(msg string, args ...any) { Default().log(nil, LevelInfo, msg, args...) } -// InfoCtx calls Logger.InfoCtx on the default logger. -func InfoCtx(ctx context.Context, msg string, args ...any) { +// InfoContext calls Logger.InfoContext on the default logger. +func InfoContext(ctx context.Context, msg string, args ...any) { Default().log(ctx, LevelInfo, msg, args...) } @@ -269,8 +293,8 @@ func Warn(msg string, args ...any) { Default().log(nil, LevelWarn, msg, args...) } -// WarnCtx calls Logger.WarnCtx on the default logger. -func WarnCtx(ctx context.Context, msg string, args ...any) { +// WarnContext calls Logger.WarnContext on the default logger. +func WarnContext(ctx context.Context, msg string, args ...any) { Default().log(ctx, LevelWarn, msg, args...) } @@ -279,7 +303,31 @@ func Error(msg string, args ...any) { Default().log(nil, LevelError, msg, args...) } -// ErrorCtx calls Logger.ErrorCtx on the default logger. +// ErrorContext calls Logger.ErrorContext on the default logger. +func ErrorContext(ctx context.Context, msg string, args ...any) { + Default().log(ctx, LevelError, msg, args...) +} + +// DebugCtx calls Logger.DebugContext on the default logger. +// Deprecated: call DebugContext. +func DebugCtx(ctx context.Context, msg string, args ...any) { + Default().log(ctx, LevelDebug, msg, args...) +} + +// InfoCtx calls Logger.InfoContext on the default logger. +// Deprecated: call InfoContext. +func InfoCtx(ctx context.Context, msg string, args ...any) { + Default().log(ctx, LevelInfo, msg, args...) +} + +// WarnCtx calls Logger.WarnContext on the default logger. +// Deprecated: call WarnContext. +func WarnCtx(ctx context.Context, msg string, args ...any) { + Default().log(ctx, LevelWarn, msg, args...) +} + +// ErrorCtx calls Logger.ErrorContext on the default logger. +// Deprecated: call ErrorContext. func ErrorCtx(ctx context.Context, msg string, args ...any) { Default().log(ctx, LevelError, msg, args...) } diff --git a/vendor/gorm.io/gen/do.go b/vendor/gorm.io/gen/do.go index ebe07753..aca161a5 100644 --- a/vendor/gorm.io/gen/do.go +++ b/vendor/gorm.io/gen/do.go @@ -265,7 +265,7 @@ func (d *DO) toOrderValue(columns ...field.Expr) string { c.Build(stmt) } - return stmt.SQL.String() + return d.db.Dialector.Explain(stmt.SQL.String(), stmt.Vars...) } // Distinct ... @@ -392,7 +392,9 @@ func (d *DO) Assign(attrs ...field.AssignExpr) Dao { func (d *DO) attrsValue(attrs []field.AssignExpr) []interface{} { values := make([]interface{}, 0, len(attrs)) for _, attr := range attrs { - if expr, ok := attr.AssignExpr().(clause.Eq); ok { + if expr, ok := attr.AssignExpr().(field.IValues); ok { + values = append(values, expr.Values()) + } else if expr, ok := attr.AssignExpr().(clause.Eq); ok { values = append(values, expr) } } @@ -846,6 +848,10 @@ func (d *DO) newResultSlicePointer() interface{} { return reflect.New(reflect.SliceOf(reflect.PtrTo(d.modelType))).Interface() } +func (d *DO) AddError(err error) error { + return d.underlyingDB().AddError(err) +} + func toColExprFullName(stmt *gorm.Statement, columns ...field.Expr) []string { return buildColExpr(stmt, columns, field.WithAll) } @@ -970,6 +976,12 @@ func Table(subQueries ...SubQuery) Dao { } } +// Exists EXISTS expression +// SELECT * FROM table WHERE EXISTS (SELECT NAME FROM users WHERE id = 1) +func Exists(subQuery SubQuery) Condition { + return field.CompareSubQuery(field.ExistsOp, nil, subQuery.underlyingDB()) +} + // ======================== sub query method ======================== // Columns columns array diff --git a/vendor/gorm.io/gen/field/assign_attr.go b/vendor/gorm.io/gen/field/assign_attr.go new file mode 100644 index 00000000..eab5fb91 --- /dev/null +++ b/vendor/gorm.io/gen/field/assign_attr.go @@ -0,0 +1,121 @@ +package field + +import ( + "reflect" + "strings" + + "gorm.io/gorm" + "gorm.io/gorm/utils/tests" +) + +var testDB, _ = gorm.Open(tests.DummyDialector{}, nil) + +type IValues interface { + Values() interface{} +} + +type attrs struct { + expr + value interface{} + db *gorm.DB + selectFields []IColumnName + omitFields []IColumnName +} + +func (att *attrs) AssignExpr() expression { + return att +} + +func (att *attrs) BeCond() interface{} { + return att.db.Statement.BuildCondition(att.Values()) +} + +func (att *attrs) Values() interface{} { + if att == nil || att.value == nil { + return nil + } + if len(att.selectFields) == 0 && len(att.omitFields) == 0 { + return att.value + } + values := make(map[string]interface{}) + if value, ok := att.value.(map[string]interface{}); ok { + values = value + } else if value, ok := att.value.(*map[string]interface{}); ok { + values = *value + } else { + reflectValue := reflect.Indirect(reflect.ValueOf(att.value)) + for reflectValue.Kind() == reflect.Ptr || reflectValue.Kind() == reflect.Interface { + reflectValue = reflect.Indirect(reflectValue) + } + switch reflectValue.Kind() { + case reflect.Struct: + if err := att.db.Statement.Parse(att.value); err == nil { + ignoreZero := len(att.selectFields) == 0 + for _, f := range att.db.Statement.Schema.Fields { + if f.Readable { + if v, isZero := f.ValueOf(att.db.Statement.Context, reflectValue); !isZero || !ignoreZero { + values[f.DBName] = v + } + } + } + } + } + } + if len(att.selectFields) > 0 { + fm, all := toFieldMap(att.selectFields) + if all { + return values + } + tvs := make(map[string]interface{}, len(fm)) + for fn, vl := range values { + if fm[fn] { + tvs[fn] = vl + } + } + return tvs + } + fm, all := toFieldMap(att.omitFields) + if all { + return map[string]interface{}{} + } + for fn, _ := range fm { + delete(values, fn) + } + return values +} + +func toFieldMap(fields []IColumnName) (fieldsMap map[string]bool, all bool) { + fieldsMap = make(map[string]bool, len(fields)) + for _, f := range fields { + if strings.HasSuffix(string(f.ColumnName()), "*") { + all = true + return + } + fieldsMap[string(f.ColumnName())] = true + } + return +} + +func (att *attrs) Select(fields ...IColumnName) *attrs { + if att == nil || att.db == nil { + return att + } + att.selectFields = fields + return att +} + +func (att *attrs) Omit(fields ...IColumnName) *attrs { + if att == nil || att.db == nil { + return att + } + att.omitFields = fields + return att +} + +func Attrs(attr interface{}) *attrs { + res := &attrs{db: testDB.Debug()} + if attr != nil { + res.value = attr + } + return res +} diff --git a/vendor/gorm.io/gen/field/association.go b/vendor/gorm.io/gen/field/association.go index 384d0491..a0f40db0 100644 --- a/vendor/gorm.io/gen/field/association.go +++ b/vendor/gorm.io/gen/field/association.go @@ -239,13 +239,13 @@ func (c *RelateConfig) RelateFieldPrefix(relationshipType RelationshipType) stri } func (c *RelateConfig) GetTag(fieldName string) Tag { if c == nil { - return NewTag() + return Tag{} } if c.OverwriteTag != nil { return c.OverwriteTag } if c.Tag == nil { - c.Tag = NewTag() + c.Tag = Tag{} } if c.JSONTag == "" { c.JSONTag = ns.ColumnName("", fieldName) diff --git a/vendor/gorm.io/gen/field/expr.go b/vendor/gorm.io/gen/field/expr.go index 6f54e35a..0c368f03 100644 --- a/vendor/gorm.io/gen/field/expr.go +++ b/vendor/gorm.io/gen/field/expr.go @@ -24,7 +24,7 @@ type Expr interface { Build(clause.Builder) As(alias string) Expr - ColumnName() sql + IColumnName BuildColumn(*gorm.Statement, ...BuildOpt) sql BuildWithArgs(*gorm.Statement) (query sql, args []interface{}) RawExpr() expression @@ -52,6 +52,10 @@ type OrderExpr interface { type expression interface{} +type IColumnName interface { + ColumnName() sql +} + type sql string func (e sql) String() string { return string(e) } @@ -190,6 +194,10 @@ func (e expr) Avg() Float64 { return Float64{e.setE(clause.Expr{SQL: "AVG(?)", Vars: []interface{}{e.RawExpr()}})} } +func (e expr) Abs() Float64 { + return Float64{e.setE(clause.Expr{SQL: "ABS(?)", Vars: []interface{}{e.RawExpr()}})} +} + func (e expr) Null() AssignExpr { return e.setE(clause.Eq{Column: e.col.Name, Value: nil}) } diff --git a/vendor/gorm.io/gen/field/tag.go b/vendor/gorm.io/gen/field/tag.go index 7330af07..0a1a3e45 100644 --- a/vendor/gorm.io/gen/field/tag.go +++ b/vendor/gorm.io/gen/field/tag.go @@ -44,16 +44,14 @@ type TagBuilder interface { type Tag map[string]string -func NewTag() Tag { - return Tag{} -} - -func (tag Tag) Set(key, value string) { +func (tag Tag) Set(key, value string) Tag { tag[key] = value + return tag } -func (tag Tag) Remove(key string) { +func (tag Tag) Remove(key string) Tag { delete(tag, key) + return tag } func (tag Tag) Build() string { @@ -62,8 +60,7 @@ func (tag Tag) Build() string { } tags := make([]string, 0, len(tag)) - keys := tagKeySort(tag) - for _, k := range keys { + for _, k := range tagKeys(tag) { v := tag[k] if k == "" || v == "" { continue @@ -73,18 +70,25 @@ func (tag Tag) Build() string { return strings.Join(tags, " ") } -type GormTag Tag +type GormTag map[string][]string -func NewGormTag() GormTag { - return GormTag{} +func (tag GormTag) Append(key string, values ...string) GormTag { + if _, ok := tag[key]; ok { + tag[key] = append(tag[key], values...) + } else { + tag[key] = values + } + return tag } -func (tag GormTag) Set(key, value string) { - tag[key] = value +func (tag GormTag) Set(key string, values ...string) GormTag { + tag[key] = values + return tag } -func (tag GormTag) Remove(key string) { +func (tag GormTag) Remove(key string) GormTag { delete(tag, key) + return tag } func (tag GormTag) Build() string { @@ -92,26 +96,34 @@ func (tag GormTag) Build() string { return "" } tags := make([]string, 0, len(tag)) - keys := tagKeySort(Tag(tag)) - for _, k := range keys { - v := tag[k] - if k == "" && v == "" { + for _, k := range gormKeys(tag) { + vs := tag[k] + if len(vs) == 0 && k == "" { continue } - tv := make([]string, 0, 2) - if k != "" { - tv = append(tv, k) + if len(vs) == 0 { + tags = append(tags, k) + continue } - if v != "" { - tv = append(tv, v) + for _, v := range vs { + if k == "" && v == "" { + continue + } + tv := make([]string, 0, 2) + if k != "" { + tv = append(tv, k) + } + if v != "" { + tv = append(tv, v) + } + tags = append(tags, strings.Join(tv, ":")) } - tags = append(tags, strings.Join(tv, ":")) } return strings.Join(tags, ";") } -func tagKeySort(tag Tag) []string { +func tagKeys(tag Tag) []string { keys := make([]string, 0, len(tag)) if len(tag) == 0 { return keys @@ -119,6 +131,24 @@ func tagKeySort(tag Tag) []string { for k, _ := range tag { keys = append(keys, k) } + return keySort(keys) +} + +func gormKeys(tag GormTag) []string { + keys := make([]string, 0, len(tag)) + if len(tag) == 0 { + return keys + } + for k, _ := range tag { + keys = append(keys, k) + } + return keySort(keys) +} + +func keySort(keys []string) []string { + if len(keys) == 0 { + return keys + } sort.Slice(keys, func(i, j int) bool { if tagKeyPriorities[keys[i]] == tagKeyPriorities[keys[j]] { return keys[i] <= keys[j] diff --git a/vendor/gorm.io/gen/field_options.go b/vendor/gorm.io/gen/field_options.go index 8db9566f..0ff6a489 100644 --- a/vendor/gorm.io/gen/field_options.go +++ b/vendor/gorm.io/gen/field_options.go @@ -14,9 +14,18 @@ import ( // ModelOpt field option type ModelOpt = model.Option +// Field exported model.Field +type Field = *model.Field + var ns = schema.NamingStrategy{} var ( + FieldModify = func(opt func(Field) Field) model.ModifyFieldOpt { + return func(f *model.Field) *model.Field { + return opt(f) + } + } + // FieldNew add new field (any type your want) FieldNew = func(fieldName, fieldType string, fieldTag field.Tag) model.CreateFieldOpt { return func(*model.Field) *model.Field { @@ -147,6 +156,16 @@ var ( return m } } + // FieldGORMTagReg specify GORM tag by RegExp + FieldGORMTagReg = func(columnNameReg string, gormTag func(tag field.GormTag) field.GormTag) model.ModifyFieldOpt { + reg := regexp.MustCompile(columnNameReg) + return func(m *model.Field) *model.Field { + if reg.MatchString(m.ColumnName) { + m.GORMTag = gormTag(m.GORMTag) + } + return m + } + } // FieldNewTag add new tag FieldNewTag = func(columnName string, newTag field.Tag) model.ModifyFieldOpt { return func(m *model.Field) *model.Field { diff --git a/vendor/gorm.io/gen/generator.go b/vendor/gorm.io/gen/generator.go index 352f71ec..6871193e 100644 --- a/vendor/gorm.io/gen/generator.go +++ b/vendor/gorm.io/gen/generator.go @@ -48,8 +48,6 @@ type RowsAffected int64 var concurrent = runtime.NumCPU() -func init() { runtime.GOMAXPROCS(runtime.NumCPU()) } - // NewGenerator create a new generator func NewGenerator(cfg Config) *Generator { if err := cfg.Revise(); err != nil { diff --git a/vendor/gorm.io/gen/interface.go b/vendor/gorm.io/gen/interface.go index 0dec88ed..05236e59 100644 --- a/vendor/gorm.io/gen/interface.go +++ b/vendor/gorm.io/gen/interface.go @@ -86,4 +86,6 @@ type Dao interface { Scan(dest interface{}) error Pluck(column field.Expr, dest interface{}) error ScanRows(rows *sql.Rows, dest interface{}) error + + AddError(err error) error } diff --git a/vendor/gorm.io/gen/internal/generate/export.go b/vendor/gorm.io/gen/internal/generate/export.go index 3ee62099..d83fa45b 100644 --- a/vendor/gorm.io/gen/internal/generate/export.go +++ b/vendor/gorm.io/gen/internal/generate/export.go @@ -87,12 +87,12 @@ func GetQueryStructMetaFromObject(obj helper.Object, conf *model.Config) (*Query for _, fl := range obj.Fields() { tag := fl.Tag() if tag == nil { - tag = field.NewTag() + tag = field.Tag{} } if gt := fl.GORMTag(); gt != "" { tag.Set(field.TagKeyGorm, gt) } - if jt := fl.GORMTag(); jt != "" { + if jt := fl.JSONTag(); jt != "" { tag.Set(field.TagKeyJson, jt) } diff --git a/vendor/gorm.io/gen/internal/generate/query.go b/vendor/gorm.io/gen/internal/generate/query.go index f282c066..460aa77d 100644 --- a/vendor/gorm.io/gen/internal/generate/query.go +++ b/vendor/gorm.io/gen/internal/generate/query.go @@ -179,9 +179,9 @@ func (b *QueryStructMeta) ReviseDIYMethod() error { if tableName == nil { methods = append(methods, parser.DefaultMethodTableName(b.ModelStructName)) } else { - //e.g. return "@@table" => return TableNameUser + // e.g. return "@@table" => return TableNameUser tableName.Body = strings.ReplaceAll(tableName.Body, "\"@@table\"", "TableName"+b.ModelStructName) - //e.g. return "t_@@table" => return "t_user" + // e.g. return "t_@@table" => return "t_user" tableName.Body = strings.ReplaceAll(tableName.Body, "@@table", b.TableName) } b.ModelMethods = methods @@ -194,7 +194,7 @@ func (b *QueryStructMeta) ReviseDIYMethod() error { func (b *QueryStructMeta) addMethodFromAddMethodOpt(methods ...interface{}) *QueryStructMeta { for _, method := range methods { - modelMethods, err := parser.GetModelMethod(method, 5) + modelMethods, err := parser.GetModelMethod(method) if err != nil { panic("add diy method err:" + err.Error()) } diff --git a/vendor/gorm.io/gen/internal/model/tbl_column.go b/vendor/gorm.io/gen/internal/model/tbl_column.go index cee590d3..517ca630 100644 --- a/vendor/gorm.io/gen/internal/model/tbl_column.go +++ b/vendor/gorm.io/gen/internal/model/tbl_column.go @@ -12,11 +12,11 @@ import ( // Column table column's info type Column struct { gorm.ColumnType - TableName string `gorm:"column:TABLE_NAME"` - Indexes []*Index `gorm:"-"` - UseScanType bool `gorm:"-"` + TableName string `gorm:"column:TABLE_NAME"` + Indexes []*Index `gorm:"-"` + UseScanType bool `gorm:"-"` dataTypeMap map[string]func(columnType gorm.ColumnType) (dataType string) `gorm:"-"` - jsonTagNS func(columnName string) string `gorm:"-"` + jsonTagNS func(columnName string) string `gorm:"-"` } // SetDataTypeMap set data type map @@ -82,10 +82,10 @@ func (c *Column) multilineComment() bool { } func (c *Column) buildGormTag() field.GormTag { - tag := field.NewGormTag() - tag.Set(field.TagKeyGormColumn, c.Name()) - tag.Set(field.TagKeyGormType, c.columnType()) - + tag := field.GormTag{ + field.TagKeyGormColumn: []string{c.Name()}, + field.TagKeyGormType: []string{c.columnType()}, + } isPriKey, ok := c.PrimaryKey() isValidPriKey := ok && isPriKey if isValidPriKey { @@ -105,9 +105,9 @@ func (c *Column) buildGormTag() field.GormTag { continue } if uniq, _ := idx.Unique(); uniq { - tag.Set(field.TagKeyGormUniqueIndex, fmt.Sprintf("%s,priority:%d", idx.Name(), idx.Priority)) + tag.Append(field.TagKeyGormUniqueIndex, fmt.Sprintf("%s,priority:%d", idx.Name(), idx.Priority)) } else { - tag.Set(field.TagKeyGormIndex, fmt.Sprintf("%s,priority:%d", idx.Name(), idx.Priority)) + tag.Append(field.TagKeyGormIndex, fmt.Sprintf("%s,priority:%d", idx.Name(), idx.Priority)) } } diff --git a/vendor/gorm.io/gen/internal/parser/export.go b/vendor/gorm.io/gen/internal/parser/export.go index 4753484a..901b78f8 100644 --- a/vendor/gorm.io/gen/internal/parser/export.go +++ b/vendor/gorm.io/gen/internal/parser/export.go @@ -74,7 +74,7 @@ func fileExists(path string) bool { } // GetModelMethod get diy methods -func GetModelMethod(v interface{}, skip int) (method *DIYMethods, err error) { +func GetModelMethod(v interface{}) (method *DIYMethods, err error) { method = new(DIYMethods) // get diy method info by input value, must input a function or a struct @@ -98,7 +98,15 @@ func GetModelMethod(v interface{}, skip int) (method *DIYMethods, err error) { // if struct in main file ctx := build.Default if method.pkgPath == "main" { - _, file, _, _ := runtime.Caller(skip) + var skip int + var file string + for { + _, file, _, _ = runtime.Caller(skip) + if !(strings.Contains(file, "gorm/gen/generator.go") || strings.Contains(file, "gorm/gen/internal")) || file == "" { + break + } + skip++ + } p, err = ctx.ImportDir(filepath.Dir(file), build.ImportComment) } else { p, err = ctx.Import(method.pkgPath, "", build.ImportComment) diff --git a/vendor/gorm.io/gen/internal/template/method.go b/vendor/gorm.io/gen/internal/template/method.go index a562d0e0..bb02af52 100644 --- a/vendor/gorm.io/gen/internal/template/method.go +++ b/vendor/gorm.io/gen/internal/template/method.go @@ -73,10 +73,6 @@ func ({{.S}} {{.QueryStructName}}Do) Where(conds ...gen.Condition) {{.ReturnObje return {{.S}}.withDO({{.S}}.DO.Where(conds...)) } -func ({{.S}} {{.QueryStructName}}Do) Exists(subquery interface{UnderlyingDB() *gorm.DB}) {{.ReturnObject}} { - return {{.S}}.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func ({{.S}} {{.QueryStructName}}Do) Order(conds ...field.Expr) {{.ReturnObject}} { return {{.S}}.withDO({{.S}}.DO.Order(conds...)) } diff --git a/vendor/gorm.io/gen/internal/template/model.go b/vendor/gorm.io/gen/internal/template/model.go index 133c7a8b..7c594158 100644 --- a/vendor/gorm.io/gen/internal/template/model.go +++ b/vendor/gorm.io/gen/internal/template/model.go @@ -19,7 +19,13 @@ import ( // {{.ModelStructName}} {{.StructComment}} type {{.ModelStructName}} struct { {{range .Fields}} + {{if .MultilineComment -}} + /* +{{.ColumnComment}} + */ + {{end -}} {{.Name}} {{.Type}} ` + "`{{.Tags}}` " + + "{{if not .MultilineComment}}{{if .ColumnComment}}// {{.ColumnComment}}{{end}}{{end}}" + `{{end}} } diff --git a/vendor/gorm.io/gen/internal/template/struct.go b/vendor/gorm.io/gen/internal/template/struct.go index f3a5e737..3aa1a9c2 100644 --- a/vendor/gorm.io/gen/internal/template/struct.go +++ b/vendor/gorm.io/gen/internal/template/struct.go @@ -23,6 +23,8 @@ const ( func ({{.S}} {{.QueryStructName}}) Alias() string { return {{.S}}.{{.QueryStructName}}Do.Alias() } + func ({{.S}} {{.QueryStructName}}) Columns(cols ...field.Expr) gen.Columns { return {{.S}}.{{.QueryStructName}}Do.Columns(cols...) } + ` + getFieldMethod + fillFieldMapMethod + cloneMethod + replaceMethod + relationship + defineMethodStruct // TableQueryIface table query interface diff --git a/vendor/modules.txt b/vendor/modules.txt index 52dbe9fe..fba91d12 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -8,7 +8,7 @@ github.com/aliyun/aliyun-oss-go-sdk/oss ## explicit; go 1.16 github.com/allegro/bigcache/v3 github.com/allegro/bigcache/v3/queue -# github.com/baidubce/bce-sdk-go v0.9.151 +# github.com/baidubce/bce-sdk-go v0.9.153 ## explicit; go 1.11 github.com/baidubce/bce-sdk-go/auth github.com/baidubce/bce-sdk-go/bce @@ -24,18 +24,18 @@ github.com/baidubce/bce-sdk-go/util/log github.com/basgys/goxml2json # github.com/bitly/go-simplejson v0.5.0 ## explicit -# github.com/bytedance/sonic v1.9.2 -## explicit; go 1.15 +# github.com/bytedance/sonic v1.10.0-rc2 +## explicit; go 1.16 github.com/bytedance/sonic github.com/bytedance/sonic/ast github.com/bytedance/sonic/decoder github.com/bytedance/sonic/encoder +github.com/bytedance/sonic/internal/abi github.com/bytedance/sonic/internal/caching github.com/bytedance/sonic/internal/cpu github.com/bytedance/sonic/internal/decoder github.com/bytedance/sonic/internal/encoder github.com/bytedance/sonic/internal/jit -github.com/bytedance/sonic/internal/loader github.com/bytedance/sonic/internal/native github.com/bytedance/sonic/internal/native/avx github.com/bytedance/sonic/internal/native/avx2 @@ -50,9 +50,13 @@ github.com/bytedance/sonic/utf8 # github.com/cespare/xxhash/v2 v2.2.0 ## explicit; go 1.11 github.com/cespare/xxhash/v2 -# github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 -## explicit; go 1.15 +# github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d +## explicit; go 1.16 github.com/chenzhuoyu/base64x +# github.com/chenzhuoyu/iasm v0.9.0 +## explicit; go 1.16 +github.com/chenzhuoyu/iasm/expr +github.com/chenzhuoyu/iasm/x86_64 # github.com/clbanning/mxj v1.8.4 ## explicit github.com/clbanning/mxj @@ -122,7 +126,7 @@ github.com/goccy/go-json/internal/encoder/vm_color_indent github.com/goccy/go-json/internal/encoder/vm_indent github.com/goccy/go-json/internal/errors github.com/goccy/go-json/internal/runtime -# github.com/gogf/gf/v2 v2.4.4 +# github.com/gogf/gf/v2 v2.5.0 ## explicit; go 1.15 github.com/gogf/gf/v2/container/garray github.com/gogf/gf/v2/container/glist @@ -184,7 +188,7 @@ github.com/jackc/pgpassfile # github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a ## explicit; go 1.14 github.com/jackc/pgservicefile -# github.com/jackc/pgx/v5 v5.4.1 +# github.com/jackc/pgx/v5 v5.4.2 ## explicit; go 1.19 github.com/jackc/pgx/v5 github.com/jackc/pgx/v5/internal/anynil @@ -262,7 +266,7 @@ github.com/oschwald/geoip2-golang # github.com/oschwald/maxminddb-golang v1.11.0 ## explicit; go 1.19 github.com/oschwald/maxminddb-golang -# github.com/pelletier/go-toml/v2 v2.0.8 +# github.com/pelletier/go-toml/v2 v2.0.9 ## explicit; go 1.16 github.com/pelletier/go-toml/v2 github.com/pelletier/go-toml/v2/internal/characters @@ -487,7 +491,7 @@ golang.org/x/crypto/scrypt golang.org/x/crypto/sha3 golang.org/x/crypto/ssh golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -# golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df +# golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 ## explicit; go 1.20 golang.org/x/exp/constraints golang.org/x/exp/slices @@ -609,7 +613,7 @@ gorm.io/driver/mysql # gorm.io/driver/postgres v1.5.2 ## explicit; go 1.18 gorm.io/driver/postgres -# gorm.io/gen v0.3.22 +# gorm.io/gen v0.3.23 ## explicit; go 1.18 gorm.io/gen gorm.io/gen/field